var erreurCouleur="#FF0000";

function verifform() {

	
	var nom=document.getElementById('nom');
	var mail=document.getElementById('mail');
	var tel=document.getElementById('tel');
	var sexe1=document.getElementById('sexe1');
	var dd1=document.getElementById('dd1');
	var MM1=document.getElementById('MM1');
	var yyyy1=document.getElementById('yyyy1');
	var regime1=document.getElementById('regime1');
	var sexe2=document.getElementById('sexe2');
	var dd2=document.getElementById('dd2');
	var MM2=document.getElementById('MM2');
	var yyyy2=document.getElementById('yyyy2');
	var regime2=document.getElementById('regime2');
	var cp=document.getElementById('codepostal');
	var sexe1=document.getElementById('sexe1');
	var sexe2=document.getElementById('sexe2');
	var nombredenfant=document.getElementById('nombredenfant');
	
	var mess='';
	
	nomse=nom.value;
	if (nomse.simplify()=='') {
		nom.style.backgroundColor=erreurCouleur;
		mess+='Le nom est obligatoire\n';
	} else mess+=verif_donnee(nom, 'texte', 'Le nom est obligatoire', '');
	
	if (mail.value=='no@mail.com') {
		mail.style.backgroundColor=erreurCouleur;
		mess+='Le mail n\'est pas valide\n';
	}
	
	mess+=verif_donnee(mail, 'email', 'Le mail est obligatoire', '');
	mess+=verif_donnee(tel, 'tel', 'Le telephone est obligatoire', '');
	mess+=verif_donnee(cp, 'codepostal', 'Le code postal est obligatoire', '');
	
	mess+=verif_donnee(sexe1, 0, 'La civilite est obligatoire', '');
	if (dd1.value!=0 && MM1.value!=0 && yyyy1.value!=0) {
		
		if (date_valide(dd1.value,MM1.value,yyyy1.value)==false) {
		  mess+='La date de naissance n\'est pas valide\n';
		  dd1.style.backgroundColor=erreurCouleur;
		  MM1.style.backgroundColor=erreurCouleur;
		  yyyy1.style.backgroundColor=erreurCouleur;
		} else {
		  dd1.style.backgroundColor='white';
		  MM1.style.backgroundColor='white';
		  yyyy1.style.backgroundColor='white';
		} 	
	} else {
		mess+='La date de naissance est obligatoire\n';
		dd1.style.backgroundColor=erreurCouleur;
		MM1.style.backgroundColor=erreurCouleur;
		yyyy1.style.backgroundColor=erreurCouleur;
	}
	mess+=verif_donnee(regime1, 0, 'Le regime est obligatoire', '');
	
	if (sexe2.value!=0 || regime2.value!=0 || dd2.value!=0 || MM2.value!=0 || yyyy2.value!=0) {
		mess+=verif_donnee(sexe2, 0, 'La civilite du conjoint est obligatoire', '');
		if (dd2.value!=0 && MM2.value!=0 && yyyy2.value!=0) {
			if (date_valide(dd2.value,MM2.value,yyyy2.value)==false) {
			  mess+='La date de naissance du conjoint n\'est pas valide\n';
			  dd2.style.backgroundColor=erreurCouleur;
			  MM2.style.backgroundColor=erreurCouleur;
			  yyyy2.style.backgroundColor=erreurCouleur;
			} else {
			  dd2.style.backgroundColor='white';
			  MM2.style.backgroundColor='white';
			  yyyy2.style.backgroundColor='white';
			}
		} else {
			mess+='La date de naissance du conjoint est obligatoire\n';
			dd2.style.backgroundColor=erreurCouleur;
			MM2.style.backgroundColor=erreurCouleur;
			yyyy2.style.backgroundColor=erreurCouleur;
		}
		mess+=verif_donnee(regime2, 0, 'Le regime du conjoint est obligatoire', '');		
	}
	
	mess+=verif_donnee(nombredenfant, 'enfant', 'Le nombre d\'enfant est obligatoire', '');
	
	if (mess) {
		alert(mess);
		return false;
	} else {
		//enregistrement
		return true;
		//etape suivante
	}
}

function verif_donnee(valeur, style, message, couleur) {
	
	var mess='';
	
	
	if (style=='email') {
		var exp=new RegExp("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$","g");
	}
	if (style=='texte') {
		var exp=new RegExp("[^0-9]","g");
	}
	
	if (style=='tel') {
		var exp=new RegExp("0[1-9]{1}[0-9]{8}","g");
	}
	
	if (style=='codepostal') {
		var exp=new RegExp("[0-9]{4,5}","g");
	}
	
	if (style=='enfant') {
		var exp=new RegExp("[0-9]{1}","g");
	}
	
	if (style==0) {
		var exp=new RegExp("[^0]","g");
	}
	
	if (exp.test(valeur.value)) {
		valeur.style.backgroundColor='white';
	} else {
		if (couleur=='') couleur=erreurCouleur;
		mess+=message+'\n';
		valeur.style.backgroundColor=couleur;
	}
	
	return mess;
}


function date_valide(x,y,z)
{
/*
pour mes dates j'utilise 3 listes réroulantes (on peut utiliser aussi 3inputbox... il faut juste adapter si nécessaire.)
1 pour les jours, 1 pour les mois et 1 pour les années.
x = jours
y = mois
z = année
-------------------------------
Cette fonction envoie "True" si une date est valide
et dans le cas contraire "False".*/	if ((x <= 31)&&(nbjours_mois(y,z)==31))
	{
	return true;
	}
	else if ((x <= 29)&&(nbjours_mois(y,z)==29))
	{
	return true;
	}	
	else if ((x<=28)&&(nbjours_mois(y,z)==28))
	{
	return true;
	}	
	else if ((x<=30)&&(nbjours_mois(y,z)==30))
	{
	return true;
	}	
	else
	{
	return false;
	}
}
function nbjours_mois(mois,annee)
{
/* cette fonction envoie le nombre de jours dans 1 mois.
il prend en compte les années bissextiles.
!!! l'année bissextile n'est pas vraiment juste !!!
il arrive tous les 400 ans si je ne me trompes pas qu'une année
divisible par 4 ne soit pas bissextile.. d'ici là on sera plus là :-))*/	
	if ((mois==1)||(mois==3)||
		(mois==5)||(mois==7)||
		(mois==8)||(mois==10)||
		(mois==12))
	{
	return(31);
	}
	else if ((mois==4)||(mois==6)||
		(mois==9)||(mois==11))
	{
	return(30);
	}
	else if ((mois==2)&&(annee % 4 ==0))
	{
	return(29);
	}
	else
	{
	return(28);
	}
}

String.prototype.simplify= function () {
   return this.replace(/\s+/g,"");
}

