// JavaScript Document
//-----------------------------

function ajax_majListe(idsource,iddest,champfiltre,champvals,champlibs,encoded64sql,encoded64ord) {   
/*-----------------------------Config et envoi de la requete ASYNCHRONE : */
	var rep_script = Root+"api/ajax/maj_liste/query.php?";
	//création d'un objet XHR multi-navigateurs
	objetXHR = creationXHR();
	var temps = new Date().getTime();//création d'une variable temps pour l'anti-cache
	//construction de la chaine des parametres
	var parametres = 'void=';
	parametres += '&val='+document.getElementById(idsource).value;
	parametres += '&idsource='+idsource;
	parametres += '&iddest='+iddest;
	parametres += '&champfiltre='+champfiltre;
	parametres += '&champvals='+champvals;
	parametres += '&champlibs='+champlibs;
	parametres += '&qry='+encoded64sql;
	parametres += '&ord='+encoded64ord;
	parametres += "&anticache="+temps ;
	//alert(parametres);
	//Config. objet XHR
	objetXHR.open("get",rep_script+parametres, true); 
	objetXHR.onreadystatechange = ajax_actualiserMajListe;//désignation de la fonction de rappel
	objetXHR.send(null);//envoi de la requete
}
  
function ajax_actualiserMajListe() {
/*-----------------------------recup et affichage resultat de la requete sous la forme nom:valeur */
	if (objetXHR.readyState == 4) {//test si le résultat est disponible
		if (objetXHR.status == 200) {
			var nouveauResultat = objetXHR.responseText.split("$");//recup du résulat > tableau 
			//alert(nouveauResultat);
			var liste = nouveauResultat[0].split(":"); // la liste d'options
			var listoptions = liste[1].split("!");
			//alert(listoptions);
			var idest = nouveauResultat[1].split(":"); // id de l'element dest
			//alert(decodeURI(idest[1]));
			var qry = nouveauResultat[2].split(":"); // la query execute par php
			//alert(decodeURI(qry[1]));
			//actualisation du résultat
			supprimerContenu(document.getElementById(idest[1]));
			for (i=0; i<listoptions.length-1; i++) {
				var optinfos = listoptions[i].split("/");
				var optNode = document.createElement('option');
				optNode.setAttribute('value', optinfos[0]);
				var txtNode = document.createTextNode(optinfos[1]); 
				optNode.appendChild(txtNode);
				document.getElementById(idest[1]).appendChild(optNode);
			}
		} else {
			//message d'erreur serveur
			var erreurServeur="Erreur serveur : "+objetXHR.status+" – "+ objetXHR.statusText;
			remplacerContenu("search_results_nb", erreurServeur);
			//annule la requete en cours
			objetXHR.abort();
			objetXHR=null;
		}
	}
}
