//****************************************
// Fonction testant si l'élément est vide
// ou égal à une suite d'espace
//****************************************
function Vide(Element)
{
	pattern = /^\s+$/
	return ( Element == '' || pattern.test(Element) )
}



//*****************************************************************
// Fonction testant si l'élément est une chaine de caractère
// => alphanumerique et pouvant contenir des espaces ou des quotes
//*****************************************************************
function is_str(Element)
{
	pattern = /[a-zA-Z0-9' ]+/
	return pattern.test(Element)
}



//***********************************************************
// Fonction testant si l'élément est une chaine de caractère
// => uniquement alphabetique
//***********************************************************
function is_alpha(Element)
{
	pattern = /^[a-zA-Z'éèêëàâäùüûôöîïç- ]+$/
	return pattern.test(Element)
}


// Fonction testant si l'élément est un entier
function is_numeric(Element)
{
	pattern = /^\d+$/
	return pattern.test(Element)
}



//*********************************************************
// Fonction testant si l'élément est un float
// le séparateur décimal peut être un point ou une virgule
//*********************************************************
function is_float(Element)
{
	pattern = /^\d+([.,]{1}\d*)$/
	return pattern.test(Element)
}



//*********************************************************
// Fonction testant si l'élément est un réel
// le séparateur décimal peut être un point ou une virgule
//*********************************************************
function is_real(Element)
{
	pattern = /^\d+([.,]{1}\d+)?$/
	return pattern.test(Element)
}



//************************************************************
// Fonction testant si l'élément ressemble à une adresse mail
//************************************************************
function is_email(Element)
{
	pattern = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/
	return pattern.test(Element)
}



//********************************************************************************
// Fonction testant si l'élément ou les éléments correspondent  à une date valide
// On peut passer un ou trois arguments 
// 		- une date de la forme JJ/MM/AAAA
//		  où le séparateur est tout sauf un chiffre
//		- un jour, un mois et une année
//********************************************************************************
function is_date()
{
	if ( arguments.length == 3 ) {
		Jour  = arguments[0]
		Mois  = arguments[1] - 1
		Annee = arguments[2]
	} else if ( arguments.length == 1 ) {
		morceaux = arguments[0].match(/(\d{1,2})[\D](\d{1,2})[\D](\d{4})/,".")
		if ( morceaux == null ) {
			return false
		} else {
			Jour  = morceaux[1]
			Mois  = morceaux[2] -1
			Annee = morceaux[3]
		}
	}

	DateRef = new Date (Annee,Mois,Jour)

	return ( ( DateRef.getDate() == Jour ) && ( DateRef.getMonth() == Mois ) && ( DateRef.getFullYear() == Annee ) )
}



//*********************************************************************************
// Fonction testant si l'élément ou les éléments correspondent à une date dépassée
// On peut passer un ou trois arguments 
// 		- une date de la forme JJ/MM/AAAA
//		  où le séparateur est tout sauf un chiffre
//		- un jour, un mois et une année
//*********************************************************************************
function is_outofdate()
{
	if ( arguments.length == 3 ) {
		Jour  = arguments[0]
		Mois  = arguments[1] - 1
		Annee = arguments[2]
	} else if ( arguments.length == 1 ) {
		morceaux = arguments[0].match(/(\d{1,2})[\D](\d{1,2})[\D](\d{4})/,".")
		if ( morceaux == null ) {
			return false
		} else {
			Jour  = morceaux[1]
			Mois  = morceaux[2] -1
			Annee = morceaux[3]
		}
	}

	CurrentDate = new Date()

	if ( CurrentDate.getFullYear() < Annee ) {
		return true
	} else if ( CurrentDate.getFullYear() == Annee && CurrentDate.getMonth() < Mois ) {
		return true
	} else if ( CurrentDate.getFullYear() == Annee && CurrentDate.getMonth() == Mois && CurrentDate.getDate() < Jour) {
		return true
	}

	return false
}



//******************************************************************************
// Fonction vérifiant si l'élément a bien une longueur compris entre min et max
//******************************************************************************
function str_range(Element, min, max)
{
	return ( Element.length >= min && Element.length <= max )
}



//*********************************************************************
// Fonction vérifiant si l'élément a bien une longueur inférieur à max
//*********************************************************************
function str_max(Element, max)
{
	return ( Element.length <= max )
}


//**************************************************************
// Permet de recuperer la valeur de l'element radio selectionee
//**************************************************************
function get_radio_value(obj)
{	
	for (i=0; i<obj.length;i++)	{
		if (obj[i].checked) {return obj[i].value;}
	}	
	return -1;
}