function verifForm(formulaire)
{
var champ ;
var isOk = true ;
	// RegEx qui permet de controler qu'une adresse mail est valide
	var reg = new RegExp('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$', 'i') ;

	// parcours des elements du formulaire
	var nb = formulaire.elements.length ;
	var i = 0 ;

	// remettre les champs avec leurs classes originales pour les tests
	while (i<nb)
	{
		champ = formulaire.elements[i] ;
		if (champ.className=='invalide-oblig') champ.className='obligatoire' ;
		if (champ.className=='invalide-email') champ.className='email' ;
		if (champ.className=='invalide-num') champ.className='num' ;
		if (champ.className=='invalide-oblig-num') champ.className='obligatoirenum' ;
		if (champ.className=='invalide-oblig-email') champ.className='obligatoireemail' ;

		i++ ;
	}
	i = 0;
	var unchampVide = false ;
	var emailInvalide = false ;
	var unchampFaux = false ;
	var auMoinsUneErreur = false ;
	var unchampEmailFauxVide = false ;

	while (i < nb)
	{
		champ = formulaire.elements[i] ;

		if (champ.className =='obligatoire') // vérifier que les champs "obligatoire" sont remplis
			isOk = (!(champ.value =='')) ;

		if (champ.className =='email') // vérifier que les champs "email" sont valides
			if (!(champ.value =='')) // s'il est rempli
				isOk = (reg.test(champ.value)) ; // tester sa validité

		if (champ.className =='num') // vérifier que les champs "num" sont numériques
		{	if (!(champ.value =='')) // s'il est rempli
			{
				var ValidChars = "0123456789.";
				var Char;

				for (j = 0; j < champ.value.length && isOk == true; j++) 
				{	Char = champ.value.charAt(j); 
					if (ValidChars.indexOf(Char) == -1) 
						isOk = false ;
				}
			}
		}

		if (champ.className =='obligatoirenum') // vérifier que les champs "obligatoirenum" sont numériques et remplis
		{	if (champ.value !='') // s'il est rempli
			{
				var ValidChars = "0123456789.";
				var Char;

				for (j = 0; j < champ.value.length && isOk == true; j++) 
				{	Char = champ.value.charAt(j); 
					if (ValidChars.indexOf(Char) == -1) 
						isOk = false ;
				}
			}
			else isOk = false ;
		}

		if (champ.className =='obligatoireemail') // vérifier que les champs "obligatoireemail" sont valides et remplis
		{	if (champ.value !='') // s'il est rempli
			{
				isOk = (reg.test(champ.value)) ; // tester sa validité
			}
			else isOk = false ;
		}


		if (isOk == false)					// il y a eu une erreur...
		{	
			if(auMoinsUneErreur == false)	// donner le focus au premier champ erroné
			{	champ.focus() ;
				auMoinsUneErreur = true ;
			}
				
			if (champ.className == 'email')	// ... qui concerne l'email
			{	emailInvalide = true ;
				champ.className='invalide-email' ;
			}

			if(champ.className=='num')		// ... qui concerne un champ numérique
			{	unchampFaux = true ;
				champ.className='invalide-num' ;
			}

			if(champ.className=='obligatoire')// ... qui concerne un champ obligatoire
			{	unchampVide = true ;
				champ.className='invalide-oblig' ;
			}

			if(champ.className=='obligatoirenum') // ... qui concerne un champ obligatoire numérique
			{	unchampNumFauxVide = true ;
				champ.className='invalide-oblig-num' ;
			}

			if(champ.className=='obligatoireemail') // ... qui concerne un champ obligatoire email
			{	unchampEmailFauxVide = true ;
				champ.className='invalide-oblig-email' ;
			}

			isOk = true ;
		}

		i++ ;
	}

if(auMoinsUneErreur)
{	if(unchampFaux) { alert("Valeur numérique requise") ; return false ; }
	if(unchampEmailFauxVide) { alert("Une adresse email obligatoire a été omise ou est incorrecte") ; return false ; }
	if(unchampVide) { alert("Veuillez remplir le(s) champ(s) manquant(s)") ; return false ; }
	if(emailInvalide) { alert("Veuillez vérifier l'adresse email") ; return false ; }
	if(unchampNumFauxVide) { alert("Un champ numérique obligatoire a été omis ou est incorrect") ; return false ; }

}
else return true ;

}



var newWin = null;
function popUp(strURL, strType, strHeight, strWidth) {
 if (newWin != null && !newWin.closed)
   newWin.close();
 var strOptions="";
 if (strType=="console")
   strOptions="resizable,height="+
     strHeight+",width="+strWidth;
 if (strType=="fixed")
   strOptions="status,height="+
     strHeight+",width="+strWidth;
 if (strType=="elastic")
   strOptions="toolbar,menubar,scrollbars,"+
     "resizable,location,height="+
     strHeight+",width="+strWidth;
 newWin = window.open(strURL, 'newWin', strOptions);
 newWin.focus();
}
