/*
fonction de recalcul de l'offset top et left qui se refere à l'offsetParent pour palier au probleme de positionnement dans les tableaux
*/
function positionAbsolute(obj, mode)
{
	currentValue = 0;
	if (obj.offsetParent)
	{
		if (mode == 'top')
			currentValue = obj.offsetTop;
		else if (mode == 'left')
			currentValue = obj.offsetLeft;
		while (obj = obj.offsetParent)
			if (mode == 'top')
				currentValue += obj.offsetTop;
			else if (mode == 'left')
				currentValue += obj.offsetLeft;
	}
	return currentValue;
}
		
/*
la fonction principale qui remplis le div des differentes suggestions possibles en corélation avec le champ input
*/
var en_cours	=	false;
var id_en_cours	=	0;
var inside		=	null;
// indice est l'indice en cours pour la sélection dans la liste;
var indice		=	0;

function	showValue(insider,Event){
	if(detect(insider,Event)){
		inside 		=	insider;
		if(inside.value==""){
			if(id_en_cours!=0)
				clearTimeout(id_en_cours);
			id_en_cours	=	0;
			hideDiv();
		}
		else{
			if(id_en_cours!=0)
				clearTimeout(id_en_cours);
			id_en_cours = setTimeout("showValue2('/commun/mots_cles_autocomplete/serveur.php?keyword="+inside.value+"')",500);
		}
	}
}

function	showValue2(fic)
{
if(!en_cours){
		showDiv();
		en_cours					= true;
		divDest						= document.getElementById('autocomplete');
		divDest.innerHTML			= '';
		valueOfElement				= '';
		exist						= 0;
		nbOfElement					= 0;
		divDest.style.top			= positionAbsolute(inside, 'top') + inside.offsetHeight;
		divDest.style.left			= positionAbsolute(inside, 'left');
		divDest.style.width			= inside.offsetWidth - 3;
		res							= file("/commun/mots_cles_autocomplete/serveur.php?keyword="+inside.value);
		if(res=="false"){
			hideDiv();
		}
		else{
			divDest.innerHTML			= res;
			divDest.style.visibility 	= 'visible';
                        //showDiv();
			indice						= 0;
			modif_indice(0);
		}
		exist 						= 1;
		en_cours	=	false;
		}
}
		
/*
intialisation de la div qui contiendra les differentes suggestions
*/
function 	initMenuRightDiv()
{
}

function 	file(fichier)
     {
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
          return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
     }

function hideDiv(){
	document.getElementById('autocomplete').innerHTML="";
	document.getElementById('autocomplete').className="hiddenDiv";
        document.getElementById('autocomplete').style.visibility="hidden";
	indice = 0;
}
function showDiv(){
	document.getElementById('autocomplete').className="autocomplete";
}

function detect(insider,Event)
{
	if(Event==null)
		Event=event;

	kc = Event.keyCode;
	if (!kc)
		kc = Event.wich;

	switch (kc){
		case 13:remplir_champ(insider.id,document.getElementById('autocomplete_select'+indice).innerHTML);hideDiv();return false;break;
		case 37:return false;break;
		case 38: modif_indice(-1); return false;break;
		case 39:return false;break;
		case 40: modif_indice(+1); return false;break;
		default: return true;
	}
}

function modif_indice(ind){
	old_ind	=	document.getElementById('autocomplete_select'+indice);
	indice+=ind;
	new_ind	=	document.getElementById('autocomplete_select'+indice);
	if(new_ind	!=	null){
		new_ind.className = "selected";	
		old_ind.className = "";	
	}
	else{
		indice-=ind;
	}
}
function remplir_champ(insides,selection){
        selection = str_replace("<b>","",str_replace("</b>","",str_replace("</B>","",str_replace("<B>","",selection))));
        document.getElementById(insides).value=selection;
}

function str_replace(cherche,remplace,texte){
	while(texte.indexOf(cherche) > -1){
		texte = texte.replace(cherche,remplace);
	}
	return texte;
}



window.onload = hideDiv;
