/**Tableau récapitulatif des expressions régulières**/
var regexps = new Array();
regexps["codep"] = '^[0-9]{5}$';
regexps["tel"] = '^[0-9]{10}$';
regexps["num"] = '^[0-9]{1,99}$';
regexps["num_adherent"] = '^[0-9]{12}$';
regexps["ident"] = '^[a-zA-Z0-9._-]+$';
regexps["nom"] = '^[a-zA-Z-éèêëàâäîïôöùûü ]+$';
regexps["datefr"] = /^(\d{1,2}\/){2}\d{4}$/;
regexps["titre"] = '^[a-zA-Z0-9 -éèêëàâäîïôöùûü]+$';
regexps["url"] = '^[a-zA-Z.-_]+$';
regexps["mdp"] = '^[a-zA-Z0-9]{6,9}$';
regexps["mail"] = '^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$';
	

/**Fonction qui check les input text REQUIS**/
function checkInput(input, styleId, checkMatch, regExp, txtMsg){
	var msg;
	//On recup la valeur de l'input transmis
	var value = input.value;
	//Puis son node parent
	var parent = input.parentNode;
	//On créer un node qui contiendra le message d'erreur
	var p = document.createElement("small");
	p.setAttribute("id", styleId);
	
	//Si l'input est vide
	if (value == '') {
		//On affecte le style 'erreur' à l'input et au label (le parent)
		input.style.color="red";
		input.style.border="1px solid red";
		parent.style.color ="red";
		//On créer le message
		msg = " Champ obligatoire";
		//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
		var pExist = document.getElementById(styleId);
		//Si il n'existe pas, on lui affecte le message et on l'ajoute au parent (le label)
		if(!pExist){
			p.innerHTML = msg;
			parent.appendChild(p);
		} 
		//Si il existe déjà, on réaffecte juste le message
		else{
			pExist.innerHTML = msg;
		}
	}
	//Si il est rempli
	else {
		//Et si la verif des caractères est demandée
		if(checkMatch){
			//Si le pregmatch est conforme
			if(value.match(regExp)) {
				//On affecte le style normal pour enlever le style d'erreur, si erreur il y a eu
				input.style.color="#333";
				input.style.border="1px solid #666";
				parent.style.color ="#333";
				//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
				var pExist = document.getElementById(styleId);
				//Si il existe, on le supprime
				if(pExist){
					parent.removeChild(pExist);
				}
			} 
			//Si le pregmatch est non conforme
			else {
				//On affecte le style 'erreur' à l'input et au label (le parent)
				input.style.color="red";
				input.style.border="1px solid red";
				parent.style.color ="red";
				//On créer le message
				msg = ' '+txtMsg;
				//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
				var pExist = document.getElementById(styleId);
				//Si il n'existe pas, on lui affecte le message et on l'ajoute au parent (le label)
				if(!pExist){
					p.innerHTML = msg;
					parent.appendChild(p);
				} 
				//Si il existe déjà, on réaffecte juste le message
				else {
					pExist.innerHTML = msg;
				}
			}
		} 
		//Si la verif des caractères n'est pas demandée
		else {
			//On affecte le style normal pour enlever le style d'erreur, si erreur il y a eu
			input.style.color="#333";
			input.style.border="1px solid #666";
			parent.style.color ="#333";
			//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
			var pExist = document.getElementById(styleId);
			//Si il existe, on le supprime
			if(pExist){
				parent.removeChild(pExist);
			}
		}
	}
}


/**Fonction qui check les input text NON REQUIS**/
function checkInputOptional(input, styleId, regExp, txtMsg){
	var msg;
	//On recup la valeur de l'input transmis
	var value = input.value;
	//Puis son node parent
	var parent = input.parentNode;
	//On créer un node qui contiendra le message d'erreur
	var p = document.createElement("small");
	p.setAttribute("id", styleId);
	
	//Si l'input est rempli, on le check
	if(value){
		//Si le pregmatch est conforme
		if(value.match(regExp)) {
			//On affecte le style normal pour enlever le style d'erreur, si erreur il y a eu
			input.style.color="#333";
			input.style.border="1px solid #666";
			parent.style.color ="#333";
			//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
			var pExist = document.getElementById(styleId);
			//Si il existe, on le supprime
			if(pExist){
				parent.removeChild(pExist);
			}
		} 
		//Si le pregmatch est non conforme
		else {
			//On affecte le style 'erreur' à l'input et au label (le parent)
			input.style.color="red";
			input.style.border="1px solid red";
			parent.style.color ="red";
			//On créer le message
			msg = ' '+txtMsg;
			//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
			var pExist = document.getElementById(styleId);
			//Si il n'existe pas, on lui affecte le message et on l'ajoute au parent (le label)
			if(!pExist){
				p.innerHTML = msg;
				parent.appendChild(p);
			} 
			//Si il existe déjà, on réaffecte juste le message
			else {
				pExist.innerHTML = msg;
			}
		}
	} 
	//Si l'input est vidé par le user
	else{
		//On affecte le style normal pour enlever le style d'erreur, si erreur il y a eu
		input.style.color="#333";
		input.style.border="1px solid #666";
		parent.style.color ="#333";
		//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
		var pExist = document.getElementById(styleId);
		//Si il existe, on le supprime
		if(pExist){
			parent.removeChild(pExist);
		}
	}
}


/**Fonction qui check les select box**/
function checkSelectBox(input, styleId){
	var msg;
	//On recup la valeur de l'input transmis
	var value = input.options[input.selectedIndex].value;
	//Puis son node parent
	var parent = input.parentNode;
	//On créer un node qui contiendra le message d'erreur
	var p = document.createElement("small");
	p.setAttribute("id", styleId);
	
	//Si la select box vide
	if (!value) {
		//On affecte le style 'erreur' à la select box et au label (le parent)
		input.style.color="red";
		input.style.border="1px solid red";
		parent.style.color ="red";
		//On créer le message
		msg = " Champ obligatoire";
		//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
		var pExist = document.getElementById(styleId);
		//Si il n'existe pas, on lui affecte le message et on l'ajoute au parent (le label)
		if(!pExist){
			p.innerHTML = msg;
			parent.appendChild(p);
		} 
		//Si il existe déjà, on réaffecte juste le message
		else{
			pExist.innerHTML = msg;
		}
	}
	//Si la select box est bien remplie
	else{
		//On affecte le style normal pour enlever le style d'erreur, si erreur il y a eu
		input.style.color="#333";
		input.style.border="1px solid #666";
		parent.style.color ="#333";
		//On essaye de récupérer le noeud contenant le message, pour voir si il existe ou non
		var pExist = document.getElementById(styleId);
		//Si il existe, on le supprime
		if(pExist){
			parent.removeChild(pExist);
		}
		
		//Condition spéciale pour les dept, cp et villes : si le departement est sélectionné et que le focus n'est pas ensuite donné directement au cp, on affiche l'erreur 
		if(input.id=="list0"){
			checkSelectBox(document.getElementById('list1'), 'cp');
			checkSelectBox(document.getElementById('list2'), 'com');
		}
	}
}






