function validateForm(formName){
var sResult="";errors="";var f=findObj(formName);var sValue,sName="";var valString="";
if (findObj(formName)) {
for (var i=0; i<f.elements.length; i++) { 
vf_crtObj=f.elements[i];
test=vf_crtObj.getAttribute("valString");sName=f.elements[i].name;
if (test){
sValue=vf_crtObj.value.replace("'","");
aV=test.split(";");errMsg=aV[0];test=aV[1];
if ((test.indexOf('R')==0)&&(sValue=="")) {errors += '- '+errMsg+'\n'; } 
else if (test!='R') {
	if (test.indexOf('fcVal')==-1){
		num = parseFloat(sValue);
		if (isNaN(sValue)) errors+='- '+errMsg+' \n';pRange=test.indexOf('inRange');
		if (pRange != -1){
			p=test.indexOf(':');min=test.substring(pRange+7,p); max=test.substring(p+1);
			if (num<min || max<num) errors+='- '+errMsg+'\n';}} 
else {if(test.indexOf('R')!=0&&sValue==''&&test.indexOf(':')==-1){}else{p=test.indexOf(':');afcName=test.substr(p+1).split("|");fcName=afcName[0]+"(";for (var k=1; k<afcName.length; k++) {fcName+=afcName[k]+",";}fcName+="'"+sValue+"')";if (eval(fcName)!=true) errors+='- '+errMsg+'\n';}}}}}}
if (errors) alert('Erreurs dans le formulaire:\n'+errors);
document.VF_returnValue = (errors == '');
}
function valEmail(email){
var r, re;var s = email;re =/\w+((-\w+)|(\.\w+)|(\_\w+))*\@[A-Za-z0-9]+((\.|_|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,5}/;r = s.search(re);return(r!=-1);
}
function getlastday(month,year){
if(month%2==1)return 31;else if(month/2!=1)return 30;else if(year%4!=0)return 28;else return 29;
}
function valDate() {
var args,val,test,mm_year,mm_day,mm_month;
var mnD=0;mxD=0;mnM=0;mxM=0;mnY=0;mxY=0;
var dd=0;ll=0;aa=0;

args=valDate.arguments;test=args[args.length-2];mm_day=findObj(args[0]);mm_month=findObj(args[1]); mm_year=findObj(args[2]);
if((mm_day==undefined)||(mm_month==undefined)||(mm_year==undefined))return false;
dd=mm_day.value*1;ll=mm_month.value*1;aa=mm_year.value*1;
if (dd<1 || dd>getlastday(ll,aa))return false;
if (args.length>3){
	if(test.search('>')!=-1){
		mnD=(isNaN(args[3]))?findObj(args[3]).value:args[3];
		mnM=(isNaN(args[4]))?findObj(args[4]).value:args[4];
		mnY=(isNaN(args[5]))?findObj(args[5]).value:args[5];
	}
	if(test.search('<')!=-1){
		mxD=(isNaN(args[3]))?findObj(args[3]).value:args[3];
		mxM=(isNaN(args[4]))?findObj(args[4]).value:args[4];
		mxY=(isNaN(args[5]))?findObj(args[5]).value:args[5];
		}
	if(test.search('inRange')!=-1){
		mnD=(isNaN(args[3]))?findObj(args[3]).value:args[3];
		mnM=(isNaN(args[4]))?findObj(args[4]).value:args[4];
		mnY=(isNaN(args[5]))?findObj(args[5]).value:args[5];
		mxD=(isNaN(args[6]))?findObj(args[6]).value:args[6];
		mxM=(isNaN(args[7]))?findObj(args[7]).value:args[7];
		mxY=(isNaN(args[8]))?findObj(args[8]).value:args[8];
	}
	if(test.search('>')!=-1){if(aa<mnY)return false;else if(aa==mnY)if(ll<mnM)return false;else if(ll==mnM)if(dd<mnD) return false;}if(test.search('<')!=-1){if(aa>mxY)return false;else if(aa==mxY)if(ll>mxM)return false;else if(ll==mxM)if(dd>mxD) return false;}if(test.search('inRange')!=-1)if((!valDate(args[0],args[1],args[2],args[3],args[4],args[5],'>',''))||(!valDate(args[0],args[1],args[2],args[6],args[7],args[8],'<','')))return false;}
return true;
}
function checkDate() {
var args,val,test,mm_year,mm_day,mm_month;
var mnD=0;mxD=0;mnM=0;mxM=0;mnY=0;mxY=0;
var dd=0;ll=0;aa=0;
args=checkDate.arguments;test=args[args.length-1];mm_day=args[0];mm_month=args[1]; mm_year=args[2];
dd=mm_day*1;ll=mm_month*1;aa=mm_year*1;
if (dd<1 || dd>getlastday(ll,aa))return false;
if (args.length>3){
	if(test.search('>')!=-1){
		mnD=args[3];mnM=args[4];mnY=args[5];
	}
	if(test.search('<')!=-1){
		mxD=args[3];mxM=args[4];mxY=args[5];}
	if(test.search('inRange')!=-1){
		mnD=args[3];mnM=args[4];mnY=args[5];mxD=args[6];mxM=args[7];mxY=args[8];}
	if(test.search('>')!=-1){if(aa<mnY)return false;else if(aa==mnY)if(ll<mnM)return false;else if(ll==mnM)if(dd<mnD) return false;}if(test.search('<')!=-1){if(aa>mxY)return false;else if(aa==mxY)if(ll>mxM)return false;else if(ll==mxM)if(dd>mxD) return false;}if(test.search('inRange')!=-1)if((!checkDate(args[0],args[1],args[2],args[3],args[4],args[5],'>'))||(!checkDate(args[0],args[1],args[2],args[6],args[7],args[8],'<')))return false;}
return true;
}

function checkValues(v1,v2,sgn,vObj)
{
	if(vObj){
		if(vObj==2){val1=findObj(v1).value;val2=findObj(v2).value}
		if(vObj==1){val1=findObj(v1).value;val2=v2}
	}else{val1=v1;val2=v2}
	if((val1==val2)&&(sgn=="="))return true;
	if((val1!=val2)&&(sgn=="<>"))return true;
	if((val1>val2)&&(sgn==">"))return true;
	if((val1<val2)&&(sgn=="<"))return true;
	return false;
}
function confirmPass(ctrlPass1,ctrlPass2){
s1=findObj(ctrlPass1).value;s2=findObj(ctrlPass2).value;
if(s1==s2) return true; if(s1!=s2) return false;
}
function findObj(n, d) { 
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function submitForm(formName)
{
	validateForm(formName);if(document.VF_returnValue)findObj(formName).submit();
}

