var derniereRecherche = "";

//sert à masquer le code javascript au survol d'un lien
function hidestatus()
{
	window.status='Lien Plus Co-voiturage'
	return true
}
if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT | Event.MOUSEDOWN)
document.onmouseover=hidestatus
document.onmouseout=hidestatus
document.onmousedown=hidestatus

//desactive la saisie semi_automatique car elle ne permet pas de remplir le champ hidden contenant l'id de la commune
function desactiver_saisie_automatique() 
{
	for(var i = 0, l = document.getElementsByTagName('input').length; i < l; i++) 
	{
		if(document.getElementsByTagName('input').item(i).type == 'text') 
		{
			document.getElementsByTagName('input').item(i).setAttribute('autocomplete', 'off');
		};
	};
}

//Cache la liste des resultats
function liveSearchHide(id_liste)
{
	var liste = id_liste;
	
  var results = document.getElementById(liste);
  
  if( results )
  {
    results.style.visibility = "hidden";
  }
}

//Fonction AJAX : recherche les resultats dans BDD
function liveSearchStartSearch(id_champ, id_liste, hd_clef, id_dpt, id_cp)
{	
	var valeursaisie = document.getElementById(id_champ).value;

  //si la nouvelle valeur est différente de la précédent, on lance la recherche
  if(derniereRecherche != valeursaisie)
  {
  	//on enregistre la dernière valeur recherchée
    derniereRecherche = valeursaisie;
    
    //si la valeur saisie est vide, on annule la recherche
    if(valeursaisie == "")
    {
      document.getElementById('LSResult').style.visibility = 'hidden';
      return false;
    }

    if( window.XMLHttpRequest )//firefox
    {
    	
      objet_requete = new XMLHttpRequest();
    }
    else if( window.ActiveXObject )//IE
    {
      objet_requete = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else// XMLHttpRequest non supporté par le navigateur
    {
    	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
			return;
    }

    objet_requete.open("POST", "livesearch.php", true); 
    objet_requete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
    var data = "valeur_rech="+escape(valeursaisie);
		objet_requete.send(data);    
    objet_requete.onreadystatechange = function (){ liveSearchProcessReqChange(id_champ, id_liste, hd_clef, id_dpt, id_cp); }
  }
}

//Affiche les resultats dans la liste
function liveSearchProcessReqChange(id_champ, id_liste, hd_clef, id_dpt, id_cp)
{
	var champ = id_champ;
	var liste = id_liste;
	var clef = hd_clef;
	var depart = id_dpt;
	var codpost = id_cp;

	
  if(objet_requete.readyState == 4 )
  {
  	//divdans laquelle la liste de resultats doit apparaitre
    var resultDiv = document.getElementById(liste);

    // mise en variable du contenu XML généré par livesearch.php
    var results = objet_requete.responseXML.getElementsByTagName('result')[0];
    
    var errCode = results.getAttribute( "errcode" );
    
    if( errCode == "0" )
    {
		    // creation de la liste qui va contenir les liens générés (balise <ul>)
		    var ul = document.createElement("ul");
		    ul.setAttribute( "class", "ul_livesearch");
		
		    //recuperation dans un tableau des elements des éléments qui constitueront la liste
		    var items = results.childNodes;
		    
		    for( var i = 0; i < items.length; i++ )
		    {    	
		      var item = items[i];
		      var idelt  = item.getElementsByTagName("idelt")[0].childNodes[0].nodeValue;
		      var name  = item.getElementsByTagName("name")[0].childNodes[0].nodeValue;
		      var cp  = item.getElementsByTagName("cp")[0].childNodes[0].nodeValue;
		      var dpt  = item.getElementsByTagName("dpt")[0].childNodes[0].nodeValue;
		      
		      //creation du lien resultat <a>
		      var link = document.createElement( "a" );
		      link.appendChild( document.createTextNode(name+" ("+cp+")") );
		      link.setAttribute( "class", "a_livesearch");
		      link.setAttribute( "href", "javascript: document.getElementById(\""+champ+"\").value=\""+name+"\"; document.getElementById(\""+codpost+"\").value=\""+cp+"\"; document.getElementById(\""+clef+"\").value=\""+idelt+"\"; document.getElementById(\""+depart+"\").value=\""+dpt+"\"; liveSearchHide('"+liste+"');" );
		      link.setAttribute( "title", name+"#"+cp );
		      
		      //creation de l'element <li>
		      var li = document.createElement( "li" );
		      li.setAttribute( "class", "li_livesearch");
		      
		      //affectation du lien <a> à l'element <li>
		      li.appendChild( link );
		      
		      //affectation de l'élément <li> à la liste <ul>
		      ul.appendChild( li );
		    }  
		    
		    //Mise à vide de la div "resultat"
		    resultDiv.innerHTML = '';
		    
		    //affectation de la liste ul à la div "resultat"
		    resultDiv.appendChild(ul);
		    
		    //affichage de la liste
		    if( resultDiv.style.visibility != "visible" )
		    {
		      resultDiv.style.visibility = "visible";
		    }
		 }  
		 else
		 {
		 	 liveSearchHide(id_liste);
		 }    
  }
}