function f_CheckAll(p_Valeur, p_Type){
	var v_Return=true
	switch (p_Type){
		case "integer" :
			v_Return=f_CheckNumerique(p_Valeur)
		break;
		
		case "decimal" :
			v_Return=f_CheckDecimal(p_Valeur)
		break;
		
		case "decimalnolimit" :
			v_Return=f_CheckDecimalNoLimit(p_Valeur)
		break;
		
		case "taux" :
			v_Return=f_CheckNumerique(p_Valeur)
			if (v_Return==true){
				v_Return=f_CheckTaux(parseInt(p_Valeur))
			}
			
		break;
		
		case "varchar" :
			v_Return=f_CheckChaineVide(p_Valeur)
		break;
		
		case "date" :
			v_Return=f_CheckDate(p_Valeur)
		break;

		case "dateslash" :
			v_Return=f_CheckDateSlash(p_Valeur)
		break;
		
		case "codepostal" :
			v_Return=f_CheckCodePostal(p_Valeur)
		break;
		
		case "telephone" :
			v_Return=f_CheckTelephone(p_Valeur)
		break;
		
		case "url" :

		break;
		
		case "email" :

		break;
		
		case "numerosecu" :
			v_Return=f_CheckNumeroSecu(p_Valeur)
		break;
		
		case "organisme" :
			v_Return=f_CheckOrganisme(p_Valeur)
		break;
		
		case "ribets" :
			v_Return=f_CheckRIBEts(p_Valeur)
		break;
		
		case "ribguichet" :
			v_Return=f_CheckRIBGuichet(p_Valeur)
		break;
		
		case "ribcompte" :
			v_Return=f_CheckRIBCompte(p_Valeur)
		break;

		case "ribcle" :
			v_Return=f_CheckRIBCle(p_Valeur)
		break;

		case "decimalsigne" :
			v_Return=f_CheckDecimalSigne(p_Valeur)
		break;
		
		default:

		break;
		
	}
  return (v_Return)
}

function f_LTrim(p_Chaine){
	var v_RetourChaine=""
	if (p_Chaine==""){
		return (v_RetourChaine)
	}
	else{
		v_RetourChaine=p_Chaine
	}

	while(''+v_RetourChaine.charAt(0)==' '){
		v_RetourChaine=v_RetourChaine.substring(1, v_RetourChaine.length)
	}
	return (v_RetourChaine)
}

function f_RTrim(p_Chaine){
	var v_RetourChaine=""
	if (p_Chaine==""){
		return (v_RetourChaine)
	}
	else{
		v_RetourChaine=p_Chaine
	}

	while(''+v_RetourChaine.charAt(v_RetourChaine.length-1)==' '){
		v_RetourChaine=v_RetourChaine.substring(0, v_RetourChaine.length-1)
	}
	return (v_RetourChaine)
}

function f_CheckDateSlash(p_Date){

	var v_Return=true
	
	if (p_Date=="") {
		return true;
	}
	
	var v_Date = p_Date
	
	var v_TabDate = v_Date.split("/");
	
	if (v_TabDate.length==3) {
		var v_Jour = v_TabDate[0];
		var v_Mois = v_TabDate[1];
		var v_Annee = v_TabDate[2];
		if(v_Annee.length==2){
			v_Annee='20' + v_Annee;
		}
		if(v_Mois.length==1){
			v_Mois='0' + v_Mois;
		}
		if(v_Jour.length==1){
			v_Jour='0' + v_Jour;
		}
		v_Date = v_Annee + v_Mois + v_Jour;
		v_Return=f_CheckDate(v_Date);
	}
	else {
		v_Return=false;
	}

	return v_Return;
}

function f_CheckDate(p_Date){
	var v_Return=true
	
	if (p_Date.length!=8){
		v_Return=false
		return(v_Return)
	}
	
	var v_Date=new String(p_Date)
	var v_Jour=v_Date.substr(6, 2)
	var v_Mois=v_Date.substr(4, 2)
	var v_Annee=v_Date.substr(0, 4)

	var v_Jour_Int
	var v_Mois_Int
	var v_Annee_Int
	var v_Bissextile=false

	

	if (f_LTrim(f_RTrim(v_Jour))=="" || f_LTrim(f_RTrim(v_Mois))=="" || f_LTrim(f_RTrim(v_Annee))==""){
		v_Return=false
		return (v_Return)
	}
				
	if (isNaN(v_Jour) || isNaN(v_Mois) || isNaN(v_Annee)){
		v_Return=false
		return (v_Return)
	}

	v_Jour_Int=parseInt(v_Jour,10)
	v_Mois_Int=parseInt(v_Mois,10)
	v_Annee_Int=parseInt(v_Annee,10)

	if (parseInt(v_Mois,10)<1 || parseInt(v_Mois,10)>12){
		v_Return=false
		return (v_Return)
	}

	if (v_Mois_Int==1 || v_Mois_Int==3 || v_Mois_Int==5 || v_Mois_Int==7 || v_Mois_Int==8 || v_Mois_Int==10 || v_Mois_Int==12){
		if (parseInt(v_Jour,10)<1 || parseInt(v_Jour,10)>31){
			v_Return=false
			return (v_Return)
		}
	}
	if (v_Mois_Int==4 || v_Mois_Int==6 || v_Mois_Int==9 || v_Mois_Int==11){
		if (parseInt(v_Jour,10)<1 || parseInt(v_Jour,10)>30){
			v_Return=false
			return (v_Return)
		}
	}
	if (v_Mois_Int==2){
		if (v_Annee_Int%400==0){
			v_Bissextile=true
		}
		else{
			if (v_Annee_Int%100==0){
				v_Bissextile=false
			}
			else{
				if (v_Annee_Int%4==0){
					v_Bissextile=true
				}
			}
		}

		if (v_Bissextile==true){
			if (parseInt(v_Jour,10)<1 || parseInt(v_Jour,10)>29){
				v_Return=false
				return (v_Return)
			}
		}
		else{
			if (parseInt(v_Jour,10)<1 || parseInt(v_Jour,10)>28){
				v_Return=false
				return (v_Return)
			}
		}
	}
	return (v_Return)
}

function f_CheckNumerique(p_Nombre){
	var v_Return=true
	v_Chaine = new String(p_Nombre);
	re = /^\d{1,}$/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}

function f_CheckDecimal(p_Nombre){
	var v_Return=true
	var re = /,/g
	var v_Chaine = new String(p_Nombre.replace(re,'.'));

	if(v_Chaine.indexOf('.')!=v_Chaine.lastIndexOf('.')){
		//alert("Une seule virgule est autorisée")
		v_Return=false
		return (v_Return)
	}
	
	re = /^\d{1,}\.?\d{0,2}$/
	if ( ! re.test(v_Chaine) ){
		//alert("N'est pas un nombre à 2 décimales")
		v_Return=false
	}
	return (v_Return)
}

function f_CheckDecimalNoLimit(p_Nombre){
	var v_Return=true
	var re = /,/g
	var v_Chaine = new String(p_Nombre.replace(re,'.'));

	if(v_Chaine.indexOf('.')!=v_Chaine.lastIndexOf('.')){
		//alert("Une seule virgule est autorisée")
		v_Return=false
		return (v_Return)
	}
	
	re = /^\d{1,}\.?\d+$/
	if ( ! re.test(v_Chaine) ){
		//alert("N'est pas un nombre correct")
		v_Return=false
	}
	return (v_Return)
}


function f_CheckDecimalSigne(p_Nombre){
	var v_Return=true
	var re = /,/g
	var v_Chaine = new String(p_Nombre.replace(re,'.'));

	if(v_Chaine.indexOf('.')!=v_Chaine.lastIndexOf('.')){
		//alert("Une seule virgule est autorisée")
		v_Return=false
		return (v_Return)
	}
	
	if(v_Chaine.indexOf('-')!=v_Chaine.lastIndexOf('-')){
		//alert("Seul le signe moins \(-\) est autorisé")
		v_Return=false
		return (v_Return)
	}
	
	re = /^-?\d{1,}\.?\d{0,2}$/
	if ( ! re.test(v_Chaine) ){
		//alert("N'est pas un nombre à 2 décimales")
		v_Return=false
	}
	return (v_Return)
}

function f_CheckTaux(p_Nombre){
	var v_Return=true
	if (p_Nombre<0 || p_Nombre>100){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}

function f_CheckTelephone(p_Nombre){
	var v_Return=true
	v_Chaine = new String(p_Nombre);
	re = /^\d{10}$/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}

function f_CheckCodePostal(p_Nombre){
	var v_Return=true
	v_Chaine = new String(p_Nombre);
	re = /^\d{5}$/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}

	re = /^[0]{5}$/;
	if ( re.test(v_Chaine) ){
		v_Return=false;
		return (v_Return);
	}

	return (v_Return)
}

function f_CheckChaineVide(p_Chaine){
	var v_Return=true
	v_Chaine = new String(p_Chaine);
	re = /\w{1,}/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}


function f_CheckNumeroSecu(p_NumeroSecu){
	var v_Return=true
    v_Chaine = new String(p_NumeroSecu);
    v_Numero = v_Chaine.substr(0,13)
    v_Cle = v_Chaine.substr(13,2)
    
    re = /^\s*(\d)\s*[-.]?\s*(\d\d)\s*[-.]?\s*(\d\d)\s*[-.]?\s*(\d\d)\s*[-.]?\s*(\d\d\d)\s*[-.]?\s*(\d\d\d)\s*$/;
    if ( ! re.test(v_Numero) ){
		v_Return=false
        return (v_Return);
	}
    v_NumeroSecu = new Number(v_Numero.replace(re,"$1$2$3$4$5$6"));
    v_Calcul_Cle = 97-(v_NumeroSecu%97);
	if (v_Calcul_Cle!=v_Cle){
		v_Return=false
        return (v_Return);
	}
    //CHAMP_SECU.value = v_Numero.replace(re,"$1 $2 $3 $4 $5 $6");
    return (v_Return);
}

function f_CheckOrganisme(p_Organisme){
	var v_Return=true
    v_Chaine = new String(p_Organisme);
	re = /^\d{11}$/;
    if ( ! re.test(v_Chaine) ){
		v_Return=false
        return (v_Return);
	}
    return (v_Return);
}

function f_CheckRIBEts(p_Nombre){
	var v_Return=true
	v_Chaine = new String(p_Nombre);
	re = /^\d{5}$/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}

function f_CheckRIBGuichet(p_Nombre){
	var v_Return=true
	v_Chaine = new String(p_Nombre);
	re = /^\d{5}$/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}

function f_CheckRIBCompte(p_Chaine){
	var v_Return=true
	v_Chaine = new String(p_Chaine);
	re = /^\w{11}$/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}

function f_CheckRIBCle(p_Nombre){
	var v_Return=true
	v_Chaine = new String(p_Nombre);
	re = /^\d{2}$/;
	if ( ! re.test(v_Chaine) ){
		v_Return=false
		return (v_Return)
	}
	return (v_Return)
}


