var formSubmit = true; // variable pour empecher les clicks abusifs sous IE

var fieldstyle = '';

if(window.RegExp){
  var regexAlpha = /^[A-Za-zÀàÂâÉéÈèÊêËëÎîÏïÔôÖöÙùÛûÇç \-\'\.]+$/;
  var regexNum = /^[0-9]+$/;
  var regexAlphaNum = /^[0-9A-Za-zÀàÂâÉéÈèÊêËëÎîÏïÔôÖöÙùÛûÇç \-\'\.]+$/;
  //var regexVille = /^[A-Za-zÀàÂâÉéÈèÊêËëÎîÏïÔôÖöÙùÛûÇç \-\.]+$/;
  var regexAddress = /^[0-9]+(\,)? [0-9A-Za-zÀàÂâÉéÈèÊêËëÎîÏïÔôÖöÙùÛûÇç &\-\.\,\']+$/;
  var regexPC = /^[A-Za-z][0-9][A-Za-z]( )?[0-9][A-Za-z][0-9]$/;
  //var regexPhone = /^[0-9]{10}$/;
  var regexPhone = /^(\(?\d\d\d\)?)?( |-|\.)?\d\d\d( |-|\.)?\d{4,4}(( |-|\.)?[ext\.]+ ?\d+)?$/;
  var regexEmailNo = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
  var regexEmailYes = /^.+\@(\[?)[A-Za-z0-9\-\.]+\.([A-Za-z]{2,4}|[0-9]{1,3})(\]?)$/;
  var regexVIN = /^[0-9A-Za-z]{17}$/;
  var regexYear = /^[1-2][0-9]{3}$/;
  var regexKM = /^[0-9 \,\.]+$/;
  var regexDate = /^[0-9]{4}\/((0[1-9])|(1[0-2]))\/((0[1-9])|((1|2)[0-9])|(3(0|1)))$/;
  /*var regexHour = /^(((0|1)[0-9])|(2[0-3]))$/;*/
  var regexMoney = /^[0-9\.\,]+$/;
  var regexPlate = /^[A-Za-z0-9 -]{4,8}$/;
  
  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.all) {
    fieldstyle = document.all[field].className;
    document.all[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('long') != '-1')
      document.layers[field].className = 'long';
    else if (classname.search('short') != '-1')
      document.layers[field].className = 'short';
    else
      document.layers[field].className = '';
  }
  /*else if (document.all) {
    classname = document.all[field].className;
    if (classname.search('long') != '-1')
      document.all[field].className = 'long';
    else if (classname.search('short') != '-1')
      document.all[field].className = 'short';
    else
      document.all[field].className = '';
  }*/
  else if(document.getElementById){
    classname = document.getElementById(field).className;
    if (classname.search('long') != '-1')
      classname = document.getElementById(field).className = 'long';
    else if (classname.search('short') != '-1')
      classname = document.getElementById(field).className = 'short';
    else
      classname = document.getElementById(field).className = '';
  }
}

// Fonction checkprofil: Vérifie les champs nom, courriel et comments
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 (!validateField('first_name', regexAlpha)){
    errorField('first_name');
    msgerreur += "<li><a href=\"#a-fname\">'Pr&eacute;nom' : Veuillez entrer le pr&eacute;nom de la personne &agrave; contacter</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('first_name');
    
  if (!validateField('last_name', regexAlpha)){
    errorField('last_name');
    msgerreur += "<li><a href=\"#a-lname\">'Nom' : Veuillez entrer votre nom de famille de la personne &agrave; contacter</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('last_name');
      
  if (!(!validateField('email', regexEmailNo) && validateField('email', regexEmailYes))){
    errorField('email');
    msgerreur += "<li><a href=\"#a-email\">'Courriel' : Veuillez entrer une adresse de courriel valide</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('email');    
    
  if (!validateField('phone', regexPhone)){
      errorField('phone');
      msgerreur += "<li><a href=\"#a-phone\">'T&eacute;l&eacute;phone' : Veuillez entrer le num&eacute;ro de t&eacute;l&eacute;phone de la personne &agrave; contacter</a></li>";
      erreur = true;
      nb_err++;
    }
    else {
      okField('phone');
    }
  
  if (!validateField('company', regexAlphaNum)){
    errorField('company');
    msgerreur += "<li><a href=\"#a-company\">'Entreprise' : Veuillez entrer le nom de l'entreprise</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('company'); 
    
  if (document.getElementById('state').selectedIndex == 0){
    errorField('state');
    msgerreur += "<li><a href=\"#a-prov\">'Province' : Choisissez une province</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('state'); 

    msgerreur += "</ul>";
    
    if (nb_err > 1)
      title_err = "Il y a un probl&egrave;me avec les champs suivants :";
    else
      title_err = "Il y a un probl&egrave;me avec le champ suivant :";

  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;
  }
  else {
    /*if (ofn.PHONE_J) { //some forms don't have phone number input fields
      ofn.PHONE_J.value = ofn.PHONE2.value+'-'+ofn.PHONE3.value+' *'+ofn.PHONE4.value;
    }*/
    
    if (document.getElementById('phone_j')) { //some forms don't have phone number input fields
      if(document.getElementById('phone4'))
        document.getElementById('phone_j').value = document.getElementById('phone2').value+'-'+document.getElementById('phone3').value+' *'+document.getElementById('phone4').value;
      else
        document.getElementById('phone_j').value = document.getElementById('phone2').value+'-'+document.getElementById('phone3').value;
    }
    
    if (document.getElementById('phone_n')) { //some forms don't have phone number input fields
      if(document.getElementById('phone4s'))
        document.getElementById('phone_n').value = document.getElementById('phone2s').value+'-'+document.getElementById('phone3s').value+' *'+document.getElementById('phone4s').value;
      else
        document.getElementById('phone_n').value = document.getElementById('phone2s').value+'-'+document.getElementById('phone3s').value;
    }

    if(document.getElementById('first_name').value == '' && document.getElementById('last_name').value == ''){
      //document.getElementById(f.id).action = "<spy=spy.uri/>"; <-- can't do because we're in a .js file
      document.getElementById(f.id).submit();
    }
  }
}
