// ****************************************************************************
//   Fonction de validation Automatique de formulaires                        *
//                                                                            *
//   verifie champs si necessaire en fonction hiden field "obligation"...     *
//   test validité adresse email pour champs dont le nom est {mail/email/mel} *
//   2007 david.haurillon@laposte.net                                         *
// ****************************************************************************

// Fonction utilisée **********************************************************
// vire espace début et fin de chaine
function trim(s) {
    return s.replace(/^\s+/, '').replace(/\s+$/, '');
}

// Validation de formulaire ********************************************************
function form_valid(frm){
  // ini retour erreur ---------------------------------------------------
  var ok=true;    var chainevide=false;
  //recup liste de champs a tester et parse ------------------------------
  var obligation=document.getElementById('obligatoire').value;
  var reg=new RegExp("[|]+", "g");
  var oblige=obligation.split(reg);
  var longeur=oblige.length;
  //test si champs a tester ----------------------------------------------
  if (longeur>0){
     for (i=0;i<longeur;i++){
        //recup valeur du champs  -------------------------------------------------
        var atester=document.getElementById(oblige[i]);
        var val=trim(atester.value);
        //test si champs défini ---------------------------------------------------
        if (val.length<1){
          ok=false;
          chainevide=true;
        }
        //test si champs email ----------------------------------------------------
        if ( (atester.name=='mail') || (atester.name=='email') || (atester.name=='mel')){
          if (!atester.value.match(/^(\w|-|\d|_)+(\.(\w|-|\d|_)+)*@(\w|-|\d)+(\.(\w|-|\d)+)+$/)){
            //mail non valid
            ok=false;
            alert ("Votre adresse email n'est pas valide");
          }
        }

     }
  }  
  if (chainevide){
          alert ('Vous avez laissé vide certains champs obligatoires');

  }
  return ok;
}

