if(typeof(remote_header_base_href) == "undefined") remote_header_base_href = "";

hub_images_hover = {
  'HUB_NEW'       : { 'on': new Image(), 'off': new Image() },
  'HUB_USED'      : { 'on': new Image(), 'off': new Image() },
  'HUB_REVIEWS'   : { 'on': new Image(), 'off': new Image() },
  'HUB_PARTS'     : { 'on': new Image(), 'off': new Image() },
  'HUB_NEWS'      : { 'on': new Image(), 'off': new Image() },
  'HUB_RACING'    : { 'on': new Image(), 'off': new Image() },
  'HUB_COMMUNITY' : { 'on': new Image(), 'off': new Image() }
};

hub_images_hover.HUB_NEW.on.src = remote_header_base_href + "/fr/site/img/hubs/menu_newvehicles_on.gif";
hub_images_hover.HUB_NEW.off.src = remote_header_base_href + "/fr/site/img/hubs/menu_newvehicles_off.gif";
hub_images_hover.HUB_USED.on.src = remote_header_base_href + "/fr/site/img/hubs/menu_usedvehicles_on.gif";
hub_images_hover.HUB_USED.off.src = remote_header_base_href + "/fr/site/img/hubs/menu_usedvehicles_off.gif";
hub_images_hover.HUB_REVIEWS.on.src = remote_header_base_href + "/fr/site/img/hubs/menu_roadtests_on.gif";
hub_images_hover.HUB_REVIEWS.off.src = remote_header_base_href + "/fr/site/img/hubs/menu_roadtests_off.gif";
hub_images_hover.HUB_PARTS.on.src = remote_header_base_href + "/fr/site/img/hubs/menu_maintenance_on.gif";
hub_images_hover.HUB_PARTS.off.src = remote_header_base_href + "/fr/site/img/hubs/menu_maintenance_off.gif";
hub_images_hover.HUB_NEWS.on.src = remote_header_base_href + "/fr/site/img/hubs/menu_parts_on.gif";
hub_images_hover.HUB_NEWS.off.src = remote_header_base_href + "/fr/site/img/hubs/menu_parts_off.gif";
hub_images_hover.HUB_RACING.on.src = remote_header_base_href + "/fr/site/img/hubs/menu_racing_on.gif";
hub_images_hover.HUB_RACING.off.src = remote_header_base_href + "/fr/site/img/hubs/menu_racing_off.gif";
hub_images_hover.HUB_COMMUNITY.on.src = remote_header_base_href + "/fr/site/img/hubs/menu_commutiy_on.gif";
hub_images_hover.HUB_COMMUNITY.off.src = remote_header_base_href + "/fr/site/img/hubs/menu_commutiy_off.gif";

hub_images_cur = null;

function setHubImage(hub)
{
  var o = null;
  
  if(hub_images_cur != null) {
    o = document.getElementById(hub_images_cur);
    if(o != null) {
      o.src = hub_images_hover[hub_images_cur].off.src;
    }
  }
  
  if(hub != null) {
    o = document.getElementById(hub);
    if(o != null) {
      o.src = hub_images_hover[hub].on.src;
    }
  }
  
  hub_images_cur = hub;
}

function setActiveTab(hub)
{
  if(typeof(hub) != "undefined" && hub != null) {
    if(hub == 7) hub = 'HUB_NEW';
    else if(hub == 1) hub = 'HUB_USED';
    else if(hub == 8) hub = 'HUB_REVIEWS';
    else if(hub == 9) hub = 'HUB_PARTS';
    else if(hub == 10) hub = 'HUB_NEWS';
    else if(hub == 11) hub = 'HUB_RACING';
    else if(hub == 12) hub = 'HUB_COMMUNITY';
    else hub = 'HUB_USED';
  
    hub_images_hover[hub].off.src = hub_images_hover[hub].on.src;
  }
}

function sendToAFriend() {
  XPRIMA.PageUtils.AJAX.loadContentIfNotExist('send-to-a-friend-container', document.body, '/fr/site/support/ajax_sendtofriend.spy', sendToAFriend_open)
}

function sendToAFriend_open() {
  hideElement('sending');
  
  var sendtoafriend_box = document.getElementById('send-to-a-friend');
  if(sendtoafriend_box != null) {
    var w = YAHOO.util.Dom.getViewportWidth();
    var h = YAHOO.util.Dom.getViewportHeight();
    var t = YAHOO.util.Dom.getDocumentScrollTop();
    sendtoafriend_box.style.left = (parseInt(w / 2) - 150).toString() + "px";
    sendtoafriend_box.style.top = (parseInt(h / 2) - 127 + t).toString() + "px";
    sendtoafriend_box.style.display = 'block';
    
    changeDocBG();
  }
  
  return false;
}   

  
function showElement(id){
    var e = document.getElementById(id);
    if(e != null) {
      e.style.display = '';
    } 
}
    
function hideElement(id)
{
   var e = document.getElementById(id);      
   e.style.display='none';    
}

function centerElement(id)
{ 
  showElement(id);
  var e = document.getElementById(id);     
  var ex= parseInt(YAHOO.util.Dom.getStyle(e , 'width'));
  var ey= parseInt(YAHOO.util.Dom.getStyle(e , 'height'));
  
  var wx = YAHOO.util.Dom.getViewportWidth();
  var wy = YAHOO.util.Dom.getViewportHeight();
   
  var posx= wx/2 - ex/2 + YAHOO.util.Dom.getDocumentScrollLeft();
  var posy= wy/2 - ey/2 + YAHOO.util.Dom.getDocumentScrollTop();
  
  YAHOO.util.Dom.setX(e,posx);
  YAHOO.util.Dom.setY(e,posy);
  
  if (e.style.opacity==0){    
    e.style.opacity=100;
  }        
}

function changeDocBG(){
  YAHOO.util.Dom.setStyle("fadeblock", "display", "block");
  YAHOO.util.Dom.setStyle("fadeblock", "opacity", 0);
  YAHOO.util.Dom.setStyle("fadeblock", "width", YAHOO.util.Dom.getDocumentWidth() + "px");
  YAHOO.util.Dom.setStyle("fadeblock", "height", YAHOO.util.Dom.getDocumentHeight() + "px");
  
  var a = new YAHOO.util.Anim("fadeblock", { opacity: { from: 0, to: 0.5 } }, 0.2, YAHOO.util.Easing.easeNone);
  a.animate();
}

function fadeOut(id){   
  var a = new YAHOO.util.Anim(id, { opacity: { to: 0 } }, 2.0, YAHOO.util.Easing.easeOut);
  a.animate();         
  //a.onComplete.subscribe(hoverHide)  
  a.onComplete.subscribe(function() {hideElement(id)});
      
}

fadeobj = null;
function processsSend(f)  
{         
  track_this_page('send-to-a-friend/submit');
  var cb = {
    success: function(o) 
    { 
      eval("rc = " + o.responseText);
      if(rc.success) {
        document.getElementById('send-to-a-friend').style.display = 'none';
        var sendsuccess_box = document.getElementById('send-success');
        
        var w = YAHOO.util.Dom.getViewportWidth();
        var h = YAHOO.util.Dom.getViewportHeight();
        var t = YAHOO.util.Dom.getDocumentScrollTop();
        sendsuccess_box.style.left = (parseInt(w / 2) - 150).toString() + "px";
        sendsuccess_box.style.top = (parseInt(h / 2) - 127 + t).toString() + "px";
        sendsuccess_box.style.display = 'block';
        
        fadeobj = document.getElementById('send-success');
        var a = new YAHOO.util.Anim(fadeobj.id, { opacity: { from: 1, to: 0 } }, 3, YAHOO.util.Easing.easeIn);
        a.onComplete.subscribe(fadecomplete);
        a.animate();
        
        document.getElementById('fadeblock').style.display = 'none';
      }
      else {
        document.getElementById('send-to-a-friend').style.display = 'none';
        var sendsuccess_box = document.getElementById('send-error');
        
        var w = YAHOO.util.Dom.getViewportWidth();
        var h = YAHOO.util.Dom.getViewportHeight();
        var t = YAHOO.util.Dom.getDocumentScrollTop();
        sendsuccess_box.style.left = (parseInt(w / 2) - 150).toString() + "px";
        sendsuccess_box.style.top = (parseInt(h / 2) - 127 + t).toString() + "px";
        sendsuccess_box.style.display = 'block';
        
        fadeobj = document.getElementById('send-error');
        var a = new YAHOO.util.Anim(fadeobj.id, { opacity: { from: 1, to: 0 } }, 3, YAHOO.util.Easing.easeIn);
        a.onComplete.subscribe(fadecomplete);
        a.animate();
        
        document.getElementById('fadeblock').style.display = 'none';
      }
    },
    failure: function(o)
    {
        document.getElementById('send-to-a-friend').style.display = 'none';
        var sendsuccess_box = document.getElementById('send-error');
        
        var w = YAHOO.util.Dom.getViewportWidth();
        var h = YAHOO.util.Dom.getViewportHeight();
        var t = YAHOO.util.Dom.getDocumentScrollTop();
        sendsuccess_box.style.left = (parseInt(w / 2) - 150).toString() + "px";
        sendsuccess_box.style.top = (parseInt(h / 2) - 127 + t).toString() + "px";
        sendsuccess_box.style.display = 'block';
        
        fadeobj = document.getElementById('send-error');
        var a = new YAHOO.util.Anim(fadeobj.id, { opacity: { from: 1, to: 0 } }, 3, YAHOO.util.Easing.easeIn);
        a.onComplete.subscribe(fadecomplete);
        a.animate();
        
        document.getElementById('fadeblock').style.display = 'none';
    }
  }
   
  if (!checkEmail(f.youremail.value))
  {
    alert("Votre courriel est invalide.");
  }
  else if (!checkEmail(f.friendemail.value))
  {
    alert("Le courriel de votre ami est invalide.");
  }
  else
  {  
    showElement('sending');
    f.permalink.value = permalink;
    f.cmd.value = "send";
    YAHOO.util.Connect.resetFormState();
    YAHOO.util.Connect.setForm("frmsendtofriend");
    YAHOO.util.Connect.asyncRequest("GET", _send_to_a_friend_url, cb, null); 
    YAHOO.util.Connect.resetFormState();
  }
}

function fadecomplete() {
  if(fadeobj != null) {
    fadeobj.style.display = "none";
    fadeobj = null;
  }
}


function checkEmail(str)
{   
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  if (filter.test(str)) { 	 
   return true;
  }
  else {	  
    return false;
  }
}






/* ---- 
below is the form validation code... should make a seperate file with it. Currently used in:
  /en/texts/contactus.spy
  /en/newcars/carquote.spy
  /en/reviews/consumer_step1.spy
---- */

var formSubmit = true;

if(window.RegExp){
  var regexAlpha = /^[A-Za-zÀàÂâÉéÈèÊêËëÎîÏïÔôÖöÙùÛûÇç \-\'\.]+$/;
  var regexNum = /^[0-9]+$/;
  var regexAlphaNum = /^[0-9A-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 regexEmailNo = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
  var regexEmailYes = /^.+\@(\[?)[A-Za-z0-9\-\.]+\.([A-Za-z]{2,4}|[0-9]{1,3})(\]?)$/;
  var regexUrl = /^(?:(?:ftp|https?):\/\/)?(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+(?:com|edu|biz|org|gov|int|info|mil|net|name|museum|coop|aero|[a-z][a-z])\b(?:\d+)?(?:\/[^;"'<>()\[\]{}\s\x7f-\xff]*(?:[.,?]+[^;"'<>()\[\]{}\s\x7f-\xff]+)*)?/;
  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 regexLicence = /^[A-Za-z][0-9]{4}-[0-9]{6}-[0-9]{2}$/;
  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.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.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 = '';
  }
}

function contact_validate(f) {
  var fn = f.name;
  var ofn = document.forms[fn];
	var erreur = false;
  var nb_err = 0;
  
  if(!formSubmit)
    return false;
  formSubmit = false;
  
  if(document.getElementById('firstname').value == '' && document.getElementById('lastname').value == ''){
    var title_err = '';
    var msgerreur = "<ul>";
    
    if (!(document.getElementById('raisonv').checked || document.getElementById('raisond').checked)){
      msgerreur += "<li><a href=\"#a-raison\">'Vous êtes' : Veuillez indiquer si vous êtes un visiteur ou un concessionnaire</a></li>";
      erreur = true;
      nb_err++;
    }
    
    if (!validateField('qwe', regexAlpha)){
      errorField('qwe');
      msgerreur += "<li><a href=\"#a-firstname\">'Prénom' : Veuillez entrer votre prénom</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('qwe');
    
    if (!validateField('rty', regexAlpha)){
      errorField('rty');
      msgerreur += "<li><a href=\"#a-lastname\">'Nom' : Veuillez entrer votre nom de famille</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('rty');
    
    var phone = document.getElementById('area_j').value + document.getElementById('phone2').value + document.getElementById('phone3').value;      
    if (phone != ''){
      if (!regexPhone.test(phone)){
        errorField('area_j');
        errorField('phone2');
        errorField('phone3');
        msgerreur += "<li><a href=\"#a-phone\">'Téléphone' : Veuillez entrer votre numéro de téléphone</a></li>";
        erreur = true;
        nb_err++;
      }
      else {
        okField('area_j');
        okField('phone2');
        okField('phone3');
      }
    }
    else {
      okField('area_j');
      okField('phone2');
      okField('phone3');
    }
    
    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 (document.getElementById('subject').selectedIndex == 0){
      errorField('subject');
      msgerreur += "<li><a href=\"#a-subject\">'Sujet' : Veuillez sélectionner un sujet pour votre message</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('subject');
    
    /*
    if(document.getElementById('raisond').checked){
      if(!validateField('dealer', regexNotEmpty) || validateField('dealer', regexOnlySpace)){
        errorField('dealer');
        msgerreur += "<li><a href=\"#a-dealer\">'Dealer name' : Please write your dealership's name</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('dealer');
      
      if(!validateField('position', regexNotEmpty) || validateField('position', regexOnlySpace)){
        errorField('position');
        msgerreur += "<li><a href=\"#a-position\">'Your position' : Please write your position in the dealership</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('position');
      
      var phone = document.getElementById('area_j').value + document.getElementById('phone2').value + document.getElementById('phone3').value;      
      if (!regexPhone.test(phone)){
        errorField('area_j');
        errorField('phone2');
        errorField('phone3');
        msgerreur += "<li><a href=\"#a-phone\">'Telephone' : Please write your phone number at the dealership</a></li>";
        erreur = true;
        nb_err++;
      }
      else {
        okField('area_j');
        okField('phone2');
        okField('phone3');
      }
      
      if(!validateField('city', regexNotEmpty) || validateField('city', regexOnlySpace)){
        errorField('city');
        msgerreur += "<li><a href=\"#a-city\">'City' : Please write the city where the dealership is located</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('city');
    }
    */
    
    msgerreur += "</ul>";
      
    if (nb_err > 1)
      title_err = "Il y a un problème avec les champs suivants :";
    else
      title_err = "Il y a un problè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.getElementById){
      document.getElementById("err-msg").innerHTML = title_err + msgerreur;
      document.getElementById('err-msg').className = 'visible';
    }
    else
      alert(msgerreur);
    formSubmit = true;
		return false;
  }
  else{
    if(document.getElementById('firstname').value == '' && document.getElementById('lastname').value == '')
      document.getElementById(f.id).submit();
  }
}

function adoffer_validate(f) {
  var fn = f.name;
  var ofn = document.forms[fn];
	var erreur = false;
  var nb_err = 0;
  
  if(!formSubmit)
    return false;
  formSubmit = false;
  
  if(document.getElementById('firstname').value == '' && document.getElementById('lastname').value == ''){
    var title_err = '';
    var msgerreur = "<ul>";
    
    if (!validateField('qwe', regexAlpha)){
      errorField('qwe');
      msgerreur += "<li><a href=\"#a-firstname\">'Prénom' : Veuillez entrer votre prénom</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('qwe');
    
    if (!validateField('rty', regexAlpha)){
      errorField('rty');
      msgerreur += "<li><a href=\"#a-lastname\">'Nom' : Veuillez entrer votre nom de famille</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('rty');
    
    if (!validateField('position', regexNotEmpty) || validateField('position', regexOnlySpace)){
      errorField('position');
      msgerreur += "<li><a href=\"#a-position\">'Titre' : Veuillez indiquer votre poste dans l'entreprise</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('position');
    
    var phone = document.getElementById('area_j').value + document.getElementById('phone2').value + document.getElementById('phone3').value;      
    if (!regexPhone.test(phone)){
      errorField('area_j');
      errorField('phone2');
      errorField('phone3');
      msgerreur += "<li><a href=\"#a-phone\">'Téléphone' : Veuillez entrer votre numéro de téléphone au travail</a></li>";
      erreur = true;
      nb_err++;
    }
    else {
      okField('area_j');
      okField('phone2');
      okField('phone3');
    }
    
    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('company', regexNotEmpty) || validateField('company', regexOnlySpace)){
      errorField('company');
      msgerreur += "<li><a href=\"#a-company\">'Nom (entreprise)' : Veuillez entrer le nom de l'entreprise</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('company');
    
    if(!validateField('city', regexNotEmpty) || validateField('city', regexOnlySpace)){
      errorField('city');
      msgerreur += "<li><a href=\"#a-city\">'Ville' : Veuillez entrer la ville où est située l'entreprise</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('city');
    
    msgerreur += "</ul>";
      
    if (nb_err > 1)
      title_err = "Il y a un problème avec les champs suivants :";
    else
      title_err = "Il y a un problè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.getElementById){
      document.getElementById("err-msg").innerHTML = title_err + msgerreur;
      document.getElementById('err-msg').className = 'visible';
    }
    else
      alert(msgerreur);
    formSubmit = true;
		return false;
  }
  else{
    if(document.getElementById('firstname').value == '' && document.getElementById('lastname').value == '')
      document.getElementById(f.id).submit();
  }
}

function carquote_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(f == 'newcarquote-step1'){
    if (document.getElementById('make').selectedIndex == 0){
      errorField('make');
      msgerreur += "<li><a href=\"#a-make\">'Marque' : Veuillez choisir une marque</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('make');
    
    if (document.getElementById('carid').selectedIndex == 0){
      errorField('carid');
      msgerreur += "<li><a href=\"#a-model\">'Modèle' : Veuillez choisir un modèle</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('carid');
    
    if (!validateField('pccontent', regexPC)){
      errorField('pccontent');
      msgerreur += "<li><a href=\"#a-pc\">'Code postal' : Veuillez entrer votre code postal</a></li>";
      erreur = true;
      nb_err++;
    }
    else{
      okField('pccontent');
      
      var pc = document.getElementById('pccontent').value;
      pc = pc.toUpperCase();
      if(pc.indexOf(' ') == -1)
        pc = pc.substring(0,3) + ' ' + pc.substring(3);
      document.getElementById('pccontent').value = pc;
    }
  }
  else if(f == 'newcarquote-step2'){
    if (document.getElementById('carid').selectedIndex == 0){
      errorField('carid');
      msgerreur += "<li><a href=\"#a-trim\">'Version' : Veuillez choisir une version</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('carid');
    
    if (document.getElementById('transmission').selectedIndex == 0){
      errorField('transmission');
      msgerreur += "<li><a href=\"#a-transmission\">'Transmission' : Veuillez choisir une transmission</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('transmission');
   
    if( validateField('color', regexOnlySpace)){
      errorField('color');
      msgerreur += "<li><a href=\"#a-color\">'Couleur' : Veuillez choisir une couleur</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('color');
       
    if (document.getElementById('purchase').selectedIndex == 0){
      errorField('purchase');
      msgerreur += "<li><a href=\"#a-purchase\">'Méthode d'achat' : Veuillez choisir une méthode d'achat</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('purchase');
    
    if (document.getElementById('whenbuying').selectedIndex == 0){
      errorField('whenbuying');
      msgerreur += "<li><a href=\"#a-whenbuying\">'Je prévois acheter' : Veuillez choisir un délai</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('whenbuying');
    
    if (!(document.getElementById('tradeiny').checked || document.getElementById('tradeinn').checked)){
      msgerreur += "<li><a href=\"#a-tradein\">'Véhicule d'échange' : Veuillez faire un choix</a></li>";
      erreur = true;
      nb_err++;
    }
    
    if (document.getElementById('tradeiny').checked){
      if(!validateField('trademake', regexAlpha)){
        errorField('trademake');
        msgerreur += "<li><a href=\"#a-trademake\">'Marque' : Veuillez entrer la marque de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('trademake');
      
      if(!validateField('trademodel', regexAlphaNum)){
        errorField('trademodel');
        msgerreur += "<li><a href=\"#a-trademodel\">'Modèle' : Veuillez entrer le modèle de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('trademodel');
      
      if(!validateField('tradeyear', regexYear)){
        errorField('tradeyear');
        msgerreur += "<li><a href=\"#a-tradeyear\">'Année' : Veuillez entrer l'année de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradeyear');
      
      if(!validateField('tradekm', regexKM)){
        errorField('tradekm');
        msgerreur += "<li><a href=\"#a-tradekm\">'Kilométrage' : Veuillez entrer le kilométrage de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradekm');
      
      if (document.getElementById('tradecondition').selectedIndex == 0){
        errorField('tradecondition');
        msgerreur += "<li><a href=\"#a-tradecondition\">'Condition' : Veuillez sélectionner la condition de votre véhicule</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradecondition');
      
      if(!validateField('tradeprice', regexMoney)){
        errorField('tradeprice');
        msgerreur += "<li><a href=\"#a-tradeprice\">'Valeur courante estimée' : Veuillez entrer un montant</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradeprice');
    }
  }
  else if(f == 'newcarquote-step2b'){
    if (document.getElementById('purchase').selectedIndex == 0){
      errorField('purchase');
      msgerreur += "<li><a href=\"#a-purchase\">'Méthode d'achat' : Veuillez choisir une méthode d'achat</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('purchase');
    
    if (document.getElementById('whenbuying').selectedIndex == 0){
      errorField('whenbuying');
      msgerreur += "<li><a href=\"#a-whenbuying\">'Je prévois acheter' : Veuillez choisir un délai</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('whenbuying');
    
    if (!(document.getElementById('tradeiny').checked || document.getElementById('tradeinn').checked)){
      msgerreur += "<li><a href=\"#a-tradein\">'Véhicule d'échange' : Veuillez faire un choix</a></li>";
      erreur = true;
      nb_err++;
    }
    
    if (document.getElementById('tradeiny').checked){
      if(!validateField('trademake', regexAlpha)){
        errorField('trademake');
        msgerreur += "<li><a href=\"#a-trademake\">'Marque' : Veuillez entrer la marque de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('trademake');
      
      if(!validateField('trademodel', regexAlphaNum)){
        errorField('trademodel');
        msgerreur += "<li><a href=\"#a-trademodel\">'Modèle' : Veuillez entrer le modèle de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('trademodel');
      
      if(!validateField('tradeyear', regexYear)){
        errorField('tradeyear');
        msgerreur += "<li><a href=\"#a-tradeyear\">'Année' : Veuillez entrer l'année de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradeyear');
      
      if(!validateField('tradekm', regexKM)){
        errorField('tradekm');
        msgerreur += "<li><a href=\"#a-tradekm\">'Kilométrage' : Veuillez entrer le kilométrage de votre véhicule d'échange</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradekm');
      
      if (document.getElementById('tradecondition').selectedIndex == 0){
        errorField('tradecondition');
        msgerreur += "<li><a href=\"#a-tradecondition\">'Condition' : Veuillez sélectionner la condition de votre véhicule</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradecondition');
      
      if(!validateField('tradeprice', regexMoney)){
        errorField('tradeprice');
        msgerreur += "<li><a href=\"#a-tradeprice\">'Valeur courante estimée' : Veuillez entrer un montant</a></li>";
        erreur = true;
        nb_err++;
      }
      else
        okField('tradeprice');
    }
  }
  else if(f == 'newcarquote-step3'){
    if (!validateField('firstname', regexAlpha)){
      errorField('firstname');
      msgerreur += "<li><a href=\"#a-firstname\">'Prénom' : Veuillez entrer votre prénom</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('firstname');
    
    if (!validateField('lastname', regexAlpha)){
      errorField('lastname');
      msgerreur += "<li><a href=\"#a-lastname\">'Nom' : Veuillez entrer votre nom</a></li>";
      erreur = true;
      nb_err++;
    }
    else
      okField('lastname');
    
    if (!validateField('pccontent', regexPC)){
      errorField('pccontent');
      msgerreur += "<li><a href=\"#a-pc\">'Code Postal' : Veuillez entrer votre code postal</a></li>";
      erreur = true;
      nb_err++;
    }
    else{
      okField('pccontent');
      
      var pc = document.getElementById('pccontent').value;
      pc = pc.toUpperCase();
      if(pc.indexOf(' ') == -1)
        pc = pc.substring(0,3) + ' ' + pc.substring(3);
      document.getElementById('pccontent').value = pc;
    }
    
    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');
    
    var phoneDay = document.getElementById('area_j').value + document.getElementById('phone2').value + document.getElementById('phone3').value;
    if (!regexPhone.test(phoneDay)){
      errorField('area_j');
      errorField('phone2');
      errorField('phone3');
      msgerreur += "<li><a href=\"#a-phonej\">'Téléphone (jour)' : Veuillez entrer votre numéro de téléphone (jour)</a></li>";
      erreur = true;
      nb_err++;
    }
    else {
      okField('area_j');
      okField('phone2');
      okField('phone3');
    }
    
    var phoneNight = document.getElementById('area_s').value + document.getElementById('phone2s').value + document.getElementById('phone3s').value;
    if (!regexPhone.test(phoneNight)){
      errorField('area_s');
      errorField('phone2s');
      errorField('phone3s');
      msgerreur += "<li><a href=\"#a-phones\">'Téléphone (soir)' : Veuillez entrer votre numéro de téléphone (soir)</a></li>";
      erreur = true;
      nb_err++;
    }
    else {
      okField('area_s');
      okField('phone2s');
      okField('phone3s');
    }
  }
  else if(f == 'newcarquote-step4'){
    if (!(document.getElementById('choosedealery').checked || document.getElementById('choosedealern').checked)){
      msgerreur += "<li>Veuillez sélectionner une option</li>";
      erreur = true;
      nb_err++;
    }
    if (document.getElementById('choosedealery').checked) {
      found = false;
      form = document.getElementById(f);
      for(idx = 0; idx < form.dealercode.length; ++idx) {
        found = found || form.dealercode[idx].checked;
      }
      if(!found) {
        msgerreur += "<li>Veuillez choisir un concessionnaire, ou choisir l'option 'Laissez Auto123.com choisir pour moi'</li>";
        erreur = true;
        nb_err++;
      }
    }
  }
  
  if(f == 'newcarquote-step2b')
    f = 'newcarquote-step2';
  
  msgerreur += "</ul>";
    
  if (nb_err > 1)
    title_err = "Il y a un problème avec les champs suivants :";
  else
    title_err = "Il y a un problè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.getElementById){
      document.getElementById("err-msg").innerHTML = title_err + msgerreur;
      document.getElementById('err-msg').className = 'visible';
    }
    else
      alert(msgerreur);
    formSubmit = true;
		return false;
  }
  else
    document.getElementById(f).submit();
}

function consumerstep1_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('make').selectedIndex == 0){
    errorField('make');
    msgerreur += "<li><a href=\"#a-make\">'Marque' : Veuillez choisir une marque</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('make');
  
  if (document.getElementById('model').selectedIndex == 0){
    errorField('model');
    msgerreur += "<li><a href=\"#a-model\">'Modèle' : Veuillez choisir un modèle</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('model');
  
  if (document.getElementById('year').selectedIndex == 0){
    errorField('year');
    msgerreur += "<li><a href=\"#a-year\">'Année' : Veuillez choisir une année</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('year');
  
  if (document.getElementById('carid').selectedIndex == 0){
    errorField('carid');
    msgerreur += "<li><a href=\"#a-trim\">'Version' : Veuillez choisir une version</a></li>";
    erreur = true;
    nb_err++;
  }
  else
    okField('carid');
  
  
  msgerreur += "</ul>";
    
  if (nb_err > 1)
    title_err = "Il y a un problème avec les champs suivants :";
  else
    title_err = "Il y a un problè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.getElementById){
      document.getElementById("err-msg").innerHTML = title_err + msgerreur;
      document.getElementById('err-msg').className = 'visible';
    }
    else
      alert(msgerreur);
    formSubmit = true;
		return false;
  }
  else {
    appendTextToAction(f, f.make, f.model, f.year, "commentaires-evaluations", "ajoutez" );
    document.getElementById(f.id).submit();
  }
}


function toggleAllMakes() {
  var ombl = document.getElementById("otherMakesButtonLink");
  var om = document.getElementById("otherMakes");

  if(ombl != null && om != null) {
    ombl.innerHTML = (om.style.display == 'none') ? 'Voir une liste sommaire' : 'Voir toutes les marques';
    om.style.display = (om.style.display == 'none') ? '' : 'none';
  }
  return false;
}

function my123_savecomparison_failure(o, resp, args) {
  // we don't know the language... what do we do here?  We can put this function in one of the languaged JS files, perhaps!
  var linkid = args.length > 0 ? args[0] : null;
  if(linkid != null) {
    var link = document.getElementById(linkid);
    if(link != null) {
      link.className = "fail-icon";
    }
  }

  if(resp != null) {
    alert(resp.reason);
  }
  else {
    alert("Unable to save at the moment... please try again later");
  }
}

function my123_savecomparison_success(o, args) {
  var linkid = args.length > 0 ? args[0] : null;
  if(linkid != null) {
    var link = document.getElementById(linkid);
    if(link != null) {
      link.className = "success-icon pale-onwhite";
      link.innerHTML = "Comparison Saved";
    }
  }
}

function my123_savecar_success(o, args) {
  var linkid = args.length > 0 ? args[0] : null;
  if(linkid != null) {
    var link = document.getElementById(linkid);
    var p = link.parentNode;
    p.removeChild(link);
    var d = document.createElement("div");
    if(d != null) {
      d.innerHTML = '<table class="cleantable"><tr class="clean"><td class="checkmark car-saved">Saved</tr></table>';
      p.appendChild(d);
    }
  }
}

function my123_savecar_failure(o, resp, args) {
  // we don't know the language... what do we do here?  We can put this function in one of the languaged JS files, perhaps!
  var linkid = args.length > 0 ? args[0] : null;
  if(linkid != null) {
    var link = document.getElementById(linkid);
    if(link != null && link.parentNode != null) {
      parentNode = link.parentNode;
      parentNode.className = "fail-icon";
    }
  }

  if(resp != null) {
    alert(resp.reason);
  }
  else {
    alert("Unable to save at the moment... please try again later");
  }
}

function car_finder_vehicle_toggle(o) {
  if(o != null) {
    var e = document.getElementById(o.id + "-summary");
    if(e != null) {
      var s = "";
      if(o.style.display == "none") {
        var s1 = car_finder_build_summary("car-finder-form", "input", "m_", car_finder_cb_checker, "value");
        var s2 = car_finder_build_summary("car-finder-form", "input", "p_", car_finder_cb_checker, "summary");
        var s3 = car_finder_build_summary("car-finder-form", "input", "bsc_", car_finder_cb_checker, "summary");
        var s4 = car_finder_build_summary("car-finder-form", "input", "bst_", car_finder_cb_checker, "summary");
        var s5 = car_finder_build_summary("car-finder-form", "input", "y_", car_finder_cb_checker, "value");
        
        if(s1 != "") s = "<b>Makes</b>: " + s1;
        if(s2 != "") { if(s != "") s += "<br><br>"; s += "<b>Prices</b>: " + s2; }
        if(s3 != "") { if(s != "") s += "<br><br>"; s += "<b>Categories</b>: " + s3; }
        if(s4 != "") { if(s != "") s += "<br><br>"; s += "<b>Body Types</b>: " + s4; }
        if(s5 != "") { if(s != "") s += "<br><br>"; s += "<b>Years</b>: " + s5; }
      }
      e.innerHTML = s;
      
      if(isBlank(s)) {
        e.style.display = "none";
      }
      else {
        e.style.display = (o.style.display == 'none' ? "" : "none");
      }
    }
  }
}

function switch_tab_load_content_failure(o) {
  var tab = o.argument[0];
  tab.innerHTML = "Data not available at the moment. Please try again later.";
}

swf_video_counter = 0;
function swf360(video) {
  var el = document.getElementById("viewer-swf");
  if(el != null) {
    var d = document.createElement("div");
    if(d != null) {
      var w = video.w;
      var h = video.h;
      
      if(video.w > PHOTO_MAIN_CHANGE_MAX_WIDTH) {
        new_h = video.h * PHOTO_MAIN_CHANGE_MAX_WIDTH / video.w;
        if(new_h > PHOTO_MAIN_CHANGE_MAX_HEIGHT) {
          w = (PHOTO_MAIN_CHANGE_MAX_WIDTH * PHOTO_MAIN_CHANGE_MAX_HEIGHT / new_h).toString();
          h = PHOTO_MAIN_CHANGE_MAX_HEIGHT.toString();
        }
        else {
          w = PHOTO_MAIN_CHANGE_MAX_WIDTH.toString();
          h = new_h.toString();
        }
      }
      else {
        if(video.h > PHOTO_MAIN_CHANGE_MAX_HEIGHT) {
          w = video.w.toString();
          h = PHOTO_MAIN_CHANGE_MAX_HEIGHT.toString();
        }
        else {
          w = video.w.toString();
          h = video.h.toString();
        }
      }
      
      var idname = "viewer-swf-video-" + swf_video_counter.toString();
      d.setAttribute("id", idname);
      d.setAttribute("style", "margin: 0; padding: 0; width: " + w + "px; height: " + h + "px;");
      d.innerHTML = "Unsupported by Browser";
      swf_video_counter++;
      
      el.innerHTML = "";
      el.appendChild(d);
      
      video.idname = idname;
      video.size_w = w;
      video.size_h = h;
      
      YAHOO.util.Event.onAvailable(idname, swf360ready, video);
    }
    toggleVisibilitySwap('viewer-mode', 'viewer-swf', 'viewer-photo');
  }
}

mov_video_counter = 0;
function mov360(video) {
  var el = document.getElementById("viewer-swf");
  if(el != null) {
    var d = document.createElement("embed");
    if(d != null) {
      var w = video.w;
      var h = video.h;
      
      if(video.w > PHOTO_MAIN_CHANGE_MAX_WIDTH) {
        // Too Wide...
        new_h = video.h * PHOTO_MAIN_CHANGE_MAX_WIDTH / video.w;
        if(new_h > (PHOTO_MAIN_CHANGE_MAX_HEIGHT)) {
          // Still too high (after resize)
          w = (PHOTO_MAIN_CHANGE_MAX_WIDTH * (PHOTO_MAIN_CHANGE_MAX_HEIGHT) / new_h).toString();
          h = (PHOTO_MAIN_CHANGE_MAX_HEIGHT).toString();
        }
        else {
          // Was too wide, but height fits in resize...
          w = PHOTO_MAIN_CHANGE_MAX_WIDTH.toString();
          h = new_h.toString();
        }
      }
      else {
        if(video.h > (PHOTO_MAIN_CHANGE_MAX_HEIGHT)) {
          // Isn't too wide but is too high...
          w = video.w.toString();
          h = (PHOTO_MAIN_CHANGE_MAX_HEIGHT).toString();
        }
        else {
          // Everything fits!
          w = video.w.toString();
          h = video.h.toString();
        }
      }
      
      var idname = "viewer-mov-video-" + mov_video_counter.toString();
      d.setAttribute("id", idname);
      d.setAttribute("width", w.toString());
      d.setAttribute("height", h.toString());
      d.setAttribute("autoplay", "true");
      d.setAttribute("controller", "true");
      d.setAttribute("pluginspage", "http://www.apple.com/quicktime/download/");
      d.setAttribute("src", video.vl);
      mov_video_counter++;
      
      el.innerHTML = "";
      el.appendChild(d);
      
      video.idname = idname;
      video.size_w = w;
      video.size_h = h;
      
      YAHOO.util.Event.onAvailable(idname, mov360ready, video);
    }
    toggleVisibilitySwap('viewer-mode', 'viewer-swf', 'viewer-photo');
  }
}

function validateVIN(v) {
  defMsg = "The VIN is invalid. Please correct it and try again";
  vin = v.toUpperCase();
  if(vin.length < 17)
    return "VIN must be 17 characters long.\n";
  if(!myIsDigit(vin.charAt(5)) || !myIsDigit(vin.charAt(6)) || !myIsDigit(vin.charAt(12)) || !myIsDigit(vin.charAt(13)) || !myIsDigit(vin.charAt(14)) || !myIsDigit(vin.charAt(15)) || !myIsDigit(vin.charAt(16)) ) {
    //return "6th,7th and 13th-17th characters inclusive must be numbers.\n";
    return defMsg;
  }
  if(!myIsChar(vin.charAt(3)) || !myIsChar(vin.charAt(4))) {
    //return "4th and 5th characters must be alphabetic.\n";
    return defMsg;
  }

  if(calCheckValue(vin) == -1 || (calCheckValue(vin) != parseInt(vin.charAt(8)) && calCheckValue(vin)!=10) || (calCheckValue(vin) != parseInt(vin.charAt(8)) && calCheckValue(vin)==10 && vin.charAt(8)!='X' )) {
    //return "check digit does not match the checksum.\n";
    return defMsg;
  }

  return '';
}