// Verifie le bon format d'un email
function validMail(email) {
  if (email =='') { return false  }
  
  var reg_mail = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
  
  if(!(reg_mail.exec(email) != null)) {	return false; }
  
  return true;
}

// Supprime les accents contenus dans une chaine
function noaccent(chaine) {
  temp = chaine.replace(/[àâä]/gi,"a")
  temp = temp.replace(/[éèêë]/gi,"e")
  temp = temp.replace(/[îï]/gi,"i")
  temp = temp.replace(/[ôö]/gi,"o")
  temp = temp.replace(/[ùûü]/gi,"u")
  return temp
}


function checkHoraire(hor) {
	separateur = ":"; // separateur entre jour/mois/annee
  var h = (hor.substring(0,2));
  var m = (hor.substring(3,5));

  if(((isNaN(h)) || (h<1) || (h>23))) { return false; }
  if (((isNaN(m)) || (m>60))) { return false; }
  return true;
}

 // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
 // Le séparateur est défini dans la variable separateur
function checkdate(d) {
  var amin=1999; // année mini
  var amax=2020; // année maxi
  var separateur="/"; // separateur entre jour/mois/annee
  var j=(d.substring(0,2));
  var m=(d.substring(3,5));
  var a=(d.substring(6));
  
  if(((isNaN(j)) || (j<1) || (j>31))) { return false; }
  if(((isNaN(m)) || (m<1) || (m>12))) { return false; }
  if(((isNaN(a)) || (a<amin) || (a>amax))) { return false; }
  if(((d.substring(2,3) != separateur) || (d.substring(5,6) != separateur))) { return false; }
  
	var d2=new Date(a,m-1,j);
	j2=d2.getDate();
	m2=d2.getMonth()+1;
	a2=d2.getFullYear();
	if(a2<=100) { a2 = 1900+a2 }
	if((j!=j2) || (m!=m2) || (a!=a2)) { return  false; }
	
  return true;
}

// renvoie faux si la date de fin est anterieur a la date de debut
function dateCompare(dateDebut,dateFin) {
  var sj = (dateDebut.substring(0,2));
  var sm = (dateDebut.substring(3,5));
  var sy = (dateDebut.substring(6));
  var ej = (dateFin.substring(0,2));
  var em = (dateFin.substring(3,5));
  var ey = (dateFin.substring(6));
  
  dDeb = new Date(sy, sm, sj).getTime();
  dFin = new Date(ey, em, ej).getTime();

	if(dFin < dDeb) { return false; }
	else { return true; }
} 

//Fonction de vérification chaine de cratere sans chiffres
function verif_alphab (champ,saisie) {
  var reg_alphab = /^[A-Za-z]+$/;
  if (!(reg_alphab.exec(saisie)!=null)) {
    alert("Le champ saisie n'est pas au format valide !");
    champ.focus();
  }
}

//Fonction de vérification de saisie d'heure
function verif_heure(champform,valeur) {
  var ctl = /^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/;
  if (!(ctl.exec(valeur)!=null)) {
    alert("L'heure saisie n'est pas au format valide !");
    champform.focus()
  }
}
//Fonction de v?rification saisie num?rique (chiffres)
function verif_numeric (nb_saisie,champnum) {
  var nb=nb_saisie.value;
  var rfocu=champnum;
  if ((isNaN(nb))) {
    alert("Le nombre saisi n'est pas valide !");
    return(false);
  }
  return(true);
}

function is_int(obj) {
	return !(isNaN(obj));
}

//Fonction de v?rification de saisie d'email au bon format
function verif_mail(email) {
  if (email!='') {
    var reg_mail = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
    if (!(reg_mail.exec(email)!=null)) {
      alert("L'adresse email saisie n'est pas au format valide !");
      return false;
    }
  }
  return true;
}

//Fonction de v?rification de saisie code postal francais et belge

function verif_cp(cp) {
  var reg_cp = /^[0-9]{5}$/
  //code postal francais ^(0[1-9]|[1-9][0-9])[0-9]{3}$
  // code postal belge ^(F-[0-9]{4,5}|B-[0-9]{4})$
  if (!(reg_cp.exec(cp)!=null)) {
    alert("Le code postal saisie n'est pas au format valide !");
    return(false);
  }
  return(true);
}
//Fonction de v?rification de saisie du num?ro de t?l?phone fran?ais
function verif_tel(tel) {
  if (tel!='') {
    var reg_tel = /^[0-9]{10}$/
    if (!(reg_tel.exec(tel)!=null)) {
      alert("Le numero de tel saisie n'est pas au format valide !");
      return(false);
    }
  }
  return(true);
}
//fonction utilisant la v?rification de la saisie au bon format d'une date et r?cup?ration de focus
function verifdate_blur(datesaisie,champdat) {
  var dateaverif=datesaisie.value;
  var rfocu=champdat;
  // rangement de la date dans des variables
  if (dateaverif!="") {
    if (!verifdate(dateaverif)) {
      alert("Attention soit la date n'est pas correcte, soit elle n'est pas au format JJ/MM/AAAA");DonnerFocus(rfocu);return false;
    }
  }
  return true;
}


/* Permet de vider un champs présaisi */
function clean_field(obj) {
	obj.value = '';
}

function implode( glue, pieces ) {
	return ( ( pieces instanceof Array ) ? pieces.join ( glue ) : pieces );
}


// Passe au champs suivant
function goToNextField(objFrm, curField, nextField, chgLimit)  {
  if(curField.value.length == chgLimit) {
    GetId(nextField).select();
  }
}
