
//-- Verification de la saisie du formulaire -----------------------------------------------------------------------------

function validation(){ 

//traitement de l'adresse Email (premiére saisie)
		
		if(document.formulaire.Adresse_Email.value == "") 
		{ 
        	alert ('veuillez saisir votre adresse Email');
			document.formulaire.Adresse_Email.style.background= "red";
			document.formulaire.Adresse_Email.focus(); 
        		return false; 
    	
				}
				else
					document.formulaire.Adresse_Email.style.background= "white";
				{
		}
			
		// Traitement de la cohérence de l'adresse Email
				
	 	AdBEmail  = document.formulaire.Adresse_Email.value;
		EspEmail  = AdBEmail.indexOf("");
		AroEmail  = AdBEmail.indexOf("@");
		PoiEmail  = AdBEmail.indexOf(".",AroEmail);
		MEPEmail  = AroEmail+1;
		DouEmail  = AdBEmail.indexOf("..",AroEmail);
		NombCara  = AdBEmail.length - PoiEmail;
		DoubArob  = AdBEmail.indexOf("@",AroEmail+1);
	
		if ( (AroEmail < 1) ||
			(AdBEmail.lastIndexOf("#",AroEmail) != -1) ||
			(AdBEmail.indexOf("#",AroEmail) != -1) ||
			(AdBEmail.lastIndexOf("?",AroEmail) != -1) ||
			(AdBEmail.indexOf("?",AroEmail) != -1) ||
			(AdBEmail.lastIndexOf("%",AroEmail) != -1) ||
			(AdBEmail.indexOf("%",AroEmail) != -1) ||
			(AdBEmail.lastIndexOf("?",AroEmail) != -1) ||
			(AdBEmail.indexOf("?",AroEmail) != -1) ||  
			(AdBEmail.lastIndexOf(" ",AroEmail) != -1) ||
			(AdBEmail.indexOf(" ",AroEmail) != -1) ||
			(AdBEmail.lastIndexOf("  ",AroEmail) != -1) ||
			(AdBEmail.indexOf("  ",AroEmail) != -1) ||
			(AdBEmail.lastIndexOf("+",AroEmail) != -1) ||
			(AdBEmail.indexOf("+",AroEmail) != -1) ||
			(AdBEmail.lastIndexOf("=",AroEmail) != -1) ||
			(AdBEmail.indexOf("=",AroEmail) != -1) ||
			(AdBEmail.lastIndexOf("-",AroEmail) != -1) ||
			(AdBEmail.indexOf("-",AroEmail) != -1) ||                 
    		(PoiEmail <= MEPEmail) || 
    		(AdBEmail.length < 5) || 
    		(DouEmail>= 0) ||
    		(NombCara< 3) ||
    		(DoubArob >= 0) )
   		{
   			alert ("Le format de l'adresse Email est invalide.");
			document.formulaire.Adresse_Email.style.color = "#FF0000"; 
			document.formulaire.Adresse_Email.focus(); 
			return false;
  			}
			else
				document.formulaire.Adresse_Email.style.color = "#333a70";
			{
		}
		var email = document.formulaire.Adresse_Email.value;
		
        if (email.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1)
        { 
         alert ("Le format de l'adresse Email est invalide.");
			document.formulaire.Adresse_Email.style.color = "#FF0000";
			document.formulaire.Adresse_Email.focus(); 
			return false;
  			}
			else
				document.formulaire.Adresse_Email.style.color = "#333a70";
			{
		 }
			 
//traitement de l'adresse Email (saisie de verification)

		if(document.formulaire.Verif_adresse_Email.value == "") 
		{ 
        alert ('veuillez resaisir votre adresse Email');
		document.formulaire.Verif_adresse_Email.style.background= "red";
		document.formulaire.Verif_adresse_Email.focus(); 
        return false; 
    	
			}
			else
				document.formulaire.Verif_adresse_Email.style.background= "white";
			{
		}
			
		// Traitement de la cohérence de l'adresse Email
				
	 	DeSEmail = document.formulaire.Verif_adresse_Email.value;
		EspEmail = DeSEmail.indexOf("");
		AroEmail = DeSEmail.indexOf("@");
		PoiEmail = DeSEmail.indexOf(".",AroEmail);
		MEPEmail = AroEmail+1;
		DouEmail = DeSEmail.indexOf("..",AroEmail);
		NombCara = DeSEmail.length - PoiEmail;
		DoubArob = DeSEmail.indexOf("@",AroEmail+1);
	
		if ( (AroEmail < 1) ||
			(DeSEmail.lastIndexOf("#",AroEmail) != -1) ||
			(DeSEmail.indexOf("#",AroEmail) != -1) ||
			(DeSEmail.lastIndexOf("?",AroEmail) != -1) ||
			(DeSEmail.indexOf("?",AroEmail) != -1) ||
			(DeSEmail.lastIndexOf("%",AroEmail) != -1) ||
			(DeSEmail.indexOf("%",AroEmail) != -1) ||
			(DeSEmail.lastIndexOf("?",AroEmail) != -1) ||
			(DeSEmail.indexOf("?",AroEmail) != -1) ||  
			(DeSEmail.lastIndexOf(" ",AroEmail) != -1) ||
			(DeSEmail.indexOf(" ",AroEmail) != -1) ||
			(DeSEmail.lastIndexOf("  ",AroEmail) != -1) ||
			(DeSEmail.indexOf("  ",AroEmail) != -1) ||
			(DeSEmail.lastIndexOf("+",AroEmail) != -1) ||
			(DeSEmail.indexOf("+",AroEmail) != -1) ||
			(DeSEmail.lastIndexOf("=",AroEmail) != -1) ||
			(DeSEmail.indexOf("=",AroEmail) != -1) ||
			(DeSEmail.lastIndexOf("-",AroEmail) != -1) ||
			(DeSEmail.indexOf("-",AroEmail) != -1) ||                 
    		(PoiEmail <= MEPEmail) || 
    		(AdBEmail.length < 5) || 
    		(DouEmail>= 0) ||
    		(NombCara< 3) ||
    		(DoubArob >= 0) )
   		{
   			alert ("Le format de l'adresse Email(saisie de verification) est invalide.");
			document.formulaire.Verif_adresse_Email.style.color = "#FF0000"; 
			document.formulaire.Verif_adresse_Email.focus();
			return false;
  			}
			else
				document.formulaire.Verif_adresse_Email.style.color = "#333a70";
			{
		}
		var email = document.formulaire.Verif_adresse_Email.value;
		
        if (email.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1)
        { 
         alert ("Le format de l'adresse Email(saisie de verification) est invalide.");
			document.formulaire.Verif_adresse_Email.style.color = "#FF0000";
			document.formulaire.Verif_adresse_Email.focus(); 
			return false;
  			}
			else
				document.formulaire.Verif_adresse_Email.style.color = "#333a70";
			{
		 }
		if (AdBEmail != DeSEmail)
		 { 
         alert ("Le format de l'adresse Email et le format de l'adresse Email(saisie de verification)\n ne corresponde pas !!!");
			document.formulaire.Adresse_Email.style.color = "#FF0000";
			document.formulaire.Adresse_Email.focus(); 
			document.formulaire.Verif_adresse_Email.style.color = "#FF0000";
			return false;
  			}
			else
				document.formulaire.Adresse_Email.style.color = "#333a70";
				document.formulaire.Verif_adresse_Email.style.color = "#333a70";
				
			{
		 }		
	 
//traitement du numéro de téléphone (fixe)

       	if(document.formulaire.Telephone_Fixe.value == "") 
		{ 
        	alert ('veuillez saisir votre numéro de téléphone (fixe)');
			document.formulaire.Telephone_Fixe.style.background= "red"; 
        	document.formulaire.Telephone_Fixe.focus(); 
        	return false; 
			}
			else
				document.formulaire.Telephone_Fixe.style.background= "white";
			{
		 }
		 
 	var CaraVali;
  		for(var BoucIndi = 0; BoucIndi < document.formulaire.Telephone_Fixe.value.length; BoucIndi++)
  		{

		// le caractere est stocké dans carac.

    	CaraVali = document.formulaire.Telephone_Fixe.value.charAt(BoucIndi);

		// Caractères valides : chiffres, parenthèses et des PoiEmails.

    		if( !((CaraVali >= 0) && (CaraVali <= 9))
     			&& (CaraVali != '.') 
				&& (CaraVali != '(') && (CaraVali != ')'))
    		{
      			alert('Le numéro de téléphone(fixe) ne peut comporter que des chiffres, '
       			+ 'parenthéses et des points \n (pas plus de 14 caractéres au format: 99.99.99.99.99) ');
				document.formulaire.Telephone_Fixe.style.color = "#FF0000";
				document.formulaire.Telephone_Fixe.focus(); 
            	return false;
				}
				else
					document.formulaire.Telephone_Fixe.style.color = "#333a70";
				{
		    }
  		} 
        
//traitement du numéro de téléphone (mobile)

   	var CaraVali;
  		for(var BoucIndi = 0; BoucIndi < document.formulaire.Telephone_Portable.value.length; BoucIndi++)
  		{

		// le caractere est stocké dans carac.

    	CaraVali = document.formulaire.Telephone_Portable.value.charAt(BoucIndi);

		// Caractères valides : chiffres, parenthèses et des PoiEmails.

    		if( !((CaraVali >= 0) && (CaraVali <= 9))
     			&& (CaraVali != '.') 
				&& (CaraVali != '(') && (CaraVali != ')'))
    		{
      			alert('Le numéro de téléphone(portable) ne peut comporter que des chiffres, '
       			+ 'parenthéses et des points \n (pas plus de 14 caractéres au format: 99.99.99.99.99');
				document.formulaire.Telephone_Portable.style.color = "#FF0000";
				document.formulaire.Telephone_Portable.focus(); 
            	return false; 
				}
				else
					document.formulaire.Telephone_Portable.style.color = "#333a70";
				{
		    }
  		}
		
//traitement du nom 

       	if(document.formulaire.Votre_Nom.value == "") 
		{ 
        	alert ('Veuillez saisir votre Nom');
			document.formulaire.Votre_Nom.style.background= "red";
        	document.formulaire.Votre_Nom.focus(); 
        	return false; 
				}
				else
					document.formulaire.Votre_Nom.style.background= "white";
				{
    	}
		
		//traitement verification du nom (caractéres alphabétiques + le tiret et l'apostrophe.)

   	var CaraVali;
	
  		for(var BoucIndi = 0; BoucIndi < document.formulaire.Votre_Nom.value.length; BoucIndi++)
  		{

		// le caractere est stocké dans carac.

    	CaraVali = document.formulaire.Votre_Nom.value.charAt(BoucIndi);

		// Caractères valides : caractéres alphabétiques + le tiret et l'apostrophe.
					
    		if( !((CaraVali >= 'a') && (CaraVali <= 'z')) 
					&& (CaraVali != '-') &&(CaraVali!= "'") )
     			if(! ((CaraVali >= 'A') && (CaraVali <= 'Z'))
						&& (CaraVali != '-') &&(CaraVali != "'") )
				
    		{
				{
      			alert('La saisie du nom ne peut comporter que des caractéres alphabétiques(sans accent), le tiret et l\'apostrophe.');
				document.formulaire.Votre_Nom.style.color = "#FF0000";  
       			document.formulaire.Votre_Nom.focus();
            	return false;
					
				}	      	
			}
				
				else
					document.formulaire.Votre_Nom.style.color = "#333a70";				
 		}
		
	
//traitement du prénom 
 		
	//traitement verification du prenom (caractéres alphabétiques + le tiret et l'apostrophe.)

   	var CaraVali;
	
  		for(var BoucIndi = 0; BoucIndi < document.formulaire.Votre_Prenom.value.length; BoucIndi++)
  		{

		// le caractere est stocké dans carac.

    	CaraVali = document.formulaire.Votre_Prenom.value.charAt(BoucIndi);

		// Caractères valides : caractéres alphabétiques + le tiret et l'apostrophe.
					
    		if( !((CaraVali >= 'a') && (CaraVali <= 'z')) 
					&& (CaraVali != '-') &&(CaraVali!= "'") )
     			if(! ((CaraVali >= 'A') && (CaraVali <= 'Z'))
						&& (CaraVali != '-') &&(CaraVali != "'") )
				
    		{
				{
      			alert('La saisie du prenom ne peut comporter que des caractéres alphabétiques (sans accent), le tiret et l\'apostrophe.');
				document.formulaire.Votre_Prenom.style.color = "#FF0000"; 
       			document.formulaire.Votre_Prenom.focus();
            	return false; 
				}
	      	}
				else
					document.formulaire.Votre_Prenom.style.color = "#333a70";
 		} 	

		
//traitement du numéro de la voie 
	
 		
	//traitement verification du  numéro de la voie (chiffres uniquement).

   	var CaraVali;
	
  		for(var BoucIndi = 0; BoucIndi < document.formulaire.Numero_Voie.value.length; BoucIndi++)
  		{

		// le caractere est stocké dans carac.

    	CaraVali = document.formulaire.Numero_Voie.value.charAt(BoucIndi);

		// Caractères valides : chiffres uniquement.
					
    		if( !((CaraVali >= '0') && (CaraVali <= '9')) )			
    		
				{
      			alert('La saisie du numéro de la voie ne peut comporter que des chiffres .');
				document.formulaire.Numero_Voie.style.color = "#FF0000"; 
       			document.formulaire.Numero_Voie.focus();
            	return false; 
				}
				else
					document.formulaire.Numero_Voie.style.color = "#333a70";
				{
		    }
  		}

//traitement du code postal 
	
 		
	//traitement verification du  code postal (chiffres uniquement).

   	var CaraVali;
	
  		for(var BoucIndi = 0; BoucIndi < document.formulaire.Code_Postal.value.length; BoucIndi++)
  		{

		// le caractere est stocké dans carac.

    	CaraVali = document.formulaire.Code_Postal.value.charAt(BoucIndi);

		// Caractères valides : caractéres chiffres uniquement.
					
    		if( !((CaraVali >= '0') && (CaraVali <= '9')) )			
    		
				{
      			alert('La saisie du code postal ne peut comporter que des chiffres .');
				document.formulaire.Code_Postal.style.color = "#FF0000"; 
       			document.formulaire.Code_Postal.focus();
            	return false; 
				}
				else
					document.formulaire.Code_Postal.style.color = "#333a70";
				{
		    }
  		} 
		
// Verification  cohérence des dates d'arrivée et départ.

	// stockage de la date d'arrivée.
	
  	var JourAriv = document.formulaire.Jour_Arrivee[formulaire.Jour_Arrivee.selectedIndex].value;
  	var MoisAriv = document.formulaire.Mois_Arrivee[formulaire.Mois_Arrivee.selectedIndex].value;
  	var AnneAriv = document.formulaire.Annee_Arrivee[formulaire.Annee_Arrivee.selectedIndex].value;
	
	// stockage de la date de départ.
	
  	var JourDept = document.formulaire.Jour_Depart[formulaire.Jour_Depart.selectedIndex].value;
  	var MoisDept = document.formulaire.Mois_Depart[formulaire.Mois_Depart.selectedIndex].value;
  	var AnneDept = document.formulaire.Annee_Depart[formulaire.Annee_Depart.selectedIndex].value;
	
	
 		// Vérification des mois comportant 31 jours 
 
  		if (((MoisAriv == "04") || (MoisAriv == "06") || (MoisAriv == "09") || (MoisAriv == "11")) && (eval(JourAriv) > 30)){			
			
   			alert("Le mois sélectionné ne comporte pas 31 jours.");
  			document.formulaire.Jour_Arrivee.style.color = "#FF0000";
			document.formulaire.Jour_Arrivee.focus(); 
			return false;
  			}
			else
				document.formulaire.Jour_Arrivee.style.color = "#333a70";
			{
		 } 			
  
 		// Vérification de la saisie du mois de Février (28 ou 29 si année bisexstile)
 
   		if ((MoisAriv == "02") && (eval(JourAriv) > 28)){
			if (eval(AnneAriv)%4 != 0){
		
				alert("Vous avez sélectionné le mois de février et l'année sélectionnée n'est pas une année bisexstile \n donc vous ne pouvez saisir 29, 30 ou 31.");
     			document.formulaire.Jour_Arrivee.style.color = "#FF0000";
				document.formulaire.Jour_Arrivee.focus(); 
				return false;
  				}
					else
					document.formulaire.Jour_Arrivee.style.color = "#333a70";
					{
		 	} 			 
		
		}	
			// Vérification des années bisexstile
		
			if ((MoisAriv == "02") && (eval(JourAriv) > 29)){
   				if (eval(AnneAriv)%4 == 0){			
    			
					alert("Vous avez sélectionné le mois de février et l'année sélectionnée est une année bisexstile \n donc vous ne pouvez saisir 30 ou 31.");
    				document.formulaire.Jour_Arrivee.style.color = "#FF0000";
					document.formulaire.Jour_Arrivee.focus(); 
					return false;
  				}
						else
						document.formulaire.Jour_Arrivee.style.color = "#333a70";
					{
		 	} 			 
		
		}	
		
	// test si la date saisie est supérieure à la date du jour.
	
	var JourDhui=new Date();
	var JourAct1 = JourDhui.getDate().toString();
	var MoisAct1 = (JourDhui.getMonth()+ 1).toString();
	var AnneActu = JourDhui.getFullYear().toString();
	var JourActu = JourAct1
	var MoisActu = MoisAct1	  
	
	// Test si JourActu inférieur à 10	
		if (JourAct1 < 10) {
			var JourActu = (0+JourAct1)
		}
		
	// Test si MoisActu inférieur à 10	
		if (MoisAct1 < 10) {
			var MoisActu = (0+MoisAct1)				
		}		
	
	var DateActu = (AnneActu + MoisActu + JourActu);	
	var DateAriv = (AnneAriv + MoisAriv + JourAriv); 	
			
		if(DateAriv <= DateActu){
			alert('La date saisie (jour d\'arrivée) est antérieure ou égale à la date du jour !!! ');				
			document.formulaire.Jour_Arrivee.style.color = "#FF0000";
			document.formulaire.Jour_Arrivee.focus();
			document.formulaire.Mois_Arrivee.style.color = "#FF0000";
			document.formulaire.Annee_Arrivee.style.color = "#FF0000"; 
			return false;
  			}
			else
				document.formulaire.Jour_Arrivee.style.color = "#333a70";
				document.formulaire.Mois_Arrivee.style.color = "#333a70";
				document.formulaire.Annee_Arrivee.style.color = "#333a70"; 
			{
		 } 			
		  
	// traitement de la date de départ
	
	var DateDepa = (AnneDept +  MoisDept + JourDept);
	
		if(DateDepa <= DateAriv){
		
			alert('La date saisie(de départ) est antérieure ou égale à la date du jour d\'arrivée !!!');
			document.formulaire.Jour_Depart.style.color = "#FF0000";
			document.formulaire.Jour_Depart.focus();
			document.formulaire.Mois_Depart.style.color = "#FF0000";
			document.formulaire.Annee_Depart.style.color = "#FF0000"; 
			return false;
  			}
			else
				document.formulaire.Jour_Depart.style.color = "#333a70";
				document.formulaire.Mois_Depart.style.color = "#333a70";
				document.formulaire.Annee_Depart.style.color = "#333a70"; 
			{
		 } 
		
	// traitement de la date d'arrivée si elle dépasse l'année en cours 
			
		if (AnneAriv - AnneActu > 0){			
    			
				alert("Il y a une incohérence dans la saisie de l'année !!! ");
    			document.formulaire.Annee_Arrivee.style.color = "#FF0000";
				document.formulaire.Annee_Arrivee.focus(); 
				return false;
  					}
					else
					document.formulaire.Annee_Arrivee.style.color = "#333a70";
					{
		 	} 			 
	 
	// traitement de la date de départ si elle dépasse l'année en cours (décembre à décembre)	
		
	
		if ((MoisAriv == "12") && (MoisDept == "12")){
   			if (AnneDept - AnneAriv > 0){			
    			
				alert("Il y a une incohérence dans la saisie de l'année !!! ");
    			document.formulaire.Annee_Depart.style.color = "#FF0000";
				document.formulaire.Annee_Depart.focus(); 
				return false;
  					}
					else
					document.formulaire.Annee_Depart.style.color = "#333a70";
					{
		 	} 			 
		
		}		
		 
	// traitement de la date de départ si elle dépasse l'année en cours (sauf en décembre)	
		
		
		if (MoisAriv != "12") {
   			if (AnneDept - AnneAriv > 0){			
    			
				alert("Il y a une incohérence dans la saisie de l'année !!! ");
    			document.formulaire.Annee_Depart.style.color = "#FF0000";
				document.formulaire.Annee_Depart.focus(); 
				return false;
  					}
					else
					document.formulaire.Annee_Depart.style.color = "#333a70";
					{
		 	} 			 
		
		}	
//traitement des "selections obligatoire" par menu déroulant ...
	 
	var VotCivil = document.formulaire.Votre_Civilite[formulaire.Votre_Civilite.selectedIndex].value;
	var NomdAdul = document.formulaire.Nombre_d_Adulte[formulaire.Nombre_d_Adulte.selectedIndex].value;
	var NomdEnfa = document.formulaire.Nombre_d_Enfant[formulaire.Nombre_d_Enfant.selectedIndex].value;
	var VotChamb = document.formulaire.Votre_Chambre[formulaire.Votre_Chambre.selectedIndex].value;
	var Votrfort = document.formulaire.Choix_forfait[formulaire.Choix_forfait.selectedIndex].value;
		
	
		if ((VotCivil == "Monsieur")||(NomdAdul == 1)|| (NomdEnfa == 0) || (VotChamb == "Les Vignes")
				 || (Votrfort == "La nuit et le petit déjeuner")){	
			if (confirm("L\'information (choix de votre civilité et/ou nombre d'adulte(s) et/ou d'enfant(s) et/ou votre chambre et/ou le choix de votre formule)\n n\'a pas était modifiée, voulez-vous continuer ?")) {
    			alert("OUI ...")
				return true;
  				}
  				else
				alert("NON !!!")
				return false;
				{
    		}			
		}

// ----------------------------------------------------------------		
} // fin de la fonction "validation"
