//**********************************************************************************************************************//
//________________________________________________________//
// c'est un compteur Ajax                                 //
//________________________________________________________//
compteurAjax =0;

//________________________________________________________//
// cette une class va :                                   //
// - crée un objet ObjetAjax                              //
//________________________________________________________//

function ObjetAjax(){
//**********************************************************************************************************************//	
	
	//________________________________________________________//
	//  cette function va:                                    //
	//  - crée un nouveau objet XMLHttpRequest                //
	//________________________________________________________//
	this.nouveau_xhr= function(){
		if(window.XMLHttpRequest){ 
		// Firefox et autres
			return new XMLHttpRequest();
		}
		else if(window.ActiveXObject){ 
		// Internet Explorer
			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		else { 
		// XMLHttpRequest non supporté par le navigateur
			return false;
		}
	}
	
//**********************************************************************************************************************//	

	//________________________________________________________//
	//  cette function va:                                    //
	//  - Exécuter l’ajax et associer le résultat à un div    //
	//  parametres :                                          //
	//  * mon_div   :le nom de div HTML                       //
	//  * ma_page   :La page qui contienne la réponse         //
	//  * type      :GET ou POST                              //
	//  * mes_param :les parametres de la page                //
	//________________________________________________________//
	this.execAjaxDiv= function(mon_div,ma_page,type,mes_param){
		var xhr = this.nouveau_xhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			document.getElementById(mon_div).innerHTML="Chargement en cours ...";
			if(xhr.readyState == 4 && xhr.status == 200){
				mon_text=xhr.responseText;
				document.getElementById(mon_div).innerHTML=mon_text;
			}
		}
		rnd=compteurAjax++;
		if(type=='POST'){
			xhr.open("POST",ma_page+"?rnd="+rnd,true);
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=iso-8859-1');
			xhr.send(mes_param);
		}
		else{
			xhr.open("GET",ma_page+"?rnd="+rnd + "&" + mes_param,true);
			xhr.send(null);
		}
		
	}

//**********************************************************************************************************************//	

	//______________________________________________________________//
	//  cette function va:                                          //
	//  - Exécuter l’ajax et associer le résultat à une function    //
	//  parametres :                                                //
	//  * ma_function :ma function java script                      //
	//  * ma_page     :La page qui contienne la réponse             //
	//  * type        :GET ou POST                                  //
	//  * mes_param   :les parametres de la page                    //
	//  NB :                                                        //
	//  function ma_function(un_param='text'){...}                  //
	//______________________________________________________________//
	this.execAjaxFunction= function(ma_function,ma_page,type,mes_param){
		var xhr = this.nouveau_xhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				mon_text=xhr.responseText;
				//eval(ma_function+"("+mon_text +");");
				ma_function(mon_text);
			}
		}
		rnd=compteurAjax++;
		if(type=='POST'){
			xhr.open("POST",ma_page+"?rnd="+rnd,true);
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=iso-8859-1');
			xhr.send(mes_param);
		}
		else{
			xhr.open("GET",ma_page+"?rnd="+rnd + "&" + mes_param,true);
			xhr.send(null);
		}
	}
//**********************************************************************************************************************//
	
	//______________________________________________________________//
	//  cette function va:                                          //
	//  - Exécuter l’ajax et associer le résultat à une function    //
	//  parametres :                                                //
	//  * ma_function :ma function java script                      //
	//  * la_balise   :c'est X comme le NB                          //
	//  * ma_page     :La page qui contienne la réponse             //
	//  * type        :GET ou POST                                  //
	//  * mes_param   :les parametres de la page                    //
	//                                                              //
	//  NB :                                                        //
	//  function ma_function(un_tableau=Array[Array]){...}          //
	//  le XML doit être comme ça:                                  //
	//  <liste_X>                                                   //
	//  	<X>                                                     //
	//  		<param1_x>value</param1_x>                          //
	//  		<param1_x>value</param1_x>                          //
	//  	</X>                                                    //
	//  	<X>                                                     //
	//  		<param1_x>value</param1_x>                          //
	//  		<param1_x>value</param1_x>                          //
	//  	</X>                                                    //
	//  </liste_X>                                                  //
	//______________________________________________________________//
	this.execAjaxFunctionXML= function(ma_function,la_balise,ma_page,type,mes_param){
		var xhr = this.nouveau_xhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				//mon_text=responseXML.documentElement;
				reponse = xhr.responseXML.documentElement;
				var tbl=new Array();
				for(i=0;i<reponse.getElementsByTagName(la_balise).length;i++){
					var tbl_items=new Array();
					for(j=0;j<reponse.getElementsByTagName(la_balise)[i].childNodes.length;j++){
						tbl_items.push(reponse.getElementsByTagName(la_balise)[i].childNodes[j].firstChild.nodeValue);
					}
					tbl.push(tbl_items);
				}
				ma_function(tbl);
			}
		}
		rnd=compteurAjax++;
		if(type=='POST'){
			xhr.open("POST",ma_page+"?rnd="+rnd,true);
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send(mes_param);
		}
		else{
			xhr.open("GET",ma_page+"?rnd="+rnd + "&" + mes_param,true);
			xhr.send(null);
		}
	}
//**********************************************************************************************************************//
}
function charger_combo(div,id,page,param) 
  {
   //alert(div+","+id+","+page+","+param);
   var ax=new ObjetAjax();
   ax.execAjaxDiv(div,page,'GET',param+id);   
  }