
// Booleen qui dit si on a touche a un elt du formulaire
var GEN_FocusForm = false;


$(document).ready(function() 
{ 
	$("#FISociete").focus(function()
	{
		GEN_FocusForm = true;	
	});			
	
	$("#LibelleSavoirFaire").focus(function()
	{
		GEN_FocusForm = true;	
	});
	
	$("#CodeOrganisme").focus(function()
	{
		GEN_FocusForm = true;	
	});
	
	$("#CodeTheme").change(function()
	{
		GEN_FocusForm = true;	
	});
	
	$("#Ville").focus(function()
	{
		GEN_FocusForm = true;	
	});
	
	$("#Departement").change(function()
	{
		GEN_FocusForm = true;	
	});
	
	$("#Region").change(function()
	{
		GEN_FocusForm = true;	
	});
});

// Soumission du formulaire de recherche si la touche enter est frappée
$(document).keyup(function(event)
{
	//alert(event.keyCode);
	
	// Soumission du formulaire de recherche si la touche enter est frappée
    if ( (event.keyCode == 13) && (GEN_FocusForm == true) ) 
	{
        RunSearch(document.search);
    }
});

// 

function SelectionItem(strNameInput,strSelection) 
{
	document.getElementById(strNameInput).value = strSelection;	
	document.getElementById('zoneResultats').style.visibility = 'hidden';	
}



/**
* Fonction de Callback de LoadData
* Affiche ou non le conteneur en fonction du résultat de la recherche
*
*/
function ShowFilterResults(obj) {

	 strZone = document.getElementById('Zone').value;
	 if (strZone != '')
	 {
		 // Construction des noeuds
		 var tabResult = obj.responseXML.getElementsByTagName('resultat');
		 document.getElementById(strZone).innerHTML = '';
		 if (tabResult.length > 0) {
			  // On définit la hauteur de la liste en fonction du nombre de resultats et de la hauteur de ligne
			  var hauteur = tabResult.length * 22; 
			  with(document.getElementById(strZone).style) {
				   visibility = 'visible';
				   height = hauteur + 'px';
			  };
			  for (var i = 0; i < tabResult.length; i++) {
				   resultat = tabResult.item(i); 
				   var egt = document.createElement('li');
				   var lnk = document.createElement('a');
				   var texte = document.createTextNode(resultat.getAttribute('label'));
				   lnk.appendChild(texte);
				   lnk.setAttribute('href', '#');
				   lnk.setAttribute('onClick', "javascript:SelectionItem('LibQual','" + resultat.getAttribute('label') + "');");			   
				   lnk.setAttribute('title', resultat.getAttribute('label'));
				   egt.appendChild(lnk);
				   document.getElementById(strZone).appendChild(egt);
			  }
		 }
		 else {
			  document.getElementById(strZone).style.visibility = 'hidden';
		 }
	 }
}


/**
* Fonction utilisant Ajax pour afficher une liste de résultats correspondant au filtre de la recherche
* Lance le filtre si le moif recherché contient au moins nbChar lettres
*
* @param string strField Le nom du champ
* @param string strAction L'action du programme PHP
* @param string strPatron Le patron utilisé pour le retour des resultats
* @param int nbChar Le nombre de characeres minimal pour lancer la recherche
* @param string strZoneResultat La zone de resultats
*/
function LoadData(strField,strAction,strPatron,nbChar,strZoneResultat) 
{   
	 if ( (strField != '') && (strAction != '') && (strPatron != '') && (nbChar != '') )
	 {	 
		 strValue = document.getElementById(strField).value;
//alert("strValue : " + strValue);
		 
		 if (strValue.length >= nbChar)
		 {
//alert("Zone : " + document.getElementById('Zone').value);
			 document.getElementById('Zone').value = strZoneResultat;
			 
			 // Création de l'objet
			 var XHR = new XHRConnection();
			 XHR.appendData(strField, strValue);
			 XHR.appendData("Action", strAction);
			 XHR.appendData("patron", strPatron);
			 
			 // On soumet la requête     
			 XHR.sendAndLoad(GEN_strSearchProgramPhp, "POST", ShowFilterResults);
		 }
	 }
}

/**
* Fonction qui relance la soumission du formulaire de recherche en ayant auparavant changé le PageNum dans
* les champs hidden
*
* @param object oForm Le formulaire de recherche
* @param int iValue La valeur du PageNum
*/
function ChangePageNumBySubmit(oForm,iValue)
{		
	oForm.PageNum.value = iValue;
	oForm.SaveHisto.value = 1;

	oForm.submit();
}

/**
* Fonction qui relance la soumission du formulaire de recherche en ayant auparavant changé le PageNum dans
* les champs hidden
*
* @param object oForm Le formulaire de recherche
* @param int iValue La valeur du PageNum
*/
function AdmChangePageNumBySubmit(oForm,iValue)
{		
	oForm.PageNum.value = iValue;

	oForm.submit();
}

/**
* Fonction qui relance la soumission du formulaire de recherche en ayant auparavant changé le tri dans
* les champs hidden
*
* @param object oForm Le formulaire de recherche
* @param string strOrder Le type de tri
*/
function ChangeOrderBySubmit(oForm,strOrder)
{		
//alert("strOrder : " + strOrder);
	oForm.Order.value = strOrder;
	oForm.submit();
}


/**
* Fonction qui lance la soumission du formulaire de recherche si la saisie est correcte
*  	La recherche se lance si au moins un des champs suivant est non vide
*		- Raison sociale
*		- Theme savoir faire
*		- Savoir faire
*		- Organisme qualification
*
* @param object oForm Le formulaire de recherche
*/


function RunSearch(oForm)
{		
	if ( (oForm.FISociete.value != '') || (oForm.LibelleSavoirFaire.value != '') || (oForm.CodeTheme.options.selectedIndex > 0) || (oForm.CodeOrganisme.options.selectedIndex > 0) )
	{		
		// On vide "" s'il est present dans le champ	
		if (oForm.LibelleSavoirFaire.value == 'Tapez un mot-clef')
		{
			oForm.LibelleSavoirFaire.value = '';
		}
		
		bGoodInput = true;
		strMsg = "";
		if ( (oForm.FISociete.value != '') && (oForm.FISociete.value.length <= 1) )
		{
			bGoodInput = false;	
			strMsg += "Vous devez saisir au moins 2 caractères pour la raison sociale\n";
		}
		if ( (oForm.LibelleSavoirFaire.value != '') && (oForm.LibelleSavoirFaire.value.length <= 2) )
		{
			bGoodInput = false;	
			strMsg += "Vous devez saisir au moins 3 caractères pour le savoir faire\n";
		}
		
		if (bGoodInput)
		{		
			// Origine de la recherche
			oForm.Origine.value = 1;
			
			// On sauvegarde la recherche (car on passe par le bouton de recherche)
			oForm.SaveHisto.value = 1;
		
			NoCache();
			oForm.submit();
		}
		else
		{
			alert(strMsg);
		}
	}
	else
	{
		document.getElementById("erreurAlert").style.visibility = 'visible';
		document.getElementById("alertMsg1").style.display = 'block';
		//alert(GEN_strSearchNoEntryMessage);	
	}
}



/**
* Fonction qui lance la soumission du formulaire de recherche en changeant le tri*
* @param object oForm Le formulaire de recherche
*/
function RunOrderSearch(oForm)
{		
	bSavoirFaireSelected = false;
	if (oForm.CodeSavoirFaireAffinage)
	{
		for (i=0;i<oForm.CodeSavoirFaireAffinage.length;i++)
		{
			if (oForm.CodeSavoirFaireAffinage[i].checked)
			{
				bSavoirFaireSelected = true;
				break;
			}
		}
	}
	
	if ( (oForm.FISociete.value != '') || (oForm.LibelleSavoirFaire.value != '') || (oForm.CodeTheme.options.selectedIndex > 0) || (oForm.CodeOrganisme.options.selectedIndex > 0) || (bSavoirFaireSelected == true ) || oForm.CodeSavoirFaire.value != '')
	{		
		bGoodInput = true;
		strMsg = "";
						
		if ( (oForm.FISociete.value != '') && (oForm.FISociete.value.length <= 2) )
		{
			bGoodInput = false;	
			strMsg += "Vous devez saisir au moins 3 caractères pour la raison sociale\n";
		}
		if ( (oForm.LibelleSavoirFaire.value != '') && (oForm.LibelleSavoirFaire.value.length <= 2) )
		{
			bGoodInput = false;	
			strMsg += "Vous devez saisir au moins 3 caractères pour le savoir faire\n";
		}
		
		if (bGoodInput)
		{		
			// On ne sauvegarde pas la recherche (juste un tri)
			oForm.SaveHisto.value = 1;
		
			oForm.submit();
		}
		else
		{
			alert(strMsg);
		}
	}
	else
	{
		
		document.getElementById("erreurAlert").style.visibility = 'visible';
		document.getElementById("alertMsg2").style.display = 'block';
		
		//alert(GEN_strSearchNoEntryMessage);	
	}
}


/**
* Fonction qui lance la soumission du formulaire de recherche pour l'affinage par savoirfaire
*  	La recherche se lance si au moins un des savoir faire est selectionné
*
* @param object oForm Le formulaire de recherche
*/
function RunRefine(oForm)
{		
	bSavoirFaireSelected = false;
	if (oForm.CodeSavoirFaireAffinage)
	{
		for (i=0;i<oForm.CodeSavoirFaireAffinage.length;i++)
		{
			if (oForm.CodeSavoirFaireAffinage[i].checked)
			{
				bSavoirFaireSelected = true;
				break;
			}
		}
	}
	if ( bSavoirFaireSelected == true )
	{		
		// On sauvegarde la recherche (car on passe par le bouton de recherche)
		oForm.SaveHisto.value = 1;
		// Recherche affinage
		oForm.Origine.value = 3;
		
		
		oForm.submit();
	}
	else
	{
		alert(GEN_strRefineNoEntryMessage);	
	}
}







function afficherResultatsOld(obj) {
     // Construction des noeuds
     var tabResult = obj.responseXML.getElementsByTagName('resultat');
     document.getElementById('zoneResultats').innerHTML = '';
     if (tabResult.length > 0) {
          // On définit la hauteur de la liste en fonction du nombre de resultats et de la hauteur de ligne
          var hauteur = tabResult.length * 22; 
          with(document.getElementById('zoneResultats').style) {
               visibility = 'visible';
               height = hauteur + 'px';
          };
          for (var i = 0; i < tabResult.length; i++) {
               resultat = tabResult.item(i); 
               var egt = document.createElement('li');
               var lnk = document.createElement('a');
               var texte = document.createTextNode(resultat.getAttribute
               ('titre'));
               lnk.appendChild(texte);
               lnk.setAttribute('href', resultat.getAttribute('url'));
               lnk.setAttribute('title', resultat.getAttribute('titre'));
               egt.appendChild(lnk);
               document.getElementById('zoneResultats').appendChild(egt);
          }
     }
     else {
          document.getElementById('zoneResultats').style.visibility = 'hidden';
     }
}

function NoCache(){
	if (document.getElementById("anim"))
	document.getElementById("anim").style.visibility='visible';
}