<!--=======================================================================-->
<!--             Contrôle le choix entre la date unique et l'intervalle    -->
<!--=======================================================================-->
function controleIntervalle(date, from, to){

  var incorrect = "";
  var dateValue = document.getElementById(date).value;
  var fromValue = document.getElementById(from).value;
  var toValue = document.getElementById(to).value;

  if ( dateValue != "" && ( fromValue != "" || toValue != "" ) ) {
    /* alert("Erreur d'écriture de date : une date et un intervalle de dates ont été saisies."); */
    incorrect = "true";
    message.push("0");
    /* message = "0" */
  }

  else if ( fromValue != "" && toValue == "" ) {
    /* alert("Erreur d'écriture de date : il manque une date de fin dans l'intervalle."); */
    incorrect = "true";
    /* message = "1"; */
    message.push("1");
  }

  else if ( fromValue == "" && toValue != "") {
    /* alert("Erreur d'écriture de date : il manque une date de début dans l'intervalle."); */
    incorrect = "true";
    /* message = "2"; */
    message.push("2");
  }

  return incorrect;

}


<!--=======================================================================-->
<!--             Contrôle des dates                                        -->
<!--=======================================================================-->
/* On autorise seulement l'année, donc 4 chiffre. Les lettres ne sont pas
autorisées, sauf AN00, AN01, etc. */
function controleDates(list){

  var incorrect = "";

  for ( i = 0; i < list.length; i++) {

    var value = document.getElementById(list[i]).value;
    var name = document.getElementById(list[i]).name;
    var id = document.getElementById(list[i]).id;

    /* alert("dans controleDates["+i+"] pour id="+id+"="+value); */

    /* On ne travaille qu'avec des valeurs non nulles */
    if ( value != "" ) {

      /* On n'autorise pas les chaînes de plus de 4 caractères */
      if ( value.length > 4 ) {
        /* alert("Erreur d'écriture de date : seulement 4 caractères autorisés"); */
        incorrect = incorrect+"true";
        /* message = "3" ; */
        message.push("3");
      }

      /* Les chaînes de 4 caractères et moins sont autorisées */
      else {

        /* Pas de troncatures dans la date */
        var isTroncatures = new RegExp("\\*|\\?", "gi");
        if ( isTroncatures.test(value) ) {
          /* alert("Les troncatures ne sont pas autorisées pour la recherche par dates"); */
          incorrect = incorrect+"true";
          /* message = "4"; */
          message.push("4");
        }

        else {

          var dateChiffree = new RegExp("^[0-9]{1,4}$", "g");
          var testDateChiffree = dateChiffree.test(value);
          if ( testDateChiffree == false ) {
            incorrect = incorrect+"true";
            message.push("5");
          }

        }

      }

    }

  }

  /* Si on trouve un "true" dans la chaîne "incorrect", on stoppe */
  var exp = new RegExp("true", "g");
  if ( exp.test( incorrect ) ) return 'true';
  else return 'false';

}



<!--=========================================================================-->
<!--        Pour contrôler la zone de texte pour les noms et prénoms         -->
<!--=========================================================================-->
/* On autorise les troncatures "*" et "?" avec trois caractères minimum  */
function controleTextes(list){
  var incorrect="";

  for ( i = 0; i < list.length; i++) {

    var values = document.getElementById(list[i]).value.split(" ");
    if ( values != "" ) {
      for ( j = 0; j < values.length; j++ ) {
        var value = values[j];
        if (value != "") {
          incorrect = incorrect+controleTroncature(value);
        }
      }
    }
  }

  /* Si on trouve un "true" dans la chaîne "incorrect", on stoppe */
  var exp = new RegExp("true", "g");
  if ( exp.test( incorrect ) ) return 'true';
  else return 'false';
}



<!--=========================================================================-->
<!--             Pour contrôler l'utilisation de la troncature               -->
<!--=========================================================================-->
function controleTroncature(value){
  if ( value != "" ) {
    var incorrect;
    var exp = RegExp("\\*|\\?", "g");

    /* On a une troncature dans le terme recherché, on va calculer le nbre de caractères employés avec cette troncature */
    if ( exp.test(value) ){
      var valueSansTroncature = value.replace(exp,"");
      if( valueSansTroncature.length < 3 ) {
        incorrect = 'true';
        /* message = "7"; */
        /* alert("Erreur d'utilisation de la troncature dans : \""+value+"\""); */
        message.push("7");
      }
      else incorrect = 'false';
      return incorrect;
    }

    /* Pas de troncature dans le terme, la chaîne recherchée est correcte quelque soit sa longueur */
    else incorrect = 'false';

  }
}

function valeurIncorrecte(value){
   return incorrect;
}


<!--=========================================================================-->
<!--                   Pour afficher le message d'erreur                     -->
<!--=========================================================================-->
/* messages[] correspond au tableau d'erreur construit dynamiquement dans avancee.xsl */
function afficheMessage(message) {

/* alert("dans afficheMessage avec message ("+message.length+") = "+message); */

  for (i = 0 ; i < message.length ; i++) {

/* alert("message["+i+"] = "+message[i]); */

    if ( messages[message[i]].text != "" ) alert(messages[message[i]].text);
    /* Un message par défaut si aucun texte n'est trouvé */
    else alert("Un critère de recherche mal renseigné empêche le lancement de la recherche. Contrôlez les différentes zones de texte que vous avez remplies.");
  }

  /* On ré-initialise le tableau */
  this.message = new Array();

/* alert("sortir de afficheMessage avec message ("+this.message.length+") = "+this.message); */

}

<!--=======================================================================-->
<!--             Fonction createNewElement                                 -->
<!--=======================================================================-->
/* Crée un nouvel élément à partir des éléments passés en paramètre :
   # element  = le nom de l'élément
   # type = le type de l'élément
   # name = la valeur de l'attribut name de l'élément
   # value = la valeur de l'attribut value de l'élément */
function createNewElement(element, type, name, value) {

  var newElement = document.createElement(element);
  var newType = document.createAttribute("type");
  var newName = document.createAttribute("name");
  var newValue = document.createAttribute("value");
      newType.nodeValue = type;
      newName.nodeValue = name;
      newValue.nodeValue = value;
  newElement.setAttributeNode(newType);
  newElement.setAttributeNode(newName);
  newElement.setAttributeNode(newValue);

  return newElement;

}

