couleur_ok="#FFFFFF";
couleur_fx="#FDFFB9";
couleur_ob="#FFCCCC";
couleur_in="#FFECEC" ;// couleur des champs obligatoire au chargement de la page


/*******************************************/
function format_champ(element,t_format)
{

t_contenu=element.value
format_erreur=0

if (t_contenu) // ne joue la fonction que s'il y a un contenu
{
	
	switch(t_format)
	{
	case 'd1' :// date
	
		t_contenu=t_contenu.replace(/\D/g,'') // enleve tous les caractere sauf chiffre
		
		if (t_contenu.length==6 && t_contenu.substr(4,1)==0) // date sous 020404
		{
		t_contenu=t_contenu.substr(0,2)+'/'+t_contenu.substr(2,2)+'/20'+t_contenu.substr(4)
		
		element.value=t_contenu
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		else if (t_contenu.length==6 && t_contenu.substr(4,1)!=0) // date sous 020485
		{
		t_contenu=t_contenu.substr(0,2)+'/'+t_contenu.substr(2,2)+'/20'+t_contenu.substr(4)
		element.value=t_contenu
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		else if (t_contenu.length==8) // date sous 02042004
		{
		t_contenu=t_contenu.substr(0,2)+'/'+t_contenu.substr(2,2)+'/'+t_contenu.substr(4)
		element.value=t_contenu
		element.style.backgroundColor=couleur_ok
		
		format_erreur=0
		
		}		
		else
		{
		element.value=""
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		
		// verifie la validit de la date

		t_contenu=t_contenu.replace(/\D/g,'') // enleve tous les caractere sauf chiffre
		var t_jour=eval(t_contenu.substr(0,2))
		var t_mois=eval(t_contenu.substr(2,2))
		var t_annee=t_contenu.substr(4)
		var t_controle=1
		
			if (t_jour==''||t_mois==''||t_annee=='') // verifie que les valeurs existent
			{
			t_controle=0;
			}
		
			if (t_annee.substr(0,1)==0 && t_annee.length==2) // reconstitue l'anne
			{
			t_annee='20'+t_annee
			}
			else if (t_annee.substr(0,1)!=0 && t_annee.length==2)
			{
			t_annee='20'+t_annee
			}
		
			
		if(t_jour<1||t_jour>31||t_mois<1||t_mois>12)
			{
			t_controle=0; // teste la validit de la date
			}
			
	
		if(t_mois==2) // controle fevrier 
			{
			if(t_jour==30||t_jour==31) t_controle=0;
			
			if(t_jour==29) 
				{
					if ((t_annee % 400 == 0) || ((t_annee % 4 == 0) && (t_annee % 100 != 0)))
					{
					tempo=0;
					} 
					else 
					{
					t_controle=0;
					}
				}
			}
			
			if((t_jour==31) && (t_mois==4||t_mois==6||t_mois==9||t_mois==11))
			{
			t_controle=0;
			} 

			if (t_controle==0) // effectue le traitement global sur la date
				{
				element.style.backgroundColor=couleur_fx
				format_erreur=1
				}
				else
				{
				element.style.backgroundColor=couleur_ok
				format_erreur=0
				}    

		break;
	
		case 'd2' :// jour
		t_contenu=t_contenu.replace(/\D/g,'')
		if (t_contenu < 1 || t_contenu > 31)
		{
		element.value=""
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		break;
	
		case 'd3' :// mois
		t_contenu=t_contenu.replace(/\D/g,'')
		if (t_contenu < 1 || t_contenu > 12)
		{
		element.value=""
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		break;
	
		case 'd4' :// annee
		t_contenu=t_contenu.replace(/\D/g,'')
		if (t_contenu < 0 || t_contenu > 99)
		{
		element.value=""
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		break;
		
		case 'd5' :// annee sur 4 chiffre
		t_contenu=t_contenu.replace(/\D/g,'')

		if (t_contenu<99) {t_contenu=20+t_contenu}
		
		if (t_contenu < 2004 || t_contenu > 2099)
		{
		element.value=""
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		break;
	
		case 'h1' :// heure
	
		t_contenu=t_contenu.replace(/\D/g,'') // enleve tous les caractere sauf chiffre
		tempo=t_contenu.length;
		if (tempo==4)
		{
			t_contenu=t_contenu.substr(0,2)+':'+t_contenu.substr(2,2)
			element.value=t_contenu
			format_erreur=0
			element.style.backgroundColor=couleur_ok
		}
		else
		{
			t_contenu=""
			element.value=t_contenu
			element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		break;
	
		case 'a1' :// alpha capitale
		t_contenu=t_contenu.toUpperCase()
		element.value=t_contenu
		break;
		
		case 'a2' :// alpha en minuscule
		t_contenu=t_contenu.toLowerCase()
		element.value=t_contenu
		break;
		
		case 'a3' :// alpha majuscule premier et reste en minuscule
		t_contenu=t_contenu.substr(0,1).toUpperCase()+t_contenu.substr(1).toLowerCase()
		element.value=t_contenu
		break;
	
		case 'a4' :// alpha capitale sur chaque premier mot
		t_contenu=t_contenu.toLowerCase()
		t_contenu=t_contenu.substr(0,1).toUpperCase()+t_contenu.substr(1) // met le premier caractre
		for (i=0;i<t_contenu.length;i++)
			{
			t_lettre=t_contenu.substr(i,1)
			
				if ((t_lettre==' '||t_lettre=='-'))
				{
				t_contenu=t_contenu.substr(0,i+1)+t_contenu.substr(i+1,1).toUpperCase()+t_contenu.substr(i+2)
				}
			}
		element.value=t_contenu
		break;
	
		case 'a5' :// contient @ et . obligatoire
		if ((t_contenu.indexOf("@",3)<0)||(t_contenu.indexOf(".",5)<0))
		{
		element.style.backgroundColor=couleur_fx 
		format_erreur=1
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		} 
		break;
	
		case 't1' :// telephone
		t_contenu=t_contenu.replace(/\D/g,'')
		if (t_contenu.length!=0) //empeche de ne laisser que les espaces
		{
		t_contenu=t_contenu.substr(0,2)+' '+t_contenu.substr(2,2)+' '+t_contenu.substr(4,2)+' '+t_contenu.substr(6,2)+' '+t_contenu.substr(8,2)
			while (t_contenu.substr(t_contenu.length-1,t_contenu.length)==" ")
			{
			t_contenu=t_contenu.substr(0,t_contenu.length-1)
			}
		}
		element.value=t_contenu
		if (t_contenu.length == 14)
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		else
		{
		element.value=""
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		break;
		
		case 'cp' :// longueur 5 pour code postal
		t_contenu=t_contenu.replace(/\D/g,'') // enleve tous les caractere sauf chiffre
		element.value=t_contenu
			if (t_contenu.length != 5)
			{
			element.style.backgroundColor=couleur_fx 
			format_erreur=1
			}
			else
			{
			element.style.backgroundColor=couleur_ok
			format_erreur=0
			} ;
			
		break;
		
		case 'n1' :// remplace , par .
		t_contenu=t_contenu.replace(/\,/g,'.') // remplace la virgule	
		t_contenu=t_contenu.replace(/[^0-9\.]/g,'') // eleve les lettres sauf les point		
		element.value=t_contenu
		if (isNaN(t_contenu)) 
		{
			t_contenu=""
			element.style.backgroundColor=couleur_fx
			format_erreur=1
			} // test si ce qui reste est un nombre
		else
		{
			element.style.backgroundColor=couleur_ok
			format_erreur=0
		}	
		break;
	
	
		case 'n2' :// entier avec arondi
		t_contenu=t_contenu.replace(/\,/g,'.') // remplace la virgule
		t_contenu=t_contenu.replace(/[^0-9.-]/g,'') // eleve les lettres sauf les point	
		if (!isNaN(t_contenu))
		{
		t_contenu=Math.round(t_contenu)
		element.value=t_contenu
		}
		break;
	
		case 'n3' :// 2 chiffres apres la virgule
		t_contenu=t_contenu.replace(/\,/g,'.') // remplace la virgule	
		t_contenu=t_contenu.replace(/[^0-9\.-]/g,'') // eleve les lettres sauf les point	
		t_contenu=Number(t_contenu)
		t_contenu=t_contenu.toFixed(2)
		element.value=t_contenu
		break;
		
		case 'n4' :// entier avec arondi et sep de milliers
		t_contenu=t_contenu.replace(/\,/g,'.') // remplace la virgule
		t_contenu=t_contenu.replace(/[^0-9.]/g,'') // eleve les lettres sauf les point
		tempo=t_contenu
		
		if (t_contenu)
		{
		tab_t=new Array()
		t_contenu=Math.round(t_contenu)
		var str = t_contenu.toString(); n = str.length;
		
		n1=n % 3
		n2=Math.floor(n/3)
		
		if (n1!=0)
		{
		tempo=str.substr(0,n1)
		tab_t.push(tempo)	
		}
		
		for (i=0;i<n2;i++)
		{
		b1=n1+i*3	
		tempo=str.substr(b1,3)
		tab_t.push(tempo)
		}
		tempo=""
		for (i=0;i<tab_t.length;i++)
		{
		tempo=tempo+" "+tab_t[i]
		}
		tempo=tempo.substr(1)
		}

		element.value=tempo
		tempo=""
		break;
		
		case'n5' : // pourcentage avec info si >100%

		t_contenu=t_contenu.replace(/[^0-9\.]/g,'') // eleve les lettres sauf les point	
		t_contenu=Number(t_contenu)
		t_contenu=t_contenu.toFixed(0)
		
		if (t_contenu>100)  	
			{
			element.style.backgroundColor=couleur_fx 
			format_erreur=1
			}
			else
			{
			element.style.backgroundColor=couleur_ok
			format_erreur=0
			}  
		break;
	
		case'ss' : // controle du numero de secu

		t_contenu=t_contenu.replace(/\D/g,'') // enleve tous les caractere sauf chiffre 
		var t_sexe=t_contenu.substr(0,1)
		var t_mois=eval(t_contenu.substr(3,2))
		var t_dep=eval(t_contenu.substr(5,2))
	
		if ((t_sexe !=1&&t_sexe!=2)||(t_mois<1||t_mois>12)||t_contenu.length!=15) 	
			{
			element.style.backgroundColor=couleur_fx 
			format_erreur=1
			}
			else
			{
			element.style.backgroundColor=couleur_ok
			format_erreur=0
			} ;  
		break;
		
		case'lc' : // controle de liste de choix

		if (t_contenu == "" || t_contenu==0) 	
		{
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		break;
		
		case 'im': // cas images gif jpeg jpg format only
		
		nb_point=t_contenu.indexOf(".")
		extension=t_contenu.slice(nb_point)
		if (extension != ".jpg" || extension != ".gif" || extension != ".jpeg" ) 	
		{
		element.style.backgroundColor=couleur_fx
		format_erreur=1
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		format_erreur=0
		}
		break;
		
	
		} // fin du case
	} // fin du if de test de contenu
		
} // fin de fonction









