 //********************************** Début du fichier emails.js ****************
 // Couleur des champs mal remplis, couleur au choix, en notation HEXA
 // J'utilise aussi un style="background-image: url('../images/fond_champs.gif');"
 // dans mes formulaires, avec bascule, mais c'est un autre sujet.
 var CouleurFAUX="#FFFFFF";
  
 /*-- Fonction d'entrée pour les vérifs du formulaire ---------------------------
      Ici on peut tout modifier selon son besoin
      Passer this.form comme paramètre.
 -------------------------------------------------------------------------------*/
 function verifier(Couriel)
 {
   // Vérification du champs Courriel (accepte un courriel vide !)
   if (Couriel.value.length!=0) // à enlever si on ne veut pas de courriel vide !
     {
     if (!bSyntaxeEmail(Couriel.value))
       {
       ChampPasOK(Couriel);
       alert("Votre courriel est incorrect.\n\nVeuillez le vérifier.");
       Couriel.focus();
       return false;
       }
     if (!bDomainTLD(Couriel.value))
       {
       ChampPasOK(Couriel);
       alert("Votre courriel est incorrect.\n\nVeuillez vérifier le nom de domaine.");
       Couriel.focus();
       return false;
       }
     }
   ChampOK(Couriel);
  
   // Affichage du message final avant enregistrement
   if(confirm("Merci "+f.nom.value+".\n\nVotre demande a été envoyée.")) submit();
   return false;
 }
  
 // ******* Fonction particulières, à paramétrer ********************************
  
 /*-- Formatage des champs texte ----------------------------------------------*/
 function valid_texte(evt)
 {
 var interdit='€$$*+.&~#"{}()[]_^°=^%µ!§:;.,?|\\/`';
 return InterditTouches(evt, interdit);
 }
 /*-- Formatage des champs Mail -----------------------------------------------*/
 function valid_mail(evt)
 {
 var interdit='àâäãçéèêëìîïòôöõùûüñ &*?!:;,#~\'"^¨%$£?²§%*()[]{}<>\\|/`';
   return InterditTouches(evt, interdit);
 }
  
 //******* Fonction générales --------------------------------------------------
  
 /*-- Vérifie la syntaxe générale d'un Email sous forme domaine en texte ------*/
 function bSyntaxeEmail(sCouriel)
 {
 var re=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi;
 return (sCouriel.match(re)==sCouriel)&&(sCouriel.substr(sCouriel.lastIndexOf("@")).length<=256);
 }
 /*-- Vérifie que le Top Level Domain existe ------------------------------------
 Passer le courriel en entier. Attention les, ".eu" sont notés !
 La liste est à jour (jeudi 19 janvier 2006) et en avance pour les ".eu"
 var re= ... $/gi; doit être sur une seule ligne.
 (enlever les retour chariot, mis ici pour la présentation)
 ------------------------------------------------------------------------------*/
 function bDomainTLD(sCouriel)
 {
 var re=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|aero|arpa|biz|com|coop|edu|eu|gov|info|int|mil|museum|name|net|org|pro|jobs|travel)$/gi;
 return sCouriel.substr(sCouriel.lastIndexOf(".") + 1).match(re)!=null;
 }
 /*-- Fonction pour interdire la frappe de certains caractères ------------------
 (Passer l'évènement et le string des caractères interdits)
 ------------------------------------------------------------------------------*/
 function InterditTouches(evt, sInterdit)
 {
 var keyCode = evt.which ? evt.which : evt.keyCode;
   if (sInterdit.indexOf(String.fromCharCode(keyCode))>=0) return false;
 }
 /*-- Fonction pour mettre en minuscule -----------------------------------------
 Passer l'objet (ex : f.courriel ou document.forms['NomDuFormulaire'].mail)
 ------------------------------------------------------------------------------*/
 function minuscule(o)
 {
 o.value=o.value.toLowerCase();
 }
 /*-- Fonction pour réinitialiser la couleur de l'arrière plan-------------------
 Passer l'objet (ex : f.courriel ou document.forms['NomDuFormulaire'].mail)
 ------------------------------------------------------------------------------*/
 function ChampOK(o)
 {
 o.style.backgroundColor="";
 }
 /*--Fonction pour changer la couleur de l'arrière plan ------------------------
 Passer l'objet (ex : f.courriel ou document.forms['NomDuFormulaire'].mail)
 ------------------------------------------------------------------------------*/
 function ChampPasOK(o)
 {
 o.style.backgroundColor=CouleurFAUX;
 }
 /*----------------------------------------------------------------------------*/
