function Efface(Controle){
	if (trim(Controle.value)==trim(Controle.defaultValue)) {
		Controle.value='';
	}
}
function trim(chaine) {
	// Remove leading spaces
	var s = chaine.replace(/^\s+/g, "")
	// Remove trailing spaces
	s = s.replace(/\s+$/g, "")
	return s
}
		
function IsNumeric(strString){
	//  check for valid numeric strings	
	
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;
	
	if (strString.length == 0) return false;
	
	//  test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			blnResult = false;
		}
	}
	return blnResult;
}

function SaisieObligatoire(Cible) {	
	if (Cible.value == "" || Cible.value == null) {
		alert("La saisie du champ est obligatoire");
		Cible.focus();
		return false;
	} else {
		return true;
	}
}

function Verification(Cible,Comparaison) {
	if (Cible.length != 0) {
		for (var i = 0; i < Cible.length; i++) {
			for (var j = 0; j < Comparaison.length; j++) {
				if (Cible.charAt(i) == Comparaison.charAt(j)) { 
					return false;
					break;
				}
			}
		}
		return true;
	} else {
		return false;
	}	
}

function Fraction(Cible,Motif) {
	i = 0 ;
	aux = Cible ;
	resultat = new Array(0);
	resultat[1]="";
	resultat[2]="";
	resultat[3]="";
	resultat[4]="";
	resultat[5]="";
	while (aux.indexOf(Motif,0) > 0) {
		resultat[i] = aux.substring(0, aux.indexOf(Motif,0));
		aux = aux.substring(aux.indexOf(Motif,0)+1,aux.length);
		i ++ ;
	}
	resultat[i] = aux;
	
	return resultat;
}


function ControlePhone(Cible,Separateur,Pays) {
	if (Cible.value != "") {
		if (typeof(Separateur) =="undefined") {
			Separateur='/';
		}
		if (typeof(Pays) =="undefined") {
			Pays='Fr';
		}
		if ( (Cible.value.charAt(2) == Separateur) && (Cible.value.charAt(5) == Separateur)
		  && (Cible.value.charAt(8) == Separateur) && (Cible.value.charAt(11) == Separateur)
		  && (Cible.value.length == 14)) {
			resultat = Fraction(Cible.value,Separateur);
		
			var erreur = 0;
			
			if ((resultat.length != 5) && (Pays == 'Fr')) {
				erreur = 1;
			}
			
			for (i in resultat) {
				if ((resultat[i] > 99) || (resultat[i] < 0 || 
					VerificationNum(resultat[i],Entier()) == false)) {
					erreur = 1;
				}
			}
			
			if (erreur == 1) {
				alert('Mauvais format de téléphone ou fax !');
				Cible.focus();
				return false;
			} else {
				return true;
			}
		} else {
			alert('Mauvais format de téléphone ou fax !');
			Cible.focus();
			return false;
		}
	} else {
		return true;
	}
}

function ControleDate(Cible,Separateur,Type) {
	if (Cible.value=="") {
		return true;
	}
	
	if (typeof(Separateur) =="undefined") {
		Separateur='/';
	}
	
	resultat = Fraction(Cible.value,Separateur);

	if (typeof(Type) =="undefined") {
		Type="JMA";
	}	
	
	if (Type == "AMJ") {
		a = resultat[2];
		b = resultat[1];
		c = resultat[0];
	}
	if (Type == "JMA") {
		a = resultat[0];
		b = resultat[1];
		c = resultat[2];
	}
	if (Type == "MJA") {
		a = resultat[1];
		b = resultat[0];
		c = resultat[2];
	}
	
	var erreur = 0;
	
	if (Cible.length<10) {
		erreur = 5;
	}
	
	if (VerificationNum(a,Entier()) == false 
	|| VerificationNum(b,Entier()) == false 
	|| VerificationNum(c,Entier()) == false ) {
		erreur = 1;
	}
	
	if (a < 1 || a > 31 || b < 1 || b > 12 || c < 0 || c > 9999) {
		erreur = 2;
	}
	
	if ((a == 31) && (b == 4 || b == 6 || b == 9 || b == 11)) {
		erreur = 3;
	}
	
	if (b == 2 && (( a > 29 && (c % 4 == 0)) || ( a > 28 && (c % 4 != 0)))) {
		erreur = 4;
	}
	
	if (erreur == 1) {
		alert('Seulement des chiffres dans une date !');
		Cible.focus();
		return false;
	} else if (erreur == 2) {
		alert('Mauvais format de date !');
		Cible.focus();
		return false;
	} else if (erreur == 3) {
		alert('Mois de 30 jours !');
		Cible.focus();
		return false;
	} else if (erreur == 4) {
		alert('Mois de février incorrect !');
		Cible.focus();
		return false;
	} else if (erreur == 5) {
		alert('La date doit être sous le format jj/mm/aaaa !');
		Cible.focus();
		return false;
	} else {
		return true;
	}
}

function ControleEmail(a) {
	if (a.value!="") {
		testm = false ;
		for (var j=1 ; j<(a.value.length) ; j++) {
			if (a.value.charAt(j)=='@') {
				if (j<(a.value.length-4)) {
					for (var k=j ; k<(a.value.length-2) ; k++) {
						if (a.value.charAt(k)=='.') testm = true;
					}
				}
			}
		}
		if (testm==false) {
			alert('Votre adresse e-mail est incorrecte.');
			a.focus();
		}
		return testm ;
	} else {
		return true;
	}
}

function Entier() {
	return "0123456789";
}

function DecimalPoint() {
	return "0123456789.";
}

function DecimalVirgule() {
	return "0123456789,";
}

function AlphaNumerique() {
	chaine="abcdefghijklmnopqrstuvwxyz";
	chaine=chaine + "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	chaine=chaine + " àâäÂÄéèêëÊËîïÎÏôöÔÖùûüÛÜç";
	chaine=chaine + "0123456789";
	return chaine;
}

function ControleNumerique(Cible,Type){
	if (Cible.value != "") {
		Valeur="";
		Message="";
		
		if(typeof(Type)=="undefined") {
			Type="Entier";
		}
		if (Type == "Entier") {
			Valeur=Entier();
			Message="Ce champ doit être entier !";
		}
		if (Type == "DecimalVirgule") {
			Valeur=DecimalVirgule();
			Message="Ce champ doit être décimal à virgule !";
		}
		if (Type == "DecimalPoint") {
			Valeur=DecimalPoint();
			Message="Ce champ doit être décimal à point !";	
		}

		if (VerificationNum(Cible.value,Valeur) == false) {
			alert(Message);
			Cible.focus();
			return false;
		}
		else {
			return true;
		}
	} else {
		return true;
	}
}

function VerificationNum(Cible,Comparaison)
{
	var ok=true;
	if (Cible.length != 0) {
		for (var i = 0; i < Cible.length; i++) {
			for (var j = 0; j < Comparaison.length; j++) {
				if (Cible.charAt(i) != Comparaison.charAt(j))
					ok=false;
				else {
					ok=true;
					break;
				}
			}
			if (ok==false){
				break;
			}
		}
		return ok;
	} else {
		return false;
	}	
}

function VerificationAlphanumerique(a) {
	var ok=true;
	Comparaison=AlphaNumerique();
	Cible=a.value;
	if (Cible.length != 0){
		for (var i = 0; i < Cible.length; i++){
			for (var j = 0; j < Comparaison.length; j++){
				if (Cible.charAt(i) != Comparaison.charAt(j)){
					car=Cible.charAt(i);
					ok=false;
				}	else {
					ok=true;
					break;
				}
			}
			if (ok==false) {
				alert("Le caractère " + car + " n'est pas autorisé!");
				a.focus();
				break;
			}
		}
		return ok;
	} else {
		return false;
	}	
}

/* Fonction de vérification de validité d'un RIB par rapport à la clé saisie */
function isRIBvalid() {
     
	if (isRIBvalid.arguments.length>=3) {
		var bqe=isRIBvalid.arguments[0];
		var gui=isRIBvalid.arguments[1];
		var cpt=isRIBvalid.arguments[2].toUpperCase();
		
		// Conversion du numero de compte en chiffres
		var tab= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		var tab1="123456789123456789234567890123456789".split("");
		
		while (cpt.match(/\D/) != null)
			cpt=cpt.replace(/\D/, tab1[tab.indexOf(cpt.match(/\D/))]);
		var cp=parseInt (cpt, 10);
		
		//Calcul clé RIB
		a=bqe%97;
		a=a*100000+parseInt (gui, 10);
		a=a%97;
		a=a*Math.pow (10, 11) + cp;
		a=a%97
		a=a*100;
		a=a%97
		a=97-a;
		if (isRIBvalid.arguments.length>3)
			return isRIBvalid.arguments[3]==a;
		else
			return a;
	} else {
		return false;
	}
}
