
var ElapsesHeader = 200;
var Module = "";

var clicEnCours = false;
var position_x = 0;
var position_y = 0;
var netscape = false;
var origine_x = 0;
var origine_y = 0;
var x;
var y;

function createCookie(name,value,days) {
    var expires;
    if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            expires = "; expires="+date.toGMTString();
    }
    else 
        expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}
 
function HideFormDebug()
{		
    var MainDiv = document.getElementById('id_Debug');  
    if (MainDiv)
        MainDiv.style.visibility='hidden';
}

function ShowFormDebug(Texte)
{		
    var MainDiv = document.getElementById('id_Debug');    
    if (!MainDiv)
    {
        //document.onmousemove = function(){deplacementSouris();};
        var MonDiv=document.createElement('DIV'); //création virtuelle de la balise div
        MonDiv.setAttribute('name', 'name_Debug'); //attribut name
        MonDiv.setAttribute('id', 'id_Debug'); //attribut id
        MonDiv.className = 'FormDebug'; //doit être défini dans un style css

/*
        MonDiv.onclick=function(){
            var element = document.getElementById('id_Debug');
            element.style.visibility='hidden';
        }; //affectation un évènement click à la balise
*/

        DivBarre=document.createElement('DIV');    
        DivBarre.setAttribute('name', 'name_BarreDebug'); //attribut name
        DivBarre.setAttribute('id', 'id_BarreDebug'); //attribut id
        DivBarre.className = 'BarreFormDebug'; //doit être défini dans un style css
        DivBarre.innerHTML="Fenetre Debug - Cliquez dessus pour la masquer"; //affecte un contenu à la balise div
        //DivBarre.onmousedown=function(){boutonPresse();};
        //DivBarre.onmouseup=function(){boutonRelache();};

        DivClose=document.createElement('DIV');   
        DivClose.setAttribute('name', 'name_CloseDebug'); //attribut name
        DivClose.setAttribute('id', 'id_CloseDebug'); //attribut id
        DivClose.className = 'BoutonCloseFormDebug'; //doit être défini dans un style css
        DivClose.onclick=function(){HideFormDebug();};
        
        /*
        ImgClose=document.createElement('IMG');
        ImgClose.setAttribute('name', 'name_ImgCloseDebug'); //attribut name
        ImgClose.setAttribute('id', 'id_ImgCloseDebug'); //attribut id
        ImgClose.setAttribute('src', './Images/add.gif');
        ImgClose.className = 'ImgCloseFormDebug'; //doit être défini dans un style css
        
        DivClose.appendChild(ImgClose); //ajoute la div sur la page web physiquement
        */
        DivBarre.appendChild(DivClose); //ajoute la div sur la page web physiquement
        
        DivContent=document.createElement('DIV');    
        DivContent.setAttribute('name', 'name_ContentDebug'); //attribut name
        DivContent.setAttribute('id', 'id_ContentDebug'); //attribut id
        DivContent.className = 'ContentFormDebug'; //doit être défini dans un style css
        DivContent.innerHTML=Texte; //affecte un contenu à la balise div
        
        document.body.appendChild(MonDiv); //ajoute la div sur la page web physiquement
        MonDiv.appendChild(DivBarre); //ajoute la div sur la page web physiquement
        MonDiv.appendChild(DivContent); //ajoute la div sur la page web physiquement
    }
    else
    {                
        var element = document.getElementById('id_ContentDebug');
        element.innerHTML=Texte; //affecte un contenu à la balise div
        MainDiv.style.visibility='visible';
    }
}

function UpdateCommande(mod, Param, AvecReponse)
{
	  var OAjax;
      if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
      else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
	  if (AvecReponse)
		//alert(OAjax);
		OAjax.onreadystatechange = function(){AjaxReponseOnce(OAjax);};
		
	  OAjax.open("POST","index.php",true);

      OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	  var Data = "mod=" + mod + Param;
	
	  OAjax.send(Data); 
}

function traverse(tree) {
	var retour;
	if(tree.hasChildNodes()) {
			var nodes=tree.childNodes.length;
			for(var i=0; i<tree.childNodes.length; i++)
					return retour + "<li>" + traverse(tree.childNodes(i)) + "<li>";
	}
	else
			return tree.nodeValue;
}

function getNodeValue(parent, tagName)
{
  var retour = "";
  var node = parent.getElementsByTagName(tagName)[0];
  if (node)
  {
	for(var i=0; i < node.childNodes.length; i++) 
	{
		retour = retour + node.childNodes[i].data;
	}
	return retour;
  }
  else
    return null;
}

function AjaxReponseOnce(OAjax)
{
  if(OAjax.readyState == 4 && OAjax.status == 200) {
  
    var x = OAjax.responseXML;
    
    if (!x.documentElement)
    {        
        ShowFormDebug(OAjax.responseText);
        return;
    }
    else
    {
        if(x.documentElement.nodeName === 'parsererror')
        {
            ShowFormDebug(OAjax.responseText);
            return;
        }
        else
            HideFormDebug();
    }

    /*
    if(x.documentElement.nodeName === 'parsererror')
    {
        ShowFormDebug(OAjax.responseText);
        return;
    }
    else
        HideFormDebug();
    */  
    var response  = OAjax.responseXML.documentElement;
		
    var commands = response.getElementsByTagName('command');
	
	var log = document.getElementById("Logger");
	//log.innerHTML = log.innerHTML + OAjax.responseText;
	
    for(var i=0; i < commands.length; i++) {
      method = commands[i].getAttribute('method');
      switch(method) {
		case 'href':
          var target = getNodeValue(commands[i], 'target');
          var value = getNodeValue(commands[i], 'value');
          if(target && value) {
            document.getElementById(target).href = value;
          }
          break;

        case 'alert':
          var message = getNodeValue(commands[i], 'message');
          window.alert(message);
          break;

        case 'setvalue':
          var target = getNodeValue(commands[i], 'target');
          var value = getNodeValue(commands[i], 'value');
		  
          if(target && value) {
				var Element = document.getElementById(target);
				if (Element)
					Element.value = value;
				//document.getElementById(target).value = value;
          }
          break;

        case 'setdefault':
          var target = getNodeValue(commands[i], 'target');
          if(target) {
            document.getElementById(target).value = document.getElementById(target).defaultValue;
          }
          break;

        case 'focus':
          var target = getNodeValue(commands[i], 'target');
          if(target) {
				var Element = document.getElementById(target);
				if (Element)
					Element.focus();		  
            //document.getElementById(target).focus();
          }
          break;

        case 'setcontent':
          var target = getNodeValue(commands[i], 'target');
          var content = getNodeValue(commands[i], 'content');
          if(target && content)
		  {
			var o = document.getElementById(target);
			if (o)
			{
				o.innerHTML = content;
			}
		  }
          break;

        case 'setstyle':
          var target = getNodeValue(commands[i], 'target');
          var property = getNodeValue(commands[i], 'property');
          var value = getNodeValue(commands[i], 'value');
          if(target && property && value) {
				var Element = document.getElementById(target);
				if (Element)
					Element.style[property] = value;
          }
          break;

        case 'setproperty':
          var target = getNodeValue(commands[i], 'target');
          var property = getNodeValue(commands[i], 'property');
          var value = getNodeValue(commands[i], 'value');
          if(value == "true") value = true;
          if(value == "false") value = false;
          if(target) {
            document.getElementById(target)[property] = value;
          }
          break;

        default:
          window.console.log("Error: unrecognised method '" + method + "' in processReqChange()");
      }
    }
	return true;
  }
  else
	return false;
}

function AjaxAppelRefresh()
{
	var OAjax;
    if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
    else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
	OAjax.onreadystatechange = function(){AjaxReponseRefresh(OAjax);};
	OAjax.open("POST","Index.php",true);

    OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');  
	
	var Data = "update=N&mod="+Module+"&op=refresh";
	OAjax.send(Data);
}

function AjaxStartRefresh(newModule)
{
	Module = newModule;
	setTimeout("AjaxAppelRefresh()", ElapsesHeader);
}

