var formSubmit = true; // variable pour empecher les clicks abusifs sous IE

var fieldstyle = '';

if(window.RegExp){
  var regexAlpha = /^[A-Za-zÀàÂâÉéÈèÊêËëÎîÏïÔôÖöÙùÛûÇç \-\'\.]+$/;
  var regexEmailNo = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
  var regexEmailYes = /^.+\@(\[?)[A-Za-z0-9\-\.]+\.([A-Za-z]{2,4}|[0-9]{1,3})(\]?)$/;
  
  var regexNotEmpty = /^.+$/;
  var regexOnlySpace = /^ +$/;
}

function validateField(field, regex){
  return regex.test(document.getElementById(field).value);
}

function errorField(field) {
  if (document.layers) {
    fieldstyle = document.layers[field].className;
    document.layers[field].className = fieldstyle + ' field-err';
  }
  else if(document.getElementById){
    fieldstyle = document.getElementById(field).className;
    document.getElementById(field).className = fieldstyle + ' field-err';
  }
}
function okField(field){
  if (document.layers) {
    classname = document.layers[field].className;
    if (classname.search('textbox') != '-1')
      document.layers[field].className = 'textbox';
    else
      document.layers[field].className = '';
  }
  else if(document.getElementById){
    classname = document.getElementById(field).className;
    if (classname.search('textbox') != '-1')
      classname = document.getElementById(field).className = 'textbox';
    else
      classname = document.getElementById(field).className = '';
  }
}

function validate(f) {
  var fn = f.name;
  var ofn = document.forms[fn];
  var erreur = false;
  var nb_err = 0;
  
  if(!formSubmit) return false;
  formSubmit = false;
   
  var title_err = '';
  var msgerreur = "<ul>";  
  	
    if (document.getElementById('firstname').value == ''){
      errorField('firstname');
      msgerreur += "<li><a href=\"#a-fname\">Please write your first name</a></li>";
      erreur = true;
      nb_err++;
    }
    else{
      okField('firstname');
    }
      
    if (document.getElementById('lastname').value == ''){
      errorField('lastname');
      msgerreur += "<li><a href=\"#a-lname\">Please write your last name</a></li>";
      erreur = true;
      nb_err++;
    }
    else{
      okField('lastname');
    }
          
    if (!(!validateField('email', regexEmailNo) && validateField('email', regexEmailYes))){
      errorField('email');
      msgerreur += "<li><a href=\"#a-email\">Please write a valid e-mail address</a></li>";
      erreur = true;
      nb_err++;
    }
    else{
      okField('email');
    }
    
    msgerreur += "</ul>";
    
    if (nb_err > 1)
      title_err = "The following fields require your attention:";
    else
      title_err = "The following field requires your attention:";

  if(erreur == true) {
    if (document.layers) {
      document.layers.error.document.write(title_err + msgerreur);
      document.layers.error.document.close();
      document.layers['err-msg'].className = 'visible';
    }
    else if (document.all) {
      error.innerHTML = title_err + msgerreur;
      document.all['err-msg'].className = 'visible';
    }
    else if(document.getElementById){
      document.getElementById("err-msg").innerHTML = title_err + msgerreur;
      document.getElementById('err-msg').className = 'visible';
    }
    else
      alert(msgerreur);
    formSubmit = true;
    return false;
  }
}