/***
Scripts de validation des formulaires
***/
/*
tab_cmd[j]=tab_cmd[j].replace(/:/, "='");
				tab_cmd[j]=tab_cmd[j]+"'";
				alert(tab_cmd[j]);
*/
var min=0;
var max=0;
var nom="";
var type="";
var comparaison="";
var nom_compare="";
var id_reference="";
var valeur_reference=0;
var nom_reference="";
var msg="";

function validform(form){
	msg="";
	for (i=0;i<form.elements.length;i++){
		var ch=form.elements[i].id;
		if (!ch) continue;
		if (ch.indexOf(".") >0 ){

			// raz des variables
			init_var();

			// decoupage des id en actions
			tab_cmd=form.elements[i].id.split(".");
			for(j=0 ; j<tab_cmd.length ; j++){
				if(tab_cmd[j]!=''){
					tab_cmd[j]=tab_cmd[j].replace(/:/, "='");
					tab_cmd[j]=tab_cmd[j]+"'";
					//alert(tab_cmd[j]);
					eval(tab_cmd[j]);
				}
			}
			/***
			Nombre de caractères insuffisants
			***/
			if (min > 0 && form.elements[i].value.length < min)	{
				msg+="La zone "+nom+" doit contenir au minimum "+min+" caratères\n";
				form.elements[i].focus();
			}	



			/***
			Nombre de caractères trop important
			***/
			if (max > 0 && form.elements[i].value.length > max)	{
				if (max >1) s="s";
				msg+="La zone "+nom+" doit contenir au maximum "+max+" caratère"+s+"\n";
				form.elements[i].focus();
			}	


			/***
			Type email
			***/
			if (form.elements[i].value.length > 0 && type == "email" ) {
				var pattern=/^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="la zone "+nom+" ne contient pas une adresse mail valide\n";
					form.elements[i].focus();
				}
			}

			/***
			Type entier
			***/
			if (form.elements[i].value.length > 0 && type == "entier" ) {
				var pattern=/^[0-9]{0,}$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="la zone "+nom+" ne doit contenir que des chiffres\n";
					form.elements[i].focus();
				}
			}

			/***
			Type decimal
			***/
			if (form.elements[i].value > 0 && type == "decimal" ) {
				var pattern=/^[0-9]{1,}[.,]{0,1}[0-9]{0,}$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="les données de la zone "+nom+" doivent être de type décimal (ex: 45.36 ou 3,6)\n";
					form.elements[i].focus();
				}
			}


			/***
			Type Numero de securite sociale
			***/
			if (form.elements[i].value!="" && type == "nss" ) {
				var pattern=/^[12][ \.\-]?[0-9]{2}[ \.\-]?(0[1-9]|[1][0-2])[ \.\-]?([0-9]{2}|2A|2B)[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{2}$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="les données de la zone "+nom+" doivent être de type numero de sécurité sociale\n";
					form.elements[i].focus();
				}
			}
		
			/***
			Type Date Française
			***/
			if (form.elements[i].value!="" && type == "dateFr" ) {
				var pattern=/^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="la date de la zone "+nom+" doit être au format (jj/mm/aaaa)\n";
					form.elements[i].focus();
				}
			}

			/***
			Type Date Anglaise
			***/
			if (form.elements[i].value!="" && type == "dateEng" ) {
				var pattern=/^(19|20)\d\d[\- \/\.](0[1-9]|1[012])[\- \/\.](0[1-9]|[12][0-9]|3[01])$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="la date de la zone "+nom+" doit être au format (yyyy-mm-dd)\n";
					form.elements[i].focus();
				}
			}

			/***
			Type Numero client
			***/
			if (form.elements[i].value!="" && type == "num_client" ) {
				var pattern=/^[KE][T]?([0-9]{3,4})$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="le numero client est invalide ex:K0000 ou KT000 pour televente\n";
					form.elements[i].focus();
				}
			}

			/***
			Type Telephone / FAX
			***/
			if (form.elements[i].value!="" && type == "telephoneFixe" ) {
				var pattern=/^(01|02|03|04|05|08)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="le numero de telephone de la zone "+nom+" est invalide\n";
					form.elements[i].focus();
				}
			}
			
			/***
			Type Telephone portable
			***/
			if (form.elements[i].value!="" && type == "portable" ) {
				var pattern=/^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="le numero de telephone de la zone "+nom+" est invalide\n";
					form.elements[i].focus();
				}
			}

			/***
			Type Code postal
			***/
			if (form.elements[i].value!="" && type == "cp" ) {
				alert('Essai');
				var pattern=/^([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="code postal de la zone "+nom+" est invalide\n";
					form.elements[i].focus();
				}
			}
			

			/***
			Type SIRET /SIREN
			***/
			if (form.elements[i].value!="" && type == "siret" ) {
				var pattern=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{5}$/
				var pattern2=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/
				if(pattern.exec(form.elements[i].value)==null && pattern2.exec(form.elements[i].value)==null){
					msg+="le numero de siret de la zone "+nom+" est invalide\n";
					form.elements[i].focus();
				}
			}

			/***
			Type APE
			***/
			if (form.elements[i].value!="" && type == "ape" ) {
				var pattern=/^[0-9]{2}[ \.\-]?[0-9]{1} ?[a-zA-Z]$/
				if(pattern.exec(form.elements[i].value)==null){
					msg+="le numero APE de la zone "+nom+" est invalide\n";
					form.elements[i].focus();
				}
			}
			

			/***
			Comparaison de chaine de caractere
			***/
			if(form.elements[i].value!="" && type == "compare_chaine"){
				var comparaison=document.getElementById('comparaison').value;
				if(form.elements[i].value!=comparaison){
					msg+="Les champs "+nom+" et "+nom_compare+" ne sont pas identique\n";
					form.elements[i].focus();
				}
			}

			
			/***
			Comparaison
			***/
			/*
			if (form.elements[i].value != "" && comparaison != "" ) {
				var donnee1="";
				var donnee2="";
				var reference="";
				var pattern=/[0-9]{2}[/]{1}[0-9]{2}[/]{1}[0-9]{4}/
				if(pattern.exec(form.elements[i].value)!=null){
					donnee1 = form.elements[i].value.substr(6,4)+form.elements[i].value.substr(3,2)+form.elements[i].value.substr(0,2);
					if(id_reference!=""){
						donnee2 = document.getElementById(id_reference).value.substr(6,4)+document.getElementById(id_reference).value.substr(3,2)+document.getElementById(id_reference).value.substr(0,2);
						reference="la zone "+nom_reference;
					}
					else{
						donnee2=valeur_reference.substr(6,4)+valeur_reference.substr(3,2)+valeur_reference.substr(0,2);
						reference=valeur_reference;
					}
						
				}
				else{
					donnee1=form.elements[i].value;
					if(id_reference!=""){
						donnee2=document.getElementById(id_reference).value;
						reference="la zone "+nom_reference;
					}
					else{
						donnee2=valeur_reference;
						reference=valeur_reference;
					}
				}
				if(comparaison=='inferieur'){
					if(donnee1>=donnee2){	
						alert("La zone "+nom+" doit être inférieure a "+reference);
						form.elements[i].focus();
						return false;
					}
				}
				else if(comparaison=='superieur'){
					if(donnee1<=donnee2){	
						alert("La zone "+nom+" doit être supérieure a "+reference);
						form.elements[i].focus();
						return false;
					}
				}
				else if(comparaison=='identique'){
					if(donnee1!=donnee2){	
						alert("La zone "+nom+" doivent être identique a "+reference);
						form.elements[i].focus();
						return false;
					}
				}

			}
			*/
		}
	}
	if(msg!=""){
		alert(msg);
		return false;
	}else{
		return true;
	}
}

function init_var(){
	min=0;
	max=0;
	nom="";
	type="";
	comparaison="";
	id_reference="";
	valeur_reference=0;
	nom_reference="";
	
}