/**
 * Cette fonction est appelée lors d'une recherche. Elle permet d'ajouter à
 * l'action du formulaire les mots-clés recherchés pour le SEO et de réécrire
 * l'url à la volée.
 * 
 * @return
 */
function rewriteAction(idKeywords, idForm) {
	var keywords = document.getElementById(idKeywords).value;
	var form = document.getElementById(idForm);
	var params = [ 'search', form.action, keywords ];
	form.action = writeOutboundRule(params);
}

/**
 * Cette fonction permet de simuler le comportement de la balise <outbound-rule>
 * située dans le fichier urlrewrite.xml. Elle permet de réécrire les urls à la
 * volée lorsque la réécriture n'est pas possible (ex : cas de la recherche,
 * l'action du formulaire est modifiée à l'envoi de celui-ci, la réécriture ne
 * peut donc pas être gérée).
 * 
 * @param params
 * @return L'url réécrite
 */
function writeOutboundRule(params) {

	var type = params[0]; // params : 0 => type
	var startUrl = ""; // url à réécrire
	var from = ""; // regex à matcher
	var to = ""; // correspond à l'url réécrite <to>

	// *******************************
	// ...........RECHERCHE...........
	// *******************************
	// params : 0 => type
	// params : 1 => url à réécrire
	// params : 2 => les mots clés
	if ("search" == type) {
		startUrl = params[1];
		keywords = params[2];
		from = "/VAD_GDM/Recherche\\?StoreID=([0-9]+)&CatalogueID=([0-9]+)&LangueID=([0-9]+)";
		res = startUrl.split(new RegExp(from, "ig"));
//		to = "/" + unescape(replaceSearchChar(keywords)) + ".r.html?search," + res[1] + "," + res[2] + "," + res[3];
		to = "/" + unescape(replaceSearchChar(keywords)) + ".r.html?search&p1=" + res[1] + "&p2=" + res[2] + "&p3=" + res[3];
	}

	return to;

}

function replaceSearchChar(chaine) {
	chaine = chaine.replace(/[ÀÂÃÄÅÆ]/g, "A");
	chaine = chaine.replace(/[ÈÉÊË€]/g, "E");
	chaine = chaine.replace(/[Ç]/g, "C");
	chaine = chaine.replace(/[ÌÎ]/g, "I");
	chaine = chaine.replace(/[Ñ]/g, "N");
	chaine = chaine.replace(/[ÒÓÔÕÖØ]/g, "O");
	chaine = chaine.replace(/[ÙÚÛÜ]/g, "U");
	chaine = chaine.replace(/[ß]/g, "B");
	chaine = chaine.replace(/[àáâãäåæ]/g, "a");
	chaine = chaine.replace(/[ç]/g, "c");
	chaine = chaine.replace(/[èéêë]/g, "e");
	chaine = chaine.replace(/[ìíîï]/g, "i");
	chaine = chaine.replace(/[ðòóôõöø]/g, "o");
	chaine = chaine.replace(/[ñ]/g, "n");
	chaine = chaine.replace(/[ùúûü]/g, "u");
	chaine = chaine.replace(/[ÿý]/g, "y");
	chaine = chaine.replace(/[^a-z0-9]/gi, "-");
	return chaine;
}
