
var clAlerte = "#fdfd5d"; // couleur de fond pour les champs invalides
var clValide = "#ffffff"; // couleur de fond pour les champs valides
var carExp = /^.{2,}$/;																 // VCO_ ou VCN_
var heureExp = /^([0-9]|[0-1][0-9]|[2][0-3])[:][0-5]?\d$/; 							 // VHO_ ou VHN_
var dateExp = /^[0-3]?\d{1}[\/|-][0-1]?\d{1}[\/|-]?([0-9][0-9])?([0-9][0-9])?$/;	 // VDO_ ou VDN_
var entierExp = /^\d*$/;															 // VEO_ ou VEN_
var reelExp = /^-?\d*[d{1},.\d+]?\d+$/;												 // VRO_ ou VRN_
var mailExp = /^[\w_][_\w\.\-~]*@[\w_][_\w\.\-~]*\.[\w]{2,}$/i						 // VMO_ ou VMN_
var telExp = /^[0-9+\.\s\-]{6,}$/;	 												 // VTO_ ou VTN_
var apeExp = /^[0-9][0-9][0-9][0-9]?[A-Za-z]{1}$/;	 								 // VAO_ ou VAN_   	  APE (NAF)
var sirExp = /^[0-9]{3}\s?[0-9]{3}\s?[0-9]{3}\s?([0-9]{4}\s?[0-9]{1})?$/;	 		 // VSO_ ou VSN_	  SIREN ou SIRET
var tahitiExp = /^[0-9]{6}$/;	 		 											 // VZO_ ou VZN_	  N° Tahiti

////////////////////////////////////////////////////////////////////////////////		
function valider(leFormulaire){
var accepte = true;
	if (testFormulaire(leFormulaire))
	{
		accepte = true;	
	}
	else
	{
		alert("Il y a des erreurs ou informations manquantes dans les champs colorés en jaune !\nVeuillez remplir correctement les champs obligatoires.\nMerci.");
		accepte = false;		
	}	
return accepte;
}
////////////////////////////////////////////////////////////////////////////////	
function testFormulaire(unFormulaire){
	var V; // code de vérification attribué au champs 
	var obligatoire;
	var testOk = true;									 

	for(i=0;i<unFormulaire.elements.length;i++)
	{	
		obligatoire = unFormulaire.elements[i].name.substring(2,3);
		switch(unFormulaire.elements[i].name.substring(0,2))
		{	
				case "VC" : testOk = estValide(carExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VH" : testOk = estValide(heureExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VD" : unFormulaire.elements[i].value = unFormulaire.elements[i].value.replace(/\-/,"/"); testOk = estValide(dateExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VE" : testOk = estValide(entierExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VR" : unFormulaire.elements[i].value = unFormulaire.elements[i].value.replace(/\./,","); testOk = estValide(reelExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VM" : testOk = estValide(mailExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VT" : testOk = estValide(telExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VA" : testOk = estValide(apeExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VS" : testOk = estValide(sirExp,unFormulaire.elements[i],testOk,obligatoire); break;
				case "VZ" : testOk = estValide(tahitiExp,unFormulaire.elements[i],testOk,obligatoire); break;
		}
	 }
return testOk;
} 
////////////////////////////////////////////////////////////////////////////////
function estValide(pattern,input,test,obligatoire) {
	if ( (obligatoire=="O" && input.value!="" && pattern.test(input.value)) || (obligatoire=="N" && (input.value=="" || pattern.test(input.value))) )
	{
		input.style.backgroundColor = clValide;
		return test;
	}
	else 
	{
		input.style.backgroundColor = clAlerte;
		return false;
	}
}
function replaceCommas(str){
	return str.replace(/\./,",");
}