// ===================================================================
// Author: HSINI Karim (karim@radartech.net)
// Last modified: 08/07/2004
// ===================================================================
// contructeur
function validerForm(nomform) {
	// variable
	this.nomform=nomform;
	this.defaultcolorbackground="#FFFFFF";
	this.defaultcolorfont="#000000";
	this.colorbackground="";
	this.colorfont="";
	this.entete="";
	this.msg="";
	this.tabcheck=new Array();	
	this.taberreur=new Array();	
	// Method mappings
	this.checkTextIsInt = validerForm_checkTextIsInt;
	this.checkTextIsFilled = validerForm_checkTextIsFilled;
	this.checkTextLengthIsBeetween = validerForm_checkTextLengthIsBeetween;
	this.checkTextIsDate = validerForm_checkTextIsDate;
	this.checkTextIsMail = validerForm_checkTextIsMail;
	this.checkTextIsDepartement = validerForm_checkTextIsDepartement;
	this.checkTextIsInseeCode = validerForm_checkTextIsInseeCode;
	this.checkRadioIsChecked = validerForm_checkRadioIsChecked;
	this.submitCheck = validerForm_submitCheck;
}

// verification de champ type="text" si entier
function validerForm_checkTextIsInt(name,message) {
	this.tabcheck.push(name);
	var elementtocheck=eval("document."+this.nomform+"."+name);
	var reg = /^[0-9]*$/;
	res = reg.test(elementtocheck.value);
	if(res==false) {
		this.msg+=message+"\n";
		this.taberreur.push(name);
	}
}
// verification de champ type="text" obligatoire
function validerForm_checkTextIsFilled(name,message) {
	this.tabcheck.push(name);
	var elementtocheck=eval("document."+this.nomform+"."+name);
	if(elementtocheck.value=="") {
		this.msg+=message+"\n";
		this.taberreur.push(name);
	}
}
// verification longueur de la chaine
function validerForm_checkTextLengthIsBeetween(name,message,mini,maxi) {
	this.tabcheck.push(name);
	var elementtocheck=eval("document."+this.nomform+"."+name);	
	if(elementtocheck.value!="") {
		if(elementtocheck.length>maxi || elementtocheck.length<mini) {
			this.msg+=message+"\n";
			this.taberreur.push(name);
		}
	}
}
// Verification date
function validerForm_checkTextIsDate(name,message) {
	this.tabcheck.push(name);
	var elementtocheck=eval("document."+this.nomform+"."+name);
	var reg = /^([0-9]{1,2})[ -\/]([0-9]{1,2})[ -\/]([0-9]{4})$/;
	res = reg.test(elementtocheck.value);
	if(res==false) {
		this.msg+=message+"\n";
		this.taberreur.push(name);
	} else {
		mois=((RegExp.$2)*1.0)-1;
		var testdate = new Date(RegExp.$3, mois, RegExp.$1);
		resultat = ((testdate.getFullYear() == RegExp.$3) && (testdate.getMonth() == mois) && (testdate.getDate() == RegExp.$1));
		if (!resultat) {
			this.msg+=message+"\n";
			this.taberreur.push(name);
		}
	}
}
// Verification mail
function validerForm_checkTextIsMail(name,message) {
	this.tabcheck.push(name);
	var elementtocheck=eval("document."+this.nomform+"."+name);
	if(elementtocheck.value!="") {
		var reg = /[^ ]+@[^ ]+\.[^ ]+/;
		res = reg.test(elementtocheck.value);
		if(res==false) {
			this.msg+=message+"\n";
			this.taberreur.push(name);
		}
	}
}
// Verification departement francais
function validerForm_checkTextIsDepartement(name,message) {
	this.tabcheck.push(name);
	var elementtocheck=eval("document."+this.nomform+"."+name);
	if(elementtocheck.value!="") {
		var reg = /^[0-9][0-9ABab]$/;
		res = reg.test(elementtocheck.value);
		if(res==false) {
			this.msg+=message+"\n";
			this.taberreur.push(name);
		}
	}
}
// Verification departement francais
function validerForm_checkTextIsInseeCode(name,message) {
	this.tabcheck.push(name);
	var elementtocheck=eval("document."+this.nomform+"."+name);
	if(elementtocheck.value!="") {
		var reg = /^[12][0-9]{12}$/;
		res = reg.test(elementtocheck.value);
		if(res==false) {
			this.msg+=message+"\n";
			this.taberreur.push(name);
		}
	}
}
// Verification 1 bouton radio coche
function validerForm_checkRadioIsChecked(name,message) {
	var elementtocheck=eval("document."+this.nomform+"."+name);
	tmpChk = false;
	for(j=0;j<elementtocheck.length;j++){
		if (elementtocheck[j].checked == true){
			tmpChk = true;
		}
	}
	if (tmpChk == false){
		this.msg+=message+"\n";
	}
}
// Envoie du formulaire
function validerForm_submitCheck() {
	if(this.msg!="") {
		if(this.colorbackground!="" || this.colorfont!="") {
			for(i=0;i<this.tabcheck.length;i++){
				tmp = eval("document."+this.nomform+"."+this.tabcheck[i]);
				tmp.style.backgroundColor=this.defaultcolorbackground;
				tmp.style.color=this.defaultcolorfont;
			}
			for(i=0;i<this.taberreur.length;i++){
				tmp = eval("document."+this.nomform+"."+this.taberreur[i]);
				tmp.style.backgroundColor=this.colorbackground;
				tmp.style.color=this.colorfont;
			}
		}
		this.msg=this.entete+this.msg;
		window.alert(this.msg);
	} else {
		eval("document."+this.nomform+".submit();");
	}
}
