/* JavaScript Document

champ non vide	v1

Date
date	d1
jour	d2
mois	d3
an	d4

Alphanumérique
majuscule	a1
minuscule	a2
1ere maj	a3
1er maj sur tous les mots	a4
email	a5

téléphone	t1
codepostal	cp

Numerique
remplace , par .	n1
entier arrondi	n2
decimal 2 chiffres	n3

*/

couleur_ok="#FFFFFF"
couleur_fx="#FDFFB9"
couleur_ob="#FFCCCC"
couleur_in="#FFECEC"

function met_couleur()
{
	x=document.forms.length
	for (j=0;j<document.forms.length;j++)
	{
		for (i=0;i<document.forms[j].length-1;i++)
		{
			nom_champ =document.forms[j].elements[i].name
			x_champ=nom_champ.substr(nom_champ.length-1)

			if (x_champ==1)
			{
				
				document.forms[j].elements[i].style.backgroundColor=couleur_in
			}
			else
			{
				document.forms[j].elements[i].style.backgroundColor=couleur_ok
			}
		}
		
	}
}

function format_champ(element,t_format)
{

t_contenu=element.value
	
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
		}
		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)+'/19'+t_contenu.substr(4)
		element.value=t_contenu
		element.style.backgroundColor=couleur_ok
		}
		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
		}		
		else
		{
		element.value=""
		element.style.backgroundColor=couleur_fx
		}
		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
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		}
		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
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		}
		break;
	
		case 'dnul' :// annee
		t_contenu=t_contenu.replace(/\D/g,'')
		if (t_contenu < 0 || t_contenu > 99)
		{
		element.value=""
		
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		}
		break;
		
		case 'd4' :// 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
		}
		else
		{
		element.value=t_contenu 
		element.style.backgroundColor=couleur_ok
		}
		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 caractère
		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 
		}
		else
		{
		element.style.backgroundColor=couleur_ok
		} 
	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
		}
		else
		{
		element.style.backgroundColor=couleur_fx
		}
		break;
		
		case 'cp' :// longueur 5 pour code postal
		
			if (t_contenu.length != 5)
			{
			element.style.backgroundColor=couleur_fx 
			}
			else
			{
			element.style.backgroundColor=couleur_ok
			} ;
		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
			} // test si ce qui reste est un nombre
		else
		{
			element.style.backgroundColor=couleur_ok
		}	
		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(/[^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;
		
		} // fin du case
	} // fin du if de test de contenu
} // fin de fonction

// verification du formulaire
function verif_form(le_form)
{
nom_form=le_form.name
erreur=0

	for (var i=0;i< le_form.length-1;i++)
	{
		nom_champ =le_form.elements[i].name
		x_champ=nom_champ.substr(nom_champ.length-1)
		tempo=le_form.elements[i].value

		if (x_champ==1 && tempo=="")
		{
			erreur=1
			le_form.elements[i].style.backgroundColor=couleur_ob
		}
		else
		{
			le_form.elements[i].style.backgroundColor=couleur_ok
		}
	}
	
	if (erreur==1)
	{
	return false
	}
	else
	{
	return true
	}
}