<!--
function Valider(nForm) {

  var RdCkOk = false;
  var RdMess = "";
  var CbMess = "";
  var CbCkOk = false;
  var msg = ""
      
  for (var i=0; i<nForm.elements.length; i++) {
    if (varValid.indexOf(nForm.elements[i].name) == -1 && nForm.elements[i].type != 'submit' && nForm.elements[i].type != 'reset' && nForm.elements[i].type != 'button' && nForm.elements[i].type != 'hidden') {
      if (nForm.elements[i].type == 'select-one') {
        if (nForm.elements[i].selectedIndex == 0) {
          msg += "\n         " + nForm.elements[i].name;
        }
      } else
      if (nForm.elements[i].type == 'select-multiple') {
        if (nForm.elements[i].selectedIndex < 0) {
          msg += "\n         " + nForm.elements[i].name;
        }
      } else
      if (nForm.elements[i].type == 'text') {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].name;
        }
      } else
      if (nForm.elements[i].type == 'file') {
        if (nForm.elements[i].value =='') {
          msg += "\n         " + nForm.elements[i].name;
        }
      } else
      if (nForm.elements[i].type == 'textarea') {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].name;
        }
      } else
      if (nForm.elements[i].type == 'password') {
        if (nForm.elements[i].value == '') {
          msg += "\n         " + nForm.elements[i].name;
        }
      } else
      if (nForm.elements[i].type == 'radio') {
        if (nForm.elements[i].checked) {
            RdCkOk = true;
            RdMess = "";
        }
        if (RdCkOk == false) {
          RdMess = "\n         " + nForm.elements[i].name;
        }
      } else
      if (nForm.elements[i].type == 'checkbox'&&CbCkOk == false) {
        if (nForm.elements[i].checked) {
          CbCkOk = true;
          CbMess = "";
        }
        if (CbCkOk == false) {
            CbMess = "\n         " + nForm.elements[i].name;
        }
      } 	
    }
  }
  if (msg.length != 0||RdMess.length != 0||CbMess.length != 0) {
    msg += RdMess + CbMess; 

    msg = phrase + msg + "\n";
    
    alert(msg);
    return false;
  }
}
// ********************************************
// FIN DE LA FONCTION Valider()
// ********************************************


// ********************************************
// FONCTION Valider_tel()
// ********************************************
function Valider_tel(nChamp,nAccepte,nbr) {
  // Ajouter ce code dans la saisie du champs
  //  onBlur="Valide_tel(this,'()-0123456789')"
  // Les caractères acceptés peuvent être changés
  var ok = "oui";
  var min = "oui";
  var nChar;
  for (var i=0; i<nChamp.value.length; i++) {
    nChar = "" + nChamp.value.substring(i, i+1);
    if (nAccepte.indexOf(nChar) == "-1") ok = "non";
  }
  if (ok == "non") {
      alert ("\n"+tel+"\n "+nAccepte)
    nChamp.focus();
    nChamp.select();
  }
  if (nChamp.value.length < nbr&&nChamp.value.length > 0) min = "non";
  if (min == "non") {
      alert("\n"+tel_min+""+ nbr);     
    nChamp.focus();
    nChamp.select();
  }
}

// ********************************************
// FONCTION Nbre_max()
// ********************************************
function Nbre_max(nChamp,nbr) {
  var ok = "oui";
  var max = "non";
  var nChar;
  if (nChamp.value.length > nbr&&nChamp.value.length > 0) max = "oui";
  if (max == "oui") {
      alert("\n"+saisie_max+""+ nbr);     
    nChamp.focus();
    nChamp.select();
  }
}

// ********************************************
// FONCTION Presence_caractere()
// ********************************************
function Presence_caractere(nChamp,nAccepte) {
   var ok = "oui";
    var min = "oui";
    var nChar;
    for (var i=0; i<nChamp.value.length; i++)
    {
      nChar = "" + nChamp.value.substring(i, i+1);
      if (nAccepte.indexOf(nChar) != "-1") ok = "non";
    }
    if (ok == "non")
    {
      if(nAccepte ==" ") nAccepte = "Espace";
        //alert ("\nEntré invalide!\nCaractères interdits : \n "+nAccepte)
        //alert("\nInvalid entry!\nCharacters not accepted : \n "+nAccepte);
      nChamp.focus();
      nChamp.select();
    }
} 

// ********************************************
// FONCTION Valider_email()
// ********************************************
function Valider_email(nChamp) {
  // Ajouter ce code dans la saisie du champs
  //  onBlur="Valider_email(this)"
  if (nChamp.value.length > 0) {
    if ((nChamp.value.lastIndexOf(".") < nChamp.value.indexOf("@")+3 
    || nChamp.value.lastIndexOf(".") > nChamp.value.length-3 
    || nChamp.value.indexOf("@") < 1 )
    || nChamp.value.indexOf("@") != nChamp.value.lastIndexOf("@")) 
    {
      alert("\n" + email + " \"nn@nn.nn\".");
      nChamp.focus();
      nChamp.select();
    }
  }
}

// ********************************************
// FONCTION AnneeBissex()
// ********************************************
function AnneeBissex(Annee) {

	bissext = false

	if (Annee % 4 == 0) 
	{
		if (Annee % 100 == 0)
		{
			if (Annee % 400 == 0)
			{
				bissext = true
			} 
		}
	else bissext = false
	}
	return bissext
}

 
// ********************************************
// FONCTION Valider_date()
// ********************************************
function Valider_date(nDate,nA1,nA2,nFormat) {
  // Ajouter ce code dans la saisie du champs date
  //  onBlur="twValide_date(this,1950,2020,'jj/mm/aaaa')"
  // La date valide doit être entre 1950 et 2020.
  //    vous pouvez changer l'interval.
  // Format valide: (ne pas utiliser d'autre format...
  // - jj/mm/aaaa
  // - jj/mm/aaaa hh:ii:ss
  // - mm/jj/aaaa
  // - aaaa/mm/jj
  // Noter que vous devriez indiquer à l'usager le format valide...

  var ok = "oui";
  var nChar;
  var aDate;
  var nJ; //Jours
  var nM; //Mois
  var nA; //Annees
  var nh; //Heures
  var nm; //minutes
  var ns; //Secondes
  var jMax = 31;
  var reg=new RegExp("[ ,;/:]+", "g");
  var sep1;
  var sep2;
  var sep3;
  var sep4;
  var sep5;
  var separateur1="/"; //separateur pour la date
  var separateur2=" "; // espace entre la date et l'heure
  var separateur3=":"; //separateur pour l'heure

  nAccepte = "0123456789/: "; // caractères acceptés dans la date
  if (nDate.value.length > 0)
  {
     if (nFormat == "JJ/MM/AAAA hh:mm:ss") 
     {
     	if (nDate.value.length < 19) ok = "non"; //taille mini et maxi de 19 caractères
     }else if (nDate.value.length < 10) ok = "non"; // Taille mini et maxi de 10 caractères
     for (var i=0; i<nDate.value.length; i++) {
      nChar = "" + nDate.value.substring(i, i+1);
      if (nAccepte.indexOf(nChar) == "-1") ok = "non"; // Si un caractère pas dans la liste mettre ok à "non"
  }
    if (ok == "oui") { // Si les caractères sont bons
      aDate = nDate.value.split(reg); //on separe tous les caractères entre "/" et " " et ":" 
      if (nFormat == "JJ/MM/AAAA hh:mm:ss")
      {
  
      	nJ = aDate[0]; nM = aDate[1]; nA = aDate[2]; nh = aDate[3]; nm = aDate[4]; ns = aDate[5];
      	sep1 = nDate.value.substring(2,3); sep2 = nDate.value.substring(5,6);
      	sep3 = nDate.value.substring(10,11); sep4 = nDate.value.substring(13,14);
      	sep5 = nDate.value.substring(16,17);
      } else if (nFormat == "JJ/MM/AAAA")
      {
      	nJ = aDate[0]; nM = aDate[1]; nA = aDate[2];
     	sep1 = nDate.value.substring(2,3); sep2 = nDate.value.substring(5,6);
      	sep3 = separateur2; sep4 = separateur3; sep5 = separateur3;
      }
      else if (nFormat == "MM/JJ/AAAA")
      {
      	nJ = aDate[1]; nM = aDate[0]; nA = aDate[2];
      	sep1 = nDate.value.substring(2,3); sep2 = nDate.value.substring(5,6);
      	sep3 = separateur2; sep4 = separateur3; sep5 = separateur3;
      }
      else if (nFormat == "AAAA/MM/JJ")
      {
      	nJ = aDate[2]; nM = aDate[1]; nA = aDate[0];
      	sep1 = nDate.value.substring(5,6); sep2 = nDate.value.substring(8,9);
      	sep3 = separateur2; sep4 = separateur3; sep5 = separateur3;
      }
      
      
      if ((nJ < 1 || nJ > jMax) || (nM < 1 || nM > 12) || (nA < nA1 || nA > nA2) || (sep1 != separateur1) || (sep2 !=separateur1) || (sep3 !=separateur2) || (sep4 != separateur3) || (sep5 != separateur3) || (nh > 23) || (nm > 59) || (ns > 59)) ok = "non";
      else {
         if (nM == 2) 
         { 
	   if (AnneeBissex(nA) == true){jMax = 29;}
	   else{jMax = 28;}
	 }
	  if ((nM == 1 || nM == 3 || nM == 5 || nM == 7 || nM == 8 || nM == 10 || nM == 12)) jMax = 31
	  if ((nM == 4 || nM == 6 || nM == 9 || nM == 11)) jMax = 30
	  if (nJ < 1 || nJ > jMax) ok = "non";
      }
      
    }
    if (ok == "non") {
      nDate.focus();
      nDate.select();
        
        alert ("\n "+saisie_date+" (>"+nA1+" <"+nA2+") - ("+nFormat+")")
        //alert ("\nDate invalide!. Veuillez entrer une date valide: "+nFormat+"\nentre "+nA1+" et "+nA2)
        //alert ("\nInvalid date. Please re-enter valid date: "+nFormat+"\nbetween "+nA1+" et "+nA2)
    }
  }
}


// ********************************************
// FONCTION Valider_horaire()
// ********************************************
function Valider_horaire(Horaire,Horaire_precedent,deb) 
{
	var ok1 = "oui";
	var ok2 = "oui"; //- Horaire précédent

	var nChar;
	var aHoraire;
	var aHoraire_precedent;
	var nh; //Heures
	var nm; //minutes

	var nh2; //Heures
	var nm2; //minutes

	var reg=new RegExp("[:]", "g");

	nAccepte = "0123456789:"; // caractères acceptés dans la date
	//alert(Horaire.value);
	//alert(Horaire.name);
	//alert(deb);
	
	if (Horaire.value.length > 0)
	{
		if (Horaire.value.length < 5)
		{
			ok1 = "non"; //taille mini et maxi de 5 caractères
			alert("Format obligatoire : HH:MM, nombre saisi trop petit");
		}else
		{
			for (var i=0; i<Horaire.value.length; i++) 
			{
				nChar = "" + Horaire.value.substring(i, i+1);
				if (nAccepte.indexOf(nChar) == "-1") ok1 = "non"; // Si un caractère pas dans la liste mettre ok à "non"
			}
			//alert(Horaire.value.substring(2,3));
			if(Horaire.value.substring(2,3)!=":") ok1 = "non";
		}

		if (ok1 == "oui")   // Si les caractères sont bons
		{
			aHoraire = Horaire.value.split(reg); //on separe tous les caractères entre ":" 
			nh = aHoraire[0]; nm = aHoraire[1];
			//alert(nh);
			//alert(nm);

			if(nh > 23)
			{
				ok1 = "non";
				alert("Nombre Maximal pour les heures 1 : 23");
			}

			if(nm > 59)
			{
				ok1 = "non";
				alert("Nombre Maximal pour les minutes 1 : 59");
			}
		}
	}

	//if(deb=="0")
	//{
	//	alert("debut");
	//}else
	//{
	//	alert("Pas le début");
	//}
	
	if(deb!="0")
	{
		//alert(Horaire_precedent.value);
		//alert(Horaire_precedent.name);
		if(ok1 == "oui" && Horaire_precedent.value.length > 0)
		{    
			if (Horaire_precedent.value.length < 5)
			{
				ok2 = "non"; //taille mini et maxi de 5 caractères
				alert("Format obligatoire : HH:MM, nombre saisi trop petit");
			}else
			{
				for (var i=0; i<Horaire_precedent.value.length; i++) 
				{
					nChar = "" + Horaire_precedent.value.substring(i, i+1);
					if (nAccepte.indexOf(nChar) == "-1") ok2 = "non"; // Si un caractère pas dans la liste mettre ok à "non"
				}
			}

			if (ok2 == "oui")   // Si les caractères sont bons
			{
				aHoraire_precedent = Horaire_precedent.value.split(reg); //on separe tous les caractères entre ":" 
				nh2 = aHoraire_precedent[0]; nm2 = aHoraire_precedent[1];
				//alert(nh2);
				//alert(nm2);
				if(nh2 > 23)
				{
					ok2 = "non";
					alert("Nombre Maximal pour les heures 2 : 23");
				}

				if(nm2 > 59)
				{
					ok2 = "non";
					alert("Nombre Maximal pour les minutes 2 : 59");
				}
			}

			if(ok2== "oui")
			{
				if(nh < nh2) //--- heure précédente > à l'heure suivante : Erreur
				{
					ok2 = "non";
					alert("L'heure doit etre supérieur à l'heure précédente");
				}

				if(nh == nh2) //---- Si heure précédente = heure suivante alors vérifier minutes
				{
					if(nm <= nm2)
					{
						ok2 = "non";
						alert("Les minutes doivent être supérieures aux minutes précédentes");
					}
				}
			}
		}
	}


	
   //alert(ok1);
   //alert(ok2);
	if ((ok1 == "non") || (ok2== "non") )
	{
		Horaire.focus();
		Horaire.value="";
		Horaire.select();
		//die();
		//alert ("\n "+saisie_date+" (>"+nA1+" <"+nA2+") - ("+nFormat+")")
		//alert ("\nDate invalide!. Veuillez entrer une date valide: "+nFormat+"\nentre "+nA1+" et "+nA2)
		//alert ("\nInvalid date. Please re-enter valid date: "+nFormat+"\nbetween "+nA1+" et "+nA2)
	}
}

// -->