// JavaScript Document
	function testeChampTexte(nomChamp, metadonnee) {
		var valeur = trimAll(getElement(nomChamp).value);
		if (valeur.length < 2) {
			alert("Merci d'indiquer " + metadonnee + ".");
			getElement(nomChamp).focus();
			return false;
		}
		return true;
	}
	
	//vérifie qu'au moins un champ (dont le nom est transmis via le tableau) est rempli
	function testeAuMoinsUnChampTexte(tabNomChamp, metadonnee) {
		var i=0;
		var auMoinsUn = false;
		while (!auMoinsUn &&  i < tabNomChamp.length) {
			if (getElement(tabNomChamp[i]).value.length > 2) auMoinsUn = true;
			i++;
		}
		if (!auMoinsUn) {
			alert("Merci d'indiquer " + metadonnee + ".");
			getElement(tabNomChamp[0]).focus();
		}
		return auMoinsUn;
	}
	
	function checkMail(nomChamp) {
		var email = trimAll(getElement(nomChamp).value);
		var filtre  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		//ou var filtre = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
		if (!filtre.test(email))  {
			alert('Cette adresse email est incorrecte ou incomplète.');
			getElement(nomChamp).focus();
			return false;
		}
		return true;
	}
	
	function testeSelect(nomChamp, valParDefaut, metadonnee) {
		if (getElement(nomChamp).value == valParDefaut) {
			alert("Merci d'indiquer " + metadonnee + ".");
			getElement(nomChamp).focus();
			return false;
		}
		return true;
	}
	
	function testeCheckbox(nomChamp, metadonnee) {
		var tabCheckbox = document.forms[0].elements[nomChamp];
		var auMoinsUn = false;
		var i = 0;
		while (!auMoinsUn &&  i < tabCheckbox.length) {
			if (tabCheckbox[i].checked) auMoinsUn = true;
			i++;
		}
		if (!auMoinsUn) {
			alert("Merci d'indiquer " + metadonnee + ".");
			tabCheckbox[0].focus();
		}
		return auMoinsUn;
	}
	
	//vérifie si la valeur transmise est un tableau (et non une chaine)
	function isArray() {
		if (typeof arguments[0] == 'object') {  
			var criterion = arguments[0].constructor.toString().match(/array/i);
			return (criterion != null);  
		}
		return false;
	}
	
	//vérifie si au moins une case à cocher parmi plusieurs est cochées
	function verfieCheckbox(tabCheckbox, metadonnee) {
		var auMoinsUn = false;
		var estTableau;
		var i = 0;
				
		while (!auMoinsUn &&  i < tabCheckbox.length) {			
			//d'abord déterminer si c'est un tableau
			var taille = tabCheckbox[i].length;
			if (tabCheckbox[i].substring(taille-1, taille) == "]") {
				//c'est un tableau
				var j = 0;
				var tabCB = document.forms[0].elements[tabCheckbox[i]];
								
				while (!auMoinsUn &&  j < tabCB.length) {
					auMoinsUn = tabCB[j].checked;
					j++;
				}
			} else	//ça n'est pas un tableau
				auMoinsUn = getElement(tabCheckbox[i]).checked;
				
			i++;
		}
		return auMoinsUn
	}
	
	function isNumeric(value) {
		var regExp = new RegExp(/^[-]?\d*\.?\d*$/);
		var regExp = new RegExp(/^\d*$/);
 		if (value == null || !value.toString().match(regExp)) return false;
 		return true;
	}
	
	//vérifie s'il s'agit d'une valeur numérique
	function testeNumerique(nomChamp, metadonnee) {
		if (!isNumeric(getElement(nomChamp).value)) {
			alert("Merci d'indiquer une valeur numérique pour " + metadonnee + ".")
			getElement(nomChamp).focus();
			return false;
		}
		return true;
	}

	function trimAll(chaine) {
		//retire les espaces à droite
		while (chaine.substring(0,1) == ' ') {
			chaine = chaine.substring(1, chaine.length);
		}		
		//retire les espaces à gauche
		while (chaine.substring(chaine.length-1, chaine.length) == ' ') {
			chaine = chaine.substring(0,chaine.length-1);
		}
		return chaine;
	}
