// -------------------------------------------------------------------------------------------------
// <summary>
// Fonction vérifiant si le champ est un entier
// </summary>
// <remarks>
// Le champ ne peut contenir que des caractères allant de 0 à 9.
// Exemple : estUnEntier(document.formulaire.champ)
// </remarks>
// <param name="champ">nom du champ à contrôler</param>
// <return>Retourne un boolén</return>
// --------------------------------------------------------------------------------------------------
function estUnEntier(champ) {
  var verif=/^[0-9]+$/
  if (!verif.test(champ.value)) {
    return false;
  }
  return true;
}

// -------------------------------------------------------------------------------------------------
// <summary>
// Fonction vérifiant si le champ est un réel
// </summary>
// <remarks>
// La fonction accepte la virgule et le point comme séparateur pour les décimales.
// Exemple : estUnReel(document.formulaire.champ)
// </remarks>
// <param name="champ">nom du champ à contrôler</param>
// <return>Retourne un boolén</return>
// --------------------------------------------------------------------------------------------------
function estUnReel(champ) {
  var verif=/^[0-9]+([,.][0-9])?[0-9]*$/;
  if (!verif.test(champ.value)) {
    return false;
  }
  return true;
}

// -------------------------------------------------------------------------------------------------
// <summary>
// Fonction vérifiant si le champ est une adresse mail valide
// </summary>
// <remarks>
// N'importe quel caractère et/ou chiffre + "@" + au moins 2 caractères et/ou chiffres + "." + 2 ou 4 caractères
// Exemple : estUnMail(document.formulaire.champ)
// </remarks>
// <param name="champ">nom du champ à contrôler</param>
// <return>Retourne un boolén</return>
// --------------------------------------------------------------------------------------------------
function estUnEmail(champ) {
  var verif = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]{2,}[.][a-zA-Z]{2,4}$/;
  if (!verif.test(champ.value)) {
    return false;
  }
  return true;
}

// -------------------------------------------------------------------------------------------------
// <summary>
// Fonction vérifiant si le champ est une date valide ainsi que si elle est antérieure ou postérieure
// à la date du jour
// </summary>
// <remarks>
// La fontion accepte tous les séparateurs possibles pour le jour le mois et l'année
// et renvoie la date au format JJ/MM/AAAA
// Exemple : verifDate(document.formulaire.champ, 0, 0)
// </remarks>
// <param name="champ">nom du champ à contrôler</param>
// <param name="postDate">(optionnel) Booléen indiquant si la date doit être postérieure à la date du jour</param>
// <param name="antDate">(optionnel) Booléen indiquant si la date doit être antérieure à la date du jour</param>
// <return>Retourne un boolén</return>
// --------------------------------------------------------------------------------------------------
function verifDate(champ, postDate, antDate) {
  var Separateur = new RegExp("[^0-9]","g"); /*Filtre pour tous les caractères non numériques*/
  var StructureDate = new RegExp("^(0[1-9]|[1-2][0-9]|[3][0-1])(0[1-9]|[1][0-2])(19|20)?[0-9][0-9]$");/*Filtre pour la structure des dates à 6 ou 8 caractères*/
  var erreur=0;
  var Aujourdhui = new Date();/*Stocke la date du jour au format date javascript*/
  var DateTestee = champ.value.replace(Separateur,"");/*Supprime tous les caractères non numériques dans la date saisie*/
  if (!StructureDate.test(DateTestee)) { /*Vérifie si la date expurgée des caractères non numériques respecte une structure de date à 6 ou 8 caractères*/
    erreur=1;
  } else {
    if (DateTestee.length==6) { /*Si la date saisie contient une année à deux chiffres seulement*/
      if (parseInt(DateTestee.substring(4,6))<50) { /*si l'année à deux chiffres est inférieure à 50, on considère que c'est le 21ème siècle*/
        DateTestee=DateTestee.substring(0,4)+"20"+DateTestee.substring(4,6);
      } else { /*si l'année à deux chiffres est supérieure ou égal à 50, on considère que c'est le 20ème siècle*/
        DateTestee=DateTestee.substring(0,4)+"19"+DateTestee.substring(4,6);
      }
    }
    var DateJs = new Date(DateTestee.substring(4,8), DateTestee.substring(2,4) - 1, DateTestee.substring(0,2)); /*Transforme la date saisie en date javascript*/
    /*Teste si la date javascript est la même que la date saisie*/
    if(DateJs.getDate() != DateTestee.substring(0,2) || (DateJs.getMonth()+1) != DateTestee.substring(2,4) || DateJs.getFullYear() != DateTestee.substring(4,8)) {
      erreur=2;
    }
  }
  if (erreur == 1) {return false;}
  if (erreur == 2) {return false;}
  if (DateJs < Aujourdhui && postDate == 1) {return false;}
  if (DateJs > Aujourdhui && antDate == 1) {return false;}
  champ.value=DateTestee.substring(0,2) + "/" + DateTestee.substring(2,4) + "/" + DateTestee.substring(4,8)
  return true;
}


