/*
**	Classe de recherche des produit en AJAX
** Developpeur : Vincent DUJOUX
** Date : Octobre 2006
**
** Classes à intégrer ds la page htm :
**
**	#reponses{
**		border: #000000 solid 2px;
**		position:absolute;
**    background: #fff;
**    float:left;
**		clear:both;
**    z-index: 10;
**    text-align:left;
**	}
**	
**	.resultat{
**		cursor: pointer;
**    color: #A20D11;
**   	background-color: #ffffff		
**	}
**	
**	.over{
**	   cursor: pointer;
**	   color: #fff;
**	   background-color: #ff991c
**	}
**
**	Si possible mettre la taille du champ texte en px
** Changer la position du dic de resulat
**
**
** frm ; nom du formulaire
**	divresp : div où vont s'afficher les résultats
** inputToFill : champ ou afficher le résultat sélectionné
** nameInstance : nom de l'instance de l'objet
**	urlSite : chemin de la page php
**
**
*/

function recherche(frm, divresp, inputToFill, nameInstance, pageReponse){	
	this.form = frm;
	this.div = divresp;
	this.inputField = inputToFill;	
	this.http_request = null;
	this.name = nameInstance;
	this.responsePage = pageReponse;
}
	
//	Surlignage du produit parmis ceux trouvé par le system
function setOver(id){
	document.getElementById(id).className = 'over';			
}

//	OnMouseOUt sur les elements du menu
function setOut(id){
	document.getElementById(id).className = 'resultat';			
}

// Selection du résultat pour affichage ds le input text
recherche.prototype.setResult = function(resultat){		
	eval(this.form+"."+this.inputField+".value=resultat");
	document.getElementById(this.div).style.display="none";
}

//	On cache le "menu déroulant" des résultats 
recherche.prototype.Hide = function(){
	document.getElementById(this.div).style.display = "none";
}

//	Appelle vers la page php de recherche
recherche.prototype.ajax_getProduit_request=function(obj)
{                
    var chmpRecherche = eval(this.form+"."+this.inputField+".value");
    //var UrlSite = "/modules/produitsdisplay/lib/";
     
    
    if (window.XMLHttpRequest){ 
        this.http_request = new XMLHttpRequest();
    }else if (window.ActiveXObject){
        this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    //on définit l'appel de la fonction au retour serveur
    //this.oRef=this;
    this.http_request.onreadystatechange = function() { obj.ajax_getresponse(); };
        
    //on appelle le fichier reponse    
    this.http_request.open("GET", this.responsePage+"?champrecherche="+chmpRecherche, true);
    this.http_request.send(null);
}

//	Traitement des résultats envoyés par a page php
recherche.prototype.ajax_getresponse=function()
{		
	if (this.http_request.readyState == 4) {
      if (this.http_request.status == 200) {       	
      	if(eval(this.form+"."+this.inputField+".value.length")>=5){
	      	var Produits = 0;
	      	document.getElementById(this.div).innerHTML = "";      	
	       	
	       	var tabProduits = this.http_request.responseText.split("|");
	       	for(i=0; i<tabProduits.length; i++){
	       		if(tabProduits[i]!="") Produits = 1;
	       		document.getElementById(this.div).innerHTML += "<div class=\"resultat\" id=\""+i+"\" onMouseOver=\"javascript:setOver('"+i+"');\" onMouseOut=\"javascript:setOut('"+i+"');\" onClick=\"javascript:"+this.name+".setResult('"+tabProduits[i]+"');\">"+tabProduits[i].replace("\\'", "'")+"</div>";
	       	}
	       	tabProduits = null;
	       	
	       	if(document.getElementById(this.div).innerHTML!="" && Produits==1){
	       		//window.onfocus = hideReponses;
		       	document.getElementById(this.div).style.display="inline";
		       	/*document.getElementById(this.div).style.top = eval(this.form+"."+this.inputField+".style.top");
		       	document.getElementById(this.div).style.left = eval(this.form+"."+this.inputField+".style.left");*/
		       	document.getElementById(this.div).style.width = eval(this.form+"."+this.inputField+".style.width");
	       	}else document.getElementById(this.div).style.display="none";
      	}else{
      		document.getElementById(this.div).style.display="none";
      		document.getElementById(this.div).innerHTML = "";
      	}
      } else {
          alert('Un problème est survenu avec la requête.');
      }
  }	
}
