/**
*** Ecrit par Janick Delot.
***
*** Liste des fonctions :
*** 
*** Check_Length		-> Vérifie la longueur de la chaîne
***
*** Is_Empty		-> Vérifie si la chaîne est vide
*** Is_Alphabetic	-> Vérifie si la chaîne contient uniquement des caractères alphabétique
*** Is_Integer		-> Vérifie si la chaîne contient uniquement des chiffres
*** Is_Numeric		-> Vérifie si la chaîne contient un nombre entier ou flottant
*** Is_Alphanumeric	-> Vérifie si la chaîne contient uniquement des caractères alphabétique et des nombres entiers ou flottants
***
*** Is_Date		-> Vérifie si la chaîne est une date (AAAA/MM/JJ)
*** Is_Email		-> Vérifie si la chaîne est une adreses email (xxx@xx.xxx)
***
*** Is_Radio_Checked	-> Vérifie s'il y a au moins un bouton radio sélectionné
*** Radio_Value		-> Renvoie la valeur du bouton radio sélectionné
***
*** Is_Checkedbox	-> Vérifie si la checkbox est cochée
*** Checkbox_Value	-> Renvoie la valeur de la checkbox
**/

/*
** Renvoie true si la longueur de la chaîne est plus petite ou égale à Len
*/
function Check_Length(String,Len){
	return String.length<=Len;
}

/*
** Renvoie true si la chaîne de caractère en paramètre est vide ou composée uniquement d'espaces
*/
function Is_Empty(String){
	return String.replace(/(^\s*)|(\s*$)/g,'')==''; 
}

/*
** Renvoie true si la chaîne contient uniquement des caractères alphabétiques (espaces acceptés)
*/
function Is_Alphabetic(String){
	var Exp=/^[a-z ]+$/;
	return Exp.test(String.toLowerCase());
}

/*
** Renvoie true si la chaîne est un nombre entier
*/
function Is_Integer(String){
	var Exp=/^[0-9]+$/;
	return Exp.test(String);
}

/*
** Renvoie true si la chaîne est numérique
*/
function Is_Numeric(String){
	var Exp=/^([0-9]{1,})\.?([0-9]{1,})$/;
	return Exp.test(String);
}

/*
** Renvoie true si la chaîne est alphanuméric (lettres & chiffres uniquement)
*/
function Is_Alphanumeric(String){
	var Exp=/^[\w ]+$/;
	return Exp.test(String);
}

/*
** Renvoie true si la date est valide
*/
function Is_Date(String){
	var Exp=/^(\d{4})\D(\d{2})\D(\d{2})$/;
	if(Exp.test(String)){
		Exp.exec(String);
		return (RegExp.$2>=0&&RegExp.$2<=12)&&(RegExp.$3>=0&&RegExp.$3<=31);
	}else{
		return false;
	}
}
/*
** Renvoie true si la date au format DD/MM/AAAA est valide
*/
function Is_Date_F(String){
	var Exp=/^(\d{2})\D(\d{2})\D(\d{4})$/;
	if(Exp.test(String)){
		Exp.exec(String);
		return (RegExp.$1>=01&&RegExp.$1<=31)&&(RegExp.$2>=01&&RegExp.$2<=12);
	}else{
		return false;
	}
}
/*
** Renvoie true si l'email est valide
*/
function Is_Email(String){
	var Exp=/^([a-z0-9-_.]{3,})@([a-z0-9-_.]{2,})\.([a-z]{2,4})$/;
	return Exp.test(String.toLowerCase());
}

/*
** Renvoie true si une des radio box a été sélectionnée
*/
function Is_Radio_Checked(Radio){
	var R_Length=Radio.length;
	for(var i=0;i<R_Length;i++){
		if(Radio[i].checked){
			return true;
		}
	}
	return false;
}

/*
** Renvoie la valeur de la radio box sélectionnée
*/
function Radio_Value(Radio){
    var R_Length=Radio.length;
    for(var i=0;i<R_Length;i++){
        if(Radio[i].checked){
            return Radio[i].value;
        }
    }
    return false;
}

/*
** Renvoie true si la check box a été cochée
*/
function Is_Checkedbox(Chkbox){
    return Chkbox.checked;
}

/*
** Renvoie la valeur de la checkbox
*/
function Checkbox_Value(Chkbox){
	return Chkbox.value;
}

/*
** Renvoie True si le numéro est eligible France Telecom
*/
function Is_Numero_FT(Str_Numero)
{
	// On transforme la chaine en numero
	var A_Remplacer=new RegExp("[A-Za-z.;, -]", "g");
	Str_NumeroFT=Str_Numero.replace(A_Remplacer,"");
	
	//Debut du contrôle
	if(Str_NumeroFT.length == 10)
	{
		// On vérifie que le numéro commence par 01 ou 02 ou 03 ou 04 ou 05 
		if(Str_NumeroFT.charAt(0)==0 && Str_NumeroFT.charAt(1)>0 && Str_NumeroFT.charAt(1)<=5)
		{
			return true;
		}
	}else
	{
		return false;
	}
}

/*
** Renvoie True si le numéro est Numero de Telephone
*/
function Is_Numero_Tel(Str_Numero)
{
	// On transforme la chaine en numero
	var A_Remplacer=new RegExp("[A-Za-z.;, -]", "g");
	Str_NumeroFT=Str_Numero.replace(A_Remplacer,"");
	
	//Debut du contrôle
	if(Str_NumeroFT.length == 10)
	{
		// On vérifie que le numéro commence par 01 ou 02 ou 03 ou 04 ou 05 
		if(Str_NumeroFT.charAt(0)==0 && Str_NumeroFT.charAt(1)>0 && Str_NumeroFT.charAt(1)<=9)
		{
			return true;
		}
	}else
	{
		return false;
	}
}

/*
** Renvoie True si le Cp a 5 caractere et correspond a un departement
*/
function Is_Cp(Str_Cp)
{
	if(Str_Cp.length == 5)
	{
		if(Str_Cp.charAt(0) >= 0 && Str_Cp.charAt(0) <= 9)
		{
			if( (Str_Cp.charAt(1) >= 0 && Str_Cp.charAt(1) <= 9) || (Str_Cp.charAt(0) == 2 && (Str_Cp.charAt(1).toUpperCase() == "A" || Str_Cp.charAt(1).toUpperCase() == "B")) )
			{
				return true;		
			}
		}
	}else
	{
		return false;
	}
}