// JavaScript Document
function VerifForm(NomForm)
  {
	var nbelements = NomForm.elements.length;
	var drap = true;
	for (var i = 0; i < nbelements - 1; i++)
    {
		var NomElement = NomForm.elements[i].name;
		var champ = NomForm.elements[i];
		var onblur = NomForm.elements[i].getAttribute("onblur");
    if(onblur!=null)
      {
  		onblur = onblur.toString();
      //alert(champ.value+" / "+'onblur = '+onblur);
  		//onblur = onblur.substring(onblur.indexOf("'")+1,onblur.lastIndexOf("'"));
  		//onblur = onblur.substring(onblur.indexOf("{")+1,onblur.lastIndexOf("}"));
  		onblur = onblur.substring(onblur.indexOf("(")+1,onblur.lastIndexOf(")"));
      onblur = onblur.replace(/'/g,'');
      param = onblur.split(',');
      //alert(NomElement+'='+champ.value+' / 1: '+param[1]+" / 2:' "+param[2]+" / 3: "+param[3]);
  		if(!VerifChamp(champ,param[1],param[2],param[3])) {drap = false;}
      }
	  }
	return drap;
  }

function VerifChamp(NomChamp,obligatoire,masque,freemask)
  {
  //alert(NomChamp.name+'='+NomChamp.value+' / 1: '+obligatoire+" / 2: "+masque+" / 3: "+freemask);
  var res_texte = '';
  var resultat = true;
  if(obligatoire==1) 
    {
    if(NomChamp.value == "") {res_texte='Ce champ est obligatoire';}
    if(parseInt(NomChamp.value) == 0 && masque=='liste') {res_texte='Vous devez choisir une valeur !';}
    }
  if(masque && res_texte=='' && NomChamp.value!='') 
    {
    switch(masque)
      {
      case '=' :
        if(NomChamp.value!=document.getElementById(freemask).value)
          {res_texte='Il doit être identique au champ précédent';}
        break;
      case 'nom' : 
        var regExpression=new RegExp('^[A-Za-zéèàç-]+[ ]{0,1}[A-Za-zéèàç-]+$','i');
        if (!regExpression.test(NomChamp.value))  
          {res_texte='Ce champ doit comporter uniquement des lettres, des lettres accentuées ou des -';}
        break;
      case 'email' : 
        var regExpression= new RegExp('^[0-9a-z._-]+@{1}[0-9a-z.-]{2,}[.]{1}[a-z]{2,5}$','i');
        if (!regExpression.test(NomChamp.value))  
          {res_texte='Cet email est invalide';}
        break;
      case 'tel' : 
        var regExpression= new RegExp('^[0-9]{10}$');
        if (!regExpression.test(NomChamp.value))  
          {res_texte='Ce numéro est invalide (format : 0XXXXXXXXX)';}
        break;
      case 'date' :
        if(!(elt=verifdt(NomChamp.value)))
          {res_texte='Cette date est invalide (format : JJ/MM/AAAA)';} 
         else {document.getElementById(NomChamp.name).value=elt;}
        break;
      case 'liste' : 
        if(obligatoire==1 && parseInt(NomChamp.value)==0) {res_texte='Vous devez sélectionner un choix dans la liste !';}
        break;
      case 'page' : 
        var regExpression=new RegExp('^[a-z0-9-]+$');
        if (!regExpression.test(NomChamp.value))  
          {res_texte='Ce champ doit comporter uniquement des lettres minuscules, des chiffres, et des -';}
        break;
      case 'url' :
        var regExpression=new RegExp('^[a-zA-Z0-9._-]+[.][a-zA-Z]{2,4}$');
        if (!regExpression.test(NomChamp.value))  
          {res_texte='Cette url est invalide !';}
        break;
      case 'urlc' : 
        var regExpression=new RegExp('^http://[a-zA-Z0-9._-]+[.][a-zA-Z]{2,4}$');
        if (!regExpression.test(NomChamp.value))  
          {res_texte='Cette url est invalide ! (Format : http://)';}
        break;
      case 'num' :
        if(isNaN(NomChamp.value))
          {res_texte='Ce champ doit être numérique !';}
         else
          {
          if(freemask)
            {
            var reg=new RegExp("[,]+", "g");
            var tableau=freemask.split(reg);
            if(tableau.length==1) {if(parseInt(NomChamp.value)<tableau[0]) {res_texte='Ce champ doit être égal ou superieur à '+tableau[0]+' !';}}
            if(tableau.length==2) {if(parseInt(NomChamp.value)<tableau[0] || parseInt(NomChamp.value)>tableau[1]) {res_texte='Ce champ doit être compris entre '+tableau[0]+' et '+tableau[1]+' !';}}
            }
          }
        break;

      }
    }

  if(res_texte!='')
    {
    //document.getElementById(NomChamp.name).style.border='1px solid red';
    document.getElementById(NomChamp.name).className="champ_erreur";
    document.getElementById(NomChamp.name).title=res_texte;
    //document.getElementById("res_"+NomChamp.name).innerHTML='<img src="images/rond_rouge.png" title="'+res_texte+'">'; 
    return false;
    }
   else 
    {
    document.getElementById(NomChamp.name).className="champ_valide";
    document.getElementById(NomChamp.name).title='';
    return true;
    }
  }

function verifdt(verdate)
  {
  datej= new Date();
  anneej=datej.getFullYear()+"*";
  anneej=anneej.substring(0,2);
  if (verdate.length==6) verdate=verdate.substring(0,2)+"/"+verdate.substring(2,4)+"/"+anneej+verdate.substring(4,6);
  if (verdate.length==8 && verdate.indexOf("/") == "-1" ) verdate=verdate.substring(0,2)+"/"+verdate.substring(2,4)+"/"+verdate.substring(4,8);
  if (verdate.length==8 && verdate.indexOf("/") != "-1" ) verdate=verdate.substring(0,6)+anneej+verdate.substring(6,8);
  if(!isValidDate(verdate)) return false;
   else {return verdate;}
	}
function isValidDate(d)
  {
  var dateRegEx = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
  return d.match(dateRegEx);
	}
  
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(theid, thelimit)
  {
  var theform=document.getElementById(theid)
  var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characteres Maximum.'
  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); 
    }
  }

