var verifierLeFormat = "V&eacute;rifier le format";
var champObligatoire = "Champ obligatoire";
var erreur_champ = "erreur_champ";
var couleurErreur = "#ff5900";
var couleurNormale = "#8F8F8F";
  
// Formatage d'un champs ne contenant que des lettres
function queDesLettre(evt) {
	var keyCode = evt.which ? evt.which : evt.keyCode;
	var interdit = ' &*?!:;,#~"^¨%$£?²¤§%*()[]{}<>|\\/`\'@0123456789_-.';
	if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) {
		return false;
	}
}  
  
function autoTab(idCourant,idSuiv)
{
	if(idCourant && idSuiv && document.getElementById(idCourant) && document.getElementById(idSuiv)){
		var cour = document.getElementById(idCourant);
	    if (cour.value.length ==cour.maxLength) {
	        document.getElementById(idSuiv).focus();
	    }
    }
}
function afficherQuestion(){
	var clientOPros = document.getElementById('clientOPros').value;
	if(clientOPros=='cp'){
		cacherElementById('quest_bind');
		afficherElementById('quest_non_bind');
		if(document.getElementById('devis3_client_oui').checked!='checked' && document.getElementById('devis3_client_non').checked!='checked'){
			document.getElementById('devis3_client_oui').checked='checked';
		}
	}else{
		cacherElementById('quest_non_bind');
		afficherElementById('quest_bind');
	}
}
//cacher un élément
function cacherElementById(idElmt){
	if(document.getElementById(idElmt)!= null && document.getElementById(idElmt) !=''){
		document.getElementById(idElmt).style.visibility='hidden';
		document.getElementById(idElmt).style.display='none';
	}
}
//afficher un élément
function afficherElementById(idElmt){
	if(document.getElementById(idElmt)!= null && document.getElementById(idElmt) !=''){
		document.getElementById(idElmt).style.visibility='visible';
		document.getElementById(idElmt).style.display='block';
	}
}
//controler le champs 
// Formatage d'un champs ne contenant que des chiffres
function queDesChiffre(evt) {
	var keyCode = evt.which ? evt.which : evt.keyCode;
	var autorise ='0123456789'; //en plus de backspace, TAB, end, home, left, right, delete
	if ((autorise.indexOf(String.fromCharCode(keyCode)) < 0)&& (keyCode!=8 && keyCode!=9 && keyCode!=35 && keyCode!=36 && keyCode!=37 && keyCode!=39 && keyCode!=46)) {
		return false;
	}
}
 function verifUnChiffre(idNumAVerifier, labelErreur, messageAactiverSiErreur){
 var NumAVerifier = document.getElementById(idNumAVerifier).value;
 var un_chiffre_regexp=/^\d{1}$/;
 	if (NumAVerifier.match(un_chiffre_regexp)) {
		document.getElementById(idNumAVerifier).style.borderColor = couleurNormale;
		return true;
	}	
	else{
		if(NumAVerifier != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idNumAVerifier).style.borderColor = couleurErreur;
   		ajouteCssClassErreur(labelErreur);
   		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
   		
   		return false;
	}
 }

 function verifHeure(idNumAVerifier, labelErreur, messageAactiverSiErreur){
 var NumAVerifier = document.getElementById(idNumAVerifier).value;
 var un_chiffre_regexp=/^\d{1}$/;
 	if (NumAVerifier >=0 || NumAVerifier < 24) {
		document.getElementById(idNumAVerifier).style.borderColor = couleurNormale;
		return true;
	}	
	else{
		if(NumAVerifier != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idNumAVerifier).style.borderColor = couleurErreur;
   		ajouteCssClassErreur(labelErreur);
   		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
   		return false;
	}
 }
 
 function verifDeuxChiffres(idNumAVerifier, labelErreur, messageAactiverSiErreur){
 var NumAVerifier = document.getElementById(idNumAVerifier).value;
 var deux_chiffres_regexp=/^\d{2}$/;
 	if (NumAVerifier.match(deux_chiffres_regexp)) {
		document.getElementById(idNumAVerifier).style.borderColor = couleurNormale;
		return true;
	}	
	else{
		if(NumAVerifier != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idNumAVerifier).style.borderColor = couleurErreur;
   		ajouteCssClassErreur(labelErreur);
   		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
   		return false;
	}
 }

 function verifDeuxChiffresOuLettresAB(idNumAVerifier, labelErreur, messageAactiverSiErreur){
 var NumAVerifier = document.getElementById(idNumAVerifier).value;
 var deux_chiffres_regexp=/^\d{2}$/;
 	// A et B pour la corse
 	if (NumAVerifier.match(deux_chiffres_regexp) 
 			|| NumAVerifier.match('2a')
 			|| NumAVerifier.match('2A')
 			|| NumAVerifier.match('2b')
 			|| NumAVerifier.match('2B')) {
		document.getElementById(idNumAVerifier).style.borderColor = couleurNormale;
		return true;
	}	
	else{
		if(NumAVerifier != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idNumAVerifier).style.borderColor = couleurErreur;
   		ajouteCssClassErreur(labelErreur);
   		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
   		return false;
	}
 }
 
 function verifTroisChiffres(idNumAVerifier, labelErreur, messageAactiverSiErreur){
 var NumAVerifier = document.getElementById(idNumAVerifier).value;
	var trois_chiffres_regexp=/^\d{3}$/;
 	if (NumAVerifier.match(trois_chiffres_regexp)) {
		document.getElementById(idNumAVerifier).style.borderColor = couleurNormale;
		return true;
	}	
	else{
		if(NumAVerifier != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idNumAVerifier).style.borderColor = couleurErreur;
   		ajouteCssClassErreur(labelErreur);
   		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
   		
   		return false;
	}
 }

function ancreARejoindre(nomAncre) {
	if(nomAncre != null && nomAncre != ''){
		var ancre = document.getElementsByName(nomAncre);
		if(ancre != null && ancre[0] != null){
		 	var diez = new RegExp("#");
		 	var url = document.location.href;
			if (url.search(diez) >= 0) {
				url = url.substring(0,url.search(diez));
		  	}
		  	document.location.href=url+"#"+nomAncre;
	  	}
  	}
}
   
 function testSaisieUtilisateur(nomDuFORM, labelErreurDeFin, idStop, pageSuivante ){
//***********************************************************************************
//* Fonction qui permet de tester la saisie des utilisateurs du début de la page 	* 
//* jusqu'au labelErreurDeFin ou idStop (optionnel dans le cas de multiple		 	*
//* input comme la date de naissance											 	*
//* 	nomDuFORM fournir : id du nom du FORM contenant les saisies à tester	 	*
//* 	labelErreurDeFin  : id de l'erreur de saisie courante					 	*
//* 	idStop  		  : id du champ courant	afin d'arréter le script à ce nieau	*
//* 	pageSuivante	  : permet de tester ou non tout les champs	 				*
//* 						et de passer à la page suivante si ce paramètre  		*
//* 						est différent de ''								 		*
//* 																	 		 	*
//* Besoin dans la JSP :														 	*
//* Pour les ancres	il faut que l'ID comporte: "ancre" afin de faire remonter la 	*
//* page au niveau de la section de l'erreur										*
//* 																	 		 	*
//* Pour les labels DONT LES CHAMPS SONT A TESTER il faut que l'ID comporte: 		*
//*		"label" pour le standard et			 	 									*
//*		"labelDate" "labelCP" "labelTel" 											*
//* 	"label3RadioButton" a utiliser pour 1 ou 2 ou 3 radio button reunis			*
//* 	"labelNumSecuriteSocial" 													*
//*		"labelNumOrgSecuriteSocial"													*
//*		"labelRIB" "labelCheckBox"													*
//*		pour les cas particulier 													*
//* 																				*
//* Pour les champs optionnel, il suffit de mettre un ID qui comporte "optionnel"	*
//* il est possible de ne pas respecter le label ci-dessus également	 		 	*
//* 																	 		 	*
//* Pour les messages d'erreur qui s'affichent en cas de mauvaise saisie ou 		*
//* d'oublie il faut que l'ID comporte "erreur"										*
//* 																	 		 	*
//***********************************************************************************
	//********************************************
	//* Récupére tous les éléments du formulaire *
	//********************************************
	var formulaire = document.getElementById(nomDuFORM);
	var tabElements = formulaire.getElementsByTagName("*");

	var labelElementEnCours = "";				// lieu de stockage de l'ID du label en traitement
	var idElementEnCours = "";					// lieu de stockage de l'ID du champ saisi en traitement
	var erreurElementEnCours					// lieu de stockage de l'ID de l'erreur à afficher en traitement

	var idJour = "";
	var idMois = "";
	var idAnnee = "";
	var dateTemp = 0;							// permet de savoir dans le scan de la date si on est au jours(j), mois(m) ou année(a)
	var heureTemp = 0;							// permet de savoir dans le scan de l heure si on est aux heures ou minutes
	
	var idHeure = "";
	var idMinute = "";
	
	var idSecSoc1 = "";
	var idSecSoc2 = "";
	var idSecSoc3 = "";
	var idSecSoc4 = "";
	var idSecSoc5 = "";
	var idSecSoc6 = "";
	var idSecSoc7 = "";
	var numSecSocTemp = 0;	

	var idNumOrgSecSoc1 = "";
	var idNumOrgSecSoc2 = "";
	var numOrgSecSocTemp = 0;
	
	var idCodeEtablissement = "";
	var idCodeGuichet = "";
	var idNumeroCompte = "";
	var idCleRIB = "";
	var ribTemp = 0;	
	
	var typeATester = ""; 						// on récupère dans cette variable le type à testé comme select, input,...
	var typeCheckBox = "typeCheckBox";
	var typeXCheckBox = "typeXCheckBox";
	var typeInput = "typeInput";
	var typeSelect = "typeSelect";
	var typeTextArea = "typeTextArea";
	var type3Boutons = "type3Boutons";

	var idCheckBox = "";
	
	var idXCheckBox1 = "";
	var idXCheckBox2 = "";
	var idXCheckBox3 = "";
	var idXCheckBox4 = "";
	var idXCheckBox5 = "";
	var idXCheckBox6 = "";
	var idXCheckBox7 = "";
	var idXCheckBox8 = "";
	var idXCheckBox9 = "";
	var idXCheckBox10 = "";
	var idXCheckBox11 = "";
	var idXCheckBox12 = "";
	var XCheckBoxTemp = 0;							// permet de savoir dans le scan des boutons si on est sur le 1er bouton ("") le 2ème (2) ou le 3ème

	var idRadio1 = "";
	var idRadio2 = "";
	var idRadio3 = "";
	var radioTemp = 0;							// permet de savoir dans le scan des boutons si on est sur le 1er bouton ("") le 2ème (2) ou le 3ème
	
	var fini = "";								// positionner lorsque l'on est arrivé au champs modifié par l'utilisateur
	var typeDeTest ="";							// utiliser pour savoir ce que l'on  va tester date, CP, Tel,...
	var ancreCible ="";
	var ancreEnCours ="";
	
	var label = new RegExp('label');			
	var erreur = new RegExp('erreur');
	var ancre = new RegExp('ancre');

	var typeDate = "typeDate";
	var typeNumSecuriteSocial = "typeNumSecuriteSocial";
	var typeNumOrganismSecuriteSocial = "typeNumOrganismSecuriteSocial";
	var typeRIB = "typeRIB";
	var typeCP = "typeCP";
	var typeTel = "typeTel";
	var typeHoraire = "typeHoraire";
	
	var label3RadioButton = new RegExp('label3RadioButton');

	var optionnel = new RegExp('optionnel');
	var isErreur = false;

		//***********************************************************************************
		//* Parcoure les éléments 															*
		//* - en rencontrant un label on le met de coté 									*
		//* - en rencontrant un type (select, input,...)on le met de coté					*
		//* - en rencontrant un Span erreur on a tout ce qu'il faut pour tester la saisie	*
		//***********************************************************************************
		//* On ne traite pas l'element s'il est caché ou optionnel							*
		//***********************************************************************************	
		for (var i = 0; i < tabElements.length; i++) {
			elementEnTest = tabElements[i]; 
			//Vérification si l'élément est afficher dans la page
			if(estAffiche(elementEnTest, fini, optionnel)){
		//***********************************************************************************
		//* Phase 1 :Traitement des ancres													*
		//***********************************************************************************
				if(elementEnTest.id.search(ancre) >= 0){
					ancreEnCours = elementEnTest.id;
				}
		//***********************************************************************************
		//* Phase 2 :Traitement de l'arrêt du script										*
		//***********************************************************************************
				fini = testFinScriptSaisiUtilisateur(elementEnTest.id,labelErreurDeFin);
		//***********************************************************************************
		//* Phase 3 :Traitement des labels													*
		//***********************************************************************************
				if(elementEnTest.id.search(label) >= 0){
					labelElementEnCours = elementEnTest.id;
					typeDeTest = traitementLabels(labelElementEnCours);
				}
		//***********************************************************************************
		//* Phase 4 :Récupération de ce que l'on doit traité (select, input,boutons,...)	*
		//***********************************************************************************
		//* On ne traite que si on a déjà un label											*
		//***********************************************************************************
				if (labelElementEnCours != ""){	
					//***********************************************
					//* Cas d'un Select								*
					//***********************************************
					if(elementEnTest.tagName == "SELECT"){
							idElementEnCours = elementEnTest.id;
							typeATester = typeSelect;
					}
					//***********************************************
					//* Cas d'un Textarea								*
					//***********************************************
					if(elementEnTest.tagName == "TEXTAREA"){
							idElementEnCours = elementEnTest.id;
							typeATester = typeTextArea;
					}
					//***********************************************
					//* Cas d'un input simple(non tel, non mail,...	*
					//***********************************************
					if(elementEnTest.tagName == "INPUT"){
						idElementEnCours = elementEnTest.id;
						typeATester = typeInput;
						//*******************************************
						//* Cas des dates sur 3 inputs				*
						//*******************************************
						if(typeDeTest == typeDate){
							var paramDateTableau = new Array();
							var idDate = new Array();
							idDate[0] = idJour;
							idDate[1] = idMois;
							idDate[2] = idAnnee;
							paramDateTableau[0] = recupXidInputsConsecutifs(dateTemp, elementEnTest.id, idDate);
							dateTemp = paramDateTableau[0][0];
							idDate = paramDateTableau[0][1];
							idJour = idDate[0];
							idMois = idDate[1];
							idAnnee = idDate[2];
						}
						//*******************************************
						//* Cas des heures sur 2 inputs				*
						//*******************************************
						if(typeDeTest == typeHoraire){
							var paramHeureTableau = new Array();
							var idHoraire = new Array();
							idHoraire[0] = idHeure;
							idHoraire[1] = idMinute;
							paramHeureTableau[0] = recupXidInputsConsecutifs(heureTemp, elementEnTest.id, idHoraire);
							heureTemp = paramHeureTableau[0][0];
							idHoraire = paramHeureTableau[0][1];
							idHeure = idHoraire[0];
							idMinute = idHoraire[1];
						}
						//************************************************
						//* Cas du numero de securite social sur 7 inputs*
						//************************************************
						if(typeDeTest == typeNumSecuriteSocial){
							var paramNumSecuriteSocialTableau = new Array();
							var idNumSecuriteSocial = new Array();
							idNumSecuriteSocial[0] = idSecSoc1;
							idNumSecuriteSocial[1] = idSecSoc2;
							idNumSecuriteSocial[2] = idSecSoc3;
							idNumSecuriteSocial[3] = idSecSoc4;
							idNumSecuriteSocial[4] = idSecSoc5;
							idNumSecuriteSocial[5] = idSecSoc6;
							idNumSecuriteSocial[6] = idSecSoc7;
							
							paramNumSecuriteSocialTableau[0] = recupXidInputsConsecutifs(numSecSocTemp, elementEnTest.id, idNumSecuriteSocial);
							numSecSocTemp = paramNumSecuriteSocialTableau[0][0];
							idNumSecuriteSocial = paramNumSecuriteSocialTableau[0][1];
							idSecSoc1 = idNumSecuriteSocial[0];
							idSecSoc2 = idNumSecuriteSocial[1];
							idSecSoc3 = idNumSecuriteSocial[2];
							idSecSoc4 = idNumSecuriteSocial[3];
							idSecSoc5 = idNumSecuriteSocial[4];
							idSecSoc6 = idNumSecuriteSocial[5];
							idSecSoc7 = idNumSecuriteSocial[6];
						}
						//***********************************************
						//* Cas du numero de l'organisme de sec sociale *
						//***********************************************
						
						if(typeDeTest == typeNumOrganismSecuriteSocial){
							var paramNumOrganismSecuriteSocialTableau = new Array();
							var idNumOrganismSecuriteSocial = new Array();
							idNumOrganismSecuriteSocial[0] = idNumOrgSecSoc1;
							idNumOrganismSecuriteSocial[1] = idNumOrgSecSoc2;
							paramNumOrganismSecuriteSocialTableau[0] = recupXidInputsConsecutifs(numOrgSecSocTemp, elementEnTest.id, idNumOrganismSecuriteSocial);
							numOrgSecSocTemp = paramNumOrganismSecuriteSocialTableau[0][0];
							NumOrganismSecuriteSocial = paramNumOrganismSecuriteSocialTableau[0][1];
							idNumOrgSecSoc1 = idNumOrganismSecuriteSocial[0];
							idNumOrgSecSoc2 = idNumOrganismSecuriteSocial[1];
						}
						//***********************************************
						//* Cas d'un numero de RIB						*
						//***********************************************
						if(typeDeTest == typeRIB){
							var paramRIBTableau = new Array();
							var idRib = new Array();
							idRib[0] = idCodeEtablissement;
							idRib[1] = idCodeGuichet;
							idRib[2] = idNumeroCompte;
							idRib[3] = idCleRIB;
							
							paramRIBTableau[0] = recupXidInputsConsecutifs(ribTemp, elementEnTest.id, idRib);
							ribTemp = paramRIBTableau[0][0];
							idRib = paramRIBTableau[0][1];
							idCodeEtablissement = idRib[0];
							idCodeGuichet = idRib[1];
							idNumeroCompte = idRib[2];
							idCleRIB = idRib[3];
						}
					
						//***************************************
						//* Cas de 1 bouton checkBox			*
						//***************************************
						if(typeDeTest == typeCheckBox && idCheckBox == ""){
							idCheckBox = elementEnTest.id;
						}
						//***************************************
						//* Cas de plusieurs checkbox (12max)	*
						//***************************************
						if(typeDeTest == typeXCheckBox && idElementEnCours !=''){
							var paramXCheckboxTableau = new Array();
							var idXCheckbox = new Array();
							idXCheckbox[0] = idXCheckBox1;
							idXCheckbox[1] = idXCheckBox2;
							idXCheckbox[2] = idXCheckBox3;
							idXCheckbox[3] = idXCheckBox4;
							idXCheckbox[4] = idXCheckBox5;
							idXCheckbox[5] = idXCheckBox6;
							idXCheckbox[6] = idXCheckBox7;
							idXCheckbox[7] = idXCheckBox8;
							idXCheckbox[8] = idXCheckBox9;
							idXCheckbox[9] = idXCheckBox10;
							idXCheckbox[10] = idXCheckBox11;
							idXCheckbox[11] = idXCheckBox12;
							
							paramXCheckboxTableau[0] = recupXidInputsConsecutifs(XCheckBoxTemp, elementEnTest.id, idXCheckbox);
							XCheckBoxTemp = paramXCheckboxTableau[0][0];
							id2Boutons = paramXCheckboxTableau[0][1];
							idXCheckBox1 = idXCheckbox[0];
							idXCheckBox2 = idXCheckbox[1];
							idXCheckBox3 = idXCheckbox[2];
							idXCheckBox4 = idXCheckbox[3];
							idXCheckBox5 = idXCheckbox[4];
							idXCheckBox6 = idXCheckbox[5];
							idXCheckBox7 = idXCheckbox[6];
							idXCheckBox8 = idXCheckbox[7];
							idXCheckBox9 = idXCheckbox[8];
							idXCheckBox10 = idXCheckbox[9];
							idXCheckBox11 = idXCheckbox[10];
							idXCheckBox12 = idXCheckbox[11];
						}
						//***************************************
						//* Cas des boutons radio (1 ou 2 ou 3	*
						//***************************************
						if(typeDeTest == type3Boutons){
							var param2BoutonsTableau = new Array();
							var id2Boutons = new Array();
							id2Boutons[0] = idRadio1;
							id2Boutons[1] = idRadio2;
							id2Boutons[2] = idRadio3;
							param2BoutonsTableau[0] = recupXidInputsConsecutifs(radioTemp, elementEnTest.id, id2Boutons);
							radioTemp = param2BoutonsTableau[0][0];
							id2Boutons = param2BoutonsTableau[0][1];
							idRadio1 = id2Boutons[0];
							idRadio2 = id2Boutons[1];
							idRadio3 = id2Boutons[2];
						}
					}
					
		//***********************************************************************************
		//* Phase 5 :Récupération du champ erreur et exécution du test de l'objet			*
		//***********************************************************************************
		//* On ne traite que si on a récupéré le champ erreur								*
		//***********************************************************************************
					if(elementEnTest.id.search(erreur) >= 0){
						erreurElementEnCours = elementEnTest.id;
						
						//***************************************
						//* Gestion des selects					*
						//***************************************
						if(typeATester == typeSelect){
							isErreur = saisieKO(verifSelect(idElementEnCours,labelElementEnCours ,erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
							labelElementEnCours = "";
							idElementEnCours = "";
							erreurElementEnCours = "";	
							typeATester ="";
						}
						//***************************************
						//* Gestion des textarea					*
						//***************************************
						if(typeATester == typeTextArea){
							isErreur = saisieKO(verifTextarea(idElementEnCours,labelElementEnCours ,erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
							labelElementEnCours = "";
							idElementEnCours = "";
							erreurElementEnCours = "";	
							typeATester ="";
						}
							
						//***************************************
						//* Gestion des inputs					*
						//***************************************
						if(typeATester == typeInput){
							if(estDeTypeInput(typeDeTest)){
								//***************************************
								//* Cas d'une date						*
								//***************************************
								if(typeDeTest == typeDate){
									isErreur = dateKO(idJour, idMois, idAnnee, labelElementEnCours, erreurElementEnCours, idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									labelElementEnCours = "";
									erreurElementEnCours = "";	
									idJour = "";
									idMois = "";
									idAnnee = "";
									dateTemp = 0;		
									typeDeTest = "";	
								}
								//***************************************
								//* Cas d'un horaire sur 2 champs		*
								//***************************************
								if(typeDeTest == typeHoraire){
									isErreur = horaireKO(idHeure, idMinute, labelElementEnCours, erreurElementEnCours, idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									labelElementEnCours = "";
									erreurElementEnCours = "";	
									idHeure = "";
									idMinute = "";
									heureTemp = 0;		
									typeDeTest = "";	
								}
								//***************************************
								//* Cas du numero de securite social	*
								//***************************************
								if(typeDeTest == typeNumSecuriteSocial){
									var nbreChamp = 7;
									if(idSecSoc1 == idStop){nbreChamp = 1;}	
									if(idSecSoc2 == idStop){nbreChamp = 2;}
									if(idSecSoc3 == idStop){nbreChamp = 3;}
									if(idSecSoc4 == idStop){nbreChamp = 4;}	
									if(idSecSoc5 == idStop){nbreChamp = 5;}
									if(idSecSoc6 == idStop){nbreChamp = 6;}
									isErreur = saisieKO(verifNumeroSecuriteSocial(nbreChamp, idSecSoc1, idSecSoc2, idSecSoc3, idSecSoc4, idSecSoc5, idSecSoc6, idSecSoc7, labelElementEnCours, erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
									//isErreur = numeroSecuriteSocialKO(idSecSoc1, idSecSoc2, idSecSoc3, idSecSoc4, idSecSoc5, idSecSoc6, idSecSoc7, labelElementEnCours, erreurElementEnCours, idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									labelElementEnCours = "";
									erreurElementEnCours = "";
									idSecSoc1 = "";	
									idSecSoc2 = "";	
									idSecSoc3 = "";	
									idSecSoc4 = "";	
									idSecSoc5 = "";	
									idSecSoc6 = "";	
									idSecSoc7 = "";	
									numSecSocTemp = 0;		
									typeDeTest = "";	
								}
								//***********************************************
								//* Cas du numero de l'organisme de sec sociale *
								//***********************************************
								if(typeDeTest == typeNumOrganismSecuriteSocial){
									isErreur = verifNumeroOrganismeSecuriteSocial(idNumOrgSecSoc1, idNumOrgSecSoc2, labelElementEnCours, erreurElementEnCours, idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									labelElementEnCours = "";
									erreurElementEnCours = "";
									idNumOrgSecSoc1 = "";	
									idNumOrgSecSoc2 = "";	
									numOrgSecSocTemp = 0;		
									typeDeTest = "";	
								}
								//***********************************************
								//* Cas du numero de RIB						*
								//***********************************************
								if(typeDeTest == typeRIB){
									var nbreChamp = 4;
									if(idCodeEtablissement == idStop){nbreChamp = 1;}	
									if(idCodeGuichet == idStop){nbreChamp = 2;}
									if(idNumeroCompte == idStop){nbreChamp = 3;}
									isErreur = saisieKO(verifRIB(nbreChamp, idCodeEtablissement, idCodeGuichet, idNumeroCompte, idCleRIB, labelElementEnCours, erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									labelElementEnCours = "";
									erreurElementEnCours = "";
									idCodeEtablissement = "";	
									idCodeGuichet = "";	
									idNumeroCompte = "";	
									idCleRIB = "";	
									ribTemp = 0;		
									typeDeTest = "";	
								}
								//***************************************
								//* Cas d'un code postal				*
								//***************************************
								if(typeDeTest == typeCP){
									isErreur = saisieKO(verifCodePostal(idElementEnCours, labelElementEnCours, erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									typeDeTest = "";
									idElementEnCours = "";
									labelElementEnCours = "";
									erreurElementEnCours = "";	
								}
								//***************************************
								//* Gestion du bouton checkBox			*
								//***************************************
								if(typeDeTest == typeCheckBox){
									isErreur = saisieKO(verifCheckBox(idCheckBox, labelElementEnCours, erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
									
									// Remise à zéro des variables
									labelElementEnCours = "";
									idCheckBox = "";
									erreurElementEnCours = "";	
									typeDeTest = "";	
								}
								//***************************************
								//* Gestion de plusieurs checkBox		*
								//***************************************
								if(typeDeTest == typeXCheckBox){
									isErreur = saisieKO(verifXCheckBox(idXCheckBox1, idXCheckBox2, idXCheckBox3, idXCheckBox4, idXCheckBox5, idXCheckBox6, idXCheckBox7, idXCheckBox8, idXCheckBox9, idXCheckBox10, idXCheckBox11, idXCheckBox12,labelElementEnCours, erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
									
									// Remise à zéro des variables
									labelElementEnCours = "";
									idXCheckBox1 = "";
									idXCheckBox2 = "";
									idXCheckBox3 = "";
									idXCheckBox4 = "";
									idXCheckBox5 = "";
									idXCheckBox6 = "";
									idXCheckBox7 = "";
									idXCheckBox8 = "";
									idXCheckBox9 = "";
									idXCheckBox10 = "";
									idXCheckBox11 = "";
									idXCheckBox12 = "";
									erreurElementEnCours = "";	
									typeDeTest = "";	
								}
								//*******************************************
								//* Gestion des radios boutons 1 ou 2 ou 3	*
								//*******************************************
								if(typeDeTest == type3Boutons){
									isErreur = saisieKO(verif3RadioButton(idRadio1, idRadio2, idRadio3, labelElementEnCours, erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									labelElementEnCours = "";
									idRadio1 = "";
									idRadio2 = "";
									idRadio3 = "";
									radioTemp = 0;
									erreurElementEnCours = "";		
									typeDeTest = "";	
								}
								//***************************************
								//* Gestion du numero de tel			*
								//***************************************
								if(typeDeTest == typeTel){
									isErreur = saisieKO(verifTelephone(idElementEnCours, labelElementEnCours, erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
									// Remise à zéro des variables
									labelElementEnCours = "";
									idElementEnCours = "";
									erreurElementEnCours = "";	
									typeDeTest = "";	
								}
							}
							else{
								//***************************************
								//* Cas d'un input standard				*
								//***************************************
								isErreur = saisieKO(verifInput(idElementEnCours,labelElementEnCours ,erreurElementEnCours), idStop, ancreCible, ancreEnCours, isErreur);
								// Remise à zéro des variables
								idElementEnCours = "";
								labelElementEnCours = "";
								erreurElementEnCours = "";	
								typeATester ="";
							}
						}
					}
				}
			}
		}
		//***********************************************************************************
		//* Phase 6 :Fin du test de l'ensemble de la page pour passer à la suivante			*
		//***********************************************************************************
		if(isErreur){
			return false;
		}
		else{
			return true;
		}
 }
//***********************************************************************************
//* Verification si on a atteind la fin du test de saisie utilisateur				*
//***********************************************************************************
 function testFinScriptSaisiUtilisateur(erreurElementEnCours,labelErreurDeFin){
 var fini = "";	
 	if(erreurElementEnCours == labelErreurDeFin){
		fini = "fini";
		return fini;
	}
	else{
		fini = "";
		return fini;
	}
}	
 
 function SanteNombreAutreBenefResetErreur(nombreBenef){
	for (var i = nombreBenef; i < 6; i++) {
		supErreur = parseInt(i)+1;
	 	document.getElementById('erreurQualite' + supErreur).style.visibility = 'hidden';
	 	document.getElementById('labelQualite' + supErreur).className = '';
	 	
	 	document.getElementById('erreurDateNaiss' + supErreur).style.visibility = 'hidden';
	 	document.getElementById('labelDateNaissance'+ supErreur).className = '';
	 	document.getElementById('date_naissance_autre'+ supErreur +'_jour').style.borderColor = couleurNormale;
		document.getElementById('date_naissance_autre'+ supErreur +'_mois').style.borderColor = couleurNormale;
		document.getElementById('date_naissance_autre'+ supErreur +'_annee').style.borderColor = couleurNormale;
	 	
	 	document.getElementById('erreurSexe' + supErreur).style.visibility = 'hidden';
	 	document.getElementById('label2RadioButtonSexe' + supErreur).className = '';
	 	
	 	document.getElementById('erreurRegimeSocial' + supErreur).style.visibility = 'hidden';
	 	document.getElementById('labelRegimeSocial' + supErreur).className = '';
	}
 }
//***********************************************************************************
//* Récupération du label afin de déterminer le type de saisie a tester				*
//***********************************************************************************
function traitementLabels(labelElementEnCours){
	var typeDeTest = "";
	var label = new RegExp('label');			
	var labelDate = new RegExp('labelDate');
	var labelNumSecuriteSocial = new RegExp('labelNumSecuriteSocial');
	var labelNumOrgSecuriteSocial = new RegExp('labelNumOrgSecuriteSocial');
	var labelRIB = new RegExp('labelRIB');
	var labelCP = new RegExp('labelCP');
	var labelTel = new RegExp('labelTel');
	var labelCheckBox = new RegExp('labelCheckBox');
	var labelXCheckBox = new RegExp('labelXCheckBox');
	var label3RadioButton = new RegExp('label3RadioButton');
	var labelHeure = new RegExp('labelHeure');
	
	var typeDate = "typeDate";
	var typeNumSecuriteSocial = "typeNumSecuriteSocial";
	var typeNumOrganismSecuriteSocial = "typeNumOrganismSecuriteSocial";
	var typeRIB = "typeRIB";
	var typeCP = "typeCP";
	var typeTel = "typeTel";
	var typeCheckBox = "typeCheckBox";
	var typeXCheckBox = "typeXCheckBox";
	var type3Boutons = "type3Boutons";

	var typeHoraire = "typeHoraire";
	
		// On va tester une heure
		if(labelElementEnCours.search(labelHeure) >= 0){
			typeDeTest = typeHoraire;
		}
		// On va tester une date
		if(labelElementEnCours.search(labelDate) >= 0){
			typeDeTest = typeDate;
		}
		// On va tester un numero de securite social
		if(labelElementEnCours.search(labelNumSecuriteSocial) >= 0){
			typeDeTest = typeNumSecuriteSocial;
		}
		// On va tester un numero d'organisme de securite social
		if(labelElementEnCours.search(labelNumOrgSecuriteSocial) >= 0){
			typeDeTest = typeNumOrganismSecuriteSocial;
		}
		// On va tester un RIB
		if(labelElementEnCours.search(labelRIB) >= 0){
			typeDeTest = typeRIB;
		}
		// On va tester un code postal
		if(labelElementEnCours.search(labelCP) >= 0){
			typeDeTest = typeCP;
		}
		// On va tester 1 checkBox
		if(labelElementEnCours.search(labelCheckBox) >= 0){
			typeDeTest = typeCheckBox;
		}
		// On va tester X checkBox
		if(labelElementEnCours.search(labelXCheckBox) >= 0){
			typeDeTest = typeXCheckBox;
		}

		// On va tester 1 ou 2 ou 3 radios button
		if(labelElementEnCours.search(label3RadioButton) >= 0){
			typeDeTest = type3Boutons;
		}
		// On va tester un telephone
		if(labelElementEnCours.search(labelTel) >= 0){
			typeDeTest = typeTel;
		}
		return typeDeTest;
}	
   
 function testAndSubmit(nomDuFORM, labelErreurDeFin, idStop, pageSuivante){
 	var retour = testSaisieUtilisateur(nomDuFORM, labelErreurDeFin, idStop, pageSuivante); 
	 if(retour){
	 	setMethodAndSubmit(pageSuivante);
	 }
	 else{
	 if(idStop == 'devis3_clientoui' || idStop == 'devis3_clientnon'){
		document.getElementById(idStop).checked = null;
		}
	 }
 }
 
 function submitFormulaireApresVerifSaisie(nomDuFORM, labelErreurDeFin, idStop){
 	var retour = testSaisieUtilisateur(nomDuFORM, labelErreurDeFin, idStop, ' '); 
	 if(retour){
	 	document.getElementById(nomDuFORM).submit();
	 }
 }
 
 function supprimeCssClassErreur(idtarget){
 	var classCss = document.getElementById(idtarget).className;
  		if(classCss!=null && classCss!=''){
  			var posChmpErr = classCss.indexOf('erreur_champ',0);
  			if(posChmpErr!=-1){
  				document.getElementById(idtarget).className = document.getElementById(idtarget).className.substring(0,posChmpErr);
  			}
  		}
 }
 
 function ajouteCssClassErreur(idtarget){
 	var classCss = document.getElementById(idtarget).className;
		var posChmpErr = classCss.indexOf(' erreur_champ',0);
		if(posChmpErr==-1){
			document.getElementById(idtarget).className= document.getElementById(idtarget).className+' erreur_champ';
		}
 }
function ajouteCssClassErreurByIdElement(idtarget, cssErreur){
 	var classCss = document.getElementById(idtarget).className;
	var posChmpErr = classCss.indexOf(' '+cssErreur,0);
	if(posChmpErr==-1){
		document.getElementById(idtarget).className= document.getElementById(idtarget).className+' '+cssErreur;
	}
}
function supprimeCssClassErreurByIdElement(idtarget, cssErreur){
 	var classCss = document.getElementById(idtarget).className;
  		if(classCss!=null && classCss!=''){
  			var posChmpErr = classCss.indexOf(cssErreur,0);
  			if(posChmpErr!=-1){
  				document.getElementById(idtarget).className = document.getElementById(idtarget).className.substring(0,posChmpErr);
  			}
  		}
}
 
function estAffiche(elementEnTest, fini, optionnel){
	if(elementEnTest != null && fini =='' && elementEnTest.style.display != 'none'
		&& elementEnTest.parentNode.style.display != 'none'
		&& elementEnTest.parentNode.parentNode.style.display != 'none' 
		&& elementEnTest.parentNode.parentNode.parentNode.style.display != 'none'
		&& elementEnTest.parentNode.parentNode.parentNode.parentNode.style.display != 'none'
		&& elementEnTest.parentNode.parentNode.parentNode.parentNode.parentNode.style.display != 'none'
		&& elementEnTest.id.search(optionnel) < 0
		&& elementEnTest.parentNode.id.search(optionnel) < 0
		&& elementEnTest.parentNode.parentNode.id.search(optionnel) < 0
		&& elementEnTest.parentNode.parentNode.parentNode.id.search(optionnel) < 0
		&& elementEnTest.parentNode.parentNode.parentNode.parentNode.id.search(optionnel) < 0
		&& elementEnTest.parentNode.parentNode.parentNode.parentNode.parentNode.id.search(optionnel) < 0){
			return true;	
	}
	else{
		return false;
	}
} 

function recupXidInputsConsecutifs(Xcourant, idElementEnTest, id){
	id[Xcourant] = idElementEnTest;
	Xcourant = Xcourant + 1;
	var tableau= new Array();
	tableau = [Xcourant, id];
	return(tableau);
}
function estDeTypeInput(typeDeTest){
	var typeDate = "typeDate";
	var typeNumSecuriteSocial = "typeNumSecuriteSocial";
	var typeNumOrganismSecuriteSocial = "typeNumOrganismSecuriteSocial";
	var typeRIB = "typeRIB";
	var typeCP = "typeCP";
	var typeTel = "typeTel";
	var typeCheckBox = "typeCheckBox";
	var typeXCheckBox = "typeXCheckBox";
	var type3Boutons = "type3Boutons";
	var typeInput = "typeInput";
	var typeHoraire = "typeHoraire";

	if(typeDeTest == typeDate 
		|| typeDeTest == typeHoraire 
		|| typeDeTest == typeCP 
		|| typeDeTest == typeCheckBox 
		|| typeDeTest == typeXCheckBox 
		|| typeDeTest == type3Boutons
		|| typeDeTest == typeNumSecuriteSocial
		|| typeDeTest == typeNumOrganismSecuriteSocial
		|| typeDeTest == typeRIB
		|| typeDeTest == typeInput
		|| typeDeTest == typeTel ){
			return true;
	}
	else{
		return false;
	}
}

//*******************************************************************************
//* 			Fonctions pour la gestion de la date							*
//*******************************************************************************
function dateKO(idJour, idMois, idAnnee, labelElementEnCours, erreurElementEnCours, idStop, ancreCible, ancreEnCours, isErreur){
	//on test le jour si l'utilisateur est en train de le modifier
	if(idJour == idStop){
		if (!verifJours(idJour, idMois, idAnnee, labelElementEnCours, erreurElementEnCours)){
			if(ancreCible == ""){
				ancreCible = ancreEnCours;
				ancreARejoindre(ancreCible);
				isErreur = true
				return isErreur;
			}
		}
	}
	else{
		//on test le jour et le mois si la saisie en cours de l'utilisateur est postérieur à cet élément
		if(idMois == idStop){
			if (!verifJours(idJour, idMois, idAnnee, labelElementEnCours, erreurElementEnCours) || !verifMois(idJour, idMois, idAnnee, labelElementEnCours, erreurElementEnCours)){
				if(ancreCible == ""){
					ancreCible = ancreEnCours;
					ancreARejoindre(ancreCible);
					isErreur = true
					return isErreur;
				}
			}
		}
		else{
			//on test l'année complète si la saisie en cours de l'utilisateur est postérieur à cet élément
			if (!verifJoursMoisAnnee(idJour, idMois, idAnnee, labelElementEnCours, erreurElementEnCours)){
				if(ancreCible == ""){
					ancreCible = ancreEnCours;
					ancreARejoindre(ancreCible);
					isErreur = true
					return isErreur;
				}
			}
		}
	}
	return isErreur;
}
//*******************************************************************************
//* 			Fonctions pour la gestion des horaires							*
//*******************************************************************************
function horaireKO(idHeure, idMinute, labelElementEnCours, erreurElementEnCours, idStop, ancreCible, ancreEnCours, isErreur){
	//on test l heure si l'utilisateur est en train de le modifier
	if(idHeure == idStop){
		if (!verifHeure(idHeure, idMinute, labelElementEnCours, erreurElementEnCours)){
			if(ancreCible == ""){
				ancreCible = ancreEnCours;
				ancreARejoindre(ancreCible);
				isErreur = true
				return isErreur;
			}
		}
	}
	else{
		//on test l heure et les minutes si la saisie en cours de l'utilisateur est postérieur à cet élément
		if (!verifHeure(idHeure, labelElementEnCours, erreurElementEnCours) || !verifMinute(idHeure, labelElementEnCours, erreurElementEnCours)){
			if(ancreCible == ""){
				ancreCible = ancreEnCours;
				ancreARejoindre(ancreCible);
				isErreur = true
				return isErreur;
			}
		}
	}
	return isErreur;
}
 function verifHeure(idHeure, labelErreur, messageAactiverSiErreur) {
  var heure = document.getElementById(idHeure).value; 
    
	if (heure < 0 || heure > 23) {
		if(heure != '' || minuteTemp != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML = verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idHeure).style.borderColor = couleurErreur;
		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
		ajouteCssClassErreur(labelErreur);
		return false;
	}
	else{
		document.getElementById(messageAactiverSiErreur).style.visibility = 'hidden';
		document.getElementById(idHeure).style.borderColor = couleurNormale;
		if(minuteTemp!= null && minuteTemp!=''){
			document.getElementById(idMinute).style.borderColor = couleurNormale;
			supprimeCssClassErreur(labelErreur);
		}
		return true;
	}
}
 function verifMinute(idMinute, labelErreur, messageAactiverSiErreur) {
  var minute = document.getElementById(idMinute).value; 
  var moisTemp = document.getElementById(idMinute).value;
    
	if (minute < 0 || minute > 59) {
		if(minute != '' || minuteTemp != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML = verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idMinute).style.borderColor = couleurErreur;
		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
		ajouteCssClassErreur(labelErreur);
		return false;
	}
	else{
		document.getElementById(messageAactiverSiErreur).style.visibility = 'hidden';
		document.getElementById(idMinute).style.borderColor = couleurNormale;
		if(minuteTemp!= null && minuteTemp!=''){
			document.getElementById(idMinute).style.borderColor = couleurNormale;
			supprimeCssClassErreur(labelErreur);
		}
		return true;
	}
}
 function verifJours(idJour, idMois, idAnnee, labelErreur, messageAactiverSiErreur) {
  var jour = document.getElementById(idJour).value; 
  var moisTemp = document.getElementById(idMois).value;
  var anneeTemp = document.getElementById(idAnnee).value;
    
	if (jour < 1 || jour > 31) {
		if(jour != '' || moisTemp != '' || anneeTemp != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML = verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idJour).style.borderColor = couleurErreur;
		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
		ajouteCssClassErreur(labelErreur);
		
		return false;
	}
	else{
		document.getElementById(messageAactiverSiErreur).style.visibility = 'hidden';
		document.getElementById(idJour).style.borderColor = couleurNormale;
		if(moisTemp!= null && moisTemp!=''){
			document.getElementById(idMois).style.borderColor = couleurNormale;
			supprimeCssClassErreur(labelErreur);
		}
		if(anneeTemp!= null && anneeTemp!=''){
			document.getElementById(idAnnee).style.borderColor = couleurNormale;
			supprimeCssClassErreur(labelErreur);
		}
		return true;
	}
}

function verifMois(idJour, idMois, idAnnee, labelErreur, messageAactiverSiErreur) {
  var joursTemp = document.getElementById(idJour).value;
  var mois = document.getElementById(idMois).value;
  var anneeTemp = document.getElementById(idAnnee).value;
  
	if (mois < 1 || mois > 12) {
		if(joursTemp != '' || mois != '' || anneeTemp != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}	
		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
		document.getElementById(idMois).style.borderColor = couleurErreur;
		ajouteCssClassErreur(labelErreur);
		
		return false;
	}
	else{
		document.getElementById(messageAactiverSiErreur).style.visibility = 'hidden';
		document.getElementById(idMois).style.borderColor = couleurNormale;
		if(joursTemp!= null && joursTemp!=''){
			document.getElementById(idJour).style.borderColor = couleurNormale;
			supprimeCssClassErreur(labelErreur);
		}
		if(anneeTemp!= null && anneeTemp!=''){
			document.getElementById(idAnnee).style.borderColor = couleurNormale;
			supprimeCssClassErreur(labelErreur);
		}
		return true;
	}
}

 function verifJoursMoisAnnee(idJour, idMois, idAnnee, labelErreur, messageAactiverSiErreur) {
   var jour = document.getElementById(idJour).value; 
   var mois = document.getElementById(idMois).value;
   var annee = document.getElementById(idAnnee).value;  
   var date_regexp=/^\d{4}$/;
  // var cssErreurChamp = erreur_champ;
   
   
 	if (jour > 0 && jour < 32 && mois > 0 && mois < 13 && annee.match(date_regexp)) {
		document.getElementById(idJour).style.borderColor = couleurNormale;
		document.getElementById(idMois).style.borderColor = couleurNormale;
		document.getElementById(idAnnee).style.borderColor = couleurNormale;
		document.getElementById(messageAactiverSiErreur).style.visibility = 'hidden';
		supprimeCssClassErreur(labelErreur);
		return true;
	}
	else{
		if(jour != '' || mois != '' || annee != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		document.getElementById(idJour).style.borderColor = couleurErreur;
		document.getElementById(idMois).style.borderColor = couleurErreur;
   		document.getElementById(idAnnee).style.borderColor = couleurErreur;
   		ajouteCssClassErreur(labelErreur);
   		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
   		
   		return false;
	}
}

//*******************************************************************************
//* 			Fonction pour la gestion du numero de securite social			*
//*******************************************************************************
 function verifNumeroSecuriteSocial(NombreInputSaisie, idNum1, idNum2, idNum3, idNum4, idNum5, idNum6, idNum7, labelErreur, messageAactiverSiErreur) {

	if (idNum1 != ''){
   		var num1 = document.getElementById(idNum1).value;
   	}	 
	if (idNum2 != ''){
   		var num2 = document.getElementById(idNum2).value;
   	}	 
	if (idNum3 != ''){
	   var num3 = document.getElementById(idNum3).value;
	}    
	if (idNum4 != ''){
	   var num4 = document.getElementById(idNum4).value;
	}    
	if (idNum5 != ''){
	   var num5 = document.getElementById(idNum5).value; 
   	}
	if (idNum6 != ''){
	   var num6 = document.getElementById(idNum6).value; 
	}
	if (idNum7 != ''){
   		var num7 = document.getElementById(idNum7).value;
   	}	 
	var ok = true;
	
	if(NombreInputSaisie == 1){
		ok = verifUnChiffre(idNum1, labelErreur, messageAactiverSiErreur);
		if(num1 != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		}
		else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}
	}
	else{
		if(NombreInputSaisie == 2){
			var n1 = verifUnChiffre(idNum1, labelErreur, messageAactiverSiErreur); 
			var n2 = verifDeuxChiffres(idNum2, labelErreur, messageAactiverSiErreur);			
			ok = (n1 && n2);
			if(num1 != '' || num2 != ''){
				document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
			}
			else{
				document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
			}
		}
		else{
			if(NombreInputSaisie == 3){
				var n1 = verifUnChiffre(idNum1, labelErreur, messageAactiverSiErreur);
				var n2 = verifDeuxChiffres(idNum2, labelErreur, messageAactiverSiErreur);	
				var n3 = verifDeuxChiffres(idNum3, labelErreur, messageAactiverSiErreur);	
				ok = (n1 && n2 && n3);
				if(num1 != '' || num2 != '' || num3 != ''){
					document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
				}
				else{
					document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
				}
			}
			else{
				if(NombreInputSaisie == 4){
					var n1 = verifUnChiffre(idNum1, labelErreur, messageAactiverSiErreur);
					var n2 = verifDeuxChiffres(idNum2, labelErreur, messageAactiverSiErreur);	
					var n3 = verifDeuxChiffres(idNum3, labelErreur, messageAactiverSiErreur);	
					var n4 = verifDeuxChiffresOuLettresAB(idNum4, labelErreur, messageAactiverSiErreur);
					ok = (n1 && n2 && n3 && n4);
					if(num1 != '' || num2 != '' || num3 != '' || num4 != ''){
						document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
					}
					else{
						document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
					}
				}
				else{
					if(NombreInputSaisie == 5){
						var n1 = verifUnChiffre(idNum1, labelErreur, messageAactiverSiErreur);
						var n2 = verifDeuxChiffres(idNum2, labelErreur, messageAactiverSiErreur);	
						var n3 = verifDeuxChiffres(idNum3, labelErreur, messageAactiverSiErreur);	
						var n4 = verifDeuxChiffresOuLettresAB(idNum4, labelErreur, messageAactiverSiErreur);
						var n5 = verifTroisChiffres(idNum5, labelErreur, messageAactiverSiErreur); 
						ok = (n1 && n2 && n3 && n4 && n5);
						if(num1 != '' || num2 != '' || num3 != '' || num4 != '' || num5 != ''){
							document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
						}
						else{
							document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
						}
					}
					else{
						if(NombreInputSaisie == 6){
							var n1 = verifUnChiffre(idNum1, labelErreur, messageAactiverSiErreur);
							var n2 = verifDeuxChiffres(idNum2, labelErreur, messageAactiverSiErreur);	
							var n3 = verifDeuxChiffres(idNum3, labelErreur, messageAactiverSiErreur);	
							var n4 = verifDeuxChiffresOuLettresAB(idNum4, labelErreur, messageAactiverSiErreur);
							var n5 = verifTroisChiffres(idNum5, labelErreur, messageAactiverSiErreur); 
							var n6 = verifTroisChiffres(idNum6, labelErreur, messageAactiverSiErreur);
							ok = (n1 && n2 && n3 && n4 && n5 && n6);
							if(num1 != '' || num2 != '' || num3 != '' || num4 != '' || num5 != '' || num6 != ''){
								document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
							}
							else{
								document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
							}
						}
						else{
							if(NombreInputSaisie == 7){
								var n1 = verifUnChiffre(idNum1, labelErreur, messageAactiverSiErreur);
								var n2 = verifDeuxChiffres(idNum2, labelErreur, messageAactiverSiErreur);	
								var n3 = verifDeuxChiffres(idNum3, labelErreur, messageAactiverSiErreur);	
								var n4 = verifDeuxChiffresOuLettresAB(idNum4, labelErreur, messageAactiverSiErreur);
								var n5 = verifTroisChiffres(idNum5, labelErreur, messageAactiverSiErreur); 
								var n6 = verifTroisChiffres(idNum6, labelErreur, messageAactiverSiErreur);
				 				var n7 = verifDeuxChiffres(idNum7, labelErreur, messageAactiverSiErreur);
								ok = (n1 && n2 && n3 && n4 && n5 && n6 && n7);
								if(num1 != '' || num2 != '' || num3 != '' || num4 != '' || num5 != '' || num6 != '' || num7 != ''){
									document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
								}
								else{
									document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
								}
							}
						}
					}
				}
			}
		}
	}
 	if (ok){
		document.getElementById(messageAactiverSiErreur).style.visibility = 'hidden';
		supprimeCssClassErreur(labelErreur);
		return true;
	}	
	else{
		ajouteCssClassErreur(labelErreur);
		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
		
		return false;
	}
}

function verifNumeroOrganismeSecuriteSocial(idNumOrgSecSoc1, idNumOrgSecSoc2, labelElementEnCours, erreurElementEnCours, idStop, ancreCible, ancreEnCours, isErreur){
	if(idNumOrgSecSoc1 == idStop){
		if(!verifInput(idNumOrgSecSoc1,labelElementEnCours ,erreurElementEnCours)){
			if(ancreCible == ""){
				isErreur = true;
				ancreCible = ancreEnCours;
				ancreARejoindre(ancreCible);
			}
		}	
	}
	else{
		var num1 = verifInput(idNumOrgSecSoc1,labelElementEnCours ,erreurElementEnCours);
		var num2 = verifInput(idNumOrgSecSoc2,labelElementEnCours ,erreurElementEnCours);
		if(!num1 || !num2){
			if(ancreCible == ""){
				isErreur = true;
				ancreCible = ancreEnCours;
				ancreARejoindre(ancreCible);
			}
		}
	}
	return isErreur;
}

//*******************************************************************************
//* 			Fonction pour la gestion du RIB								*
//*******************************************************************************
function verifRIB(NombreInputSaisie, idCodeEtab, idCodeGuichet, idNumCompte, idCleRib, labelErreur, messageAactiverSiErreur) {
	if (idCodeEtab != ''){
   		var codeEtab = document.getElementById(idCodeEtab).value;
   	}	 
	if (idCodeGuichet != ''){
   		var codeGuichet = document.getElementById(idCodeGuichet).value;
   	}	 
	if (idNumCompte != ''){
	   var numCompte = document.getElementById(idNumCompte).value;
	}    
	if (idCleRib != ''){
	   var cleRib = document.getElementById(idCleRib).value;
	}    
	var ok = true;
	
	if(NombreInputSaisie == 1){
		ok = verifInput(idCodeEtab,labelErreur ,messageAactiverSiErreur);
		if (codeEtab.length < 5){
			ok = false;
		}
	}
	else{
		if(NombreInputSaisie == 2){
			var n1 = verifInput(idCodeEtab,labelErreur ,messageAactiverSiErreur);
			var n2 = verifInput(idCodeGuichet,labelErreur ,messageAactiverSiErreur);		
			ok = (n1 && n2);
			if (codeGuichet.length < 5){
				ok = false;
			}
		}
		else{
			if(NombreInputSaisie == 3){
				var n1 = verifInput(idCodeEtab,labelErreur ,messageAactiverSiErreur);
				var n2 = verifInput(idCodeGuichet,labelErreur ,messageAactiverSiErreur);	
				var n3 = verifInput(idNumCompte,labelErreur ,messageAactiverSiErreur);	
				ok = (n1 && n2 && n3);
				if (numCompte.length < 11){
					ok = false;
				}
			}
			else{
				if(NombreInputSaisie == 4){
					var n1 = verifInput(idCodeEtab,labelErreur ,messageAactiverSiErreur);
					var n2 = verifInput(idCodeGuichet,labelErreur ,messageAactiverSiErreur);	
					var n3 = verifInput(idNumCompte,labelErreur ,messageAactiverSiErreur);		
					var n4 = verifInput(idCleRib,labelErreur ,messageAactiverSiErreur);
					ok = (n1 && n2 && n3 && n4);
					if (cleRib.length < 2){
						ok = false;
					}
				}
			}
		}
	}
 	if (ok){
		document.getElementById(messageAactiverSiErreur).style.visibility = 'hidden';
		supprimeCssClassErreur(labelErreur);
		return true;
	} else{
		if(codeEtab != '' || codeGuichet != '' || numCompte != '' || cleRib != ''){
			document.getElementById(messageAactiverSiErreur).innerHTML=verifierLeFormat;
		} else{
			document.getElementById(messageAactiverSiErreur).innerHTML=champObligatoire;
		}		
		ajouteCssClassErreur(labelErreur);
		document.getElementById(messageAactiverSiErreur).style.visibility = 'visible';
		
		return false;
	}
}

//*******************************************************************************
//* 			Fonction pour la gestion du code postal						*
//*******************************************************************************
function verifCodePostal(idATester, labelErreur, aRendreVisible) {	
// Test si la zone input est vide
 	var CP_regexp=/^\d{5}$/
 	var saisie = document.getElementById(idATester).value; 

    if ( saisie == "" || saisie == null)
    {
    	document.getElementById(aRendreVisible).innerHTML=champObligatoire;
    	document.getElementById(aRendreVisible).style.visibility = 'visible';
    	ajouteCssClassErreurByIdElement(idATester,'bhcene_error');
    	ajouteCssClassErreur(labelErreur);
    	
    	return false;
    }
   	if(!saisie.match(CP_regexp) && saisie != "" && saisie != null){
   		document.getElementById(aRendreVisible).innerHTML=verifierLeFormat;
   		document.getElementById(aRendreVisible).style.visibility = 'visible';
   		ajouteCssClassErreurByIdElement(idATester,'bhcene_error');
   		ajouteCssClassErreur(labelErreur);
   		
   		return false;
   	}
    // cas cp au bon format
    if(saisie.match(CP_regexp)){
    	// test si erreur ajax 
    	// le champ de control doit correspondre à idATester + '_err' en hidden dans la page
    	// le champ doit être setter dans commune.js getCommuneHtml()
	    var champCpErr = document.getElementById(idATester+'_err');
	    if(champCpErr.value == '1') {
	    	document.getElementById(aRendreVisible).innerHTML=verifierLeFormat;
	   		document.getElementById(aRendreVisible).style.visibility = 'visible';
	   		ajouteCssClassErreurByIdElement(idATester,'bhcene_error');
	   		ajouteCssClassErreur(labelErreur);
	   		return false;
	    } else {
	    	document.getElementById(aRendreVisible).style.visibility = 'hidden';
	    	supprimeCssClassErreurByIdElement(idATester, 'bhcene_error');
	    	supprimeCssClassErreur(labelErreur);
    		return true;
	    }
    }
}

//*******************************************************************************
//* 			Fonction pour la gestion du checkbox							*
//*******************************************************************************
function verifCheckBox(idCheckBox, labelErreur1, aRendreVisible) {
  var checkBox = document.getElementById(idCheckBox).checked;
	if (checkBox == true) {
		// Pas d'erreur	
		document.getElementById(aRendreVisible).style.visibility = 'hidden';
		supprimeCssClassErreur(labelErreur1);
		return true;
	}
	else{
		// Erreur pas de coche	
		document.getElementById(aRendreVisible).style.visibility = 'visible';
		ajouteCssClassErreur(labelErreur1);
		return false;
	}
}

//***********************************************************************************
//* 			Fonction pour la gestion de plusieurs Checkbox (jusqua 5 checkbox)	*
//***********************************************************************************
 function verifXCheckBox(idXCheckBox1, idXCheckBox2, idXCheckBox3, idXCheckBox4, idXCheckBox5, idXCheckBox6, idXCheckBox7, idXCheckBox8, idXCheckBox9, idXCheckBox10, idXCheckBox11, idXCheckBox12, labelErreur, aRendreVisible) {
 	var buttonSelect1 = false;
 	var buttonSelect2 = false;
  	var buttonSelect3 = false;
  	var buttonSelect4 = false;
  	var buttonSelect5 = false;
  	var buttonSelect6 = false;
  	var buttonSelect7 = false;
  	var buttonSelect8 = false;
  	var buttonSelect9 = false;
  	var buttonSelect10 = false;
  	var buttonSelect11 = false;
  	var buttonSelect12 = false;
  
    if(document.getElementById(idXCheckBox1)!= null ) buttonSelect1 = document.getElementById(idXCheckBox1).checked;
    if(document.getElementById(idXCheckBox2)!= null ) buttonSelect2 = document.getElementById(idXCheckBox2).checked;
    if(document.getElementById(idXCheckBox3)!= null ) buttonSelect3 = document.getElementById(idXCheckBox3).checked;
    if(document.getElementById(idXCheckBox4)!= null ) buttonSelect4 = document.getElementById(idXCheckBox4).checked;
    if(document.getElementById(idXCheckBox5)!= null ) buttonSelect5 = document.getElementById(idXCheckBox5).checked;
    if(document.getElementById(idXCheckBox6)!= null ) buttonSelect6 = document.getElementById(idXCheckBox6).checked;
    if(document.getElementById(idXCheckBox7)!= null ) buttonSelect7 = document.getElementById(idXCheckBox7).checked;
    if(document.getElementById(idXCheckBox8)!= null ) buttonSelect8 = document.getElementById(idXCheckBox8).checked;
    if(document.getElementById(idXCheckBox9)!= null ) buttonSelect9 = document.getElementById(idXCheckBox9).checked;
    if(document.getElementById(idXCheckBox10)!= null ) buttonSelect10 = document.getElementById(idXCheckBox10).checked;
    if(document.getElementById(idXCheckBox11)!= null ) buttonSelect11 = document.getElementById(idXCheckBox11).checked;
    if(document.getElementById(idXCheckBox12)!= null ) buttonSelect12 = document.getElementById(idXCheckBox12).checked;
	if ((buttonSelect1 == true  || buttonSelect2 == true || buttonSelect3 == true || buttonSelect4 == true || buttonSelect5 == true
		|| buttonSelect6 == true || buttonSelect7 == true || buttonSelect8 == true || buttonSelect9 == true 
		|| buttonSelect10 == true || buttonSelect11 == true || buttonSelect12 == true)) {
		// Pas d'erreur
		document.getElementById(aRendreVisible).style.visibility = 'hidden';
		supprimeCssClassErreur(labelErreur);
		return true;
	}
	else{
		// Erreur pas de coche	
		document.getElementById(aRendreVisible).style.visibility = 'visible';
		ajouteCssClassErreur(labelErreur);
		return false;
	}
}

//*******************************************************************************
//* 			Fonction pour la gestion des radio button (jusqua 3 boutons)	*
//*******************************************************************************
 function verif3RadioButton(idRadioButton1, idRadioButton2, idRadioButton3, labelErreur, aRendreVisible) {
 	var buttonSelect1 = false;
 	var buttonSelect2 = false;
  	var buttonSelect3 = false;
  
    if(document.getElementById(idRadioButton1)!= null ) buttonSelect1 = document.getElementById(idRadioButton1).checked;
    if(document.getElementById(idRadioButton2)!= null ) buttonSelect2 = document.getElementById(idRadioButton2).checked;
    if(document.getElementById(idRadioButton3)!= null ) buttonSelect3 = document.getElementById(idRadioButton3).checked;
	if ((buttonSelect1 == true  || buttonSelect2 == true || buttonSelect3 == true)) {
		// Pas d'erreur
		document.getElementById(aRendreVisible).style.visibility = 'hidden';
		supprimeCssClassErreur(labelErreur);
		return true;
	}
	else{
		// Erreur pas de coche	
		document.getElementById(aRendreVisible).style.visibility = 'visible';
		ajouteCssClassErreur(labelErreur);
		
		return false;
	}
}

//*******************************************************************************
//* 			Fonction pour la gestion du numero de tel						*
//*******************************************************************************
function verifTelephone(idATester, labelErreur, aRendreVisible) {	
// Test si la zone input est vide
 	var CP_regexp=/^\d{10}$/
 	var saisie = document.getElementById(idATester).value; 

    if (!saisie.match(CP_regexp) || saisie == "" || saisie == null || saisie.charAt(0) == ' ')
    {
    	if (saisie != ''){
    		document.getElementById(aRendreVisible).innerHTML = verifierLeFormat;
    	}
    	else{
    		document.getElementById(aRendreVisible).innerHTML=champObligatoire;
    	}
    	document.getElementById(aRendreVisible).style.visibility = 'visible';
    	document.getElementById(idATester).style.borderColor = couleurErreur;
    	ajouteCssClassErreur(labelErreur);
    	
    	return false;
    }
    else {
    	document.getElementById(aRendreVisible).style.visibility = 'hidden';
    	document.getElementById(idATester).style.borderColor = couleurNormale;
    	supprimeCssClassErreur(labelErreur);
    	return true;
    }
}

//*******************************************************************************
//* 			Fonction pour la gestion des inputs								*
//*******************************************************************************
function verifInput(idATester, labelErreur, aRendreVisible) {	
// Test si la zone input est vide
 	
 	var saisie = document.getElementById(idATester).value; 

    if (saisie == "" || saisie == null || saisie.charAt(0) == ' ')
    {
    	document.getElementById(aRendreVisible).style.visibility = 'visible';
    	document.getElementById(idATester).style.borderColor = couleurErreur;
    	ajouteCssClassErreur(labelErreur);
    	return false;
    }
    else {
    	document.getElementById(aRendreVisible).style.visibility = 'hidden';
    	document.getElementById(idATester).style.borderColor = couleurNormale;
    	supprimeCssClassErreur(labelErreur);
    	return true;
    }
}
//*******************************************************************************
//* 			Fonction pour la gestion des textarea								*
//*******************************************************************************
function verifTextarea(idATester, labelErreur, aRendreVisible) {	
// Test si la zone textarea est vide
 	
 	var saisie = document.getElementById(idATester).value; 

    if (saisie == "" || saisie == null || saisie.charAt(0) == ' ')
    {
    	document.getElementById(aRendreVisible).style.visibility = 'visible';
    	document.getElementById(idATester).style.borderColor = couleurErreur;
    	ajouteCssClassErreur(labelErreur);
    	return false;
    }
    else {
    	document.getElementById(aRendreVisible).style.visibility = 'hidden';
    	document.getElementById(idATester).style.borderColor = couleurNormale;
    	supprimeCssClassErreur(labelErreur);
    	return true;
    }
}

//*******************************************************************************
//* 			Fonction pour la gestion des selects							*
//*******************************************************************************
function verifSelect(idATester,labelErreur ,aRendreVisible) {
	// Test si la zone Select est renseigné
	var valeur ='';
	var choix ='';
	var choix = document.getElementById(idATester).selectedIndex;
	var taille = document.getElementById(idATester).length;
	if(taille > 0) {
		valeur = document.getElementById(idATester).options[choix].value;
	}
	
	    if (valeur == "" || valeur == null || valeur == ' - Choisissez - ' || valeur == '--Votre Marque--' || valeur.charAt(0) == ' ' || valeur == '--')
	    {
	    	document.getElementById(aRendreVisible).style.visibility = 'visible';
	    	ajouteCssClassErreurByIdElement(idATester, 'bhcene_error');
	    	ajouteCssClassErreur(labelErreur);
	    	return false;
	    }
	    else {
	    	document.getElementById(aRendreVisible).style.visibility = 'hidden';
	    	supprimeCssClassErreurByIdElement(idATester, 'bhcene_error');
	    	supprimeCssClassErreur(labelErreur);
	    	return true;
	    }
}
//*******************************************************************************
//* 			Fonction d'appel de vérification sur saisie						*
//*******************************************************************************
function saisieKO(fonction, idStop, ancreCible, ancreEnCours, isErreur){
	if (!fonction){
		if(ancreCible == ""){
			ancreCible = ancreEnCours;
			ancreARejoindre(ancreCible);
			isErreur = true;
			return isErreur;
		}
	}
	return isErreur;
}
//*******************************************************************************
//* 			Fonction d'appel du sondage										*
//*******************************************************************************
function activationSondage(destination, urlSondage, nomSondage, dureeVieCookie) {
	var verifDestination = destination;
	var isPageSante = verifDestination.indexOf("santeEtape1");
	var isPageAuto = verifDestination.indexOf("vehicule");
	var isPageHabitation = verifDestination.indexOf("privatisEtape1");
	var isdejaFait=lireCookie(nomSondage);
	if('1' != isdejaFait){
		if((isPageSante != -1 || isPageAuto != -1 || isPageHabitation != -1) && isdejaFait !=0)
		{
			surveyWidth=900;
			surveyHeight=600;
			surveyLeft = Math.floor((screen.width - surveyWidth) / 2);
			surveyTop = Math.floor((screen.height - surveyHeight) / 2);
			gfrQuestionnaire = window.open(urlSondage, 'enquetedp', 'dependent=no,screenx='+surveyLeft+',screeny='+surveyTop+',width='+surveyWidth+',height='+surveyHeight+',directories=no,hotkeys=no,location=no,menubar=no,personalbar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no');
			gfrQuestionnaire.blur();  	
	
			date=new Date();
			date.setDate(date.getDate()+ parseInt(dureeVieCookie));// expire dans 1 mois
	  		ecrireCookie(nomSondage,'1', date);
		}
	}
}

//*******************************************************************************
//* 			Fonctions de gestion pour les cookies							*
//*******************************************************************************
function ecrireCookie(nom, valeur){
	var argv=ecrireCookie.arguments;
	var argc=ecrireCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}

function getCookieVal(offset){
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function lireCookie(nom){
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen)
	{
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return null;
}