function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;

  for (i=0; i<(args.length-2); i+=3) {
    test=args[i+2];
    val=MM_findObj(args[i]);
    if (val) {
      nm=val.name;
      if ((val=val.value)!="" && val!=args[i+1]) {
        if (test.indexOf('isEmail')!=-1) {
          p=val.indexOf('@');
          if (p<1 || p==(val.length-1))
            errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test.indexOf('isNumber')!=-1) {
          num = parseFloat(val);
          if (isNaN(val))
            errors+='- '+nm+' must contain a number.\n';
        } else if (test.indexOf('inRange') != -1) {
           p=test.indexOf(':');
           min=test.substring(8,p);
           max=test.substring(p+1);
           if (num<min || max<num)
             errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
        }
      } else if (test.charAt(0) == 'R') {
        errors += '- '+nm+' is required.\n';
      }
    }
  }
  
  if (errors)
    alert('Les erreurs suivantes sont apparues \n Des champs obligatoires(*) sont vides ou invalides');

  ok = (errors == '');
  return ok;
}

function limite(zone,max)
{
if(zone.value.length>=max){zone.value=zone.value.substring(0,max);}
}