 
// Fonction Appelée par verif_validite_champ(formul)
		 // si chaine rentrée correspond aux types caract. attendus
		function verif_alpha (valeur,type_caractere){
			var resultat = valeur.match(type_caractere);
			if(resultat!=null && resultat.length==1){
			   return true; // on continue la procedure
			  } // if(resultat!=null && resultat.length==1
			  else {
			   	   //alert('Attention l\'entrée '+valeur+' \n est éronnée ! ');
				   alert(''+valeur+'??? Si Concentri e riprovi con un piccolo sforzo ci riuscirà. Lo sò che è dura!!! ');
				   return false; // on sort de la procedure
			   } // else
		} // verif_alpha (valeur)

 		// si chaine entrée, test sa longueur. 
		//Viendra après verif_alpha (valeur,type_caractere)
		function verif_depas_nb_alpha(valeur)
		{
		  // test si valeur numerique
		  Is_num=parseInt(valeur);
		  // si ce n'est pas une chaine on sort
		  if(!isNaN(Is_num)){
		      //alert('ce n\'est pas une chaine !');	
			  alert('non è un gruppo di carattere !');	
			  return false; // le renvoi ne permettra pas de continuer la procédure			
			}  // if(!isNaN(Is_num)
			  else
			  {
			  // si c'est une chaine, test si caract. sup à 2
			  if (valeur.length < 3){
			   //alert('Il manque des données à l\'entrée '+valeur);
			   alert('Soffre di crisi di identità??? He??? '+valeur);
			   return false; // le renvoi ne permettra pas de continuer la procédure
			   } // if (valeur.length < 2
			   else  // else if (valeur.length < 2)
			   return true; // la procedure pourra contniuer
			} // else if(!isNaN(Is_num)
		  } // verif_depas_nb(valeur)	
			

		// si chaine entrée, test sa longueur. 
		//Viendra après verif_alpha (valeur,type_caractere)
		function verif_tel(valeur)
		{
		  // test si valeur numerique
		  Is_num=parseInt(valeur);
		  // si ce n'est pas une chaine on sort
		  if(isNaN(Is_num)){
		      //alert('c\'est  une chaine !');	
			  alert('è un gruppo di carattere!');	
			  return false; // le renvoi ne permettra pas de continuer la procédure			
			}  // if(isNaN(Is_num)
			  else
			  {
			  // si c'est un nombre, test si caract. sup à 4
			  if (valeur.length < 8){
			   //alert('Il manque des données à l\'entrée '+valeur);
			   alert('Veda che fà fare avere le tariffe ridotte???!! '+valeur);
			   return false; // le renvoi ne permettra pas de continuer la procédure
			   } // if (valeur.length < 2
			   else  // else if (valeur.length < 4)
			   return true; // la procedure pourra contniuer
			} // else if(!isNaN(Is_num)
		  } // verif_depas_nb(valeur)	

		  // test si age correspond aux criteres
		function verif_depas_nb_num_age(valeur)
		{
		  // test si valeur numerique
		  Is_num=parseInt(valeur);
		  // si c'est une chaine, on sort
		  if(isNaN(Is_num)){
		  	//alert('c\'est une chaine !');
			alert('è un gruppo di carattere!');	
			return false; // le renvoi ne permettra pas de continuer la procédure
			} // if(isNaN(Is_num)
			else {
				 // test si valeur numerique inf. à  3 et conforme aux critères age
			 	// alert('c\'est un valeur numérique !');
			     if(Is_num < 18 || Is_num > 79){
			 	   //alert('Votre âge n\'est pas compatible avec nos conditions');
				   alert('Alla SUA età dove vorrebbe ancora andare???');
				   return false;// le renvoi ne permettra pas de continuer la procédure
				} // if(Is_num <= 18 || Is_num > 99)
				     //alert('On va sortir de verif_depas_nb_num_age');
				     return true ;	//
				   } // else if(isNaN(Is_num)		  
		} // verif_depas_nb(valeur)


		// test si le nb d'enfant ne dépasse une valeur donnée -ici 9-
		function verif_depas_enfant(valeur){
		  Is_num=parseInt(valeur);
		  if(isNaN(Is_num)){
		  	//alert('c\'est une chaine ! Sortie de la procedure');
			alert('è un gruppo di carattere!');
			return false; // le renvoi ne permettra pas de continuer ma procédure
			} // if(isNaN(Is_num)
			else {
			// test si valeur numerique sup.9
			    if(Is_num > 6){
			 	  //alert('Ce nombre n\'est pas compatible avec nos conditions');
				  alert('Le faccio le mie più sentite condoglianze!!!');
				  return false; // rejeté
				} // if(Is_num > 6)
				  else return true; // accepté		
			} // else if(isNaN(Is_num)		  
		} // verif_depas_enfant(valeur)	 

		// test si le nb de personnes nfant ne dépasse une valeur donnée -ici 6-
		function verif_depas_personne(valeur){
		  Is_num=parseInt(valeur);
		  if(isNaN(Is_num)){
		  	//alert('c\'est une chaine ! Sortie de la procedure');
			alert('è un gruppo di carattere!');
			return false; // le renvoi ne permettra pas de continuer ma procédure
			} // if(isNaN(Is_num)
			else {
			// test si valeur numerique sup.9
			    if(Is_num > 8 || Is_num == 0) {
			 	  //alert('Ce nombre n\'est pas compatible avec nos conditions');
				  alert('Non sarebbe il caso di ucciderne prima qualcuno???');
				  return false; // rejeté
				} // if(Is_num > 6)
				  else return true; // accepté		
			} // else if(isNaN(Is_num)		  
		} // verif_depas_enfant(valeur)	 


	// verification de la validité d'un email
       function emailCheck(valeur) {
		  	var avant_arobas= (valeur.indexOf("@")) ;	
			var avant_point= (valeur.lastIndexOf(".")) ;
			var long_chaine = valeur.length;
			var apres_point = long_chaine - (avant_point+1);
			if (avant_arobas <2){
          	     //alert("Attention. Il semble manquer des données avant le @ .");
				 alert("Attenzione: Mancano dei dati prima il @ .");
          	   	 return false;
         	   } // if (avant_arobas <2)
		  	if (apres_point >3 ){
				 //alert("Attention. Il y a trop de caractères après le dernier point."
          	     //+" \n Veuillez recommencer.");
				 alert("Attenzione. Ci sono troppi caratteri dopo l'ultimo punto."
          	     +" \n	Ricominciare.");
				 return false;
		  		} // if (apres_point >3)
			if (apres_point <2 ){
				// alert("Attention. Il n'y a pas assez de caractères après le dernier point."
          	    // +" \n Veuillez recommencer.");	 
				 alert("Attenzione. Non ci sono abbastanza caratteri dopo l'ultimo punto."
          	     +" \n	Ricominciare.");
				 return false;
		  		} // if (apres_point <2)				
		   return true;
        } //emailCheck()	 


		// Fonction de validité d'un champ envoyé par verif_champ_vide (formul), 
		//donc le champ reçu n'est pas vide
		// 1- on determine si le champ est obligatoire
		// 2- on verifie sa validité par rapport au type de réponse attendue
		function verif_validite_champ(formul){
			// variables prises du début de la phrase à la fin -^et$-
			var regExpAlphabetic=/^[a-zA-Z-"'"\ä\â\à\é\è\ê\ë\ô\ö\ò\ç\ï\î\ü\û\ù\ñ]+$/g;	// Accepte une chaine alphabétique + tiret
			var regExpNumeric=/^[0-9]+$/g;			// Accepte une chaine numérique
			var regExpEmail = (/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9]+)$/g);// Accepte les caractères alphanumrique, le point et le @
			//alert ('Nom de l\'élement : '+formul.elements[i].name);	
			verif_alpha_ok = false;
			nom_champ = formul.elements[i].name; // evite de se trimbaler toute l'expression
			 	
			valeur = formul.elements[i].value;
			var regExpFrenchDate=/^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/g;  // date au format jj/mm/aaaa ou jj-mm-aaaa ou jj mm aaaa ou jj.mm.aaaa avec aaaa compris entre 1900 et 2099.
			   switch (nom_champ){
   				   case "cognome" :{
						 if (verif_alpha (valeur,regExpAlphabetic)){
						    return verif_depas_nb_alpha(valeur);
						  } // if (verif_depas_nb)
						  else 
						  {
						    formul.elements[i].style.backgroundColor="#FFFF99";
							return false; // au cas où verif_alpha (valeur,regExpAlphabetic) false
						  }
						}  //case "cognome" 
      			   case "nome" :{
						 if (verif_alpha (valeur,regExpAlphabetic)){
						    return verif_depas_nb_alpha(valeur);
						  } // if (verif_depas_nb)
						  else 
						  {
						    formul.elements[i].style.backgroundColor="#FFFF99";
							return false; // au cas où verif_alpha (valeur,regExpAlphabetic) false
						  }
						}  //case "nome"  
   				   case "eta" : {
						  if (verif_alpha (valeur,regExpNumeric)){
						   	 return verif_depas_nb_num_age(valeur);
						  } //  if (verif_alpha (valeur,regExpNumeric)
						   else 
						   {
						    formul.elements[i].style.backgroundColor="#FFFF99";
							return false; // au cas où verif_alpha (valeur,regExpNumeric) false
						  }
						} // case "eta" 
				   case "telefono" : {
						  if (verif_alpha (valeur,regExpNumeric)){
						   	 return verif_tel(valeur);
						  } //  if (verif_alpha (valeur,regExpNumeric)
						   else 
						   {
						    formul.elements[i].style.backgroundColor="#FFFF99";
							return false; // au cas où verif_alpha (valeur,regExpNumeric) false
						   } // else if (verif_alpha (valeur,regExpNumeric)
						  }// case	"telefono"
				   case "email" : {
						  if (verif_alpha (valeur,regExpEmail)){
							 return emailCheck(valeur);
						  } // if (verif_alpha (valeur,regExpEmail))
						   else 
						   {
						    formul.elements[i].style.backgroundColor="#FFFF99";
							return false; // au cas où verif_alpha (valeur,regExpEmail) false
						  }
						} // case "email" 
				   case "persone" : {
						  if (verif_alpha (valeur,regExpNumeric)){
						  return verif_depas_personne(valeur);
						    } // if (verif_alpha (valeur,regExpNumeric)
						  else 
						  {
						    formul.elements[i].style.backgroundColor="#FFFF99";
							return false; // au cas où verif_alpha (valeur,regExpNumeric) false
						  }
						} // case "persone" 	
				   case "bambini" : {
				   		 // alert ('On est bien sur le champ persone verif = '+nom_champ+'\n La valeur est : '+valeur);
						   if (verif_alpha (valeur,regExpNumeric)){
						    return verif_depas_enfant(valeur);
						  } // if (verif_alpha (valeur,regExpNumeric)
						  else 
						  {
						    formul.elements[i].style.backgroundColor="#FFFF99";
							return false; // au cas où verif_alpha (valeur,regExpNumeric) false
						  }
						}  //case "bambini" 
				   default : {
							   return true ; //   return false ;
							 } // default
				} // switch
		} // function verif_validite_champ


		// verification qu'un champ texte obligatoire est rempli - 
		// fonction appelée par verif_formulaire (formul) -
		function verif_champ_vide (formul){
		champ_plein = true;
		verif_validite_champ_ok = false ;
		var sauv_index = 0;
		   // Boucle sur tous les champs						
		   for (i=0; i < formul.elements.length; i++)
		   {  
			 if (formul.elements[i].type == 'select-one') {
			 	return affich_champ_autre_mois(formul); // controle des mois
			 } // if (formul.elements[i].type == 'select-one') {
			 
			 // on ne prend que les champs texte
			 if (formul.elements[i].type == 'text') {
				// à l'exception de "cellulare" -champ non obligatoire-
				if (formul.elements[i].value == "" && formul.elements[i].name != "cellulare") {
					formul.elements[i].style.backgroundColor="#C0C0C0";
					alert("Coraggio, riprenda fiato, e compili correttamente questo campo.");
					champ_plein = false;
					return false ;
				} //if (formul.elements[i].value == "")
				else {
				       verif_validite_champ_ok = verif_validite_champ(formul);
					   if (!verif_validite_champ_ok){
					   return false ;
					   } //  if (!verif_validite_champ_ok)
					 } // else if (formul.elements[i].value == "" && formul.elements[i].name != "cellulare")
			 } // if (formul.elements[i].type == 'text')
		   } // for
		  if (champ_plein && verif_validite_champ_ok){
			 return true;
		   } // if (champ_plein && verif_validite_champ_ok)
		   else 
		    	{
				  return false;
				} // else
		}// function verif_champ_vide

		function verif_formulaire (formul){
		  // CETTE FONCTION POUR ETRE REMPLACEE D'UN COUP PAR VERIF_CHAMP_VIDE
		  if (verif_champ_vide (formul)) {
				return true;
				} // if (verif_champ_vide (formul))
				 else return false;
		}// function verif_formulaire

		
		function chg_couleur_champ (champ){
		 champ.style.backgroundColor="#FFFFFF";
		}// function chg_couleur_champ

	  function controler_nb_caracteres(valeur, limite) {
   		//alert(valeur.length);
   		if (valeur.length > limite) {
       	   alert("Il vostro testo contiene " 
	   	   + valeur.length 
	   	   + " caratteri, mentre il limite è di " 
	   	   + limite  
	   	   + " caratteri.");
   		 }
  		  else if (valeur.length == 0) alert("Questo spazio deve essere riempito");
	  } // controler_nb_caracteres(valeur, limite)
 
 	  function affich_champ_autre_mois(formul) {
	  		var sauv_index = 0;
			for (j=0; j < formul.periodo.options.length; j++)
					{  
					if (formul.periodo.options[j].value == 'altri')
					 {
					  sauv_index = j;
					 } // if (formul.periodo.options[j].value == 'altri'
					} // for (j=0; j
				if (formul.periodo.selectedIndex == 0) {
				   //alert('Vous devez choisir un mois');
				   alert('Forse non sarebbe il caso di scelgliere il mese?? ');
				   return false;
				}//if (form.liste.selectedIndex == 0
				if (formul.data.selectedIndex == 0) {
				   //alert('Vous devez choisir une période');
				   alert('Credo abbia dimenticato di scegliere il periodo!!! ');
				   return false; // on arrête la procedure
				}//if (form.data.selectedIndex == 0
				else {
					 if (formul.data.options[formul.data.selectedIndex].value == 'giorni'){
						//if (!confirm('Attention vous avez choisi Giorni \nLa selection du mois sera mise sur \"Autre Mois\" ')){
  						if (!confirm('Attenzione ha scelto Giorni la selezione del mese sarà messo su \"Altri Mesi\" ')){
							 return false;
						}
						if (sauv_index== 0) {
						  return false ;
						}
						formul.periodo.options.value=
						formul.periodo.options[sauv_index].value;
					 } // if (formul.data.options[formul.data.selectedIndex].value == 'giorni
				} // else if (formul.data.selectedIndex == 0)
				return true ;//pour le moment
			} // affich_champ_autre_mois(formul)

 