   function encadreur(champ,etat)
			{//change la classe du champ pourqu'il soit encadrer ou non(relativement au .css)
				if(etat==0)
					{
						if (document.getElementById(champ)) document.getElementById(champ).className="form3 erreur";
						document.getElementById(champ).focus();
					}
				else
				if (document.getElementById(champ)) document.getElementById(champ).className='form3 no_erreur';
			}

	function trim(s) {
		return s.replace(/^\s+/, '').replace(/\s+$/, '');
	}
   
   function Vide(champ)
			{ 
				var erreur=0;
				
					if (document.getElementById(champ)){
						if (trim(document.getElementById(champ).value)=="")
						{
							erreur = 1;
						}
					}
				if (erreur==1)
							{encadreur(champ,0);return erreur;}
				else	
							{encadreur(champ,1);}
							
					 
			}

	
	function ValideMail(champ)
			{
				erreur=0;

				email = document.getElementById(champ).value;
				var place = email.indexOf("@",1);
				var point = email.lastIndexOf(".",email.lenght);
				var place2 = email.indexOf("@",place+1);
				var pointpoint = email.indexOf("..",1);
				if ((place < 0)||(place2 >= 0)||(pointpoint >= 0)||(email.length < 3)||(point < place + 2)||(email.length-point)>4||(email.length-point)<3)
				{
					erreur=1;
				}
				if(erreur==1)
					 {encadreur(champ,0);return erreur;}
				else {encadreur('tr_'+champ,1);}
				
			}
			
	function LongueurMax(champ,maxi)
			{//formulaire->nom du formulaire, champ-> id du champ, maxi->valeur maxi du champ(numerique)
				
				erreur=0;
				var long=new String;
				long.value = document.getElementById(champ).value;
				if (long.value.length > maxi || long.value.length==0)
				{
					erreur=1;
				}
				if(erreur==1)
					 {encadreur(champ,0);return erreur;}
				else {encadreur('tr_'+champ,1);}
				
			}
			
	function Numerique(champ)
			{//formulaire->nom_formulaire, champ-> nom_champ, maxi->valeur_maxi(numerique)
				
				erreur=0;
				var s=new String;
				s.value = trim(document.getElementById(champ).value);
				if(s.value.length==0) //le cas vide est considéré comme non numerique!
					{erreur=1;}
				else{
					for(var i=0;i<s.value.length;i++)
					  {
				   		c = s.value.charAt(i);
				   		if( !((c >= 0) && (c <= 9)))
				   		{
							erreur=1;
				   		}
					  }
					 }
				if(erreur==1)
					 {encadreur(champ,0);return erreur;}
				else {encadreur('tr_'+champ,1);}
			}		
	
	
	function ValideTel(champ)
			{	
				  erreur=0;	
				  s=document.getElementById(champ).value;
				  var c;
				  for(var i = 0; i < s.length; i++)
				  {
				
					c = s.charAt(i);
				  // Caractères valides sont: espace, parenthèses, "/", "-" et "+".
					if( !((c >= 0) && (c <= 9))
					 && (c != ' ') && (c != '-') && (c != '+')
					 && (c != '/') && (c != '(') && (c != ')'))
					 {
						erreur=1;
					 }
				  }
				 if(trim(s)=="") erreur=1;
				 if(erreur==1)
					 {encadreur(champ,0);return erreur;}
				else {encadreur('tr_'+champ,1);}
			}
	
	
		function Visibilite(message,etat)//etat 1->invisible, etat 0->visible; message designe l'id du msg à cacher/montrer
			{   
				if(etat==1)
					if (document.getElementById(message)) document.getElementById(message).className="invisible";
				else
					if (document.getElementById(message)) document.getElementById(message).className="visible";
			}
		
		function verification()
			{
			//liste inversée(pourk le focus soit en haut)des champs.Pour chaque element, on definit le type de traitement à lui appliquer
			liste=new Array(
				"cv,vide",
				"password,vide",
				"pseudo,vide",
				"contactMail,mail",
				"contactOrg,vide",
				"contactNom,vide",
				"langues,vide",
				"zones,vide",
				"localisation,vide",
				"interventions,vide",
				"acteurs,vide",
				"competences,vide",
				"anneeExp,vide",
				"evaluation,vide",
				"classement,vide",
				"consultantExp,vide",
				"expsignif,vide",
				"expfeee,vide",
				"organisme,vide",
				"email,mail",
				"pays,vide",
				"annee,vide",
				"prenom,vide",
				"titre,vide",
				"civ,vide"
			);

			return verification2(liste);
			}
		
		function verification_recherche_expert()
			{
			//liste inversée(pourk le focus soit en haut)des champs.Pour chaque element, on definit le type de traitement à lui appliquer
			liste=new Array(
				"texte,vide",
				"email_contact,email",
				"nom_contact,vide",
				"date_limite,vide",
				"champ_titre_article,vide"
			);

			return verification2(liste);
			}
			

		/*function verification_contact()
			{
			//liste inversée(pourk le focus soit en haut)des champs.Pour chaque element, on definit le type de traitement à lui appliquer
			liste=new Array(
				"desc,vide",
				"mail,mail",
				"prenom,vide",
				"nom,vide",
				"civ,vide"
			);

			return verification2(liste);
			}

		function verification2(liste)
			{
			
			//on enleve les msg d'erreurs precedents
			Visibilite('msg_vide',1);
   			Visibilite('msg_mail',1);
   			Visibilite('msg_gsm',1);
			
			
			var erreurs=0;
			for (i=0; i<liste.length; i++)
			{
			 var champs = liste[i].split(/,/);
			if ( (champs[1]=="vide") && (Vide(champs[0])==1)) {erreurs++;Visibilite('msg_vide',0);Visibilite('msg_mail',1);Visibilite('msg_gsm',1);}
			if ((champs[1]=="mail") && (ValideMail(champs[0])==1)) {erreurs++;Visibilite('msg_mail',0);Visibilite('msg_vide',1);Visibilite('msg_gsm',1);}
			if ((champs[1]=="tel") && (ValideTel(champs[0])==1)) {erreurs++;Visibilite('msg_gsm',0);Visibilite('msg_mail',1);Visibilite('msg_vide',1);}

/*        A DECOMMENTER ET PERSONNALISER LORSQUE LE FORMULAIRE A DES CHAMPS NUMERIQUES OU A TAILLE FIXE NON SPECIFIE PAR MAXLENGTH	


			if (champs[1]=="numerique" && Numerique("form",champs[0])==1) {erreurs++;;Visibilite('msg_gsm',0);Visibilite('msg_mail',1);Visibilite('msg_vide',1)}
			if (champs[1]=="longueur" && LongeurMax("form",champs[0],20)==1) {erreurs++;;Visibilite('msg_gsm',0);Visibilite('msg_mail',1);Visibilite('msg_vide',1)}
*/

		/*	}
			if(erreurs != 0) 
			 	return false;
			}*/
			

function verifier_contact() {

			// Liste volontairement inversée pour que le focus revienne dans le champs erroné le plus haut.
			// On définit ici le type de traitement à effectuer pour chacun d'entre eux.

				champs_liste = new Array('captcha,vide', 'c_corps,vide', 'sujet,vide', 'mail,email','nom,vide','prenom,vide','civilite,noselect');

				if ((document.forms.contact.civ[0].checked==false)&& (document.forms.contact.civ[1].checked==false)&& (document.forms.contact.civ[2].checked==false))
					{

						document.getElementById('error_civilite').innerHTML= "Cochez";
						error = 1;

					
					}
					else{
						 document.getElementById('error_civilite').innerHTML= "";
					 }


				return parser(champs_liste);

			}

			

			function verifier_email() {

// Liste volontairement inversée pour que le focus revienne dans le champs erroné le plus haut.
// On définit ici le type de traitement à effectuer pour chacun d'entre eux.

	champs_liste = new Array('mail_inscription_,email');

	return parser(champs_liste);

}

function parser(champs_liste) {
			
// On enlève les messages d'erreurs précédents
			
	var erreurs_total = 0;

	for (i=0; i<champs_liste.length; i++) {

		var champ = champs_liste[i].split(/,/);

		if ((champ[1] == 'vide') && (vide(champ[0]) == 1)) {
			
			erreurs_total++;

		}

		if ((champ[1] == 'email') && (email(champ[0]) == 1)) {
			
			erreurs_total++;
			
		}

		if ((champ[1] == 'noselect') && (noselect(champ[0]) == 1)) {
			
			erreurs_total++;

		}

		if ((champ[1] == 'contient') && (contient(champ[0], champ[2]) == 1)) {
			
			erreurs_total++;

		}

	}

	if (erreurs_total != 0) { return false; } else { return true; }

}

function classe_changer(champ, etat) {
	
// Change la classe du champ pourqu'il soit encadré ou non comme indiqué dans la feuille de style

	if (etat == 0) {

		if (document.getElementById('inner_'+champ)) {
			
			document.getElementById('inner_'+champ).style.display='inline';

			document.getElementById(champ).focus();

	}

	} else if (document.getElementById('inner_'+champ)) {
		
		document.getElementById('inner_'+champ).style.visibility='hidden';

	}

}

function trim(string) {

	return string.replace(/^\s+/, '').replace(/\s+$/, '');

}

function vide(champ) { 

	var erreur = 0;

	if (document.getElementById(champ)) {

		if (trim(document.getElementById(champ).value) == '') {

			erreur = 1;

		}

	}

	if (erreur == 1) {
		
		classe_changer(champ, 0);

		if (document.getElementById('inner_'+champ)) {

			document.getElementById('inner_'+champ).innerHTML='Compl&eacute;tez';

		}
		
		return erreur;
		
	} else {
		
		classe_changer(champ, 1);
		
	}

}


function noselect(champ) { 

	var erreur = 0;

	if (document.getElementById(champ)) {

		if (trim(document.getElementById(champ).value) == "none") {

			erreur = 1;

		}

	}

	if (erreur == 1) {
		
		classe_changer(champ, 0);

		if (document.getElementById('inner_'+champ)) {

			document.getElementById('inner_'+champ).innerHTML='Choisissez';

		}
		
		return erreur;
		
	} else {
		
		classe_changer(champ, 1);
		
	}

}

function email(champ) {

	var erreur = 0;

	chaine = document.getElementById(champ).value;

	expression = new RegExp("^[a-z]+[-._a-z0-9]{2,}(@){1}[a-z]+[-a-z0-9]{2,}(\.){1}[a-z]{2,4}$","i");

	result = expression.test(chaine);

	if (result == false) { erreur = 1; }

	if (erreur == 1) {

		classe_changer(champ, 0);

		if (document.getElementById('inner_'+champ)) {

			document.getElementById('inner_'+champ).innerHTML='e-Mail vide ou invalide';

		}

		return erreur;

	} else {

		classe_changer(champ, 1);

	}
				
}

