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

			sAction = destination;
			var titre=('\nDésolé, le ObjFormulaire 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]=ObjFormulaire.elements[j].name;
				tbValue[j]=ObjFormulaire.elements[j].value;
				testChamps (tbType[j],tbName[j],ObjFormulaire,j);		
			}//for
			scanErreur(ObjFormulaire, 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;
			}
			var day = strDate.substr(0,2);
			var 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 testDate(strDate){
			if(11 < strDate.length || 10 > strDate.length){				
				return false;
			}	
			var year = 	strDate.substr(6,4);
			if (isNaN(year)) {
				return false;
			}
			if (2008 > year) {
				return false;
			}

			return testDateDayMonth(strDate.substr(0,5));			
		}
		
	  function compare(date_1, date_2){	
	    diff = date_1.getTime()-date_2.getTime();    
	    return (diff);
	  }//function

				  
		function testChamps (type,fieldName,ObjFormulaire,j) {
			
				if (type=="NonVide"){				
					if (''==tbValue[j]){ addErreurField(fieldName,ObjFormulaire);}				
				}		
				if (type=="Text"){
					if ((tbValue[j].search(/[\D*]/)==-1)){ addErreurField(fieldName,ObjFormulaire);}				
				}
				if (type=="Mail") {		
					if ((tbValue[j].search(/.+@.+\..+/)==-1) || (tbValue[j].search(/ /)!=-1))  { addErreurField(fieldName,ObjFormulaire);}
				}
				if (type=="MailOrVide") {		
					if (''!=tbValue[j] && (tbValue[j].search(/.+@.+\..+/)==-1 || tbValue[j].search(/ /)!=-1) )  { addErreurField(fieldName,ObjFormulaire);}
				}				
				if (type=="Password") {		
					if (tbValue[j].search(/[\D*\d*]/)==-1) { addErreurField(fieldName,ObjFormulaire);}
				}
				if (type=="Confirmation") {				
					if ((tbValue[j])!=(tbValue[j-1])) { addErreurField(fieldName,ObjFormulaire); }			
				}
				if (type=="Num") {				
					if ((tbValue[j].search(/[a-zA-Z]/)!=-1) || ''==tbValue[j]) { addErreurField(fieldName,ObjFormulaire); }					
					ObjFormulaire.elements[fieldName].value = tbValue[j].replace(/,/,".");					
				}
				if (type=="NumOrVide"){					
					if (tbValue[j].search(/[a-zA-Z]/)!=-1) { addErreurField(fieldName,ObjFormulaire); }					
					ObjFormulaire.elements[fieldName].value = tbValue[j].replace(/,/,".");					
				}				
				if (type == "DateDeb"){
					if ('' == tbValue[j] || !testDate(tbValue[j])){
						dateDebF = null;
						addErreurField(fieldName,ObjFormulaire);
					}else{						
						dateDebF= getDates(tbValue[(j)]);
					}
				}
				if (type=="DateFin"){
					if ('' == tbValue[j]  || !testDate(tbValue[j])){ 
						dateFinF = null;
						addErreurField(fieldName,ObjFormulaire);
					}else{
						dateFinF= getDates(tbValue[(j)]);
						if (null != dateDebF && 0 > compare(dateFinF,dateDebF)){
							addErreurField(fieldName,ObjFormulaire);
						}
					}
				}
				if (type=="DateDVisu"){
					if ('' == tbValue[j]  || !testDate(tbValue[j])){ 
						DateDVisuF = null;
						addErreurField(fieldName,ObjFormulaire);
					}else{
						DateDVisuF= getDates(tbValue[(j)]);
					}
				}
				if (type=="DateFVisu"){
					if ('' == tbValue[j]  || !testDate(tbValue[j])){ 
						DateFVisuF = null;
						addErreurField(fieldName,ObjFormulaire);
					}else{
						DateFVisuF= getDates(tbValue[(j)]);						
						if (null != DateDVisuF && 0 > compare(DateFVisuF, DateDVisuF)){
							addErreurField(fieldName,ObjFormulaire);
						}
					}
				}				
				if ((type=="Checkbox") || (type=="Radio")) {				
					if (ObjFormulaire[tbName[j]].checked==false) { addErreurField(fieldName,ObjFormulaire); }			
				}
				if (type=="MultiSelect"){				
					selection= false;
					
					for(i=0;i<(ObjFormulaire[tbName[j]].length);i++){
						if(''!=ObjFormulaire[tbName[j]].options.value)					
							selection= true;
					}
					if(!selection)
						addErreurField(fieldName,ObjFormulaire);
				}		
				if (type=="Select") {
					if (ObjFormulaire[tbName[j]].options[ObjFormulaire[tbName[j]].selectedIndex].value == "default") { addErreurField(fieldName,ObjFormulaire); }			
				}
				if (type=="DateMAJ") {
					if ('' != tbValue[j] && !testDateDayMonth(tbValue[j])){ 
						addErreurField(fieldName,ObjFormulaire);
					}/*else{
						ObjFormulaire[tbName[j]].value = tbValue[j]+"/2008";
					}*/
				}					
				if (type=="DateFuture") {
					if ("" == tbValue[j]){ 
						addErreurField(fieldName,ObjFormulaire);
					}else{
						dateFutureF= getDates(tbValue[(j)]);
						if (0 > compare(dateFutureF,today)){addErreurField(fieldName,ObjFormulaire);}
					}		
				}				
				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,ObjFormulaire);}
				}
				if ((type=="Radio")) {					
					thisChecked= 0;
					for(i=0;i<ObjFormulaire[tbName[j]].length;i++){
						if (ObjFormulaire[tbName[j]][i].checked==true)
							thisChecked++;
					}
					if(0>=thisChecked)
						addErreurField(fieldName,ObjFormulaire);
						
					thisChecked= 0;
				}
				
				//SPECIFIQUE FOURNISSEUR
				
				if (type== 'RemiseTarif'){				
					if(true == ObjFormulaire[tbName[j]][1].checked && (ObjFormulaire["remisetarifvaleur"].value.search(/[a-zA-Z]/)!=-1 || '' == ObjFormulaire["remisetarifvaleur"].value) ){
						addErreurField("remisetarifvaleur",ObjFormulaire);
					}
				}
				
				//SPECIFIQUE ARTICLE

				if (type== 'Peremption'){				
					if(true == ObjFormulaire[tbName[j]][1].checked && (ObjFormulaire["peremptionvaleur"].value.search(/[a-zA-Z]/)!=-1 || '' == ObjFormulaire["peremptionvaleur"].value) ){
						addErreurField("peremptionvaleur",ObjFormulaire);
					}
				}
								
	}//function	
	
	
	function addErreurField(fieldName,ObjFormulaire){
		tb.push(fieldName);	
	}//function
	
	function scanErreur(ObjFormulaire,langue){
	
		for(i=0; i<(ObjFormulaire.length-1);i++){			
				ObjFormulaire.elements[i].style.backgroundColor= '#ffffff';
				ObjFormulaire.elements[i].style.color= '#000000';
		}//for

		if (tb.length!=0) {
			
			for(i=0; i<tb.length;i++){				
				ObjFormulaire.elements[tb[i]].style.backgroundColor= 'red';
				ObjFormulaire.elements[tb[i]].style.color= '#ffffff';
			}
			ObjFormulaire.elements[tb[0]].focus();
			
			if('EN' == langue){
				alert('Please check the red fields are well completed');				
			}else{
				alert('Merci de vérifier que les champs mis en évidence sont correctement complétés');
			}
	
		} else {
			ObjFormulaire.action = sAction;		
			ObjFormulaire.submit();
		}
	}//function