
function verif(){
	
	//indication des champs obligatoires
	var obligatoire=["nom", "prenom", "email", "message"];
	
	//indication des autres champs à vérifier si renseigner
	var autres=["adresse", "cp", "ville", "societe", "telephone", "portable", "fax"];
	
	//indication de la classe CSS d'erreur
	var class_error='erreur';
	
	//indication de la classe CSS normal
	var class_normal='';
	
	//réinitialisation du div contenant le message d'erreur
	document.getElementById('error').innerHTML='';
	
	//initialistation des styles CSS
	initialisation(obligatoire, class_normal);
	initialisation(autres, class_normal);
	
	//verification des champs
	var error_obligatoire=verification(obligatoire, true, class_error);
	var error_autres=verification(autres, false, class_error);
	
	if(error_obligatoire==0 && error_autres==0)
	{
		//affichage de la popup de confirmation et envoi du formaulire
		window.open('about:blank','confirm','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, copyhistory=0, menuBar=0, width=200, height=100, left=120, top=120');
		document.contact.submit();
	}
	else
	{
		//affichage du message d'erreur
		if(error_obligatoire>0)
		document.getElementById('error').innerHTML += '<p id="msg_erreur">Les champs obligatoires surlignés en rouge ont été mal ou non renseignés</p>';
		if(error_autres>0)
		document.getElementById('error').innerHTML += '<p id="msg_erreur">Les champs facultatifs surlignés en rouge ont été mal renseignés</p>';
	}
}

// fonction d'initialisation des classes des champs
function initialisation(tableau, classe)
	{
	for(var i=0; i < tableau.length; i++)
		{
		document.getElementById(tableau[i]).className = classe;	
		}	
	}
	
// fonction de vérification des champs
function verification(tableau, required, classe)
	{
	var error=0;
	for(var i=0; i < tableau.length; i++)
		{
		switch(tableau[i])
			{
			// verificarton pour un champs date
			case 'date': //valeur à modifier si nécessaire
				var date = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
				error=verifRegExp(tableau[i], date, required, classe, error)
   			break;		
				
			// verificarton pour un code postal
			case 'cp': //valeur à modifier si nécessaire
				var codepostal=/^([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}$/;
				error=verifRegExp(tableau[i], codepostal, required, classe, error)
   			break;	
			
			// verification pour une adresse email
			case 'email': //valeur à modifier si nécessaire
				var email=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;
				error=verifRegExp(tableau[i], email, required, classe, error)
   			break;
			
			// verification pour unnuméro de téléphone
			case 'telephone': //valeur à modifier si nécessaire
				var tel=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/;
				error=verifRegExp(tableau[i], tel, required, classe, error)
			break;	
			
			// verification pour un numéro de téléphone protable
			case 'portable': //valeur à modifier si nécessaire
				var tel=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/;
				error=verifRegExp(tableau[i], tel, required, classe, error)
			break;	
			
			// verification pour un numéro de fax
			case 'fax': //valeur à modifier si nécessaire
				var fax=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/;
				error=verifRegExp(tableau[i], fax, required, classe, error)
			break;	
			
			default:
				if(required)
					{
					if(document.getElementById(tableau[i]).value=="")
						{
						document.getElementById(tableau[i]).className = 'erreur';	
						error++;
						}
					}
			break;
			}
		}
	return error;	
	}
	
// fonction de verification par expression régulière
function verifRegExp(element, expreg, required, classe, error)
	{
		if(required)
				{
				if(expreg.test(document.getElementById(element).value)==false)
					{
					document.getElementById(element).className = classe;
					error++;
					}
				}
				else
				{
				if(expreg.test(document.getElementById(element).value)==false && document.getElementById(element).value != "")
					{
					document.getElementById(element).className = classe;
					error++;
					}
				}
			return error;	
	}