







function Model(year, make, model, trim)
{
  this.year = year;
  this.make = make;
  this.model = model;
  this.trim = trim;
}

models = new Array()






  models[models.length] = new Model(2010, "Rolls-Royce", "Ghost", "")

  models[models.length] = new Model(2010, "Rolls-Royce", "Phantom", "")

  models[models.length] = new Model(2010, "Rolls-Royce", "Phantom", "EWB")

  models[models.length] = new Model(2010, "Rolls-Royce", "Phantom Coupé", "")

  models[models.length] = new Model(2010, "Rolls-Royce", "Phantom Drophead Coupé", "")


function updateModels(selectedmodel,selectedtrim)
{
  var f = document.forms['quoteform']

  var make = f.MAKE.options[f.MAKE.selectedIndex].value
  var m, curmodel
  var idx,cnt

  cnt = 0

  curmodel = ''
  for(idx in models)  {
    m = models[idx]
    if(m.make == make && m.model != curmodel)  {
      f.MODEL.options[cnt] = new Option(m.model, m.model)
      curmodel = m.model
      if(curmodel == selectedmodel)
      {
        f.MODEL.options[cnt].selected = true;
      }
      cnt++
    }
  }

  while(cnt < f.MODEL.options.length)
    f.MODEL.options[cnt] = null

  updateTrims(selectedtrim);
}

function updateTrims(selectedtrim)
{
  var f = document.forms['quoteform'];
  var model = f.MODEL.options[f.MODEL.selectedIndex].value;
  var m, curtrim
  var idx,cnt;

  cnt = 1;

  f.MODELEXT.options.selectedIndex = 0;
  f.MODELEXT.options[0] = new Option('Select *', 'Select');

  while(f.MODELEXT.options.length > 1)
    f.MODELEXT.options[1] = null;

  for(idx in models)  {
    m = models[idx]
    if(m.model == model)  {
      trimname = m.trim;
      if(trimname == "") {
        trimname = "Base";
      }

      f.MODELEXT.options[f.MODELEXT.options.length] = new Option(trimname, m.trim);
      curtrim = m.trim

      if(curtrim == selectedtrim || (curtrim == "" && selectedtrim == " "))
      {
        f.MODELEXT.selectedIndex = f.MODELEXT.options.length - 1;
      }
    }
  }

  if(f.MODELEXT.options.length == 2 && f.MODELEXT.options[1].value == "") {
    f.MODELEXT.options[0] = new Option('None', '');
    f.MODELEXT.options[1] = null;
    f.MODELEXT.selectedIndex = 0;
  }
}

function isBlank(s){
  return (s == null || s == '');
}

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

function validate(f){
  var erreur = false;
  var i = 0;
  var msgErreur = "There is a problem with the following field(s)\n";
  var msgErreurVehTitle = '\nInformation on the vehicle you are looking for\n';
  var msgErreurVeh = '';
  var msgErreurFinaTitle = '\nPayment information\n';
  var msgErreurFina = '';
  var msgErreurTradTitle = '\nInformation on your trade-in\n';
  var msgErreurTrad = '';
  var msgErreurPersoTitle = '\nPersonal information\n';
  var msgErreurPerso = '';

  if(!formSubmit) return false;
    formSubmit = false;

  if(isBlank(f.CASHDOWN.value))
    f.CASHDOWN.value = '0';

  if(isBlank(f.MODEL.options[f.MODEL.selectedIndex].value))
    msgErreurVeh += "- Select a model\n";
  
  if(f.MODELEXT.options.length > 1 && f.MODELEXT.options.selectedIndex == 0)
    msgErreurVeh += "- Select a trim\n";

  if(f.LEASEQUOTE){//not all manufacturers offer leasing
    if(f.LEASEQUOTE.selectedIndex == 0 && f.PURCHASEQUOTE.selectedIndex == 0 && f.PAYCASH.selectedIndex == 0)
      msgErreurFina += "- Cash payment, leasing or financing?\n";
    if(f.LEASEQUOTE.selectedIndex > 0 && isBlank(f.LEASEKM.value))
      msgErreurFina += "- Enter estimated annual mileage\n";
  }
  else if(f.PURCHASEQUOTE.selectedIndex == 0 && f.PAYCASH.selectedIndex == 0)
      msgErreurFina += "- Cash payment or financing?\n";

  if(!isBlank(f.TRADEMAKE.value)) i++;
  if(!isBlank(f.TRADEMODEL.value)) i++;
  if(!isBlank(f.TRADEYEAR.value)) i++;
  if(!isBlank(f.TRADEVALUE.value)) i++;
  if(f.TRADECONDITION.selectedIndex != 0) i++;
  if(f.TRADETRANS.selectedIndex != 0) i++;
  
  if(i > 0 && i < 6)
    msgErreurTrad += "- Enter all the information concerning your trade-in vehicle\n";
  
  if(f.TRADEYEAR.value && isNaN(parseInt(f.TRADEYEAR.value)))
    msgErreurTrad += "- Enter a valid year\n";
    
  if(f.TRADEKM.value && isNaN(parseInt(f.TRADEKM.value)))
    msgErreurTrad += "- Enter a valid mileage\n";

    
  if(isBlank(f.FIRST_NAME.value))
    msgErreurPerso += "- Enter your first name\n";
  
  if(isBlank(f.LAST_NAME.value))
    msgErreurPerso += "- Enter your last name\n";
    

  //not for Mazda compliant
  if(isBlank(f.CITY.value))
    msgErreurPerso += "- Enter your city\n";
  
  //not for Mazda compliant
  if(isBlank(f.POSTALCODE.value))
    msgErreurPerso += "- Enter your postal code\n";
  
  //not for Mazda compliant
  if(f.AREA_J.value.length != 3 || f.PHONE2.value.length != 3 || f.PHONE3.value.length != 4)
    msgErreurPerso += "- Enter a complete telephone number\n";


  if (!f.EMAIL.value.match(/^\w+([&\_.-]{0,4}\w+)*@\w+([\_.-]?\w+)*(\.\w{2,6})+$/))
    msgErreurPerso += "- Your email address is incorrect\n";
  
  if(f.EMAIL2){//field for Mazda Dealers
    if(f.EMAIL2.value == ''){
      msgErreurPerso += "- Email : Address not confirmed\n";
    }
    else if(f.EMAIL.value != f.EMAIL2.value){
      msgErreurPerso += "- Email : Address not identical\n";
    }
  }  

  if(!isBlank(msgErreurVeh)){
    msgErreur += msgErreurVehTitle + msgErreurVeh
    erreur = true;
  }
  
  if(!isBlank(msgErreurFina)){
    msgErreur += msgErreurFinaTitle + msgErreurFina
    erreur = true;
  }
  
  if(!isBlank(msgErreurTrad)){
    msgErreur += msgErreurTradTitle + msgErreurTrad
    erreur = true;
  }
  
  if(!isBlank(msgErreurPerso)){
    msgErreur += msgErreurPersoTitle + msgErreurPerso
    erreur = true;
  }

    
  if(erreur == true){
    alert(msgErreur);
    formSubmit = true;
    return false;
  }
  else{
    f.PHONE_J.value = f.PHONE2.value + '-' + f.PHONE3.value + ' *' + f.PHONE4.value;
    f.PHONE_S.value = f.PHONE2S.value + '-' + f.PHONE3S.value + ' *' + f.PHONE4S.value;
    f.submit();
    //return true;
  }
}
