// [@PPR]
// Renvoie true si la date valide le gabarit a/b/c où a E [1..31], b E [1..12], c E [1000, 9999]
// Renvoie false sinon
function estDateValide(in_valeur) {
  
  if ( (in_valeur.length < 8) || (in_valeur.length > 10) ) return false;
  var l_positionSlash1 = in_valeur.indexOf("/");  if ((l_positionSlash1 != 1) && (l_positionSlash1!=2)) return false;
  var l_jour = in_valeur.substring(0, l_positionSlash1);
  var l_chaineRestante = in_valeur.substring(l_positionSlash1+1, in_valeur.length);
  var l_positionSlash2 = l_chaineRestante.indexOf("/"); if ((l_positionSlash2 != 1) && (l_positionSlash2!=2)) return false;
  var l_mois = l_chaineRestante.substring(0, l_positionSlash2);
  var l_annee = l_chaineRestante.substring(l_positionSlash2+1, l_chaineRestante.length); if (l_annee.length!=4) return false;
  if ((l_jour.length==2) && (l_jour.charAt(0)=="0")) l_jour = l_jour.substring(1,2); 
  if ((l_mois.length==2) && (l_mois.charAt(0)=="0")) l_mois = l_mois.substring(1,2); 
  var l_iJour = parseInt(l_jour);  if (isNaN(l_iJour)) return false;
  var l_iMois = parseInt(l_mois);  if (isNaN(l_iMois)) return false;
  var l_iAnnee= parseInt(l_annee);  if (isNaN(l_iAnnee)) return false;
  return (l_iJour>0) && (l_iJour<32) && (l_iMois>0) && (l_iMois<13) && (l_iAnnee>1900) && (l_iAnnee<2100);
  
}

// Renvoie true si la valeur valide le gabarit xx(x)*@xx(x)*.xx(x)*
// Renvoie false sinon
function estEmailValide(in_valeur) {
  
  if (in_valeur.length < 8) return false;
  var l_positionArobase = in_valeur.indexOf("@"); if (l_positionArobase < 2) return false;
  var l_chaineRestante = in_valeur.substring(l_positionArobase+1, in_valeur.length);
  var l_positionPoint = l_chaineRestante.indexOf("."); 
  if ((l_positionPoint < 2) || (l_positionPoint > l_chaineRestante.length-3))   return false;
  
  return true;
  
}

// Renvoie true si la valeur sélectionnée dans le champ in_champSELECT
// n'est pas la première option.
// renvoie false sinon
function estSelectionne(in_champSELECT) {
  
  return in_champSELECT.selectedIndex>0;
  
}

// Renvoie true si in_texte a une longueur appartenant à [in_min, in_max].
// Renvoie false sinon
function estDansBornes(in_texte, in_min, in_max) {

  return  (in_texte.length>=in_min) && (in_texte.length<=in_max)
  
}

// Renvoie true si in_checkBox est cochée
// Renvoie false sinon
function estCochee(in_checkBox) {
  if (in_checkBox.checked) {
    return true; 
  }
  return false;
}
