	var sAction ="";//redirection
	tbFichier= new Array("jpg","bmp","jpeg","png","gif","pdf","zip");
	var dateDebF;
	var dateFinF;
	var DateDVisuF;
	var today = new Date();
	
		function testFormulaire(FormObjet,fieldsType,destination,langue) {

			sAction = destination;
			var titre=('\nDésolé, le Formulaire présente des anomalies\n\n');
			tb= new Array();
			tbType = new Array();tbType = fieldsType.split(",");
			tbValue = new Array();
			tbName = new Array();
					
			for (j=0;j<tbType.length;j++) {		
				tbName[j]=FormObjet.elements[j].name;
				tbValue[j]=FormObjet.elements[j].value;
				testChamps (tbType[j],tbName[j],FormObjet,j);		
			}//for
			scanErreur(FormObjet, langue);
		}//function
	
		function getDates(strDate){
		  day = strDate.substr(0,2);
			month = (strDate.substr(3,2)-1);
			year = strDate.substr(6,4);
			d = new Date();
			d.setFullYear(year); 
			d.setMonth(month);
			d.setDate(day);		
			return d;  
		}//function
		 
		function testDateDayMonth(strDate){
			if(5 < strDate.length || 4 > strDate.length){				
				return false;
			}
			if(strDate.search(/\d{2}\/\d{2}/)==-1){
				return false;
			}
			day = strDate.substr(0,2);
			month = strDate.substr(3,2);
			
			if (isNaN(day) || isNaN(month)) {
				return false;
			}
			if ((day < 1) || (day > 31) ) {
				return false;
			}
			if ((month < 1) || (month > 12) ) {
				return false;
			}
			if (((month == 4) || (month == 6) || (month == 9) || (month == 11)) && (day == 31) ) {
				return false;
			}
			if ((month == 2) && (day > 29)) {
				return false;
			}						
			return true; 	
		}//function
		
	  function compare(date_1, date_2){	
	    diff = date_1.getTime()-date_2.getTime();    
	    return (diff);
	  }//function

				  
		function testChamps (type,fieldName,FormObjet,j) {
			
				if (type=="NonVide"){				
					if (''==tbValue[j]){ addErreurField(fieldName,FormObjet);}				
				}		
				if (type=="Text"){
					if ((tbValue[j].search(/[\D*]/)==-1)){ addErreurField(fieldName,FormObjet);}				
				}
				if (type=="Mail") {		
					if ((tbValue[j].search(/.+@.+\..+/)==-1) || (tbValue[j].search(/ /)!=-1))  { addErreurField(fieldName,FormObjet);}
				}
				if (type=="MailOrVide") {		
					if (''!=tbValue[j] && (tbValue[j].search(/.+@.+\..+/)==-1 || tbValue[j].search(/ /)!=-1) )  { addErreurField(fieldName,FormObjet);}
				}				
				if (type=="Password") {		
					if (tbValue[j].search(/[\D*\d*]/)==-1) { addErreurField(fieldName,FormObjet);}
				}
				if (type=="Confirmation") {				
					if ((tbValue[j])!=(tbValue[j-1])) { addErreurField(fieldName,FormObjet); }			
				}
				if (type=="Num") {				
					if ((tbValue[j].search(/[a-zA-Z]/)!=-1) || ''==tbValue[j]) { addErreurField(fieldName,FormObjet); }					
					FormObjet.elements[fieldName].value = tbValue[j].replace(/,/,".");					
				}
				if (type=="NumOrVide"){					
					if (tbValue[j].search(/[a-zA-Z]/)!=-1) { addErreurField(fieldName,FormObjet); }					
					FormObjet.elements[fieldName].value = tbValue[j].replace(/,/,".");					
				}	
				if (type=="Date") {
					if (''==tbValue[j]){ 
						addErreurField(fieldName,FormObjet);
					}	else{
						if (tbValue[j].search(/\d{2}\/\d{2}\/\d{4}/)==-1) { addErreurField(fieldName,FormObjet); }		
					}	
				}							
				if (type=="DateDeb"){				
					if (''==tbValue[j]){ 
						addErreurField(fieldName,FormObjet);
					}	else{
						dateDebF= getDates(tbValue[(j)]);
					}
				}
				if (type=="DateFin"){
					if (''==tbValue[j]){ 
						addErreurField(fieldName,FormObjet);
					}else{
						dateFinF= getDates(tbValue[(j)]);						
						if (0 > compare(dateFinF,dateDebF)){addErreurField(fieldName,FormObjet);}
					}
				}
				if (type=="DateDVisu"){				
					if('' != tbValue[j]){
						DateDVisuF= getDates(tbValue[(j)]);
						if (0 > compare(dateDebF,DateDVisuF)){addErreurField(fieldName,FormObjet);}
					}
				}
				if ((type=="Checkbox") || (type=="Radio")) {				
					if (FormObjet[tbName[j]].checked==false) { addErreurField(fieldName,FormObjet); }			
				}
				if (type=="MultiSelect"){				
					selection= false;
					
					for(i=0;i<(FormObjet[tbName[j]].length);i++){
						if(''!=FormObjet[tbName[j]].options.value)					
							selection= true;
					}
					if(!selection)
						addErreurField(fieldName,FormObjet);
				}		
				if (type=="Select") {
					if (FormObjet[tbName[j]].options[FormObjet[tbName[j]].selectedIndex].value == "default") { addErreurField(fieldName,FormObjet); }			
				}
				if (type=="DateMAJ") {
					if ('' != tbValue[j] && !testDateDayMonth(tbValue[j])){ 
						addErreurField(fieldName,FormObjet);
					}/*else{
						FormObjet[tbName[j]].value = tbValue[j]+"/2008";
					}*/
				}					
				if (type=="DateFuture") {
					if ("" == tbValue[j]){ 
						addErreurField(fieldName,FormObjet);
					}else{
						dateFutureF= getDates(tbValue[(j)]);
						if (0 > compare(dateFutureF,today)){addErreurField(fieldName,FormObjet);}
					}		
				}				
				if (type=="Fichier" && ''!=tbValue[j]){
						var match=0;
						for(i=0;i<tbFichier.length;i++){
							if(tbValue[j].search(tbFichier[i])!=-1){match++;}
						}
						if (0==match){ addErreurField(fieldName,FormObjet);}
				}
				if ((type=="Radio")) {					
					thisChecked= 0;
					for(i=0;i<FormObjet[tbName[j]].length;i++){
						if (FormObjet[tbName[j]][i].checked==true)
							thisChecked++;
					}
					if(0>=thisChecked)
						addErreurField(fieldName,FormObjet);
						
					thisChecked= 0;
				}
				
				//SPECIFIQUE InfosEntreprise
				
				if (type== 'DemandeInfosEntreprise'){
					if((!FormObjet.elements['q1'].checked) && (!FormObjet.elements['q2'].checked) && (!FormObjet.elements['q3'].checked)){
						addErreurField("q1",FormObjet);
						addErreurField("r1",FormObjet);
						addErreurField("q2",FormObjet);
						addErreurField("r2",FormObjet);
						addErreurField("q3",FormObjet);
						addErreurField("r3",FormObjet);
					}else
					if(FormObjet.elements['q1'].checked && '' == FormObjet.elements['r1'].value){
							addErreurField("r1",FormObjet);
					}else
					if(FormObjet.elements['q2'].checked && '' == FormObjet.elements['r2'].value){
							addErreurField("r2",FormObjet);
					}else
					if(FormObjet.elements['q3'].checked && '' == FormObjet.elements['r3'].value){
							addErreurField("r3",FormObjet);
					}
				}

				//SPECIFIQUE InfosParticulier
				
				if (type== 'DemandeInfosParticulier'){
					if((!FormObjet.elements['q1'].checked) && (!FormObjet.elements['q2'].checked)){
						addErreurField("q1",FormObjet);
						addErreurField("q2",FormObjet);
					}					
				}

				//SPECIFIQUE InfosFranchise
				
				if (type== 'DemandeInfosFranchise'){
					if((FormObjet.elements['q1[]'][1].checked) && ('' == FormObjet.elements['r1'].value)){
						addErreurField("r1",FormObjet);
					}
					if((FormObjet.elements['apport[]'][3].checked) && ('' == FormObjet.elements['apportautre'].value)){
						addErreurField("apportautre",FormObjet);
					}		
					if((FormObjet.elements['q8[]'][8].checked) && ('' == FormObjet.elements['autre'].value)){
						addErreurField("autre",FormObjet);
					}												
				}
								
								
	}//function	
	
	
	function addErreurField(fieldName,FormObjet){
		tb.push(fieldName);	
	}//function
	
	function scanErreur(FormObjet,langue){
	
		for(i=0; i<(FormObjet.length-2);i++){			
				FormObjet.elements[i].style.backgroundColor= '#ffffff';
				FormObjet.elements[i].style.color= '#000000';
		}//for

		if (tb.length > 0) {
			
			for(i=0; i<tb.length;i++){				
				FormObjet.elements[tb[i]].style.backgroundColor= 'red';
				FormObjet.elements[tb[i]].style.color= '#ffffff';
			}
			FormObjet.elements[tb[0]].focus();
			
			if('EN' == langue){
				alert('Please check the red fields are well completed');
				return false;	
			}else{
				alert('Merci de vérifier que les champs marqués en rouge sont bien complétés');
				return false;
			}
			
		} else {

			FormObjet.action = sAction;
			FormObjet.submit();
			//return true;
			
		}
	}//function