/*DEBUT
CE JS TRAITE LA FONCTION GENERIQUE CHARGEE DE CONTROLER QUE TOUS LES CHAMPS OBLIGATOIRES SONT SAISIS
EN CAS DE NON SAISIE DE CES CHAMPS UN MESSAGE D ERREUR EST AFFICHE EN POP-UP
LES CHAMPS TRAITES SONT LES CHAMPS DE SAISIE ET LES PICK LISTES DONT LE PREMIER INTITULE EST "VEUILLEZ SAISIR ..."
INPUTS : NOM DU FORMULAIRE,
	     NOM DES CHAMP n,
         NATURE DU CHAMP n (TEXTE OU SELECT)
EXEMPLE : Envoyer('RECHERCHER,AEROPORT_DEPART,SELECT');
A SAISIR SANS ESPACE LES ARGUMENTS
AFFICHE EGALEMENT L IMAGE D ERREUR
FAUDRA REMOBER CERTAINES FONCTIONS QUAND ELLES NE SERONT PLUS UTILISEES!
*/

var  tabElt = new Array(0);

/*fonction d'initialisation à appeler avant toutes choses*/
function InitTableauEltForm() {
  var nbEltForm = document.forms[0].length;
  tabElt = new Array(nbEltForm);
  for (i=0; i<nbEltForm; i++){
    tabElt[document.forms[0].elements[i].name] = i;
  } 
}

/* fonction de recherche d'un indice*/
function RechercherIndiceElt(nomEltForm) {
  var indiceElt = nomEltForm;
  if(tabElt.length==0) {
    InitTableauEltForm();
  }
  if (tabElt) {
    var num = tabElt[nomEltForm];
    if (isNaN(num) == false) {
      /* Est-ce un nombre ?*/
      indiceElt = num
    }
  }
  return indiceElt;      
}

/* CONTROLE SI LES CHAMPS TEXTES NE SONT PAS VIDES*/
function ControleTexte(NomFormulaire, NomChamp) {
  var ChaineValeurChamp = "document." + NomFormulaire + ".elements[RechercherIndiceElt('" + NomChamp + "')].value";
  var ValeurChamp = eval(ChaineValeurChamp);
  if(ValeurChamp == "") {
    ChampsObligatoiresVides += "PasDeSaisie";
    DstepRoll(NomChamp,ImgON,0);
  }
}

/* CONTROLE SI LES CHAMPS TEXTES NE SONT PAS VIDES*/
function ControleTexteByIndice(NumFormulaire, NomChamp) {
  var ChaineValeurChamp = "document.forms[" + NumFormulaire + "].elements[RechercherIndiceElt('" + NomChamp + "')].value";
  var ValeurChamp = eval(ChaineValeurChamp);
  if(ValeurChamp == "") {
    ChampsObligatoiresVides += "PasDeSaisie";
    DstepRoll(NomChamp,ImgON,0);
  }
}

/* CONTROLE SI LES CHAMPS TEXTES NE SONT PAS VIDES*/
function CheckTexteByObject(champ, imgChamp, mandatoryFieldErrorMessage) {
  var ChaineValeurChamp = "$('" + champ + "').value";
  var ValeurChamp = eval(ChaineValeurChamp);
  if(ValeurChamp == "")	{
    ChampsObligatoiresVides += "PasDeSaisie";
    DstepRoll(imgChamp,ImgON,0);
    if (document.showError) {
      if (!mandatoryFieldErrorMessage || mandatoryFieldErrorMessage == "") {
        mandatoryFieldErrorMessage = "Veuillez remplir le(s) champ(s) obligatoire(s)";
      }
      document.showError($(champ), imgChamp, mandatoryFieldErrorMessage);
    }
  }
}

/*CONTROLE SI L OPTION DE LA LISTE N EST PAS LE WORDING PAR DEFAUT*/
function ControleSelect(NomFormulaire, NomChamp) {
  var ChaineValeurChamp = "document." + NomFormulaire + ".elements[RechercherIndiceElt('" + NomChamp + "')].selectedIndex";
  var ValeurChamp = eval(ChaineValeurChamp);
  if(ValeurChamp == 0) {
    ChampsObligatoiresVides += " " + "PasDeSaisie";
    DstepRoll(NomChamp,ImgON,0);
  }
}

/*CONTROLE SI L OPTION DE LA LISTE N EST PAS LE WORDING PAR DEFAUT*/
function ControleSelectByIndice(NumFormulaire, NomChamp) {
  var ChaineValeurChamp = "document.forms[" + NumFormulaire + "].elements[RechercherIndiceElt('" + NomChamp + "')].selectedIndex";
  var ValeurChamp = eval(ChaineValeurChamp);
  if(ValeurChamp == 0) {
    ChampsObligatoiresVides += " " + "PasDeSaisie";
    DstepRoll(NomChamp,ImgON,0);
  }
}

/*CONTROLE SI L OPTION DE LA LISTE N EST PAS LE WORDING PAR DEFAUT*/
function CheckSelectByObject(champ, imgChamp, mandatoryFieldErrorMessage) {
  var ChaineValeurChamp = "$('" + champ + "').selectedIndex";
  var ValeurChamp = eval(ChaineValeurChamp);
  if(ValeurChamp == 0) {
    ChampsObligatoiresVides += " " + "PasDeSaisie";
    DstepRoll(imgChamp,ImgON,0);
    if (document.showError) {
      if (!mandatoryFieldErrorMessage || mandatoryFieldErrorMessage == "") {
        mandatoryFieldErrorMessage = "Veuillez remplir le(s) champ(s) obligatoire(s)";
      }
      document.showError(champ, imgChamp, mandatoryFieldErrorMessage);
    }
  }
}

/*TESTE SI ON DOIT AFFICHER UNE POP UP*/
function ShowMandatoryFieldsErrors(mandatoryFieldErrorMessage) {
  if(ChampsObligatoiresVides != "") {
    if (!mandatoryFieldErrorMessage || mandatoryFieldErrorMessage == "") {
      mandatoryFieldErrorMessage = "Veuillez remplir le(s) champ(s) obligatoire(s)";
    }
    alert(mandatoryFieldErrorMessage + "\n");
  }
}

/*RECUPERE LES PARAMETRES PASSES DANS LE SUBMIT*/
function ChampsObligatoires(ListeElements) {
  var inString = ListeElements;
  var outString = "";
  var Cherche = ",";
  var Tableau = new Array;
  var Compteur = 0;
  var IndiceTableau = 0;
  var i = 0;
  var j= 0;
  var k = 0;

  if (!inString) {
    return "";
  }
      
  /* ON METS TOUS LES ELEMENTS DU FORMULAIRE DANS UN TABLEAU*/
  var bContinue = true;
  while(bContinue) {
    Compteur = inString.indexOf(Cherche);
    Tableau[IndiceTableau] = inString.substring(0, Compteur);
	       
    if(Compteur == inString.lastIndexOf(Cherche)) {
      IndiceTableau++;
      Tableau[IndiceTableau] = inString.substring(Compteur+1, inString.length);
      bContinue = false;
    } else {
      inString = inString.substring(Compteur+1,inString.length);
    }
    IndiceTableau++;
  }
	
   var NbElements = Tableau.length;
   /* ON DETERMINE LES CHAMPS TEXTE :*/
   for(i=0; i<NbElements; i++) {
     if (Tableau[i] == "COT") {
       ControleTexte(Tableau[0], Tableau[i-1]);
     }
   }

   /* ON DETERMINE LES CHAMPS SELECT :*/
   j=0;k=0;
   for (i=0; i<NbElements; i++) {
     if (Tableau[i] == "COS"){
       ControleSelect(Tableau[0], Tableau[i-1]);
     }
   }
}


/*RECUPERE LES PARAMETRES PASSES DANS LE SUBMIT*/
function ChampsObligatoiresByIndice(ListeElements) {
  var inString = ListeElements;
  var outString = "";
  var Cherche = ",";
  var Tableau = new Array;
  var Compteur = 0;
  var IndiceTableau = 0;
  var i = 0;
  var j= 0;
  var k = 0;
	
  if (!inString) {
    return "";
  }
        
  /* ON METS TOUS LES ELEMENTS DU FORMULAIRE DANS UN TABLEAU*/
  var bContinue = true;
  while(bContinue) {
    Compteur = inString.indexOf(Cherche);
    Tableau[IndiceTableau] = inString.substring(0, Compteur);
	       
    if (Compteur == inString.lastIndexOf(Cherche)) {
      IndiceTableau++;
      Tableau[IndiceTableau] = inString.substring(Compteur+1, inString.length);
      bContinue = false;
    } else {
      inString = inString.substring(Compteur+1,inString.length);
    }
    IndiceTableau++;
  }
  var NbElements = Tableau.length;
  /* ON DETERMINE LES CHAMPS TEXTE :*/
  for(i=0; i<NbElements; i++) {
    if (Tableau[i] == "COT") {
      ControleTexteByIndice(Tableau[0], Tableau[i-1]);
    }
  }
  /* ON DETERMINE LES CHAMPS SELECT :*/
  j=0;k=0;
  for (i=0; i<NbElements; i++) {
    if (Tableau[i] == "COS"){
      ControleSelectByIndice(Tableau[0], Tableau[i-1]);
    }
  }
}

/*RECUPERE LES PARAMETRES PASSES DANS LE SUBMIT*/
function ChampsObligatoiresByObject(ListeElements, ListeImg) {
  var inString = ListeElements;
  var inStringImg = ListeImg;
  var outString = "";
  var Cherche = ",";
  var Tableau = new Array;
  var TabImg = new Array;
  var Compteur = 0;
  var CompteurImg = 0;
  var IndiceTableau = 0;
  var IndiceTableauImg = 0;
  var i = 0;
  var j= 0;
  var k = 0;

  if (!inString) {
    return "";
  }
        
  /* ON METS TOUS LES ELEMENTS DU FORMULAIRE DANS UN TABLEAU*/
  var bContinue = true;
  while(bContinue) {
    Compteur = inString.indexOf(Cherche);
    Tableau[IndiceTableau] = inString.substring(0, Compteur);
	       
    if (Compteur == inString.lastIndexOf(Cherche)) {
      IndiceTableau++;
      Tableau[IndiceTableau] = inString.substring(Compteur+1, inString.length);
      TabImg[IndiceTableau] = inStringImg.substring(Compteur+1, inStringImg.length);
      bContinue = false;
    } else {
      inString = inString.substring(Compteur+1,inString.length);
    }
    IndiceTableau++;
  }
  var bContinueImg = true;
  while(bContinueImg) {
    /* ON MET TOUTES LES IMG DES ELEMENTS DU FORMULAIRE DANS UN TABLEAU*/
    CompteurImg = inStringImg.indexOf(Cherche);
    TabImg[IndiceTableauImg] = inStringImg.substring(0, CompteurImg);
    if (CompteurImg == inStringImg.lastIndexOf(Cherche)) {
      IndiceTableauImg++;
      TabImg[IndiceTableauImg] = inStringImg.substring(CompteurImg+1, inStringImg.length);
      bContinueImg = false;
    } else {
      inStringImg = inStringImg.substring(CompteurImg+1,inStringImg.length);
    }
    IndiceTableauImg++;
  }
  var NbElements = Tableau.length;
  /* ON DETERMINE LES CHAMPS TEXTE :*/
  for (i=0; i<NbElements; i++) {
    if (Tableau[i] == "COT") {
      ControleTexteByObject(Tableau[i-1], TabImg[i-1]);
    }
  }
  /* ON DETERMINE LES CHAMPS SELECT :*/
  j=0;k=0;
  for (i=0; i<NbElements; i++) {
    if (Tableau[i] == "COS") {
      ControleSelectByObject(Tableau[i-1], TabImg[i-1]);
    }
  }
}
	 
/*FIN*/


/**
 * Rajoute un evenement onkeypress sur tous les text input de la page afin que la touche entree 
 * ne valide pas le formulaire sous Safari, mais appelle la fonction javascript de vérification de
 * la saise (qui appelle ensuite FormulaireOK);
 * @param submitFunc  la fonction de verification du formulaire
 */
function bloqueToucheEntreeSurSafari(submitFunc) {
  if (navigator.userAgent.toLowerCase().indexOf("safari") != -1) {
    var inputs = document.getElementsByTagName("input");
    for (var j = 0; j < inputs.length; j++) {
      var element = inputs[j];
      if (element.type.toLowerCase() == "text") {
        var old = (element.onkeypress) ? element.onkeypress : function () {};
        element.onkeypress = function () {if(event.keyCode==13||event.keyCode==3){submitFunc();return false;}old();};
      }
    }
  }
}

/* TO use on award page */
function checkTextRequiredField(field, img, msg) {
  var valueField = $(field).value;
  checkRequiredField(field, valueField, img, msg);
}

function checkSelectRequiredField(field, img, msg) {
  if ($(field).selectedIndex != -1) {
    var valueField =  $(field).options[$(field).selectedIndex].value;
    checkRequiredField(field, valueField, img, msg);
  } else {
    checkRequiredField(field, "", img, msg);
  }
}

function checkRequiredField(field, valueField, img, msg){
  if (valueField == "") {
    ChampsObligatoiresVides += "PasDeSaisie";
    DstepRoll(img,ImgON,0);
    if (document.showError) {
      document.showError($(field), img, msg);
    }
  }  
}
