//tout les trucs qu'on veut pas voir apparaître dans un champ.
var mikExp = /[$\\\#\<\>\%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|\é\è\à\ù\ï\,\;\ç\£\?\µ\§\ô\ê\â\î\ä\ë\ö\?\!\'\"\°\/]/;

function CCheck(formName,val) 
{
	var CheckErrors = null
	var strPass = val.value;
	var strLength = strPass.length;
	for (i=0;i<strLength;i++)
	{
		var lchar = val.value.charAt((i));
		if(lchar.search(mikExp) != -1) 
		{
			var tst1 = val.value.substring(0, (i));
			var tst2 = val.value.substring((i)+1, strLength);
			val.value = tst1+tst2;
			i--;
			strLength=strLength-1;
			CheckErrors = CheckErrors+"1"
		}	
	}
	
	if (CheckErrors != null)
	{
		eval("document.forms[formName]."+val.name+".style.color='FF0000'");
	} 
	else 
	{
		eval("document.forms[formName]."+val.name+".style.color=\"000000\"");
	}
	
}
//********************
//   CheckFormFunction
//********************
var send
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=findObj(n,d.layers[i].document); return x;
}

function validateForm() 
{
	var i,p,q,nm,test,num,min,max,rtCode=true,args=validateForm.arguments;
	var jourDate,moiDate,anDate;
	
	jourDate="";
	moiDate="";
	anDate="";

	formName=findObj(args[0]);
	formName=formName.name;		
		
	for (i=1; i<(args.length-1); i+=3) 
	{ 
		test=args[i+2];
		val=true;
		temp=args[i];	
		
			
				
//regarde si il y a des "," et si "areDate" -->3 dates --> ce qu'on check la validité d'une date avec 3 input.
		if (temp.indexOf(',')!=-1 && test.indexOf('areDate')!=-1)
		{	
			jourDate="";
			moiDate="";
			anDate="";
			
			var pos = temp.indexOf(',');
			var pos2 = temp.lastIndexOf(',');
			var j=0;
			//récupère les noms des input.			
			for (j=0;j<pos;j++)
			{
				jourDate=jourDate + temp.charAt(j);				
			}
			for (j=pos+1;j<pos2;j++)
			{
				moiDate=moiDate + temp.charAt(j);				
			}
			for (j=pos2+1;j<temp.length;j++)
			{
				anDate=anDate + temp.charAt(j);				
			}	
			
			temp=document.forms[formName].elements[moiDate].value;
			temp--;			
			
			if (document.forms[formName].elements[anDate].value!="" && temp!="" && document.forms[formName].elements[jourDate].value!="")	
			{	
				var objDate=new Date(Number(document.forms[formName].elements[anDate].value),Number(temp),Number(document.forms[formName].elements[jourDate].value));											
													
				if (temp != (objDate.getMonth()))
				{								
					
					if (document.forms[formName].elements[moiDate].type=="select-one")
					{
					//alert(DATEFR3);
					eval("document.forms[formName].elements[jourDate].style.color='FF0000'"); 
					eval("document.forms[formName].elements[moiDate].style.color='FF0000'"); 
					eval("document.forms[formName].elements[anDate].style.color='FF0000'"); 
					}
					else
					{					
					eval("document.forms[formName].elements[jourDate].value=DATEFR3"); 
					eval("document.forms[formName].elements[jourDate].style.color='FF0000'"); 
					
					eval("document.forms[formName].elements[moiDate].value=DATEFR3"); 
					eval("document.forms[formName].elements[moiDate].style.color='FF0000'"); 		
					
					eval("document.forms[formName].elements[anDate].value=DATEFR3"); 
					eval("document.forms[formName].elements[anDate].style.color='FF0000'"); 					
					}
					rtCode=false;					
				}	
			}		
			val=false;
		}
		else
		{
			val=findObj(args[i]);				
		}
		if (val) 
		{
			nm=val.name;
			tp=val.type;			
			if ((val=val.value)!="") 
			{
				if (val =='??????')
				{
					eval("document.forms[formName]."+nm+".value='??????'"); 
					eval("document.forms[formName]."+nm+".style.color='FF0000'"); 
					rtCode=false;
				}
				else if (test.indexOf('isPwd')!=-1) 
				{
					pwd1 = document.forms[formName].password1.value;
					pwd2 = document.forms[formName].elements[nm].value;
					if (pwd1 != pwd2){
						eval("document.forms[formName]."+nm+".style.color='FF0000'");
						alert(PWDFR);
						rtCode=false;
					}
				}
				else if (test.indexOf('isDom')!=-1) 
				{
					p=document.forms[formName].elements[nm].value.indexOf('www.');
					q=document.forms[formName].elements[nm].value.indexOf('.be');
					r=document.forms[formName].elements[nm].value.indexOf('http://');
					
					if (p==-1 || q==-1 || r==-1)
					{
						eval("document.forms[formName].elements[nm].style.color='FF0000'");
						rtCode=false;
					}
				}
				else if (test.indexOf('isEmail')!=-1) 
				{ 				
					if (val.indexOf('@') == -1)
					{
						eval("document.forms[formName]."+nm+".style.color='FF0000'");
						eval("document.forms[formName]."+nm+".value=EMAILCORRECTFR");
						rtCode=false;																	
					}	
					else
					{
						var pos  = val.indexOf('@');
						var pos2 = val.lastIndexOf('.');
							
						if ( pos2 < pos )
						{
							eval("document.forms[formName]."+nm+".style.color='FF0000'");
							eval("document.forms[formName]."+nm+".value=EMAILCORRECTFR");
							rtCode=false;								
							
						}							
					}						
				} 
				else if (test.indexOf('isDate')!=-1) 
				{											
					var jour="";
					var moi="";
					var an="";
					var heure="";
					var minute="";
					var seconde="";		
					
					var flg="";				
					
					var pos  = val.indexOf('/');
					var pos2 = val.lastIndexOf('/');
					var pos3 = val.indexOf(':');
					var pos4 = val.lastIndexOf(':');
					
					if (pos3==-1)
					{
						flg=-1
						pos3=val.length;
						pos3=pos3+2;												
					}
					var k=0;
						
					for (k=0;k<pos;k++)
					{
						jour=jour + val.charAt(k);	
					}
					for (k=pos+1;k<pos2;k++)
					{
						moi=moi + val.charAt(k);	
					}
					for (k=pos2+1;k<pos3-2;k++)
					{
						an=an + val.charAt(k);	
					}
									
					if (flg!=-1)
					{
						for (k=pos3-2;k<pos3;k++)
						{
							heure=heure + val.charAt(k);	
						}						
						for (k=pos3+1;k<pos4;k++)
						{
							minute=minute + val.charAt(k);	
						}
						for (k=pos4+1;k<val.length;k++)
						{
							seconde=seconde + val.charAt(k);	
						}
					}
					else
					{
						heure=00;
						minute=00;
						seconde=00;	
					}
							
					if ((pos!=-1 && pos2!=-1))
					{						
						var objDate=new Date(Number(an),Number(moi-1),Number(jour),Number(heure),Number(minute),Number(seconde));											
												
						if (moi-1 != (objDate.getMonth()) || jour != (objDate.getDate()) || heure!=(objDate.getHours()) || minute!=(objDate.getMinutes()))
						{								
							if (tp=="select-one")
							{
								alert(DATEFR);
							}
							else
							{
							eval("document.forms[formName]."+nm+".style.color='FF0000'");							
							eval("document.forms[formName]."+nm+".value=DATEFR");
							rtCode=false;	
							}						
						}	
					}				
					else
					{
						eval("document.forms[formName]."+nm+".style.color='FF0000'");
						eval("document.forms[formName]."+nm+".value=DATEFR");
						rtCode=false;								
					}				
				}																		
				else if (test.indexOf('isNum')!=-1) 
				{						
					var lr_nbre_ent=/^[+-]?(0|[1-9]\d*)(\.\d+)?([eE][+-]?(0|[1-9]\d*))?$/;			
					
					if(!lr_nbre_ent.test(val) || !isFinite(Number(val)))
					{
						eval("document.forms[formName]."+nm+".style.color='FF0000'");
						eval("document.forms[formName]."+nm+".value=NBRFR");
						rtCode=false;
					}
					
				}
				else if (test.indexOf('isEntNum')!=-1) 
				{						
					var lr_nbre_ent=/^[+-]?(0|[1-9]\d*)?([eE][+]?(0|[1-9]\d*))?$/;					
					
					if(!lr_nbre_ent.test(val) || !isFinite(Number(val)))
					{
						eval("document.forms[formName]."+nm+".style.color='FF0000'");
						eval("document.forms[formName]."+nm+".value=NBRENTIERFR");
						rtCode=false;
					}
								
				}				
				else if (test!='R') 
				{ 
					num = parseFloat(val);
					if (val!=''+num)
					{
						eval("document.forms[formName]."+nm+".style.color='FF0000'");
						rtCode=false;
					}
					if (test.indexOf('inRange') != -1) 
					{ 
						p=test.indexOf(':');
						min=test.substring(8,p);
						max=test.substring(p+1);
						if (num<min || max<num) {
							eval("document.forms[formName]."+nm+".style.color='FF0000'");
							rtCode=false;
						}
					}
				}
			}			
			else if (test.charAt(0) == 'R')
			{
				if (tp != "select-one") 
				{
					eval("document.forms[formName]."+nm+".value='??????'");
				}
				eval("document.forms[formName]."+nm+".style.color='FF0000'");
				rtCode=false;
			}
			
		}
	} 
	document.returnValue = (rtCode == '');	
	return rtCode;
}
function change(formName,name)
{		
	if (eval("document.forms[formName]."+name+".value") == "??????")
	{
		eval("document.forms[formName]."+name+".value=''");
	}
	eval("document.forms[formName]."+name+".style.color='000000'");
}

/************************************************************************************/
/*      ON DECLARE LES VARIABLES POUR AFFICHER LES MESSAGES A L'UTILISATEUR         */
/************************************************************************************/

var DATEFR = "Entrez une date correcte";
var NBRFR = "Entrez un nombre";
var NBRENTIERFR= "Entrez un nombre entier";
var EMAILVIDEFR = "Entrez un e-mail";
var EMAILCORRECTFR = "Entrez un e-mail correct";
var PWDFR = "Veuillez vérifier votre login";
var DATEFR3 = "erreur date"
