function isBlank(s){
 for(var i=0;i<s.length;i++){
  var c=s.charAt(i);
  if ((c!=' ') && (c!='\n') && (c!='')) return false;
 }
 return true;
}

function checkForm(f) {
 var msg;
 var emptyFields="";
 var errors="";
 for (var i=0;i<f.length;i++) {
  var e=f.elements[i];
  if (((e.type=="text") || (e.type=="textarea")) && !e.optional) {
   if ((e.value==null) || (e.value=="") || isBlank(e.value)) {
    emptyFields+="\n          "+e.name;
    continue;
    
   }
  }
  if (e.numeric || (e.min!=null) || (e.max!=null)) {
   var v=parseFloat(e.value);
   if (isNaN(v) || ((e.min!=null) && (v<e.min)) || ((e.max!=null) && (v>a.max))) {
    errors+="- le champ "+e.name+" doit être un nombre";
    if (e.min!=null) errors+=" supérieur à "+e.min;
    if (e.max!=null && e.min!=null) errors+=" et inférieur à "+e.max;
    else if (e.max!=null) errors+=" inférieur à "+e.max;
    errors+=".\n";
   }
  }
 }
 
 if(!emptyFields && !errors) return true;
 msg ="___________________________________________\n\n";
 msg+="Le formulaire n'a pas pu être envoyé.\n";
 msg+="Veuillez corriger les erreurs et renvoyer le formulaire.\n";
 msg+="___________________________________________\n\n";
 if (emptyFields) {
  msg+="- Les champs obligatoires suivants sont vides :"+emptyFields+"\n";
  if (errors) msg+="\n";
 }

 msg+=errors;
 alert(msg);
 return false; 
}
