// 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;
}

//   0 si date_1=date_2
//   1 si date_1>date_2
//  -1 si date_1<date_2	
function dateCompare(dateDebut,dateFin) {
  var sj = (dateDebut.substring(0,2));
  var sm = (dateDebut.substring(3,5));
  var sy = (dateDebut.substring(6,10));
  var ej = (dateFin.substring(0,2));
  var em = (dateFin.substring(3,5));
  var ey = (dateFin.substring(6,10));
  
  dDeb = new Date();
	dDeb.setFullYear(sy); 
	dDeb.setMonth(sm-1);
	dDeb.setDate(sj);
	
  dFin = new Date();
	dFin.setFullYear(ey); 
	dFin.setMonth(em-1);
	dFin.setDate(ej);
	
	diff = dDeb.getTime()-dFin.getTime();
	return (diff==0?diff:diff/Math.abs(diff));
} 

//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();
  }
}

function autoCompOff(obj) {
	obj.setAttribute("autocomplete","off");
}

function objet_get_position(obj) {
  var topValue= 0,leftValue= 0;
  while(obj)
  {
		leftValue+= obj.offsetLeft;
		topValue+= obj.offsetTop;
		obj = obj.offsetParent;
  }
  return Array(leftValue, topValue);
}

function objet_get_size(obj) {
	var hauteur = obj.offsetHeight;
	var largeur = obj.offsetWidth;

  return Array(largeur, hauteur);
}
function page_get_size() {
 var viewportwidth;
 var viewportheight;
 
 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
 
 if (typeof window.innerWidth != 'undefined')
 {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
 }
 
// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

 else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
 {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
 }
 
 // older versions of IE
 
 else
 {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
 }
  return Array(viewportwidth, viewportheight);
}

/*
// Recupere la taille de la page
function page_get_size() {
	var widthPage = heightPage = 0;
	if (document.body) { // autres qu'Explorer
		widthPage = document.body.clientWidth;
		heightPage = document.body.clientHeight;
	} 
	else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		widthPage = document.documentElement.clientWidth;
		heightPage = document.documentElement.clientHeight;
	}
	else if (self.innerHeight) {	// tous excepté Explorer
		widthPage = self.innerWidth;
		heightPage = self.innerHeight;
	}
  return Array(widthPage, heightPage);
}
*/

// Recupere le scroll sur la page
function getScrollXY() {
	var plusX = plusY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    plusY = window.pageYOffset;
    plusX = window.pageXOffset;
  } 
  else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    plusY = document.body.scrollTop;
    plusX = document.body.scrollLeft;
  } 
  else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    plusY = document.documentElement.scrollTop;
    plusX = document.documentElement.scrollLeft;
  }
  return Array(plusX, plusY);
}

// Compte le nombre de champs pour le nom donnée
function element_get_number(objFrm, fName) {
	var i = 0;
	var n = 0;
	while(i < objFrm.elements.length) {
		if(isNaN(objFrm.elements[i]) && objFrm.elements[i].name == fName) {
			n++;
		}
		i++;
	}
	return n;
}


function count_nb_element(objFrm, fName) {	
	var n = 0;
	while(objFrm.elements[fName+'['+n+']']) {
		n++;
	}
	return n;
}

/*
val = 0;
function testDeroule(div) {
	if(val != 400) {
		val = val + 1;
   	GetId('testDeroule').style.height = val+'px';
		setTimeout('testDeroule(\''+div+'\')',1);
  }
}
*/
// Scroll jusqu a hauteur d un element
function ScrollToElement(div){
	theElement = GetId(div);

  var selectedPosX = 0;
  var selectedPosY = 0;
              
  while(theElement != null){
    selectedPosY += theElement.offsetTop;
    theElement = theElement.offsetParent;
  }
                        		      
 window.scrollTo(selectedPosX,selectedPosY);
}


// Creer un element
function make_element(eType, eId, eStyle, eParent, eContent) {
	if(!GetId(eId)) {
		var elem = document.createElement(eType);
		elem.setAttribute('id', eId);
		elem.setAttribute('style', eStyle);
		if(eContent) {
			elem.innerHTML = eContent;
		}
		GetId(eParent).appendChild(elem);
	}
}

// Supprime une ligne ajouter un groupe utilisateur au rendez-vous 
function delete_element(eId) {
	if(GetId(eId)) {
		var obj2 = GetId(eId);
		var parents = obj2.parentNode;
		
		parents.removeChild(obj2);
	}
}
function addslashes(ch) {
	ch = ch.replace(/\\/g,"\\\\")
	ch = ch.replace(/\'/g,"\\'")
	ch = ch.replace(/\"/g,"\\\"")
	return ch
}

