function valid_form(frm)
{
   if(frm.elements['prenom'].value == "") 
   {
      alert("Saisissez le prénom");
      return false;
   }
   else if(frm.elements['nom'].value == "") 
   {
      alert("Saisissez le nom");
      return false;
   }
   else if(frm.elements['rue'].value == "") 
   {
      alert("Saisissez l\'adresse: n° + rue");
      return false;
   }
   else if(frm.elements['codepostal'].value == "") 
   {
      alert("Saisissez le code postal");
      return false;
   }
   else if(isNaN(frm.elements['codepostal'].value)) 
   {
      alert("Saisissez un code postal sur 5 chiffres");
      return false;
   }
   else if(frm.elements['codepostal'].value.length != 5) 
   {
      alert("Saisissez un code postal sur 5 chiffres");
      return false;
   }
   else if(frm.elements['commune'].value == "") 
   {
      alert("Saisissez la commune");
      return false;
   }
   else if(frm.elements['tel_fixe'].value == "" && frm.elements['tel_mobile'].value == "") 
   {
      alert("Saisissez un numéro de téléphone fixe ou un numéro de téléphone moble");
      return false;
   }
   else if(isNaN(frm.elements['tel_fixe'].value)) 
   {
      alert("Saisissez un numéro de téléphone fixe sur 10 chiffres");
      return false;
   }
   else if(frm.elements['tel_fixe'].value.length != 10 && frm.elements['tel_fixe'].value != "") 
   {
      alert("Saisissez un numéro de téléphone fixe sur 10 chiffres");
      return false;
   }
   else if(isNaN(frm.elements['tel_mobile'].value)) 
   {
      alert("Saisissez un numéro de téléphone mobile sur 10 chiffres");
      return false;
   }
   else if(frm.elements['tel_mobile'].value.length != 10 && frm.elements['tel_mobile'].value != "") 
   {
      alert("Saisissez un numéro de téléphone mobile sur 10 chiffres");
      return false;
   }
   else if(frm.elements['email'].value == "") 
   {
      alert("Veuillez entrer une adresse email");
      return false;
   }
   else if(frm.elements['email_verif'].value == "") 
   {
      alert("Veuillez entrer une adresse email de vérification");
      return false;
   }
   else if(frm.elements['email_verif'].value != frm.elements['email'].value) 
   {
      alert("Veuillez entrer une meme adresse email pour l\'email et l\'email de vérification");
      return false;
   }
   else if(frm.elements['campagne'].value == "autre" && (frm.elements['campagne_autre'].value == "autre campagne" || frm.elements['campagne_autre'].value == "")) 
   {
      alert("Veuillez indiquer une autre campagne");
      return false;
   }
   
   email_valid = verif_adresse(frm.elements['email'].value);
   if (email_valid=="ko")
   {
      return false;
   }
/*
   datenaissance = CheckDate(frm.elements['cdt_datenaissance'].value);      
   if (datenaissance=="ko")
   {
      return false;
   }
*/  
   return true;
}

function valid_form_radio(radio) 
{
   k=0;
   for (var i=0; i<radio.length;i++) 
   {
      if (radio[i].checked) 
      {
         k=1;
      }
   }
   
   if (k==0)
   {
      alert("Veuillez choisir une session");
      return false;
   }
   else
   {
      return true;
   }
}

//
function CheckDate(d)
{
   // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
   // Le séparateur est défini dans la variable separateur
   var amin=1900; // année mini
   var amax=3000; // année maxi
   var separateur="/"; // separateur entre jour/mois/annee
   var j=(d.substring(0,2));
   var m=(d.substring(3,5));
   var a=(d.substring(6));
   var ok="ok";
   if ( ((isNaN(j))||(j<1)||(j>31)) && (ok=="ok") ) 
   {
      alert("Le jour n'est pas correct."); ok="ko";
   }
   if ( ((isNaN(m))||(m<1)||(m>12)) && (ok=="ok") ) 
   {
      alert("Le mois n'est pas correct."); ok="ko";
   }
   if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok=="ok") ) 
   {
      alert("L'année n'est pas correcte."); ok="ko";
   }
   if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok=="ok") ) 
   {
      alert("Les séparateurs doivent être des "+separateur); ok="ko";
   }
   if (ok=="ok") 
   {
      var d2=new Date(a,m-1,j);
      j2=d2.getDate();
      m2=d2.getMonth()+1;
      a2=d2.getFullYear();
      if (a2<=100) {a2=1900+a2}
      if ( (j!=j2)||(m!=m2)||(a!=a2) ) 
      {
         alert("La date "+d+" n'existe pas !");
         ok="ko";
      }
   }
   return ok;
}


function verif_adresse(adresse)
{
   var ok="ok";
   var place = adresse.indexOf("@",1);
   var dot = adresse.indexOf(".",place+1);
   for (i=0; i<adresse.length; i++) 
   {	
      caract = adresse.substring(i,i+1);
         
	   if (((caract == ' ') || 
	        (caract == '&') || 
	        (caract == 'é') || 
	        (caract == 'è') || 
	        (caract == 'ë') || 
	        (caract == 'ç') || 
	        (caract == 'à') || 
	        (caract == 'ù') || 
	        (caract == 'ê') || 
	        (caract == 'î') || 
	        (caract == 'û') || 
	        (caract == 'ô') || 
	        (caract == 'â') || 
	        (caract == ',') || 
	        (caract == ';') || 
	        (caract == ':') || 
	        (caract == '/') || 
	        (caract == '!') || 
	        (caract == '?')) && 
	        (caract != '@'))
		{
            alert('E-mail non valide: un caractère spécial ou accentué a été saisi ['+caract+']');
            ok="ko";
            return ok;
		}
   }
      
   if ((place>-1)&&(adresse.length>2)&&(dot > 1)&&((adresse.length-dot)>2)&&((dot-place)>2))
   {
      ok="ok";      
   }
   else
   {
      alert('Veuillez saisir un e-mail valide de la forme votrenom@domaine.td ');
      ok="ko";
   }
   return ok;

}

// < compteur textarea >

var max=1000;  		// 1000 caractères maximum

function compter(f) 
{
	var txt=f.cdt_motivations_texte.value;
	var nb=txt.length;
	if (nb>max) 
	{ 
		alert("Pas plus de "+max+" caractères dans ce champ");
		f.cdt_motivations_texte.value=txt.substring(0,max);
		nb=max;
	}
	//f.nbcar.value=nb;
}

function timer() 
{
	compter(document.forms["form1"]);
	setTimeout("timer()",100);
}


//
var ns6=document.getElementById&&!document.all;

function restrictinput(maxlength,e,placeholder)
{
   if (window.event&&event.srcElement.value.length>=maxlength)
   {
      return false;
   }
   else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength)
   {
      var pressedkey=/[a-zA-Z0-9\.\,\/]/ 
      if (pressedkey.test(String.fromCharCode(e.which)))
      E.stopPropagation()
   }
}

function countlimit(maxlength,e,placeholder)
{
   var theform=eval(placeholder)
   var lengthleft=maxlength-theform.value.length
   var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
   if (window.event||e.target&&e.target==eval(placeholder))
   {
      if (lengthleft<=0)
         theform.value=theform.value.substring(0,maxlength)
         placeholderobj.innerHTML=lengthleft
   }
}

function displaylimit(thename, theid, thelimit)
{
   var theform=theid!=""? document.getElementById(theid) : thename
   var limit_text='Reste: <b><span id="'+theform.toString()+'">'+thelimit+'</span></b> caractères.'
   if (document.all||ns6)
      document.write(limit_text)
   if (document.all)
   {
      Eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
      Eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
   }
   else if (ns6)
   {
      document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
      document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
   }
}

//


// args : string moncontroletexte, int nbcar, string moncontroledecompte
// return : aucun
// Affecte à certains évènements d'un textarea, le contrôle de la longueur de son contenu
function LimiterTextArea(nom_controletexte, nbcar, nom_controledecompte)
{
var moncontroletexte = document.getElementById(nom_controletexte);

var moncontroledecompte = document.getElementById(nom_controledecompte);

if (moncontroletexte && moncontroledecompte)
{

moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};

// *** Affichage du nombre de caractères restant
if(moncontroledecompte.type)
moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar); // Pour un input de formulaire
else
moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar); // Pour un élément HTML

}
}

// TextAreaEstRempli
// args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte
// return : bool
// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint
function TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
{
if (moncontroletexte)
{
if (moncontroletexte.value.length <= nbcar)
{
//alert("pas rempli");
// mes actions ...

// *** Affichage du nombre de caractères restant
if(moncontroledecompte.type)
moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
else
moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);

return true;
}
else
{
//alert("rempli");
// mes actions ...

// Affichage du nombre de caractères restant
moncontroletexte.value = moncontroletexte.value.substr(0, nbcar);

// *** Affichage du nombre de caractères restant
if(moncontroledecompte.type)
moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
else
moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);

return false;
}
}
}

// NbCarRestant
// args : textarea moncontroletexte, int nbcar
// return : int
// Renvoie le nombre de caractère à saisir
function NbCarRestant(moncontroletexte, nbcar)
{
if (moncontroletexte.value.length)
return new Number(nbcar - moncontroletexte.value.length);
else
return new Number(nbcar);
}




//

// </ compteur textarea >