/*
	Auteur: Amiot Loïc - Mai 2009 - Diffusion interdite
	Description: Include permettant de vérifier les champs d'un formulaire
	Utilisation:
		<script type='text/javascript' src='../includes/check_form.js'></script>
		<script type='text/javascript'>
			var fieldList=new Array();
			fieldList[0]=\"rubrique_nom;Nom;text;false\";
		</script>
		Dans la balise form: onSubmit='return checkForm(this);'
*/

function checkForm(pForm,fieldList)
// Retourne faux si un champ a mal été saisi
// pForm:Le formulaire à vérifier. Ex: pForm="document.form1"
// filedList:Array contenant champs à étudier
{
	var error=""; var i=0; var col=new Array;
	while(i < fieldList.length && error == "")
	{//Pour chaque champ:
		col=fieldList[i].split(";");
		champ=eval(pForm+"."+col[0]);
/*
		if(col[2] == "text" && champ.value != "")
		{// Remplacement des "'" par des "´" :
			var d=champ.value; var t=0;
			while(t < d.length)
			{
				if(d.charAt(t) == "'")
				{
					d=d.substring(0,t)+"Z"+d.substring(t+1,d.length);
				}
				t++;
			}
			champ.value=d;
		}
*/

		if(col[2] == "date" && champ.value != "")
		//Vérification de la date:
		{
			var d=champ.value;
			var t=0;
			while(t<d.length)
			// Transformation des "/" par des "-" :
			{
				if(d.charAt(t) == "/")
				{
					d=d.substring(0,t)+"-"+d.substring(t+1,11);
				}
				t++;
			}
			var pat = /^[0-9]{1,2}-[0-9]{1,2}-([0-9]{2}|[0-9]{4})$/;
			if(d.match(pat))
			{
				// Vérification des valeurs:
				t=d.indexOf("-");var jour=d.substring(0,t);var prec=t;
				t=d.indexOf("-",prec+1);mois=d.substring(prec+1,t);prec=t;
				an=d.substring(prec+1,prec+5);
				if(!(jour>=1&&jour<=31)||!(mois>=1&&mois<=12)||!(an<100||an>=1900)){
					error="Les valeurs de la date\n\n'"+col[1]+"' sont fausses.";
				}
				{//Mise en page:
					if(an < 100){
						an=2000+an*1;
					}
					if(jour.length == 1){
						jour="0"+jour;
					}
					if(mois.length == 1){
						mois="0"+mois;
					}
					champ.value=jour+"/"+mois+"/"+an;
				}
			}
			else
			{error="La date '"+col[1]+"' doit\n\nêtre de la forme: jj/mm/aa ."}
		}

		if(col[2] == "time" && champ.value != "")
		//Vérification heure:
		{
			var pat = /^[0-9]{1,2}:[0-9]{2}$/i;
			if(!champ.value.match(pat))
			{error="L'heure '"+col[1]+"' doit\n\nêtre de la forme: hh:mm"}
		}
		
		if(col[2] == "mail" && champ.value != "")
		//Vérification du mail:
		{
			var pat = /^[a-z][a-z0-9_\.\-]+@[a-z0-9][a-z0-9_\.\-]+\.[a-z]{2,5}$/i;
			if(!champ.value.match(pat))
			{error="L'adresse mail '"+col[1]+"' doit\n\nêtre de la forme: xxx@xxx.xxx."}
		}

		if(col[2] == "int" && champ.value != "")
		//Vérification de l'entier:
		{
			var pat = /^[0-9]+$/;
			if(!champ.value.match(pat))
			{error="Le champ '"+col[1]+"' doit être un entier."}
		}

		if(col[2] == "float" && champ.value != "")
		//Vérification du réel:
		{
			var pat = /^[0-9]+(\.[0-9]+)?$/;
			if(!champ.value.match(pat))
			{error="Le champ '"+col[1]+"' doit être un réel."}
		}

		// Champs obligatoires:
		if(col[2] == "select" && champ.selectedIndex == -1)
		//Vérification du select:
		{
			{error="Le champ '"+col[1]+"' doit\n\nêtre saisi"}
		}

		if(col[2] == "radioYesNo" && (champ[0].checked == false && champ[1].checked == false))
		//Vérification du radio:
		{
			{error="Le champ '"+col[1]+"' doit\n\nêtre saisi"}
		}

		if(error == "" && col[3] == "true" && champ.value == "")
		{
			error="Le champ '"+col[1]+"'\n\ndoit être saisi."
		}
		i++;
	}
	if(error != ""){
		alert(error);
	}
	return (error == "");
}

function selAll(objTxt,objQty){
	for(i=0;i<objQty;i++)
	{
		obj=document.getElementById(objTxt+i);
		obj.checked=!(obj.checked);
	}
}

