/*****************************************
  Fichier Javascript propriété de Enoctis

  Scripts du module "Formulaire" (sur le site)
*****************************************/

var ObjetsFormulaires = new Array;
// fonction ajoutant un champ à vérifier dans un formulaire
function AddObjetFormulaire(IDForm, IDChamp, TypeVerif, Libelle) {
  var ObjetFormulaire = new Object;
  ObjetFormulaire.IDForm = IDForm;
  ObjetFormulaire.IDChamp = IDChamp;
  ObjetFormulaire.TypeVerif = TypeVerif;
  ObjetFormulaire.Libelle = Libelle;
  ObjetsFormulaires.push(ObjetFormulaire);
} // fin de AddObjetFormulaire
// fonction vérifiant la validité d'un formulaire
function SubmitFormulaire(Form, IDForm, TraitementLocal) {
  var is_ok = true;
  var Erreurs = new Array();
  var Ignore = new Array();
  for(var i=0;i<ObjetsFormulaires.length;i++) {
    var ObjetFormulaire = ObjetsFormulaires[i];
    if ((ObjetFormulaire.IDForm == IDForm) && (!Ignore[ObjetFormulaire.IDChamp])) {
      var valeur;
      if (Form.elements[ObjetFormulaire.IDChamp].type == 'checkbox') {
        valeur = Form.elements[ObjetFormulaire.IDChamp].checked ? Form.elements[ObjetFormulaire.IDChamp].value : '';
      } else {
        valeur = Form.elements[ObjetFormulaire.IDChamp].value;
      }
      if ((ObjetFormulaire.TypeVerif == 'obligatoire') && (Trim(valeur) == '')) {
        is_ok = false; Erreurs.push('Le champ "'+ObjetFormulaire.Libelle+'" est obligatoire\n'); Ignore[ObjetFormulaire.IDChamp] = true;        
      } else if ((ObjetFormulaire.TypeVerif == 'nombre') && (isNaN(valeur))) {
        is_ok = false; Erreurs.push('Le champ "'+ObjetFormulaire.Libelle+'" doit être un nombre\n'); Ignore[ObjetFormulaire.IDChamp] = true;        
      } else if ((ObjetFormulaire.TypeVerif == 'mail') && (!IsGoodMail(valeur))) {
        is_ok = false; Erreurs.push('Le champ "'+ObjetFormulaire.Libelle+'" doit être une adresse mail valide\n'); Ignore[ObjetFormulaire.IDChamp] = true;
      }
    }
  } // fin de for
  if (is_ok) {
    if (TraitementLocal) {
      alert('Les informations ont bien été prises en compte');
    }
  } else {
    if (Erreurs.length == 1) {
      alert(Erreurs[0]);
    } else {
      var texte_erreur = 'Les erreurs suivantes empêchent la validation du formulaire :\n';
      for (var i=0;i<Erreurs.length;i++) { texte_erreur += ' - '+Erreurs[i]+'\n'; }
      alert(texte_erreur);
    }
  }
  return is_ok;
} // fin de SubmitFormulaire

