var vNom = false;
var vTitle = false;
var vDealer = false;
var vCourriel = false;
var vPhone = false;
var vAddress = false;
var vCity = false;
var vPC = false;
var vNIV = false;
var vComments = false;
var vCaptcha = false;

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

var properFormId = '';

function findFormId(){
  for(var f = 0; f < document.forms.length; f++){
    if(document.forms[f].className == 'form2007'){
      properFormId = document.forms[f];
    }
  }
}

// Validation pour les formulaires avec captcha (corporate/contact.spy, corporate/advertising.spy, corporate/newmembers.spy)

// Fonction checkprofil: Vérifie les champs nom, courriel et comments
function validateFormCaptcha(f) {
  findFormId();
  if(f.id == undefined){
    f = properFormId;
  }
  
  //var fn = f.name;
  //var ofn = document.forms[fn];
	var erreur = false;
  
  if(!formSubmit) return false;
  formSubmit = false;
  
	var msgerreur = "The following field(s) require(s) your attention\n\n";
	
  if(vNom && f.NAME.value=="") {
		erreur = true;
		var msgerreurpseudo = "'Your name': Field is empty\n";
		msgerreur += msgerreurpseudo;
	}
  
  if(vTitle && f.TITLE.value=="") {
		erreur = true;
		var msgerreurtitle = "'Your title': Field is empty\n";
		msgerreur += msgerreurtitle;
	}
  
  if(vDealer && f.DEALER.value=="") {
		erreur = true;
		var msgerreurcie = "'Company Name': Field is empty\n";
		msgerreur += msgerreurcie;
	}
  
  if(vAddress && f.ADDRESS.value=="") {
		erreur = true;
		var msgerreuraddress = "'Address': Field is empty\n";
		msgerreur += msgerreuraddress;
	}
  
  if(vCity && f.CITY.value=="") {
		erreur = true;
		var msgerreurcity = "'City': Field is empty\n";
		msgerreur += msgerreurcity;
	}
  
  if(vPC) {
    if(!(f.POSTALCODE.value.length == 7) || !(f.POSTALCODE.value.charAt(0) >= 'A' && f.POSTALCODE.value.charAt(0) <= 'Z') || !(f.POSTALCODE.value.charAt(1) >= '0' && f.POSTALCODE.value.charAt(1) <= '9') || !(f.POSTALCODE.value.charAt(2) >= 'A' && f.POSTALCODE.value.charAt(2) <= 'Z') || (f.POSTALCODE.value.charAt(3) == '-' || f.POSTALCODE.value.charAt(3) == '_') || !(f.POSTALCODE.value.charAt(4) >= '0' && f.POSTALCODE.value.charAt(4) <= '9') || !(f.POSTALCODE.value.charAt(5) >= 'A' && f.POSTALCODE.value.charAt(5) <= 'Z') || !(f.POSTALCODE.value.charAt(6) >= '0' && f.POSTALCODE.value.charAt(6) <= '9')) {
  		erreur = true;
      var msgerrpc = "'Postal Code': Enter your postal code correctly\n";
  		msgerreur += msgerrpc;
  	}
  }
  
  if(vCourriel) {
    // Validation du champs Courriel. Vérifie si le champ est vide.
  	if(f.EMAIL.value=="") {
  		erreur = true;
  		var msgerreuremail = "'Email': Field is empty\n";
  		msgerreur += msgerreuremail;
  	}
  	else {
  		// Validation de l'adresse email (Vérifie si un @ est présent et si tout est conforme).
  		if (!f.EMAIL.value.match(/^\w+([&\_.-]{0,4}\w+)*@\w+([\_.-]?\w+)*(\.\w{2,6})+$/)){
  			erreur = true;
  			var msgerreurvalidemail = "'Email': Your email address is not valid\n";
  			msgerreur += msgerreurvalidemail;
  	  }
    }
  }

// Validation du numéro de téléphone - (555) 555-5555
  if (vPhone) {
    if(f.AREA_J.value.length != 3 || f.PHONE2.value.length != 3 || f.PHONE3.value.length != 4 ) {
  		erreur = true;
      var msgerreurphone = "'Telephone': Field is empty\n";
		  msgerreur += msgerreurphone;
  	}
  }
  
  // Validation du champs NIV (Numéro Identification Vehicule)
  if(vNIV && f.NIV.value=="") {
		erreur = true;
		var msgerreurniv = "'Vehicle Identification Number (VIN)': Field is empty";
		msgerreur += msgerreurniv;
	}
  
  if(vComments && f.COMMENTS.value=="") {
		erreur = true;
		var msgerreurcomments = "'Comments/questions': Field is empty\n";
		msgerreur += msgerreurcomments;
	}
  
  if(vCaptcha && f.captcha.value=="") {
		erreur = true;
		var msgerreurcomments = "'Word' : Please type the characters you see in the picture\n";
		msgerreur += msgerreurcomments;
	}
	
  if(erreur == true) {
		alert(msgerreur);
    formSubmit = true;
		return false;
  }
  else {
    if (vPhone) { //some forms don't have phone number input fields
      f.PHONE_J.value = f.PHONE2.value+'-'+f.PHONE3.value+' *'+f.PHONE4.value;
    }
    f.submit();
  }
}

// Fonction checkprofil: Vérifie les champs nom, courriel et comments
function validateForm(f) {
  var fn = f.name;
  var ofn = document.forms[fn];
	var erreur = false;
  
  if(!formSubmit) return false;
  formSubmit = false;
  
	var msgerreur = "The following field(s) require(s) your attention\n\n";
	
  if(vNom && f.NAME.value=="") {
		erreur = true;
		var msgerreurpseudo = "'Your name': Field is empty\n";
		msgerreur += msgerreurpseudo;
	}
  
  if(vTitle && f.TITLE.value=="") {
		erreur = true;
		var msgerreurtitle = "'Your title': Field is empty\n";
		msgerreur += msgerreurtitle;
	}
  
  if(vDealer && f.DEALER.value=="") {
		erreur = true;
		var msgerreurcie = "'Company Name': Field is empty\n";
		msgerreur += msgerreurcie;
	}
  
  if(vAddress && f.ADDRESS.value=="") {
		erreur = true;
		var msgerreuraddress = "'Address': Field is empty\n";
		msgerreur += msgerreuraddress;
	}
  
  if(vCity && f.CITY.value=="") {
		erreur = true;
		var msgerreurcity = "'City': Field is empty\n";
		msgerreur += msgerreurcity;
	}
  
  if(vPC) {
    if(!(f.POSTALCODE.value.length == 7) || !(f.POSTALCODE.value.charAt(0) >= 'A' && f.POSTALCODE.value.charAt(0) <= 'Z') || !(f.POSTALCODE.value.charAt(1) >= '0' && f.POSTALCODE.value.charAt(1) <= '9') || !(f.POSTALCODE.value.charAt(2) >= 'A' && f.POSTALCODE.value.charAt(2) <= 'Z') || (f.POSTALCODE.value.charAt(3) == '-' || f.POSTALCODE.value.charAt(3) == '_') || !(f.POSTALCODE.value.charAt(4) >= '0' && f.POSTALCODE.value.charAt(4) <= '9') || !(f.POSTALCODE.value.charAt(5) >= 'A' && f.POSTALCODE.value.charAt(5) <= 'Z') || !(f.POSTALCODE.value.charAt(6) >= '0' && f.POSTALCODE.value.charAt(6) <= '9')) {
  		erreur = true;
      var msgerrpc = "'Postal Code': Enter your postal code correctly\n";
  		msgerreur += msgerrpc;
  	}
  }
  
  if(vCourriel) {
    // Validation du champs Courriel. Vérifie si le champ est vide.
  	if(f.EMAIL.value=="") {
  		erreur = true;
  		var msgerreuremail = "'Email': Field is empty\n";
  		msgerreur += msgerreuremail;
  	}
  	else {
  		// Validation de l'adresse email (Vérifie si un @ est présent et si tout est conforme).
  		if (!f.EMAIL.value.match(/^\w+([&\_.-]{0,4}\w+)*@\w+([\_.-]?\w+)*(\.\w{2,6})+$/)){
  			erreur = true;
  			var msgerreurvalidemail = "'Email': Your email address is not valid\n";
  			msgerreur += msgerreurvalidemail;
  	  }
    }
  }

// Validation du numéro de téléphone - (555) 555-5555
  if (vPhone) {
    if(f.AREA_J.value.length != 3 || f.PHONE2.value.length != 3 || f.PHONE3.value.length != 4 ) {
  		erreur = true;
      var msgerreurphone = "'Telephone': Field is empty\n";
		  msgerreur += msgerreurphone;
  	}
  }
  
  // Validation du champs NIV (Numéro Identification Vehicule)
  if(vNIV && f.NIV.value=="") {
		erreur = true;
		var msgerreurniv = "'Vehicle Identification Number (VIN)': Field is empty";
		msgerreur += msgerreurniv;
	}
  
  if(vComments && f.COMMENTS.value=="") {
		erreur = true;
		var msgerreurcomments = "'Comments/questions': Field is empty\n";
		msgerreur += msgerreurcomments;
	}

  if(erreur == true) {
		alert(msgerreur);
    formSubmit = true;
		return false;
  }
  else {
    if (vPhone) { //some forms don't have phone number input fields
      ofn.PHONE_J.value = ofn.PHONE2.value+'-'+ofn.PHONE3.value+' *'+ofn.PHONE4.value;
    }
    ofn.submit();
  }
}



// Validation de l'inscription au mailing list
var formSubmit = true; // variable pour empecher les clicks abusifs sous IE

// Fonction checkprofil: Vérifie les champs nom, courriel et comments
function validateMailingList(f) {
  var fn = f.name;
  var ofn = document.forms[fn];
	var erreur = false;
  
  if(!formSubmit) return false;
  formSubmit = false;
  
	var msgerreur = "The following field(s) require(s) your attention\n\n";
	
  /*if(f.NAME_MAILING.value=="") {
		erreur = true;
		var msgerreurpseudo = "'Your name': Field is empty\n";
		msgerreur += msgerreurpseudo;
	}*///***SD name field no longer needed
  
  // Validation du champs Courriel. Vérifie si le champ est vide.
	if(f.EMAIL_MAILING.value=="") {
		erreur = true;
		var msgerreuremail = "'Email': Field is empty\n";
		msgerreur += msgerreuremail;
	}
	else {
		// Validation de l'adresse email (Vérifie si un @ est présent et si tout est conforme).
		if (!f.EMAIL_MAILING.value.match(/^\w+([&\_.-]{0,4}\w+)*@\w+([\_.-]?\w+)*(\.\w{2,6})+$/)){
			erreur = true;
			var msgerreurvalidemail = "'Email': Your email address is not valid\n";
			msgerreur += msgerreurvalidemail;
	  }
  }

  if(erreur == true) {
		alert(msgerreur);
    formSubmit = true;
		return false;
  } else {
    ofn.submit();
  }
}

formsOverride = {

  formId: '',
  
  findFormId: function(){
    for(var f = 0; f < document.forms.length; f++){
      if(document.forms[f].className == 'form2007'){
        formsOverride.formId = document.forms[f].id;
        //formsOverride.setFields();
      }
    }
  },
  
  addLoadListener: function(ev, fn){
    if(typeof window.addEventListener != 'undefined'){
      window.addEventListener(ev, fn, false);
    }
    else if(typeof document.addEventListener != 'undefined'){
      document.addEventListener(ev, fn, false);
    }
    else if(typeof window.attachEvent != 'undefined'){
      window.attachEvent('on' + ev, fn);
    }
    else{
      var oldfn = window.onload;
      if(typeof window.onload != 'function'){
        window.onload = fn;
      }
      else{
        window.onload = function(){
        oldfn();
        fn();
        }
      }
    }
  }
}
formsOverride.addLoadListener('load', formsOverride.findFormId);
