// initialisation variable globale
var req;
var saisie_actuelle_depart		= ""; // valeur actuelle du champ texte
var saisie_actuelle_destination	= ""; // valeur actuelle du champ texte
//var saisie_depart				= null; // le champ texte lui-même
//var saisie_destination		= null; // le champ texte lui-même
var old_saisie_depart			= ""; // le champ texte lui-même
var old_saisie_destination		= ""; // le champ texte lui-même
var rubrique					= null; // le champ texte lui-même
var sens						= null;

function init_saisie(){
	old_saisie_depart		= document.getElementById('depart').value;
	old_saisie_destination	= document.getElementById('destination').value;
	rubrique				= document.getElementById('rubrique').value;
}

// tourne en permanence pour suggerer suite à un changement du champ texte
function loop_saisie(){
	saisie_actuelle_depart 		= document.getElementById('depart').value;
	saisie_actuelle_destination = document.getElementById('destination').value;
	// surveillance saisie depart
	if(old_saisie_depart != saisie_actuelle_depart){
		loadXMLDoc('private/xml_requette_search.php?depart='+ saisie_actuelle_depart + '&destination='+ saisie_actuelle_destination + '&search_ville=depart&rub=' + rubrique);
	}
	old_saisie_depart = saisie_actuelle_depart;

	// surveillance saisie destination
	if(old_saisie_destination != saisie_actuelle_destination){
		loadXMLDoc('private/xml_requette_search.php?depart='+ saisie_actuelle_depart + '&destination='+ saisie_actuelle_destination + '&search_ville=destination&rub=' + rubrique);
	}
	old_saisie_destination = saisie_actuelle_destination;

	//alert('loop');
	setTimeout("loop_saisie()",200); // la fonction se redeclenchera dans 200 ms
}


// echappe les caracteres speciaux
function escapeURI(La){
	if(encodeURIComponent) {
		return encodeURIComponent(La);
	}
	if(escape) {
		return escape(La)
	}
}

function loadXMLDoc(url) {
	if (window.XMLHttpRequest) {											   
		try {																					
			netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");		// Pour supprimer la sécurité de Mozilla
		} catch (e) {}
			
		req = new XMLHttpRequest();											// pour XMLHttpRequest natif (Gecko, Safari, Opera)
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
		req.send(null);
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");						 // pour IE/Windows ActiveX 
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
			req.send();
		}
	} else {
		alert("Votre navigateur ne connait pas l'objet MLHttpRequest.");
	}
}

function processReqChange() {
	if (req.readyState == 4) {			// quand le fichier est chargé
		if (req.status == 200) {			// detécter problème de format
			try {
	   			netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
	 		} catch (e) {}
			//alert(req.responseText);
			xmltraitement(req.responseXML.documentElement);
		} else {
			alert("Il y avait un problème avec le XML:\n" + req.statusText);
		}
	}
}

// JavaScript Document function xmltraitement(monxml) {	
function xmltraitement(monxml) {
	calquehtml 	= "";
	fichier		= monxml.getElementsByTagName('ville');
	search_ville= monxml.getElementsByTagName('search_ville')[0].firstChild.data;

	for(i = 0; i < fichier.length; i++) {
		var ville = fichier[i].firstChild.data;
		calquehtml += '<a onclick="select_ville(\'' + ville + '\',\''+ search_ville +'\')">' + ville + '</a><br>';
	}

	if(calquehtml != '' && fichier.length>0){
		document.getElementById('list_'+search_ville).innerHTML = calquehtml;
		document.getElementById('list_'+search_ville).style.display = 'block';
	}else{
		document.getElementById('list_'+search_ville).innerHTML = '';
		document.getElementById('list_'+search_ville).style.display = 'none';
	}
}

function select_ville(ville, search_ville){
	document.getElementById(search_ville).value = ville;
	document.getElementById('list_'+search_ville).style.display = 'none';
	if(search_ville == 'depart')
		old_saisie_depart = ville;
	if(search_ville == 'destination')
		old_saisie_destination = ville;
}

/* selection ville - aeroport
------------------------------------*/
function create_select_menu(id,sens,niv){
	loadXMLDoc2('private/xml_requette_article.php?id='+ id + '&sens=' + sens + '&niv=' + niv);
}

function loadXMLDoc2(url) {
	if (window.XMLHttpRequest) {											   
		try {																					
			netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");		// Pour supprimer la sécurité de Mozilla
		} catch (e) {}
			
		req = new XMLHttpRequest();											// pour XMLHttpRequest natif (Gecko, Safari, Opera)
		req.onreadystatechange = processReqChange2;
		req.open("GET", url, true);
		req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
		req.send(null);
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");						 // pour IE/Windows ActiveX 
		if (req) {
			req.onreadystatechange = processReqChange2;
			req.open("GET", url, true);
			req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
			req.send();
		}
	} else {
		alert("Votre navigateur ne connait pas l'objet MLHttpRequest.");
	}
}

function processReqChange2() {
	if (req.readyState == 4) {			// quand le fichier est chargé
		if (req.status == 200) {			// detécter problème de format
			try {
	   			netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
	 		} catch (e) {}
			//alert(req.responseText);
			xmltraitement2(req.responseXML.documentElement);
		} else {
			alert("Il y avait un problème avec le XML:\n" + req.statusText);
		}
	}
}

// construction menu deroulant

function xmltraitement2(monxml) {
	calquehtml_ville 	= "";
	calquehtml_aeroport	= "";
	// config
	id		= monxml.getElementsByTagName('id')[0].firstChild.data;
	sens	= monxml.getElementsByTagName('sens')[0].firstChild.data;
	niv		= monxml.getElementsByTagName('niv')[0].firstChild.data;
	// donnees villes
	if(niv == 1){
		nom_ville			= monxml.getElementsByTagName('ville');
		nom_complet_ville	= monxml.getElementsByTagName('nom_complet_ville');
		id_ville			= monxml.getElementsByTagName('id_ville');
		calquehtml_ville 	+= '<select class="inputSelect" name="article_ville_'+sens+'"  onchange="create_select_menu(this.value,\''+sens+'\',\'2\');">';
		// creation menu deroulant ville
		for(i = 0; i < nom_ville.length; i++) {
			var nom_ville2			= nom_ville[i].firstChild.data;
			var nom_complet_ville2 	= nom_complet_ville[i].firstChild.data;
			var id_ville2 			= id_ville[i].firstChild.data;
			calquehtml_ville 		+= '<option value="'+id_ville2+'" title="'+nom_complet_ville2+'">'+nom_ville2+'</option>';
		}
		calquehtml_ville += '</select>';
		document.getElementById('article_ville_'+sens).innerHTML = calquehtml_ville;
	}
	// donnees aeroport
	nom_aeroport			= monxml.getElementsByTagName('aeroport');
	nom_complet_aeroport	= monxml.getElementsByTagName('nom_complet_aeroport');
	calquehtml_aeroport 	+= '<select class="inputSelect" name="article_aeroport_port_gare_'+sens+'">';
	// creation menu deroulant aeroport
	for(i = 0; i < nom_aeroport.length; i++) {
		var nom_aeroport2 			= nom_aeroport[i].firstChild.data;
		var nom_complet_aeroport2 	= nom_complet_aeroport[i].firstChild.data;
		var id_aeroport2 			= nom_aeroport[i].getAttribute('id_aeroport');
		calquehtml_aeroport 		+= '<option value="'+id_aeroport2+'" title="'+nom_complet_aeroport2+'">'+nom_aeroport2+'</option>';
	}
	calquehtml_aeroport += '</select>';
	document.getElementById('article_aeroport_port_gare_'+sens).innerHTML = calquehtml_aeroport;
}