//fonctions sur la recherche

//selection de la zone de recherche
function focus_zone_rech()
{
	//alert(document.getElementById("crit").value);
	document.getElementById("crit").select();
	
}

//Ce code permet de récupérer les paramètres passés dans une url et de renvoyer la valeur d'un parametre si il est défini
//Le tableau nom contient le nom des paramètres et le tableau valeur contient les valeurs de ces paramètres.
function extr_param_url()
{
    var nom=new Array();
    var valeur=new Array();

    // On enlève le "?"
    param = window.location.search.slice(1,window.location.search.length);

    // On sépare les paramètres....
    // first[0] est de la forme param=valeur

    first = param.split("&");//delimiteur : "&"

    for(i=0;i<first.length;i++)//pour chaque parametre
    {
        second = first[i].split("=");
        nom[i] = second[0];
        valeur[i] = second[1];
        if (nom[i]==parametre)
        {
        	return valeur[i]; //on sort de la fonction
        	//la fonction renvoie la valeur du parametre si le parametre existe
        }
    }
    return "0";//sinon s'il n'existe paqs on renvoie "0"
}

//verifie qu'on ait bien saisi un mot
function verif_mot(mot,spk)
{
	var texte;
	//alert (search);message d'erreur
	 if (spk=="fr")
		 texte="Votre recherche";
	 else
		 texte="Your search";
		
	// l'utilisateur a-t-il entré un mot pour la recherche ??
	if ((mot.value!="") && (mot.value!=texte))
		document.forms["search"].submit();//envoyer le formulaire
	
	else//si le mot n'est pas valide
	{
		var texte_erreur;
		if (texte=="Your search") 
			texte_erreur="Please enter a correct word !";
		else texte_erreur="Mot incorrect !";
		
		alert (texte_erreur);//message d'erreur
	
	}
	
	mot.select();//mettre le focus dans la zone de recherche
}

// //sert a selectionner la zone de recherche (on positionne le focus dessus) 
// function onLoad(mot,langue)
// {
	// //on test si on est sous internet explorer ou pas
	// var ie = false; /*@cc_on ie = true; @*/
	
	// if (ie) 
	// { 
		// //on est sous IE
		// //recherche_ie(mot.value);
	// } 
	// else 
	// { 
		// //on n'est pas sous IE
		// /*recherche_ff(mot.value);*/
	// }
	
	// mot.select();//mettre le focus dans la zone de recherche
	
// }

//colore le ou les mots cherchés dans la zone de recherche
//CA MARCHE MAIS QUE POUR IE
 // function recherche_ie(chaine)
 // {
	// var mot=chaine.split(" ");//on coupe les mots si la recherche comprend plusieurs mots

		// var i=0;
		// while (typeof(mot[i]) != "undefined" )//pour chacun des mots recherchés
		// {
			// //FONCTION createTextRange() RECONNUE SEULEMENT PAR IE !!
			 // var motrecherche = window.document.body.createTextRange();//chaque mot est "mis" dans une cellule pour pouvoir travailler dessus ensuite
			
			 // while(motrecherche.findText(mot[i])!=false) //tant qu'il y a des occurences du mot cherché
			 // {/*
				 // //alert ("mot : " + motrecherche.findText(chaine));
				 // motrecherche.findText(mot[i]);//on se place a la premiere ou a la prochaine occurence
				 // motrecherche.moveStart("character",0);//selection du mot a partir du debut...
				 // motrecherche.findText(mot[i]);//...jusqu'à la fin
				 // motrecherche.pasteHTML("<span class=\"couleur_rech\">"+mot[i]+"</span>");//...on colore le mot en rouge*/
			 // }
			 
			 // i++;
		// }	 
 // }

function highlightOnLoad() 
{
	if ((document.getElementById("crit").value!="") && (document.getElementById("crit").value!="Votre recherche") && (document.getElementById("crit").value!="Your search"))
  {
	//appel de la fonction qui va extraire le ou les mots cherchés de l'url puis séparer les mots par "|" car c'est le délimiteur pour la fonction split 
     var searchString = getSearchString();
	 //donner ci-dessous le nom de l'identifiant voulu pour délimiter la zone de recherche
     var textContainerNode = document.getElementById("zone_recherche");//délimitation de la zone de coloration par un id "zone_recherche" (inclus dans une balise html <div>)
     // séparation de tous les mots recherchés dans un tableau
     var searchTerms = searchString.split('|');
     for (var i in searchTerms) 	//pour chaque mot de la recherche...
	 {
       // ne pas prendre en compte les mots à l'intérieur de balises html
      var regex = new RegExp("("+searchTerms[i]+")(?![^<]*?>)","ig"); 
	  // var regex = new RegExp(">([^<]*)?("+searchTerms[i]+")([^>]*)?<","ig");//(\\p{L})*?
       highlightTextNodes(textContainerNode, regex);//appeler la fonction qui va rajouter dans la chaine la classe css de coloration
	 }
  }
}

//extraction du ou des mots cherchés et "épuration" de la chaine 
function getSearchString() 
{
  var rawSearchString = document.getElementById("crit").value.replace(/[a-zA-Z0-9\?\&\=\%\#]+s\=(\w+)(\&.*)?/,"$1");
  // Remplace tous les symboles "+" et "%20" (%20 ->espace) par le symbole "|" car ce sera le delimiteur pour la regex
  return rawSearchString.replace(/\%20|\+/g,"\|");
}


//colore les mots envoyés en parametre
function highlightTextNodes(element, regex) 
{
	//recuperer le contenu de l'élément avec les balises html incluses
	var tempinnerHTML = element.innerHTML;
	// dans cet élément on rajoute notre class"couleur_rech" pour colorer le ou les mots cherchés
	element.innerHTML = tempinnerHTML.replace(regex,'<span class="couleur_rech">$1</span>');
	//element.innerHTML = tempinnerHTML.replace(regex,'>$1<span class="couleur_rech">$2</span>$3<');
}

//appel automatique sur chargement de la page
window.onload = function() 
{
	focus_zone_rech();//appel de la fonction de selection de la zone de recherche 
	highlightOnLoad();// appel de la fonction de surlignage du mot cherché 
}