function valideDateLongue(a) {
	if (a.length > 0) {
		var b = a.substring(3, 5);// month
		var c = a.substring(2, 3);// '/'
		var d = a.substring(0, 2);// day
		var e = a.substring(5, 6);// '/'
		var f = a.substring(6, 10);// year
		if (!valideNum(b)) return false;
		if (!valideNum(d)) return false;
		if (!valideNum(f)) return false;
		if (b<1 || b>12) return false;
		if (c != '/') return false;
		if (d<1 || d>31) return false;
		if (e != '/') return false;
		if (f<1990 || f>2999) return false;
		if (b==4 || b==6 || b==9 || b==11)
		if (d==31) return false;
		if (b==2) {
			var g=parseInt(f/4)
			if (isNaN(g)) return false;
			if (d>29) return false;
			if (d==29 && ((f/4)!=parseInt(f/4))) return false;
		}
	}
	return true;
};

function valideDateCourte(a) {
	if (a.length != 7)
		return false;
	b = a.substring(0, 2);// month
	c = a.substring(2, 3);// '/'
	f = a.substring(3, 7);// year
	if (b<1 || b>12)
		return false;
	if (c != '/')
		return false;
	if (f<1990 || f>2999)
		return false;
	return true;
};


function valideAlphaNum(chaine) {
	var i;
	var j;
	for(i=0;i<chaine.length;i++) {		
		j = chaine.charCodeAt(i);
		if ((j!=32)&&((j<48)||((j>57)&&(j<65))||(j>90)))
			return false;
	}
	return true;
};

function valideAlphaNumPlusCarSpeciaux(chaine) {
	var i;
	var j;
	for(i=0;i<chaine.length;i++) {		
		j = chaine.charCodeAt(i);
//		if ((j==34)||(j==39)||(j==10)||(j==13))
		if ((j==34)||(j==10)||(j==13))
			return false;
	}
	return true;
};
function valideNum(chaine) {
	var i;
	var j;
	for(i=0;i<chaine.length;i++) {		
		j = chaine.charCodeAt(i);
		if (((j<48)||(j>57)) && j!=45)
			return false;
	}
	return true;
};

function valideFloat(chaine) {
	var i;
	var j;
	var nb=0;
	for(i=0;i<chaine.length;i++) {		
		j = chaine.charCodeAt(i);
		if ( ((j<48)||(j>57)) && (j!=46) && (j!=45))
			return false;
		if(j==46)
			nb++;
		if(nb > 1)
			return false;
	}
	return true;
};

function valideAlpha(chaine) {
	var i;
	var j;
	for(i=0;i<chaine.length;i++) {			
		j = chaine.charCodeAt(i);
		if (j<65 || j>90)
			return false;
	}
	return true;		
};

function validePourcentage(chaine) {
	if((chaine=="100.00")||(chaine=="100.0")||(chaine=="100"))
		return true;
	var arr=chaine.split(".");
	if(arr.length==1)	{
		if(!valideNum(chaine))
			return false;
		if(chaine.length>2)
			return false;
		return true;
	}
	if(arr.length!=2)
		return false;
	if((arr[0].length>2)||(arr[1].length>2))
		return false;
	if((!valideNum(arr[0]))||(!valideNum(arr[1])))
		return false;
	return true;		
};

function validePourcentageCourt(chaine) {
	var arr=chaine.split(".");
	if(arr.length==1)	{
		if(!valideNum(chaine))
			return false;
		if(chaine.length>2)
			return false;
		return true;
	}
	if(arr.length!=2)
		return false;
	if((arr[0].length>2)||(arr[1].length>2))
		return false;
	if((!valideNum(arr[0]))||(!valideNum(arr[1])))
		return false;
	return true;		
};

function supprimeBlanc(chaine) {
	var str=chaine;
	if (((chaine.charCodeAt(chaine.length-1)==160)||(chaine.charCodeAt(chaine.length-1)==32))) {
		str=chaine.substring(0,chaine.length-1);
		str=supprimeBlanc(str);
	}
  return str;
};

function valideCarInferieur(chaine) 
{
	var i;
	var j; 
	var chaineResult = "";
	for(i=0;i<chaine.length;i++)		
	{		
		j = chaine.charCodeAt(i);
		jplus = chaine.charCodeAt(i+1);
		if (j==60) {
			//si c'est '='
			if (jplus==61) {
				chaineResult = chaineResult + chaine.substring(i,i+1);
			}
			//si c'est un alphanumerique
			else if (((jplus>48)&&(jplus<57))||((jplus>65)&&(jplus<90))||(jplus>97)&&(jplus<122)){
				chaineResult = chaineResult + chaine.substring(i,i+1);
				chaineResult = chaineResult + " ";
			}
			//autre cas
			else 
				chaineResult = chaineResult + chaine.substring(i,i+1);
			}
		else {
			chaineResult = chaineResult + chaine.substring(i,i+1);
		}
	}
	return chaineResult;
}

var Alpha = 1;
var AlphaNum = 2;
var DateLongue = 4;
var Num = 5;
var Pourcentage = 6;
var PourcentageCourt = 7;
var AlphaNumPlusCarSpeciaux = 8;
var typeFloat = 9;
function champValide(field,longueurMini,longueurMaxi,type,NomChamp)
{
	var str="";
	champ = new String(field.value);
	champ = champ.toUpperCase();
	if (champ.length < longueurMini) {
		str = str + "\n- Longueur mini : " + longueurMini;
	}
	if (champ.length > longueurMaxi) {
		str = str + "\n- Longueur maxi : " + longueurMaxi;
	}
	switch(type)
	{
	case 1 :
		if (!valideAlpha(champ))
			str = str + "\n- Caractères autorisés : a..z";	
		break;
	case 2 :
		if (!valideAlphaNum(champ))
			str = str + "\n- Caractères autorisés : a..z, 0..9 et 'espace'";
		break;
	case 3 :
		if (!valideDateCourte(champ))
			str = str + "\n- Date au format MM/AAAA";		
		break;
	case 4 :
		if (!valideDateLongue(champ))
			str = str + "\n- Date au format JJ/MM/AAAA";		
		break;
	case 5 :
		if (!valideNum(champ))
			str = str + "\n- Caractères autorisés : 0..9 -";		
		break;
	case 6 :
		if (!validePourcentage(champ))
			str = str + "\n- Format autorisé : 999.99";		
		break;
	case 7 :
		if (!validePourcentageCourt(champ))
			str = str + "\n- Format autorisé : 99.99";		
		break;
	case 8 :
		if (!valideAlphaNumPlusCarSpeciaux(champ))
			str = str + "\n- Caractères non autorisés : Retour Chariot \", \'";		
		break;
	case 9 :
		if (!valideFloat(champ))
			str = str + "\n- Caractères autorisés :  0..9 . -";		
		break;
	};
	if (str.length > 1)	{
		str = " Champ " + NomChamp + " incorrect :" + str;
		alert(str);
		field.select();
		return false;
	};
	return true;
}

function champNotNull (field, messageErreur) {
	return checkValue(new String(field.value), messageErreur);
}
function checkValue(valeur, messageErreur){
	if (valeur.length < 1) {
		alert(messageErreur);
		return false;
	}
	return true;
}

//Setter Select
function setSelectValue(theField,theValue) {
	for (i=0;i<document.all(theField).options.length;i++){
		if (document.all(theField).options[i].value == theValue) {
			alert("found for i = " + i);
			//document.all(theField).options[i].selected;
			document.all(theField).options.selectedIndex = i;
			alert(document.all(theField).options[document.all(theField).options.selectedIndex].text);
			break;
		}
	}
}

// permet d'effacer le layer loading
function hideLoading(aWindow) {
	aWindow.document.body.style.cursor='auto';
	aWindow.document.all.Loading.style.visibility="hidden";
}