var debMess = "Le champ ";
var finMess = " n'est pas valide !\n";
var sAction ="";//redirection
tbFichier= new Array("jpg","bmp","jpeg","png","gif","pdf","zip");

var dateDeb;
var dateFinEstimee;
var dateFinRelle;

	function testFormulaire(formulaire,intitule,type,target) {
	
		sAction = target;
		squal=0;
		var titre=('\nDésolé, le formulaire présente des anomalies\n\n');
		tb= new Array();
		tbIntitule = new Array();tbIntitule = intitule.split(",");
		tbType = new Array();tbType = type.split(",");
		tbValue = new Array();
		tbName = new Array();
				
		for (j=0;j<tbType.length;j++) {		
			tbName[j]=formulaire.elements[j].name;
			tbValue[j]=formulaire.elements[j].value;
			testChamps (tbType[j],tbIntitule[j],formulaire,j);		
		}
		scanErreur(titre,formulaire);
	}

	function getDate(strDate){
	  day = strDate.substring(0,2);
		month = (strDate.substring(4,5)-1);
		year = strDate.substring(6,10);
		d = new Date();
		d.setFullYear(year); 
		d.setMonth(month);
		d.setDate(day);
		return d;  
	}
	  
  function compare(date_1, date_2){	
    diff = date_1.getTime()-date_2.getTime();
    return (diff==0?diff:diff/Math.abs(diff));
  }
	  
	function testChamps (type,champIntitule,formulaire,j) {
			if (type=="NonVide"){				
				if (''==tbValue[j]){ creerMessage(debMess+champIntitule+finMess,formulaire);}				
			}		
			if (type=="Text"){
				if ((tbValue[j].search(/[\D*]/)==-1)){ creerMessage(debMess+champIntitule+finMess,formulaire);}				
			}
			if (type=="Mail") {		
				if ((tbValue[j].search(/.+@.+\..+/)==-1) || (tbValue[j].search(/ /)!=-1))  { creerMessage(debMess+champIntitule+finMess,formulaire);}
			}
			if (type=="Password") {		
				if (tbValue[j].search(/[\D*\d*]/)==-1) { creerMessage(debMess+champIntitule+finMess,formulaire);}
			}
			if (type=="Confirmation") {				
				if ((tbValue[j])!=(tbValue[j-1])) { creerMessage(debMess+champIntitule+finMess,formulaire); }			
			}
			if (type=="Num") {				
				if (tbValue[j].search(/[\d+]/)==-1) { creerMessage(debMess+champIntitule+finMess,formulaire); }			
			}
			if (type=="DateDeb"){
				if (''==tbValue[j]){ creerMessage(
					debMess+champIntitule+finMess,formulaire);
				}	else{
					dateDeb= getDate(tbValue[(j)]);					
				}
			}
			if (type=="DateFinEstimmee"){				
				if (''==tbValue[j]){ 
					creerMessage(debMess+champIntitule+finMess,formulaire);
				}else{
					dateFinEstimmee= getDate(tbValue[(j)]);					
					if (dateFinEstimmee.getTime() < dateDeb.getTime()){creerMessage(debMess+champIntitule+finMess,formulaire);}
				}
			}
			if (type=="DateFinReelle"){
				if('' != tbValue[j]){
					dateFinRelle= getDate(tbValue[(j)]);
					if (dateFinRelle.getTime() < dateDeb.getTime()){creerMessage(debMess+champIntitule+finMess,formulaire);}
				}
			}
			if ((type=="Checkbox") || (type=="Radio")) {				
				if (formulaire[tbName[j]].checked==false) { creerMessage(debMess+champIntitule+finMess,formulaire); }			
			}
			if (type=="MultiSelect"){				
				selection= false;
				
				for(i=0;i<(formulaire[tbName[j]].length);i++){
					if(''!=formulaire[tbName[j]].options.value)					
						selection= true;
				}
				if(!selection)
					creerMessage(debMess+champIntitule+finMess,formulaire);
			}		
			if (type=="Select") {
				if (formulaire[tbName[j]].options[formulaire[tbName[j]].selectedIndex].value=="default") { creerMessage(debMess+champIntitule+finMess,formulaire); }			
			}
			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){ creerMessage(debMess+champIntitule+finMess,formulaire);}
			}
			if ((type=="Radio")) {
				thisChecked= 0;
				for(i=0;i<formulaire[tbName[j]].length;i++){
					if (formulaire[tbName[j]][i].checked==true)
						thisChecked++;
				}
				if(0>=thisChecked)
					creerMessage(debMess+champIntitule+finMess,formulaire);
					
				thisChecked= 0;
			}			
}	

function creerMessage(parNom,formulaire) {
	
	squal++;			
	tb[squal]=(parNom);
	return;
}

function scanErreur(titre,formulaire){
	if (tb.length!=0) {
		
		var finalMess =(titre+tb.join(" "));
		layerWrite(formulaire,finalMess);
	} else {		
		var finalMess =("");
		//sendMail(formulaire);
		formulaire.action=sAction;		
		formulaire.submit();
	}
}

function layerWrite(formulaire,message) {	
	alert(message);
	//document.getDocumentById("liste").innerHTML = ('<center><FONT SIZE="2" FACE="Arial"><b>'+message+'</b></font></center>\n');
}
