/**
 * Variables globales contenant les différents messages utilisés dans les mains
 * en 3 langues (FR, AN, DE)
 **/
var Msg1FR = "Vous devez saisir au moins 2 caractères";
var Msg1AN = "You must enter at least 2 characters";
var Msg1AL = "Sie müssen wenigstens 2 Charaktere erfassen";

var Msg2FR = "Vous avez saisi des caractères invalides";
var Msg2AN = "You entered invalid characters";
var Msg2AL = "Sie haben invalide Charaktere erfaßt";
			
var Msg3FR = "Merci de bien vouloir choisir la zone géographique que votre recherche doit couvrir";
var Msg3AN = "Thank you for chosing the geographical area which you want to cover with your search request";
var Msg3AL = "Wir bitten Sie das geografische Gebiet zu wählen was Sie mit Ihrer suchen abdecken möchten. Danke";

/**
 * Test si il y a bien deux caractères minimums valides
 * @param valeur : la valeur à tester
 * @return : retourne true si plus de deux caractères sinon false
 **/
function checkNbChar(valeur, nbChar)
{
	// Si la valeur du champ ne possède pas au minimum deux caractères
	if (valeur.length < nbChar) return false;
	// Sinon donc le nombre de caractères est supérieur à 2
	else return true;
}


/**
 * Fonction qui teste si il n'y a pas de caractères interdits dans une String
 * @param valeur : la valeur à tester
 * @return : true si chaine contient pas de caractères invalides sinon retourne la valeur épurée
 **/
function checkChar(valeur)
{
	var test = true;
	
	// Tableau des caractères interdits
	var charInterdit = ["*", "%","~","¢","$","¤","¥","§","©","ª","¬","®","±","²","µ","¶","º","¿","Æ","Ø","ß","å","÷","ø","{","}","(",")","[","]","¨","^","|","€","£","#"];
	
	// Parcours des élements du tableau
	for(i=0; i<charInterdit.length; i++)
	{
		// Si on trouve un caractère dans notre valeur à tester alors return la valeur épuré
		if (valeur.indexOf(charInterdit[i]) != -1)
		{
			// valeur sans caractères interdits
			valeur =  remplace(valeur,charInterdit[i], "");
			test = false;
		}
	}

	if (test) valeur = null;
	
	// retourne valeur
	return valeur;
}


/**
 * Fonction qui remplace dans une chaine les occurences a par b
 * @param chaine : la chaine à épurer
 * @param a : l'occurence la chaine à remplacer
 * @param b : l'occurence remplacante
 **/
function remplace(chaine, a, b)
{
	// Initialisation du "pointeur"
	var i=0;
	// Tant qu'on trouve des caractères à remplacer
    while (i != -1)
    {
    	// I prend la valeur de la postion de départ de la chaine à remplacer
    	i = chaine.indexOf(a,i);
    	// Si la chaine est contenu dedans
        if (i >= 0)
        {
			// On modifie la chaine alors
       		chaine = chaine.substring(0,i) + b + chaine.substring(i + a.length);
       		// incrementation du "pointeur"
            i += b.length;
        }
     }
     // Renvoi la chaine épurée
     return chaine;
}

/**
 * Fonction mainAP utilisé par searchAP
 * Vérifie si un des champs est renseigné ainsi que la localité puis test 
 * la taille du champ et éventuellement vérifie la validité de ce dernier
 * @param form : le nom du formulaire contenant le champ
 * @param mot : le nom du champ du formulaire à tester
 * @param lang : la langue utilisée
 * @return : true si la valeur du champ à tester est correcte sinon false
 **/
function checkSearch(form, id, mot, lang)
{
	// Correspond au champ
	var valeur = form.elements[mot].value;

	// Si il y a bien au moins deux caractères
	if (checkNbChar(trim(valeur), 2))
	{
		// Recupere soit null si pas de caractères invalides soit la valeur épurée
		var cChar = checkChar(valeur);
		// Si la valeur du champ contient des caractères invalides
		if (cChar != null)
		{
			document.getElementById(id).style.visibility='visible';
			document.getElementById(id).style.display='block';
			if (lang == 'FR') document.getElementById(id).innerHTML = Msg2FR;
			else if (lang == 'AL') document.getElementById(id).innerHTML = Msg2AL;
			else if (lang == 'AN') document.getElementById(id).innerHTML = Msg2AN;
		
			// Remplace la valeur du champ par celle ne contenant plus de caractères interdits
			form.elements[mot].value = cChar;
			form.elements[mot].focus();
			return false;
		}
		// Sinon donc valeur valide
		else return true;		
	}
	// Sinon donc il n'y a pas au moins deux caractères
	else
	{
		document.getElementById(id).style.visibility='visible';
		document.getElementById(id).style.display='block';
		if (lang == 'FR') document.getElementById(id).innerHTML = Msg1FR;
		else if (lang == 'AL') document.getElementById(id).innerHTML = Msg1AL;
		else if (lang == 'AN') document.getElementById(id).innerHTML = Msg1AN;		
		form.elements[mot].focus();
		return false;
	}
}

function clearWarning (id) {
	document.getElementById(id).style.display='none';
}

/**
* Fonction trim()
* permet de supprimer les espaces avec une expression règulière
**/
function trim(string)
{
	return string.replace(/(^\s*)|(\s*$)/g,'');
}



/**
 * Utiliser par les selects des filtres pour redirection vers page qui vas bien
 **/
function evSelect (varMot, valMot, varSession, valSession, varLan, valLan, varThe, valThe, varRub, valRub, varLoc, valLoc, varEngine, valEngine)
{
	var url = "?"+varSession+"="+valSession;
	if (valLan != null && valLan.length > 0)
		url += "&"+varLan+"="+valLan;
	if (valMot != null && valMot.length > 0)
		url += "&"+varMot+"="+valMot;
	if (valThe > 0)
		url += "&"+varThe+"="+valThe;
	if (valRub > 0)
		url += "&"+varRub+"="+valRub;		
	if (valLoc > 0)
		url += "&"+varLoc+"="+valLoc;
	if (valEngine > 0)
		url += "&"+varEngine+"="+valEngine;		
	
	alert(url);
} 


