function isEmpty(s)
{   return ((s == null) || (s.length == 0));
}


function isWhitespace(s)
{	var i;
	var whitespace=" \t\n\r";

	if (isEmpty(s)) return true;

	for (i = 0; i < s.length; i++)
	{	var c = s.charAt(i);	

		if (whitespace.indexOf(c) == -1) 
			return false;
	}

	return true;
}


function isInteger(champ) 
{	var err = 0;
	string = champ;
	var valid = "0123456789";
	var temp;

// Test si le caractère est bien un chiffre 
	for (var i=0; i< string.length; i++) 
	{	temp = "" + string.substring(i, i+1);

		if (valid.indexOf(temp) == "-1") 
			err = 1;
	}

	if (err==1) 
	{	return false;	
	}
	else
		return true;
}


function isFloat(champ) 
{	var err = 0;
	string = champ;
	var valid = "0123456789.";
	var temp;

// Test si le caractère est bien un chiffre 
	for (var i=0; i< string.length; i++) 
	{	temp = "" + string.substring(i, i+1);

		if (valid.indexOf(temp) == "-1") 
			err = 1;
	}

	if (err==1) 
	{	return false;	
	}
	else
		return true;
}


function isAlphaNum(champ)
{	if ((champ=="")||(isWhitespace(champ)))
	{	return false;
	}
	else 
	{	if (isNaN(champ))   
		{	return true;
		}
		else
		{	return false;
		}
	}
}


function isEmail(mail)
{	var i = 1;
	var sLength = mail.length;

	while ((i < sLength) && (mail.charAt(i) != "@"))
	{ 	i++;
	}

	if ((i >= sLength) || (mail.charAt(i) != "@")) 
		return false;
	else 
		i += 2;

	while ((i < sLength) && (mail.charAt(i) != "."))
	{ 	i++;
	}

	if ((i >= sLength - 1) || (mail.charAt(i) != ".")) 
		return false;
	else 
		return true;
}


function isDate(champ)
{	if ((champ=="")||(isWhitespace(champ)))	
	{	return false;
	}
	else	
	{	var err=0;
		Aujourdhui = new Date();
		var valid="0123456789/";
		var temp;

		// Test si le caractère est bien un chiffre ou /
		for (var i=0; i< champ.length; i++) 
		{	temp = "" + champ.substring(i, i+1);

			if (valid.indexOf(temp) == "-1") 
				err = 1;
		}

		// Test que la chaine de caractère a bien une longueur de 10
		if (champ.length != 10) 
			err=1;

		b = champ.substring(0, 2) // day
		c = champ.substring(2, 3) // '/'
		d = champ.substring(3, 5) // month
		e = champ.substring(5, 6) // '/'
		f = champ.substring(6, 10) // year

		// Test que le jours est entre 1 et 31
		if (isNaN(b))
		{	err = 1;
		}
		else
		{	if (b<1 || b>31) 
				err = 1;
		}

		// Test du séparateur
		if (c != '/') 
			err = 1;

		// Test que le mois est entre 1 et 12
		if (isNaN(d))
		{	err = 1;
		}
		else
		{	if (d<1 || d>12) 
			err = 1;
		}

		// Test du séparateur
		if (e != '/') 
			err = 1;

		// Test sur l'année
		if (isNaN(f))
		{	err = 1;
		}

		// Test sur les mois de 31 jours
		if (d==4 || d==6 || d==9 || d==11)
		{	if (b==31) 
				err=1;
		}

		// Test pour le mois de Fevrier
		if (d==2)
		{	if (b>29) 
				err=1;

			if (b==29 && ( (f/400)!=parseInt(f/400) && ( (f/4)!=parseInt(f/4) || (f/100)==parseInt(f/100) ) )) 
				err=1;
		}

		if (err==1) 
		{	return false;
		}
		else	
			return true;
	}
}

function compareDate(date1, date2)
{	// Fonction de comparaison des dates au format JJ/MM/AAAA
	// Renvoie:
	// -1: si erreur de format de date
	// 0: si date1 = date2
	// 1: si date1 > date2
	// 2: si date2 > date1

	if (!isDate(date1) || !isDate(date2))
	{	return -1;
	}
	else
	{	tableau_date1 = date1.split('/');
		tableau_date2 = date2.split('/');
		
		varDate1 = new Date(tableau_date1[2], tableau_date1[1] - 1, tableau_date1[0]);
		varDate2 = new Date(tableau_date2[2], tableau_date2[1] - 1, tableau_date2[0]);
		
		if (!(varDate1 < varDate2) && !(varDate1 > varDate2))
		{	return 0;
		}
		else
		{	if (varDate1 > varDate2)
			{	return 1;
			}
			else
			{	return 2;
			}
		}
	}
	
}

function recup(chaine)
{	chaine = chaine.replace(/\§/g, '\'');
	chaine = chaine.replace(/\µ/g, '\"');
	return chaine;	
}

// Fonction permettant le passage d'une chaine HTML dans une fonction Javascript
function recupJavascript(chaine)
{	chaine = chaine.replace(/\n/g, "<br />");
	chaine = chaine.replace(/"/g, "&quot;");
	chaine = chaine.replace(/\'/g, "&acute;");

	return chaine;
}
