//---------------------------------------------------------------------------
// contrôle si le champ contient au moins un caractère
//---------------------------------------------------------------------------
function isSaisi(champ)	{
// Cette fonction vérifie que le champ a été saisi par minimum 1 caractère.
	if (champ.value.length > 0)	{
		champ.className = "inputForm";
		return true;
	}
	else	{
		champ.className = "inputError";
		return false;
	}
}
//---------------------------------------------------------------------------
// contrôle si le champs liste box est selectionné sur un item
//---------------------------------------------------------------------------
function isSelectionne(champ) {
// Cette fonction vérifie qu'un choix dans la liste a été fait.
	if (champ.selectedIndex==0) {
		champ.className = "inputError";
		return false;
	}
	else {
		champ.className = "inputForm";
		return true;
	}
}
//---------------------------------------------------------------------------
// contrôle si le champ contient un email au bon format
//---------------------------------------------------------------------------
function isEmail(champ) {
// Cette fonction vérifie que l'email est syntaxiquement correcte.
	var chaine=champ.value;
	var emailPat=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	var matchArray=chaine.match(emailPat);

  if (matchArray==null) {
  	champ.className = "inputError";
		return false;
  }
  else {
		champ.className = "inputForm";
		return true;
  }
}
//---------------------------------------------------------------------------
// contrôle si le champ contient un nombre 
//---------------------------------------------------------------------------
function isNombre(champ) {
// Cette fonction vérifie que le champ est un nombre.
  if (!isNaN(champ.value)) {
  	champ.className = "inputForm";
		return true;
  }
  else {
		champ.className = "inputError";
		return false;
  }
}
//---------------------------------------------------------------------------
// contrôle si le champ contient une date valide (format et date existante) 
//---------------------------------------------------------------------------
function isDate(champ) {
  // 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
  var chaine=champ.value;
  var separateur="/"; // separateur entre jour/mois/annee
  var j=(chaine.substring(0,2));
  var m=(chaine.substring(3,5));
  var a=(chaine.substring(6));
  var ok=1;
  if ( ((isNaN(j))||(j<1)||(j>31))) {
  	champ.className = "inputError";
  	return false;
  }
  if ( ((isNaN(m))||(m<1)||(m>12))) {
    champ.className = "inputError";
    return false;
  }
  if ( ((isNaN(a))) && (ok==1) ) {
		champ.className = "inputError";
		return false;
  }

  if ( ((chaine.substring(2,3)!=separateur)||(chaine.substring(5,6)!=separateur))) {
		champ.className = "inputError";
		return false;
  }
  var chaine2=new Date(a,m-1,j);
	j2=chaine2.getDate();
	m2=chaine2.getMonth()+1;
	a2=chaine2.getFullYear();
	if (a2<=100) {a2=1900+a2}
	if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
		champ.className = "inputError";
		return false;
	}
	else {
		champ.className = "inputForm";
  		return true;
		}
}
//---------------------------------------------------------------------------
// fonction utile pour le reformatage des date 
//---------------------------------------------------------------------------
function isChiffre(string)
{
	return !isNaN(parseInt(string));
}
//---------------------------------------------------------------------------
// fonction utile pour le reformatage des date 
//---------------------------------------------------------------------------
function isMouth(string)
{
	return (
		(isChiffre(string))
		&&(parseInt(string) <= 12)
		&& ((string.charAt(0)!='0')?(parseInt(string) > 0):isChiffre(string.charAt(1)))
		&&(string.length == 2)
		&&(isChiffre(string.charAt(1)))
		);
}
//---------------------------------------------------------------------------
// fonction utile pour le reformatage des date 
//---------------------------------------------------------------------------
function isDay(string)
{
	return (
		(isChiffre(string))
		&&(parseInt(string) <= 31)
		&& ((string.charAt(0)!='0')?(parseInt(string) > 0):isChiffre(string.charAt(1)))
		&&(string.length == 2)
		&&(isChiffre(string.charAt(1)))
		);
}
//---------------------------------------------------------------------------
// fonction utile pour le reformatage des date 
//---------------------------------------------------------------------------
function isYearTwoDigit(string)
{
	return (
		(isChiffre(string))
		&&(parseInt(string) <= 99)
		&& ((string.charAt(0)!='0')?(parseInt(string) > 0):isChiffre(string.charAt(1)))
		&&(string.length == 2)
		&&(isChiffre(string.charAt(1)))
		);
}
//---------------------------------------------------------------------------
// fonction utile pour le reformatage des date 
//---------------------------------------------------------------------------
function isYear(string)
{
		return (
			(isChiffre(string))
			&&(parseInt(string) > 0)
			&&(string.length == 4)
			&&(isChiffre(string.charAt(3)))
			);
		}

//---------------------------------------------------------------------------
// fonction utile pour le reformatage des date 
//---------------------------------------------------------------------------
function getDateFormat(string)
{
	var today = new Date();
	var separator ='/';
	// cas format JJMM
	if ((string.length == 4)
		&&(isDay(string.substring(0,2)))
		&&(isMouth(string.substring(2,4))))
			return 1;
	// cas format JJMMYYYY	
	else if ((string.length == 8)
		&&(isDay(string.substring(0,2)))
		&&(isMouth(string.substring(2,4)))
		&&(isYear(string.substring(4,8))))
			return 2;
	// cas format JJ/MM
	else if ((string.length == 5)
		&&(isDay(string.substring(0,2)))
		&&(string.charAt(2) == separator)
		&&(isMouth(string.substring(3,5))))
			return 3;
	// cas format JJ/MM/YYYY
	else if ((string.length == 10)
		&&(isDay(string.substring(0,2)))
		&&(string.charAt(2) == separator)
		&&(isMouth(string.substring(3,5)))
		&&(string.charAt(5) == separator)
		&&(isYear(string.substring(6,10))))
			return 4;
	// cas format JJMMYY
	else if ((string.length == 6)
		&&(isDay(string.substring(0,2)))
		&&(isMouth(string.substring(2,4)))
		&&(isYearTwoDigit(string.substring(4,8))))
			return 5;
	// cas format JJ/MM/YY
	else if ((string.length == 8)
		&&(isDay(string.substring(0,2)))
		&&(string.charAt(2) == separator)
		&&(isMouth(string.substring(3,5)))
		&&(string.charAt(5) == separator)
		&&(isYearTwoDigit(string.substring(6,10))))
			return 6;
	else return 0;
}
//---------------------------------------------------------------------------
// fonction qui reformat une date saisi dans le format correcte 
//---------------------------------------------------------------------------
function reformat(element)
{
	var ok=1;
	var today = new Date();
	var i = element.value.indexOf(' ');
	var dDate = (i<0)?element.value:element.value.substring(0,i);
	if (dDate != ""){
		switch(getDateFormat(dDate)){
			case 1 :
				string = dDate;
				dDate = string.substring(0,2)
					+ '/' + string.substring(2,4)
					+ '/' + today.getFullYear();
				break;
			case 2 :
				string = dDate;
				dDate = string.substring(0,2)
					+ '/' + string.substring(2,4)
					+ '/' + string.substring(4,8);
				break;
			case 3 :
				string = dDate;
				dDate = string.substring(0,5)
					+ '/' + today.getFullYear();
				break;
			case 4 : break;
			case 5 :
				string = dDate;
				dDate = string.substring(0,2)
					+ '/' + string.substring(2,4);
				if (string.substring(4,6)>30)
					dDate += '/19' + string.substring(4,6);
				else
					dDate += '/20' + string.substring(4,6);
				break;
			case 6 :
				string = dDate;
				dDate = string.substring(0,5)
				if (string.substring(6,8)>30)
					dDate += '/19' + string.substring(6,8);
				else
					dDate += '/20' + string.substring(6,8);
				break;
		}
	    if (ok==1){element.value = dDate;}
	}
}
