function rsMarque(f) { // utilisé quand on sélectionne un type de véhicule et lister les marques correspondantes
	var l1    = f.elements["categorie"];
	var l2    = f.elements["Marque"];
	var index = l1.selectedIndex; // index=valeur de l'index séléctionné dans la liste des categories
	   var xhr_object = null; 
	
		// --- procédure permettant d'instancier l'objet xhr_object en fonction du navigateur
	   if(window.XMLHttpRequest) // Firefox
	      xhr_object = new XMLHttpRequest();
	   else if(window.ActiveXObject) // Internet Explorer
	      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	   	else { // XMLHttpRequest non supporté par le navigateur
	      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	      return;
	   	}
		// ---
	   xhr_object.open("POST", "requete_marque.php", true); // (methode de transmission, url, mode de transmission)
	
   	xhr_object.onreadystatechange = function() {	// test asynchrone de l'etat de la requete
      	if(xhr_object.readyState == 4){			// 4=etat OK
		 eval(unescape(xhr_object.responseText));	// xhr_object.responseText = résultat de l'éxécution de la requete  - unescape ne sert que pour convertir Citro%ebn en Citroën
 												// eval execute le code renvoyé par la requete qq soit son type
		 //alert(xhr_object.responseText);		// permet de visualiser le résultat de la requete
		 request_nb(f);							// appel de la fonction qui donne le nbre d'annonces
		}
	}												

	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // preciser l'encodage pour la methode POST
	   //var data = "cat="+escape(l1.options[index].value)+"&form="+f.name+"&select=Marque";
	   var data = "cat="+escape(l1.options[index].text)+"&form="+f.name+"&select=Marque";
	   xhr_object.send(data); // envoi des données
	
} <!-- fin rsMarque
function rsModele(f) { // utilisé quand on sélectionne une marque et lister les modeles correspondants
	var l1    = f.elements["Marque"];
	var l2    = f.elements["Modele"];
	var index = l1.selectedIndex; // index=valeur de l'index sélectionné dans la liste des marques
	   var xhr_object = null; // on initialise la valeur xhr_object qui est l'instance de XMLHTTPREQUEST
	
		// --- procédure permettant d'instancier l'objet xhr_object en fonction du navigateur
	   if(window.XMLHttpRequest) // Firefox
	      xhr_object = new XMLHttpRequest();
	   else if(window.ActiveXObject) // Internet Explorer
	      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	   	else { // XMLHttpRequest non supporté par le navigateur
	      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	      return;
	   	}
		// ---
	   xhr_object.open("POST", "requete_modele.php", true); // (methode de transmission, url, mode de transmission)
	
   	xhr_object.onreadystatechange = function() {	// test asynchrone de l'etat de la requete
      	if(xhr_object.readyState == 4){			// 4=etat OK
		 eval(unescape(xhr_object.responseText));			// xhr_object.responseText = résultat de l'éxécution de la requete
 												// eval execute le code renvoyé par la requete qq soit son type
		 request_nb(f);							// appel de la fonction qui donne le nbre d'annonces
		 //alert(unescape(xhr_object.responseText));		// permet de visualiser le résultat de la requete
		}
	}												
	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // preciser l'encodage pour la methode POST
	   var data = "marque="+escape(l1.options[index].text)+"&form="+f.name+"&select=Modele";
	   	// data = données a transmettre :
		// 		marque = l1.options[index].value : recupere la valeur de la marque sélectionnée
		// et
		// 		form = nom du formulaire
		// et
		// 		select = modele
		// escape encode les caracteres spéciaux d'une chaine de caracteres en les remplacant par leur code du type % (espace=%20)
	   xhr_object.send(data); // envoi des données
} <!-- fin rsModele
function request_nb(f) { // permet de determiner le nbre d'annonces en fonction des criteres
	var l1    = f.elements["categorie"];
	var l2    = f.elements["Marque"];
	var l3    = f.elements["Modele"];
	var l4    = f.elements["Region"];
	var l5    = f.elements["Energie"];
	var l6    = f.elements["Prix"];
	var index1 = l1.selectedIndex; // index=valeur de l'index séléctionné dans la liste des categories
	var index2 = l2.selectedIndex; // index=valeur de l'index séléctionné dans la liste des marques
	var index3 = l3.selectedIndex; // index=valeur de l'index séléctionné dans la liste des modeles
	var index4 = l4.selectedIndex; // index=valeur de l'index séléctionné dans la liste des regions
	var index5 = l5.selectedIndex; // index=valeur de l'index séléctionné dans la liste des energies
	var index6 = l6.selectedIndex; // index=valeur de l'index séléctionné dans la liste des prix
	   var xhr_object = null; // quand on sélectionne une marque, on lance la requete placée dans requete.php
	
		// --- procédure permettant d'instancier l'objet xhr_object en fonction du navigateur
	   if(window.XMLHttpRequest) // Firefox
	      xhr_object = new XMLHttpRequest();
	   else if(window.ActiveXObject) // Internet Explorer
	      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	   	else { // XMLHttpRequest non supporté par le navigateur
	      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	      return;
	   	}
		// ---
	   xhr_object.open("POST", "requeteNb.php", true); // (methode de transmission, url, mode de transmission)
	
   	xhr_object.onreadystatechange = function() {	// test asynchrone de l'etat de la requete
      	if(xhr_object.readyState == 4)			// 4=etat OK
		 eval(xhr_object.responseText);			// xhr_object.responseText = résultat de l'éxécution de la requete
 												// eval execute le code renvoyé par la requete qq soit son type
		 //alert(xhr_object.responseText);		// permet de visualiser le résultat de la requete
	}												

	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // preciser l'encodage pour la methode POST
	   var data = "cat="+escape(l1.options[index1].text)+"&form="+f.name+"&modele="+escape(l3.options[index3].text)+"&marque="+escape(l2.options[index2].text)
	   +"&region="+escape(l4.options[index4].text)+"&energie="+escape(l5.options[index5].text)+"&prix="+escape(l6.options[index6].value);
	   xhr_object.send(data); // envoi des données
	
} <!-- fin request_nb
