  
/* 
Type : c,C ; d,D ; n,N ; T,t ; r,R ; b,B ;m,M;a,A;p,P(Combobox, Date, Numérique, Texte ( alphanumérique ), Radio, CheckBox,Mail,daten,password) 
Option : o,O ou f,F (Obligatoire ou Facultatif) 
*/ 
function Verif_Forms() 
{ 
//alert( form1.elements[1].value);
  var ok; 
  var NbBox; 
  var NbRadio; 
  var NbElements = form1.elements.length; 
  // Boucle tous les éléments du formulaire 

for (var l = 0; l < NbElements; l++) 
  { 
    var Nom_Element = form1.elements[l].name; 
    var Nom_Lowercase = Nom_Element.toLowerCase(); 
    var Champ = form1.elements[l]; 
	    // Verifie que l'element n'est pas vide si il est obligatoire 
    if (Nom_Lowercase.substring(0,1) == "o" && Champ.value == "") 
    { 
      alert("Le champ suivant est obligatoire : " + Champ.id ); 
      Champ.focus(); 
      return false; 
    } 
	 // Verifie que l'element est mail
    if (Nom_Lowercase.substring(1,2) == "m" ) 
    { 
     
   	mail=Champ.value;
		  if ((mail.indexOf("@")<0)||(mail.indexOf(".")<0)) {         
         alert("Veuillez vérifier votre Mail!");
		 Champ.focus(); 
         return false
      }
	
    } 
	 
	 // Verifie mot de pass
    if (Nom_Lowercase.substring(1,2) == "p" ) 
    { 
     if(document.form1.otpass.value!=Champ.value)
  {
	  	alert("Vérifier votre mot de passe");
  		Champ.focus(); 
        return false; 
  }   	
	
	
    } 
	 
	 
	 // Verifie date naissance
  /*  if (Nom_Lowercase.substring(1,2) == "a" ) 
    { 
     	daten=Champ.value;
		 if ((daten.substring(2,3)!="/")||(daten.substring(5,6)!="/")) {       
         alert("Veuillez vérifier le format de la date de naissance!");
         Champ.focus(); 
		 return false
      }
	
    } */
    // Verifie que l'element contient bien une date même si ce champ n'est pas obligatoire à remplir 
    if (Nom_Lowercase.substring(1,2) == "d") 
    { 
      // Appel à la fonction Control_Date 
      if (! Control_Date(Champ.value)) 
      { 
        alert("Format de date invalide pour le champ " + Champ.id + ".\nLe format de date valide est JJ/MM/AAAA" ); 
        Champ.focus(); 
        return false; 
      } 
    } 
    // Verifie que l'element ne contient que des chiffres même si ce champ n'est pas obligatoire à remplir 
    if (Nom_Lowercase.substring(1,2) == "n") 
    { 
      if (isNaN(Champ.value)) 
      { 
        alert("Le champ suivant est numérique : " + Champ.id ); 
        Champ.focus(); 
        return false; 
      } 
    } 
    // Verifie que l'utilisateur a fait un choix dans la combobox 
    // ATTENTION : 
    // Implique la déclaration d'une option dans le select avec la valeur -1 ** 
    if (Nom_Lowercase.substring(0,1) == "o" && Nom_Lowercase.substring(1,2) == "c" ) 
    { 
      if (Champ.value == -1) 
      { 
        alert("Le champ suivant est obligatoire : " + Champ.id); 
        Champ.focus(); 
        return false; 
      } 
    } 
    // Controle qu'un boutton radio a été selectionné 
    if (Nom_Lowercase.substring(0,1) == "o" && Nom_Lowercase.substring(1,2) == "r") 
    { 
      ok = false; 
      // getElementsByName([Nom_element]).length renvoie le nombre d'element du meme nom 
      // Merci bultez 
      NbRadio = document.getElementsByName(Nom_Element).length; 
      for (var k = 0; k < NbRadio; k++) 
      { 
        if (document.getElementsByName(Nom_Element)[k].checked == true) 
        { 
          ok = true 
          k = document.getElementsByName(Nom_Element).length; 
        } 
      } 
      if (ok == false) 
      { 
        alert("Le champ suivant est obligatoire : " + Champ.id); 
        Champ.focus(); 
        return false; 
      } 
    } 
    // Meme chose mais avec des CheckBox 
    if (Nom_Lowercase.substring(0,1) == "o" && Nom_Lowercase.substring(1,2) == "b" ) 
    { 
      ok = false; 
      NbBox = document.getElementsByName(Nom_Element).length; 
      for (var k = 0; k < NbBox; k++) 
      { 
        if (document.getElementsByName(Nom_Element)[k].checked == true) 
        { 
          ok = true 
          k = document.getElementsByName(Nom_Element).length; 
        } 
      } 
      if (ok == false) 
      { 
        alert("Le champ suivant est obligatoire : " + Champ.id); 
        Champ.focus(); 
        return false; 
      } 
    } 
  } 
  document.form1.zzlid.value=1;
  return true; 
} 
  
  
// Si l'element est nul, renvoie True ( "oui, l'element est vide" ) 
// Sinon, vérifie la date 
function Control_Date (MaDate) 
{ 
  var strTemporaire = MaDate; 
   
  if (strTemporaire == '') 
    return true; 
    strTemporaire = formatDate(strTemporaire); 
  if (strTemporaire == null) 
    return false; 
  
  return true; 
} 
  
// Enleve les "XY_" devant le [Nom_de_l'element] 
function Format_Nom (NomChamp) 
{ 
  var position 
  var NomTemp = NomChamp 
  position = NomTemp.indexOf("_"); 
  NomTemp = NomTemp.substr(position,NomTemp.length) 
  var reg = new RegExp("_","gi"); 

  NomTemp = NomTemp.replace(reg," "); 
  return NomTemp; 
} 
  
  
// Function qui format une date et vérifie si elle n'est pas farfelue 
// Cette fonction n'est pas de moi. Je sais juste qu'elle vient d'un Cédric 
// Merci à lui 
function formatDate(valeur) 
{ 
  var JJ;var MM;var AAAA; 
  isMatch = false; 
  var tabDate 
  // L'ordre de lecture des expressions est important 
  var expReg1 = /(\d{2})(\d{2})(\d{4}|\d{2})/; 
  var expReg2 = /(\d{2}|\d)\/(\d{2}|\d)\/(\d{4}|\d{2})/; 
  // tabDate={JJMMAAAA ou JJMMAA} 
  tabDate = valeur.match(expReg1); 
  if ((tabDate != null) && (tabDate[0] == valeur)) 
  { 
    isMatch = true; 
    JJ = tabDate[1]; 
    MM = tabDate[2]; 
    if (tabDate[3].length == 2 ) AAAA = '20' + tabDate[3] ; 
    else AAAA = tabDate[3]; 
  } 
  // tabDate={JJ/MM/AAAA ou JJ/MM/AA} 
  tabDate = valeur.match(expReg2); 
  if ((tabDate != null) && (tabDate[0] == valeur)) 
  { 
      isMatch = true; 
      if (tabDate[1].length == 1 ) JJ = '0' + tabDate[1]; 
      else JJ = tabDate[1]; 
      if (tabDate[2].length == 1 ) MM = '0' + tabDate[2]; 
      else MM = tabDate[2]; 
      if (tabDate[3].length == 2 ) AAAA = '20' + tabDate[3] ; 
      else AAAA = tabDate[3]; 
    } 
     
    var objDate=new Date(AAAA, (MM - 1) ,JJ); 
  
    if ((JJ=='32') && (MM='13') && isMatch) { 
      //return JJ + '/' + MM + '/' + AAAA; 
      return objDate; 
    } 
       
    if ( (!isMatch) || (objDate.getDate() != JJ) || ((objDate.getMonth()+1) != MM )) { 
      return null; 
    } 
    //return JJ + '/' + MM + '/' + AAAA; 
    return objDate; 
  } 