/* var globale pour gerer la validation du formulaire */
	var countEvent = 0;
	var submitForm = false;

function FillInput (obj, val) {
/*  Description : remplissage du champ de recherche avec l'objet obj */	
     obj.value = val;
	  obj.focus();
}
function FillInputAndHide (obj, val, divID) {
/*  Description : remplissage du champ de recherche avec l'objet obj puis
 *  puis on cache le div de mots-cl?s
 */
    FillInput (obj,val);
    document.getElementById(divID).className = 'KeyWordsDivHidden';
    countEvent = 0;
}

function ValideInput (objDest, objSrc, divID) {
	var	objDestID, objSrcID;
	
	objDest.value = objSrc.value;
	
	objDestID = document.getElementById('Nid' + objDest.id);
	if ( objDestID )
		{
		objSrcID = document.getElementById(objSrc.id + 'ID');
		if ( objSrcID )
			objDestID.value = objSrcID.value;
		
		}
	
	document.getElementById(divID).className = 'KeyWordsDivHidden';
	countEvent = 0;
	submitForm = true;
	objDest.focus();
}


function ChangeColors (obj) {
/*Description : change la classe de l'objet obj en 'KeyWordSelected'*/
if ( obj )
    obj.className = 'KeyWordSelected';
}
function NormalColors (obj) {
/*Description : change la classe de l'objet obj en 'KeyWordSelected'*/
if ( obj )
    obj.className = 'KeyWordNormal';
}
function NormalColorsLastKey (position) {
/*Description : change la classe du tr ? la position "position" en 'KeyWordSelected'*/

    if (position!=0)
    NormalColors(document.getElementById('tr'+position));
}

/*  
 *  Description : gestionnaire d'evenement clavier pour la liste de mots-cl?s sugg?r?s
 *  
 *  Mode d'emploi :
 *  - event : a passer en param?tre dans le onKeyUp
 *  - countEvent : variable globale ? d?clarer dans la page contenant le champ de recherche. A initialiser ? 0.
 *  - input (hidden) id='tr$i$' : le champs cach? contenant le mots-cl? n?$i$
 *  - input (hidden) id='MaxKeyWords' : le champ cach? contenant le nombre de mots-cl?s affich?s dans le div.
 *
 *  Algorithme :
 *  detection de la touche press?e : soit touche "fleche bas" (keyCode=40),
 *  soit touche "fleche haut" (keyCode=38).On g?re les deux cas particuliers si countEvent=0
 *  c?d on a pas encore navigu? dans le tableau de mots cl?s. Sinon on colore le tr suivant/precendent
 *  et on remet les couleurs normales au tr o? on ?tait. On revient ? la premi?re position si on ?tait
 *  ? la derni?re et qu'on a appuy? sur la touche descendre. Et vice-versa pour la premi?re et la touche
 *  monter (boucle). Enfin, on remplit le champ de recherche avec le mot cl? sur lequel on est.
 *
 */
 
function HandleEvent (obj,event) {

    var currentNum = 0;
	
    if(event.keyCode == 40)
    {
        currentNum = countEvent;
        countEvent++;
        if (countEvent>(document.getElementById('MaxKeyWords').value))
        {
            countEvent=0;
            NormalColors(document.getElementById('tr'+ currentNum));
            ChangeColors(document.getElementById('tr'+ ++countEvent));
        }
        else
        {
            if (currentNum == 0)
            {
                ChangeColors(document.getElementById('tr'+(countEvent)));
                NormalColors(document.getElementById('tr'+ (document.getElementById('MaxKeyWords').value)));
            }
            else
            {
                ChangeColors(document.getElementById('tr'+(countEvent)));
                NormalColors(document.getElementById('tr'+ currentNum));
            }
        }
        
        FillInput (obj,document.getElementById('tr' + (countEvent)+'Value').value);
       
    }
    if(event.keyCode == 38)
    {
        
        currentNum = countEvent;
        countEvent--;
        if (countEvent<1)
        {
			 if (currentNum == 0)
            {
				countEvent=document.getElementById('MaxKeyWords').value;
                ChangeColors(document.getElementById('tr'+(countEvent)));
                NormalColors(document.getElementById('tr'+ '0'));
            }
			else
			{
				countEvent=document.getElementById('MaxKeyWords').value;
				countEvent++;
				NormalColors(document.getElementById('tr'+ currentNum));
				ChangeColors(document.getElementById('tr'+ --countEvent));
        	}
		}
        else
        {
           
                ChangeColors(document.getElementById('tr'+(countEvent)));
                NormalColors(document.getElementById('tr'+ currentNum));
           
        }
        FillInput (obj,document.getElementById('tr' + (countEvent)+'Value').value);
    }
}

/*  
 *  Description : gestionnaire d'evenement clavier. Decide des fonctions a appeler suivant la touche pressee.
 *  
 *  Mode d'emploi :
 *  - obj : l'objet champ de recherche 
 *  - event : a passer en parametre dans le onKeyUp
 *  - submitForm : variable globale booleenne a declarer dans la page appelante et a initialiser a false.Sert a 
 *  autoriser ou non l'envoi du formulaire lors de l'appui sur la touche entree.
 *  - input (hidden) id='MaxKeyWords' : le champ cache contenant le nombre de mots-cles affiches dans le div.
 *  - countEvent : variable globale a declarer dans la page appelante et a initialiser a 0.
 *
 *  Algorithme :
 *  detection de la touche press?e : soit touche "entr?e" (keyCode=13),dans ce cas on rempli le champ de recherche
 *  si on est en train de naviguer dans les mots-cl?s et on cache le div.
 *  Si le div est d?j? cach? ou que l'on ne navigue pas dans la liste de mots-cl?s, on envoi le formulaire.
 *  Si la touche press?e est diff?rente de "entr?e", on d?tecte d'abord si il s'agit des fl?ches "haut" ou "bas" et
 *  on appele la navigation de mots-cl?s (HandleEvent), sinon on appelle l'afficheur de mots-cl?s pour les g?n?r?s.
 *  Si le champ de recherche est vide, on cache le div de mots-cl?s.
 *
 	mode = R --> raison sociale
	mode = M --> Mot_Recherche
 */
 
function EcritureIntuitive(obj,event,form, divID, reqDiv) {
		var	el = document.getElementById(divID);
		var	tmp = obj;
		

	if(event.keyCode == 13)
    {
        if (submitForm == false && countEvent!=0)
        {
            ValideInput (obj,document.getElementById('tr' + (countEvent)+'Value'),divID);
        }
        else if(submitForm == false && countEvent == 0)
        {
            ValideInput (obj,document.getElementById('tr' + (countEvent)+'Value'),divID);
        }
        else
        {
            form.submit();
        }
    }
    else 
    {
        if(event.keyCode != 40 && event.keyCode != 38)
        {
            if (obj.value !='')
            {
                submitForm = false;
                countEvent = 0;
                var d = obj.value;
                document.getElementById("XeusFrame").src = reqDiv+'?parentDiv='+divID+'&Key='+ d+'&objID='+obj.id;
            }
            else
            {
                el.className = 'KeyWordsDivHidden';
                countEvent = 0;
                submitForm = false;
            }
        }
        else
        {
            HandleEvent(obj,event);
				submitForm = false;
        }
    }
}
