/*
									ADN - AJAX (C) 2006 V2 ( 09/2006 )
*/

/* VARIABLES GLOBALES */
var reponseAjax = new Array();/* TABLEAU DES REPONSES */

/**
idRequest	: id permettant de retrouver la réponse serveur et d'executer la fonction javascript correspondante
method		: POST, GET ...
uri			: page à executer pour l'envoi des données
postDATA	: data a envoyer par method POST => param1=value1&param2=value2&...paramN=valueN
reponseAjax[idRequest] : contient le réponse;
**/
function callAjax(idRequest, method, uri, postDATA){ 
var xmlHTTP = (window.ActiveXObject) ? new ActiveXObject("MICROSOFT.XMLHTTP") : new XMLHttpRequest();/*OBJET HTTPRequest*/
 if (xmlHTTP){
               xmlHTTP.onreadystatechange = function(){
			    if ( (xmlHTTP.readyState==4) && (xmlHTTP.status==200) ){
			   	    reponseAjax[idRequest] = xmlHTTP.responseText ;
				    eval("fn"+idRequest+"('"+idRequest+"')");
        		}// fin if
   }// fin fn() event

xmlHTTP.open(method,uri,true);
if (method.toLowerCase() == "post")
 xmlHTTP.setRequestHeader('Content-type','application/x-www-form-urlencoded');  
else
 postDATA = null;
 
xmlHTTP.send(postDATA); 
 }
} // fin fn() Ajax

//_________________________PATCH DU 28-10-08_________________PAR GD_____________________________________________________

// Fonctionne comme CallAjax sauf qu'ici il y a une variable en plus qui est tab[1]

function callAjaxTab(tab, method, uri, postDATA){ 
	idRequest = tab[0] ; // donne l'id de la fonction ajax (exemple : 35)
var xmlHTTP = (window.ActiveXObject) ? new ActiveXObject("MICROSOFT.XMLHTTP") : new XMLHttpRequest();/*OBJET HTTPRequest*/
 if (xmlHTTP){
               xmlHTTP.onreadystatechange = function(){
			    if ( (xmlHTTP.readyState==4) && (xmlHTTP.status==200) ){
			   	    reponseAjax[idRequest] = xmlHTTP.responseText ;
				  //  eval("fn"+idRequest+"('"+idRequest+"')");
				  eval("fn"+idRequest+"('"+idRequest+"','"+tab[1]+"')"); // tab[1] est une seconde variable que l'on peut définir.
        		}// fin if
   }// fin fn() event

xmlHTTP.open(method,uri,true);
if (method.toLowerCase() == "post")
 xmlHTTP.setRequestHeader('Content-type','application/x-www-form-urlencoded');  
else
 postDATA = null;
 
xmlHTTP.send(postDATA); 
 }
} // fin fn() Ajax

//______________________________________________________________________________________________________________________

function callAjaxSync(idRequest, method, uri, postDATA){ 
var xmlHTTP = (window.ActiveXObject) ? new ActiveXObject("MICROSOFT.XMLHTTP") : new XMLHttpRequest();/*OBJET HTTPRequest*/
 if (xmlHTTP){
               xmlHTTP.onreadystatechange = function(){
			    if ( (xmlHTTP.readyState==4) && (xmlHTTP.status==200) ){
			   	    reponseAjax[idRequest] = xmlHTTP.responseText ;
				    eval("fn"+idRequest+"('"+idRequest+"')");
        		}// fin if
   }// fin fn() event

xmlHTTP.open(method,uri,false);
if (method.toLowerCase() == "post")
 xmlHTTP.setRequestHeader('Content-type','application/x-www-form-urlencoded');  
else
 postDATA = null;
 
xmlHTTP.send(postDATA); 
 }
} // fin fn() Ajax



/*___________________________________________GESTION XML _____________________________________________*/
/* PARSER XML 
txt			: texte à parser.
*/ 
function adnParseXML(txt){
    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
	xmlDoc.loadXML(txt);
return xmlDoc ;	
}

/*
Recupere le nom du root node
*/
function getRootNodeName(xml_obj){
return xml_obj.documentElement.nodeName;
}

/*
Recupere les datas des nodes dont le nom est node_name
*/
function getDataByNodeName(xml_obj,node_name){
var work = xml_obj.getElementsByTagName(node_name);
var rep = null;
   if (work.length >0){
     rep = new Array(work.length);
	  for (var i=0 ; i < work.length ; i++)
	    rep[i] = work[i].text ;
   }
return rep;
}

