/** Garder l'instance de XMLHttpRequest **/
var xmlHttp = createXmlHttpRequestObject();

/** Création de l'instance de XMLHttpRequest **/
function createXmlHttpRequestObject(){
	var xmlHttp;	
	
	/** Fonctionne avec tous lkes navigateurs à l'exception de IE 6 et plus anciens **/
	try{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e){ /** IE 6 et plus anciens **/
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");
		for(var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
			try{
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch(e){}
		}
	}
	
	if(!xmlHttp){alert("Erreur de création de XMLHttpRequest object;");}
	else{return xmlHttp;}
}

function check_liste_ajax(valeur,liste,langue){
	if(xmlHttp){
		try{
			var params = "liste=" + liste + "&valeur=" + valeur + "&langue=" + langue;
			//alert("params = " + params);
			xmlHttp.open("GET","/scripts/php/listes_ajax.php?" + params, true);
			if(liste == 'pays'){
				xmlHttp.onreadystatechange = traite_reponse_pays;
			}
			else if(liste == 'villes'){
				xmlHttp.onreadystatechange = traite_reponse_villes;
			}
			xmlHttp.send(null);
		}
		catch(e){
			alert("Impossible de se connecter au serveur " + e.toString());
		}
	}	
}

function traite_reponse_pays(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			try{
				var xmlResponse = xmlHttp.responseXML;
				
				/** Détection d'erreur avec IE et Opéra **/
				if(!xmlResponse || !xmlResponse.documentElement){throw("Structure XML invalide : \n" + xmlHttp.responseText);}
				
				/** Détection d'erreur avec Firefox **/
				var rootNodeName = xmlResponse.documentElement.nodeName;
				if(rootNodeName == "parseerror"){throw("Structure XML invalide");}
				
				xmlRoot = xmlResponse.documentElement;
				valeurArray = xmlRoot.getElementsByTagName("valeur");
				textArray = xmlRoot.getElementsByTagName("text");				
				
				var position = null;
				document.getElementsByName("rech_destination")[0].length = 1;
				
				/** parcour des tableaux pour renseigner la liste **/
				for(var i=0; i<valeurArray.length; i++){
					if (document.all) position = document.getElementsByName("rech_destination")[0].length;
					var element = document.createElement("option");
					element.text = textArray.item(i).firstChild.data;
					element.value = valeurArray.item(i).firstChild.data;
					document.getElementsByName("rech_destination")[0].add(element,position);
				}				
			}
			catch(e){
				alert("Erreur de lecture de la réponse " +  e.toString());
			}
		}
		else{
			alert("Problème de récupération des données : " + xmlHttp.statusText);
		}
	}
}

function traite_reponse_villes(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			try{
				var xmlResponse = xmlHttp.responseXML;
				
				/** Détection d'erreur avec IE et Opéra **/
				if(!xmlResponse || !xmlResponse.documentElement){throw("Structure XML invalide : \n" + xmlHttp.responseText);}
				
				/** Détection d'erreur avec Firefox **/
				var rootNodeName = xmlResponse.documentElement.nodeName;
				if(rootNodeName == "parseerror"){throw("Structure XML invalide");}
				
				xmlRoot = xmlResponse.documentElement;
				valeurArray = xmlRoot.getElementsByTagName("valeur");
				textArray = xmlRoot.getElementsByTagName("text");				
				
				var position = null;
				document.getElementsByName("rech_typeLogement")[0].length = 1;
				
				/** parcour des tableaux pour renseigner la liste **/
				for(var i=0; i<valeurArray.length; i++){
					if (document.all) position = document.getElementsByName("rech_typeLogement")[0].length;
					var element = document.createElement("option");
					element.text = textArray.item(i).firstChild.data;
					element.value = valeurArray.item(i).firstChild.data;
					document.getElementsByName("rech_typeLogement")[0].add(element,position);
				}	
			}
			catch(e){
				alert("Erreur de lecture de la réponse " +  e.toString());
			}
		}
		else{
			alert("Problème de récupération des données : " + xmlHttp.statusText);
		}
	}
}

function check_nom_dispo_session(valeur){
	if(xmlHttp){
		try{
			var params = "nom_dispo=" + valeur;
			//alert("params = " + params);
			xmlHttp.open("GET","/scripts/php/check_nom_dispo.php?" + params, true);
			xmlHttp.send(null);
		}
		catch(e){
			alert("Impossible de se connecter au serveur " + e.toString());
		}
	}	
}
