/* Common scripts compiled in one file
-- These include:
-- clear-box.js
-- sign-in-form.js
-- script from find-a-motor.inc
-- script from foot/index.inc
*/
 
/* standard variables */
var docHeight = '';
var nav=navigator.userAgent.toLowerCase();
if ((nav.indexOf("msie 6.0")) >= 0){
 // docHeight = (document.getElementsByTagName("body")[0].offsetHeight-22)+'px';
}else{
 // docHeight = (document.body.offsetHeight-22)+'px';
}
/* end of standard variables */

/* start clear-box.js */
var box_changed = new Array();
box_changed["postcode_F"] = " Postcode";
//box_changed["email_F"] = " Email Address";

function clearBox(box) {
  if (!box_changed[box.name]) {
    box_changed[box.name] = box.value;
    box.value = '';
  } else if (box.value == box_changed[box.name]) {
    box.value = '';
  }
}

function clearBG(box, className) {
  box.className = className;
}

function fillBox(box) {
  if (!box.value) {
        box.value = box_changed[box.name];
  }
}

/* start jspostcode.js -- see original for documentation */
function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}

function checkPostCode (toCheck) {

  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5

  var pcexp = new Array ();
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);
  var postCode = trim(toCheck);
  var valid = false;
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
      pcexp[i].exec(postCode);
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      valid = true;
      break;
    }
  }
  if (postCode == 'Postcode') {
      valid = true;
  }
  if (valid) {return postCode;} else return false;
}
/* end jspostcode.js */

function validate_postcode(field) {
  var postcodeFilter = /[a-z0-9]/i;
  var illegalChars = /[\!\"\`\$\%\^\@\_\-\'\|\&\*\+\=\{\}\~\#\?\(\)\<\>\,\.\;\:\\\/\[\]]/;
  var first_char = field.substr(0, 1);
  var numbers = '1234567890';
  var postcode_value = '';
  var counter = 0;
  var positions = new Array (field.length);
      onechar_parea = new Array ("B","E","G","L","M","N","S","W");
      twochar_parea = new Array ("AB","AL","BA","BB","BD","BH","BL","BN","BR","BS","BT","CA","CB","CF","CH","CM","CO","CR","CT","CV","CW","DA","DD","DE","DG","DH","DL","DN","DT","DY","EC","EH","EN","EX","FK","FY","GL","GU","HA","HD","HG","HP","HR","HS","HU","HX","IG","IP","IV","IM","KA","KT","KW","KY","LA","LD","LE","LL","LN","LS","LU","ME","MK","ML","NE","NG","NN","NP","NR","NW","OL","OX","PA","PE","PH","PL","PO","PR","RG","RH","RM","SA","SE","SG","SK","SL","SM","SN","SO","SP","SR","SS","ST","SW","SY","TA","TD","TF","TN","TQ","TR","TS","TW","UB","WA","WC","WD","WF","WN","WR","WS","WV","YO","ZE");
  for (x = 0; x < field.length; x++) {
    if (numbers.indexOf(field.substr(x, 1)) != -1) {
      positions[counter] = x;
      counter = counter + 1;
    }
  }
  if (!postcodeFilter.test(field) || field.match(illegalChars) || numbers.indexOf(first_char) != -1 || counter > 3 || (counter == 0 && field.length > 2) || (positions[0] > 2 && field.length > 2) || (counter < 2 && field.length > 4)) {
    return 0;
  }else{
    var checkpc = 0;
    //alert(numbers.indexOf(field.substr(1, 1)));
   // alert(field.substr(1, 1));
   // alert(field.substr(0, 1));
   // alert(field.substr(0, 2));
    for (pc=0;pc<onechar_parea.length;pc++) {
      if ( field.substr(0,1) == onechar_parea[pc] && numbers.indexOf(field.substr(1, 1)) != -1) {
        checkpc = 1;
        break;
      }
    }
    for (pc=0;pc<twochar_parea.length;pc++) {
      if ( field.substr(0,2) == twochar_parea[pc] ) {
        checkpc = 1;
        break;
      }
    }
    return checkpc;
  }
}

function validate_mobile_phone(phone_num) {
   var phonecheck = /^[0]{1}[7]{1}\d{9}$/;
   var return_value = 0;
   var phone_num = phone_num.split(' ').join('');
   if (phonecheck.test(phone_num))
   {
	  return_value = 1;
   }
   return return_value; 
}

function validate_email(str) 
{
  var at="@"
  var dot="."
  var lat=str.indexOf(at)
  var lstr=str.length
  var ldot=str.indexOf(dot)

   if (str.indexOf(at)==-1){
      return false
   }

   if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
   return false
   }

   if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
    return false
   }

   if (str.indexOf(at,(lat+1))!=-1){
   return false
   }

   if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
   return false
   }

   if (str.indexOf(dot,(lat+2))==-1){
    return false
   }
		
   if (str.indexOf(" ")!=-1){
    return false
   }

   return true					
}


function trim (str)
{
  str = this != window? this : str;
  return str.replace(/^\s+|\s+$/g,"");
}

function showBMWForm(site){ // Used for bmw email
        window.open(site,"BMW","status = 1, resizable = 0, location = 0, toolbar = 0, menubar = 0");
}

function showExtEmailForm(site, p_title, p_width, p_height){ // Used for generic email popup
        window.open(site,p_title,"status = 1, resizable = 0, location = 0, toolbar = 0, menubar = 0, width="+p_width+", height="+p_height);
}

function toggleDiv(divid){ // Used inside benefits page
    var div = document.getElementById(divid);
    div.style.display = div.style.display == 'block' ? 'none' : 'block';
}

function toggleClassBenefits(divid,classname){ // Used inside benefits page
    if (divid.className == 'closed' || divid.className == 'closed ' +classname)
    {
     if (classname != '')
     {
       divid.className = classname;
     }
     else
     {
       divid.className = '';
     }
    }
    else
    {
     if (classname != '')
     {
       divid.className = 'closed ' +classname;
     }
     else
     {
       divid.className = 'closed';
     }
    }
}

function showDetails(car_id, reg_no, from_price, to_price, email, town, county, location, dummy, dealer_group_id_in, cap_car_id, new_used, car_desc, addShortlist, jsCode, close_yn)
{
  ajaxRequestString = 'car_id_F='+escape(car_id)+'&reg_no_F='+escape(reg_no)+'&from_price_F='+from_price+'&to_price_F='+to_price+'&email_F='+escape(email)+'&dealer_group_id_in_F='+dealer_group_id_in+'&cap_car_id_F='+cap_car_id+'&new_used_F='+new_used+'&car_dsc_F='+car_desc+'&addShortlist_F='+addShortlist;
  popUp('ajax-vehicle-details','','670px', 'n', 'n','n','n','y','n',ajaxRequestString,jsCode,'', 380, 80, close_yn);
}

function showDetailsPrivate(car_id, reg_no, from_price, to_price, email, town, county, location, dummy, dealer_group_id_in, cap_car_id, new_used, car_desc, addShortlist, jsCode, close_yn)
{
  ajaxRequestString = 'car_id_F='+escape(car_id)+'&reg_no_F='+escape(reg_no)+'&from_price_F='+from_price+'&to_price_F='+to_price+'&email_F='+escape(email)+'&dealer_group_id_in_F='+dealer_group_id_in+'&cap_car_id_F='+cap_car_id+'&new_used_F='+new_used+'&car_dsc_F='+car_desc+'&addShortlist_F='+addShortlist+'&priv_seller=Y&time='+new Date();
  popUp('ajax-vehicle-details','','670px', 'n', 'n','n','n','y','n',ajaxRequestString,jsCode,'', 380, 80, close_yn);
}


function showNewCarDetails(car_id, reg_no, from_price, to_price, email, dealer_group_id_in, cap_car_id, new_used, car_desc, addShortlist){
  ajaxRequestString = 'car_id_F='+escape(car_id)+'&reg_no_F='+escape(reg_no)+'&from_price_F='+from_price+'&to_price_F='+to_price+'&email_F='+escape(email)+'&dealer_group_id_in_F='+dealer_group_id_in+'&cap_car_id_F='+cap_car_id+'&new_used_F='+new_used+'&car_dsc_F='+car_desc+'&addShortlist_F='+addShortlist;
  popUp('new-ajax-vehicle-details','','670px', 'n', 'n','n','n','y','n',ajaxRequestString);
}

function showPopUpLink(url, p_title, p_width, p_height){ // Used for generic popup
        window.open(url,p_title,"status = 1, resizable = 0, location = 0, toolbar = 0, menubar = 0, width="+p_width+", height="+p_height);
}

function reloadShortList(){
  var myajax=ajaxpack.ajaxobj;
  if (myajax.readyState == 4){ //if request of file completed
    if (myajax.status==200 || window.location.href.indexOf("http")==-1){
      if (myajax.responseText ==""){
        refreshShortlist();
      }
    }
  }
}

function toggleManufacturer(divid){
    var v = document.getElementById('car_yn');
    var div = document.getElementById(divid);

    if (v.value == 'Y')
    {
      div.style.display = 'block';
    }
    else
    {
      div.style.display = 'none';
    }
}

function togBoxesDisplay(boxID, buttonID) {
  document.getElementById('fullSpecsBox').style.display = 'none';
  document.getElementById('fullSpecsButton').className = '';
  if (document.getElementById('reviewsBox'))
  document.getElementById('reviewsBox').style.display = 'none';
  if (document.getElementById('reviewsButton'))
  document.getElementById('reviewsButton').className = '';
  if (document.getElementById('addedExtrasBox'))
  document.getElementById('addedExtrasBox').style.display = 'none';
  if (document.getElementById('addedExtrasButton'))
  document.getElementById('addedExtrasButton').className = '';
  if (document.getElementById('dealerInfoBox'))
  document.getElementById('dealerInfoBox').style.display = 'none';
  if (document.getElementById('stdFeatures'))
  document.getElementById('stdFeatures').style.display = 'none';
  if (document.getElementById('dealerInfoButton'))
  document.getElementById('dealerInfoButton').className = '';
  if (document.getElementById(boxID))
  {
    document.getElementById(boxID).style.display = '';
    if (boxID == 'fullSpecsBox')
    {
      document.getElementById('stdFeatures').style.display = '';
    }
  }
  if (document.getElementById(buttonID))
  document.getElementById(buttonID).className = 'selected';
}

var oldPhotoSmall;

function swapPhotos(oldPhotoLarge, newPhotoLarge, newPhotoSmall) {
  if (!oldPhotoSmall) {
    oldPhotoSmall = 'photo_small_<?php echo $used_car->car_id; ?>';
  }
  oldPhotoLarge.style.display = 'block';
  if(document.getElementById('lrg_img'))document.getElementById('lrg_img').style.display = 'none';
  oldPhotoSmall.className = '';
  newPhotoSmall.className = 'selected';
  oldPhotoLarge.src = newPhotoLarge;
  oldPhotoSmall = newPhotoSmall;
}

function swapVideo(img)
{
  document.getElementById('lrg_img').style.display = 'block';
  img.style.display = 'none';
}

function print_car_details(url) {
  newwindow=window.open(url,'name','height=600,width=692,scrollbars=1');
  newwindow.moveTo(155,50);
}

function OpenWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}

/* find-a-motor popups */

var mouseX = 0;
var mouseY = 0;

function find_position()
{
  $().mousemove( function(e)
  {
    mouseX = e.pageX;
    mouseY = e.pageY;
  });
}

function positionEle(target,menu,vOffset)
{
  var targHeight=target.offsetHeight;
  var targEle=target;
  var divEle=document.getElementById(menu);
  var eleLeft=80;
  var eleTop=30;
  if(typeof vOffset != "number")
  {
    vOffset=0;
  }
  while(targEle.offsetParent!= null)
  {
    eleLeft+=targEle.offsetLeft;
    eleTop+=targEle.offsetTop;
    targEle=targEle.offsetParent;
  }

  divEle.style.left=eleLeft+139+'px';

  var resizeTop = 0;
  if(menu=='srchColour')
  {
    resizeTop = 313;
  }
  else
  {
    resizeTop = 465;
  }

  divEle.style.top=eleTop - resizeTop - vOffset+'px';
  if (divEle.style.display == 'block')
  {
    divEle.style.display="none";
  }
  else
  {
    divEle.style.display="block";
  }
}
function closeLinks()
{
  if(document.getElementById('jsMenus'))
  {
    var ulEle= document.getElementById('jsMenus').getElementsByTagName('a');
    for(i=0;i< ulEle.length;++i)
    {
      if(ulEle[i].getAttribute(classAtt)=="closeMenu")
      {
        ulEle[i].onclick=function()
        {
          this.parentNode.parentNode.parentNode.style.display='none';
          return false;
        }
      }
    }
  }
}

/* -- */

/* start of script from foot/index.inc */
function CheckAll(frmName){
  var count = document.forms[frmName].elements.length;
  for (i=0; i < count; i++){
    if(document.forms[frmName].elements[i].checked == 0){
      document.forms[frmName].elements[i].checked = 1;
      setElement(document.forms[frmName].elements[i].name, document.forms[frmName].elements[i].value)
    }
  }
}

function UncheckAll(frmName){
  var count = document.forms[frmName].elements.length;
  for (i=0; i < count; i++){
    if(document.forms[frmName].elements[i].checked == 1){
      document.forms[frmName].elements[i].checked = 0;
      setElement(document.forms[frmName].elements[i].name, document.forms[frmName].elements[i].value);
    }
  }
}

function setElement(name, value) {
  var form = document.forms['search_form'];
  if(!document.search_form.elements[name]){
    var el = document.createElement("div");
    el.setAttribute('id','colours');
    el.innerHTML = '<input value="'+value+'" name="'+name+'" type="hidden">' 
    form.appendChild(el);

  }else{
    var el = document.forms['search_form'].elements[name];
    el.parentNode.removeChild(el);
  }
}
/*end of script from foot/index.inc */

function DealerMapWindow(wgs_lan,wgs_lng,postcode) 
{
  if(wgs_lan != 0)
  {
    url = "/map.php?lan="+wgs_lan+"&lng="+wgs_lng;
  }
  else 
  {
    url = "/map.php?postcode="+postcode;
  }

  window.open(url,"MAP","status = 0, resizable = 1, location = 0, toolbar = 0, menubar = 0, width = 600, height = 400");
}

/* swfobject */
/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
/* end of swfobject */

/* search panel */

/* search panel specific javascript and jquery extensions*/

// Global Vars

var jsonData  = '';
var data = '';
var new_yn;
/* price range function */
var current_min = '';
var current_max = '';
var update_max = 0;
var maker = '';
var toggled = 0;
var newused = 'U';

// End Global Vars

/* scrollTo function */
jQuery.fn.extend({
  scrollTo : function(speed, easing) {
    return this.each(function() {
      var targetOffset = jQuery(this).offset().top;
      jQuery('html,body').animate({scrollTop: targetOffset}, speed, easing);
    });
  }
});

function field_flash()
{
  jQuery("#postcode").animate(
  {
    border:"1px solid red"
  }, 500)
  .animate(
  {
    border:"1px solid #7F9DB9"
  }, 500, field_flash);
}

function focus_on()
{
  jQuery("#postcode").focus(function()
  {
    jQuery("#postcode").stop().css("border","1px solid #7F9DB9");
  });
}

jQuery.fn.loading = function()
{
  jquery(this).attr("value","Loading...");
}

/* this blurs the text fields to display titles when not in focus */
jQuery.fn.text_field = function()
{
  return this.each(function()
  {
    var t = jQuery(this);
    var title = t.attr("title");
    if(t.attr("name") == "postcode_F" && jsonData != undefined && jsonData.postcode_F != undefined && jsonData.reset_on_change != 'Y')
    {
      title = jsonData.postcode_F.toUpperCase();
    }
 
    if(title)
    {
      t.blur(function()
      {
        if(t.val() == "") 
        {
          t.val(title);
          t.addClass("blur");
        }
      });

      t.focus(function()
      {
        if(t.val() == title)
        {
          t.val("");
          t.removeClass("blur");
        }
      });

      t.blur();
    }
  });
}

/* end plugins */
 
/*
 jQuery("#email_address").blur(function()
 {
  alert ("test");
   if(jQuery("#email_address").val() != "")
   {
     jQuery("#email_address2").val(jQuery("#email_address").val());
   }
   else
   {
     jQuery("#email_address2").val('Email address');
   }
 });

 jQuery("#email_address2").blur(function()
 {
   if(jQuery("#email_address2").val() != "")
   {
     jQuery("#email_address").val(jQuery("#email_address2").val());
   }
   else
   {
     jQuery("#email_address").val('Email address');
   }
 });
*/

function models_body_types(maker, model)
{
  if (jsonData != undefined && jsonData['new_used_F'] == 'N' && new_yn == undefined)
  {
   new_yn = 'Y';
  }

  jQuery(".model_options").remove();
  jQuery("select#model_F option[value='ANY']").text("Loading...");

  var options = "man="+maker;

  if(model !=null)
  {
    options = "man="+maker+"&mod="+model;    
  }
  
  if (new_yn == 'Y')
  {
    options = options + "&new_used=N"
  }


  jQuery.get("/jsonModBod?"+options, function(data)
  {
    var data_array = data.split("|");
    var models_array = data_array[0].split("\n");

    for(i=0;i<models_array.length;i++)
    {
      if(models_array[i].length > 0)
      {
        if(model == models_array[i])
        {
          jQuery('select#model_F').append('<option value="'+models_array[i]+'" class="model_options" SELECTED>'+models_array[i]+'</option>');
        }
        else
        {
          jQuery('select#model_F').append('<option value="'+models_array[i]+'" class="model_options">'+models_array[i]+'</option>');
        }
      }
    }

    jQuery("select#model_F option[value='ANY']").text("Model");


    if (newused == 'F')
    {
        jQuery(".body_options").remove();
        jQuery('select#body_F').append('<option value="" class="loading">Loading...</option>');
        var types_array = data_array[1].split("\n");

        for(i=0;i<types_array.length;i++)
        {
          var tmp_st_body = "";

          if(types_array[i].length > 0)
          {
            tmp_st_body = types_array[i];

            if(jsonData != undefined && jsonData['body_F'] == tmp_st_body)
            {
              jQuery('select#body_F').append('<option value="'+tmp_st_body+'" class="body_options" SELECTED>'+types_array[i]+'</option>');
            }
            else
            {
              jQuery('select#body_F').append('<option value="'+tmp_st_body+'" class="body_options">'+types_array[i]+'</option>');
            }
          }
        }
        jQuery(".loading").remove();
    }

    if (new_yn != 'Y')
    {
      if(maker != 'ANY' && maker != undefined)
      {
        jQuery(".body_options").remove();
        jQuery('select#body_F').append('<option value="" class="loading">Loading...</option>');
        var types_array = data_array[1].split("\n");
      
        for(i=0;i<types_array.length;i++)
        {
          var tmp_st_body = "";
        
          if(types_array[i].length > 0)
          {
            if(types_array[i] == 'Open Car')
            {
              types_array[i] = 'Convertible';
              tmp_st_body = 'Open Car';
            }
            else
            {
              tmp_st_body = types_array[i];
            }
         
            if(jsonData != undefined && jsonData['body_F'] == tmp_st_body)
            {
              jQuery('select#body_F').append('<option value="'+tmp_st_body+'" class="body_options" SELECTED>'+types_array[i]+'</option>');
            }
            else
            {
              jQuery('select#body_F').append('<option value="'+tmp_st_body+'" class="body_options">'+types_array[i]+'</option>');
            }
          }
        }
        jQuery(".loading").remove();
      }
      else
      {
        jQuery("#body_F").find("option").each(function()
        {
          if (jsonData != undefined )
          {
            if(jsonData.body_F == jQuery(this).attr("value"))
            {
              jQuery(this).attr("selected","selected");
            }
          }
        });
      }
    }
    else
    {
        jQuery("#body_F").find("option").each(function()
        {
          if (jsonData != undefined )
          {
            if(jsonData.body_F == jQuery(this).attr("value"))
            {
              jQuery(this).attr("selected","selected");
            }
          }
        });
    }
  });
}

function dlr_models_body_types(maker, model)
{
  jQuery(".dlr_model_options").remove();
  jQuery("select#dlr_model_F option[value='ANY']").text("Loading...");
  var options = "man="+maker;
  
  if(model !=null)
  {
    options = "man="+maker+"&mod="+model;
  }
  jQuery.get("/jsonModBod?"+options, function(data)
  {
    var data_array = data.split("|");
    var models_array = data_array[0].split("\n");

    for(i=1;i<models_array.length;i++)
    {
      if(models_array[i].length > 0)
      {
        if((jsonData != undefined && jsonData['dlr_model_F'] == models_array[i]) || model == models_array[i])
        {
   //       jQuery('select#dlr_model_F').append('<option value="'+models_array[i]+'" class="dlr_model_options" SELECTED>'+models_array[i]+'</option>');
        }
        else
        {
   //       jQuery('select#dlr_model_F').append('<option value="'+models_array[i]+'" class="dlr_model_options">'+models_array[i]+'</option>');
        }
      }
    }
    jQuery("select#dlr_model_F option[value='ANY']").text("Any Model");
    if(maker != 'ANY' && maker != undefined)
    {
      //jQuery(".dlr_body_options").remove();
      jQuery('select#dlr_body_F').append('<option value="" class="loading">Loading...</option>');
      var types_array = data_array[1].split("\n");
      for(i=0;i<types_array.length;i++)
      {
        if(types_array[i].length > 0)
        {
          if(types_array[i] == 'Open Car')
          {
            types_array[i] = 'Convertible';
          }
          if(jsonData != undefined && jsonData['dlr_body_F'] == types_array[i])
          {
       //     jQuery('select#dlr_body_F').append('<option value="'+types_array[i]+'" class="dlr_body_options" SELECTED>'+types_array[i]+'</option>');
          }
          else
          {
       //     jQuery('select#dlr_body_F').append('<option value="'+types_array[i]+'" class="dlr_body_options">'+types_array[i]+'</option>');
          }
        }
      }
      jQuery(".loading").remove();
    }
    else
    {
      jQuery("#dlr_body_F").find("option").each(function()
      {
        if(jsonData.dlr_body_F == jQuery(this).attr("value"))
        {
          jQuery(this).attr("selected","selected");
        }
      });
    }
  });
}


function model_options()
{
  jQuery("select#maker_F").change(function()
  {
    var maker = jQuery(this).attr("value");
    models_body_types(maker);
    if (jsonData != undefined)
    {
      if (jsonData['submitted'] == '' || jsonData['submitted'] == undefined )
      {
       jQuery("#keyword").val('Keyword, e.g. GTI') ;
      }
    }
  });

  jQuery("select#model_F").change(function()
  {
    var maker = jQuery("select#maker_F").attr("value");
    var model = jQuery("select#model_F").attr("value");
    models_body_types(maker,model);
    if (jsonData != undefined)
    {
      if (jsonData['submitted'] == '' || jsonData['submitted'] == undefined )
      {
       jQuery("#keyword").val('Keyword, e.g. GTI') ;
      }
    }
  });
}

function dlr_model_options()
{
 // jQuery("select#dlr_maker_F").change(function()
 // {
    //var maker = jQuery("select#dlr_maker_F").attr("value");
    //dlr_models_body_types(maker);
 // });

 // jQuery("select#dlr_model_F").change(function()
 // {
    var maker = jQuery("select#dlr_maker_F").attr("value");
    var model = jQuery("select#dlr_model_F").attr("value");
    if (maker != undefined)
    {  
      dlr_models_body_types(maker,model);
    }
 // });
}

function load_dealer_manufacturer(options)
{
  jQuery(".dlr_man_options").remove();
  jQuery.get("/jsonMan?"+new Date()+"&type="+options, function(data)
  {
    var data_array = data.split("|");
    var man_array = data_array[0].split("\n");
   if (jsonData != undefined)
   {
    if ((jsonData['dlr_maker_F'] == "" || jsonData['dlr_maker_F'] == undefined) && jsonData['dlr_maker_F_prev'] != "" && options!='D')
    {
      jsonData['dlr_maker_F'] = jsonData['dlr_maker_F_prev'];
    }

    if (options == 'D')
    {
      jsonData['dlr_maker_F'] = jsonData['dlr_maker_filter_F'];
    }

   }
    
    for(i=0;i<man_array.length;i++)
    {
        if (jQuery('select#dlr_maker_F').length > 0 && man_array[i] != "")
        {
          if (jsonData != undefined)
          {

           if (jsonData['dlr_maker_F'] != undefined && options != 'D')
           {
             v_maker = jsonData['dlr_maker_F'].replace ('+',' ');
           } 
	   else if (jsonData['dlr_maker_filter_F'] != undefined)
           {
             v_maker = jsonData['dlr_maker_filter_F'].replace ('+',' ');
           }
           else
           {
             v_maker = '';
	   }

            if(v_maker == man_array[i])
            {
              jQuery('select#dlr_maker_F').append('<option value="'+man_array[i]+'" class="dlr_man_options" SELECTED>'+man_array[i]+'</option>');
            }
            else
            {
              jQuery('select#dlr_maker_F').append('<option value="'+man_array[i]+'" class="dlr_man_options">'+man_array[i]+'</option>');
            }
          }
          else
          {
            jQuery('select#dlr_maker_F').append('<option value="'+man_array[i]+'" class="dlr_man_options">'+man_array[i]+'</option>');
          }
        }
    }

  });
}


function load_manufacturer()
{
  var options;
  jQuery(".man_options").remove();
 
  if (new_yn == 'Y')
  {
    options = 'N';
  }
 
  jQuery.get("/jsonMan?type="+options, function(data)
  {
    if (jsonData != undefined) 
    {
      maker = jsonData['maker_F'];
    }
   
    var data_array = data.split("|");
    var man_array = data_array[0].split("\n");
    
    for(i=0;i<man_array.length;i++)
    {
      if(man_array[i].length > 0)
      {
        if(maker == man_array[i])
        //if((jsonData != undefined && jsonData['model_F'] == models_array[i]) || model == models_array[i])
        {
          jQuery('select#maker_F').append('<option value="'+man_array[i]+'" class="man_options" SELECTED>'+man_array[i]+'</option>');
        }
        else
        {
          jQuery('select#maker_F').append('<option value="'+man_array[i]+'" class="man_options">'+man_array[i]+'</option>');
        }

      }
    }
  }
  );
}

function max_price_options()
{
  /* on change of min_price_F hide all max options that are less <= value of min */
  jQuery("select#min_price").change(function()
  {
    var min_val = parseInt(jQuery(this).attr("value"));
    var update_max = '';
    
    if(current_max == '' || current_max <= min_val)
    {
      current_max = '';
      update_max = 1;
    }
  
    current_min = min_val;
    var i = 0;

    jQuery("#max_price").find("option").each(function()
    {
      jQuery(this).removeClass("hide");
      var max_val = parseInt(jQuery(this).attr("value"));

      if(min_val >= max_val)
      {
        jQuery(this).addClass("hide");
      }
      else
      {
        if(i==0 && jQuery(this).attr("value") != "max" && current_max == '' && current_max < jQuery(this).attr("value"))
        {
          jQuery(this).attr("selected","selected");
          i = 1;
          if(update_max == 1)
          {
            current_max = jQuery(this).attr("value");
            update_max = 0;
          }
        }
      }
    });
  });  

  jQuery("select#max_price").change(function()
  {
    var max_val = parseInt(jQuery(this).attr("value"));
    
    if(current_min && current_min > max_val)
    {
      current_min = '';
    }

    current_max = max_val;
   
    jQuery("#min_price").find("option").each(function()
    {
      var min_val = parseInt(jQuery(this).attr("value"));
      if(max_val == min_val && current_min == '' && current_min < jQuery(this).attr("value"))
      {
        jQuery(this).prev().attr("selected","selected")
      }
    });

  });
}
/* end price range function */

function refresh_options()
{
  
  var config_s = new Array();
  var config_c = new Array();
  var config_t = new Array();
  var config_r = new Array();

  models_body_types(jsonData['maker_F'], jsonData['model_F']);

  // SELECTS
  config_s['maker_F'] = 'maker_F';
  config_s['min_price'] = 'from_price_F';
  config_s['max_price'] = 'to_price_F';
  config_s['distance'] = 'distance_basic_F';
  config_s['transmission'] = 'transmission_F';
  config_s['fuel'] = 'fuel_F';
  config_s['trade_sale'] = 'trade_sale_F';
  config_s['mileage'] = 'mileage_max_F';
  config_s['engine_size_cc'] = 'engine_size_cc_F';
  config_s['door_count'] = 'door_count_F';
  config_s['seat_count'] = 'seat_count_F';
  config_s['ncap_rating'] = 'ncap_rating_F';
  config_s['mpg'] = 'mpg_F';
  config_s['drive_time'] = 'drive_time_F';
  config_s['dlr_maker_F'] = 'dlr_maker_F';
  config_s['dlr_fuel_F'] = 'dlr_fuel_F';
  config_s['dlr_body_F'] = 'dlr_body_F';
  config_s['dlr_model_F'] = 'dlr_model_F';
  config_s['car_age'] = 'car_age_F';
  config_s['from_age'] = 'from_age_F';
  config_s['to_age'] = 'to_age_F';
 
  for(i in config_s)
  {
    jQuery("#"+i).find("option").each(function()
    {
      var value = jQuery(this).attr("value");

      if (jsonData[config_s[i]] == 'VW')
      {
        jsonData[config_s[i]] = 'Volkswagen';
      }

 /*     if (jsonData[config_s[i]] == 'Volkswagen' && jsonData.new_used_F == 'N')
      {
        jsonData[config_s[i]] = 'VOLKSWAGEN';
      }
 */
      if(jsonData[config_s[i]] == value)
      {
        jQuery(this).attr("selected", "selected");
      }
    });
  }
  // checkboxes
  config_c['history'] = 'screen_results_F';
  config_c['co2_emissions'] = 'co2_emissions_F';
  config_c['pics'] = 'photos_only_yn_F';
  config_c['vids'] = 'videos_only_yn_F';

  for(i in config_c)
  {
    if(jsonData[config_c[i]])
    {
      jQuery("#"+i).attr("checked", true);
    }
    else
    {
      jQuery("#"+i).attr("checked", false);
    }
  }

  // text fields
  config_t['keyword'] = 'keyword_F';
  config_t['postcode'] = 'postcode_F';
  config_t['email_address'] = 'email_F';
  config_t['email_address2'] = 'email_F';
  config_t['dealer_name_F'] = 'dealer_name_F';
  
  for(i in config_t)
  {
    if(jsonData[config_t[i]])
    {
      if (i == 'postcode')
      {	
        if (jsonData[config_t[i]] != 'Postcode *Required*')
        {	
          jQuery("#"+i).attr("value", jsonData[config_t[i]].toUpperCase());
        }
	else
	{
	  jQuery("#"+i).attr("value", jsonData[config_t[i]]);
	}
      }
      else
      {
        jQuery("#"+i).attr("value", jsonData[config_t[i]]);
      }
    }
  }

  // new/used/dealer radio


  if(jsonData.new_used_F)
  {
    newused = jsonData.new_used_F;
  }
  
  jQuery("input[value='"+newused+"']").attr("checked", "checked");

  if(newused == 'U')
  {
           jQuery(".used").show();
           jQuery(".dealer").show();
           jQuery("#search_form").attr("action", "/car-search-results.php");
           jQuery("select#maker_F option[value='ANY']").text("Manufacturer");
           jQuery(".rmpostcode").show();
           jQuery(".altSwitch").show();
  }
  else if(newused == 'N')
  {
    jQuery(".used").hide();
    jQuery(".dealer").show();
    jQuery("#search_form").attr("action", "/new-car-search-results.php");
    jQuery("select#maker_F option[value='ANY']").text("Manufacturer");
    jQuery(".tabR").hide();
    jQuery(".rmpostcode").hide();
    jQuery(".altSwitch").hide();

  }
  else if(newused == 'D')
  {
    jQuery(".used").hide();
    jQuery(".dealer").hide();
    jQuery("#search_form").attr("action", "/car-dealers");
    jQuery("select#maker_F option[value='ANY']").text("Any Dealer");
    jQuery(".rmpostcode").show();
    jQuery(".altSwitch").hide();
  }

  if (jsonData.age_switch_F == '' || jsonData.age_switch_F == undefined)
  {
    jsonData.age_switch_F = 'Y';
  }

  if (jsonData.age_switch_F == 'Y')
  {
    jQuery("input.age[value='"+jsonData.age_switch_F+"']").attr("checked", true);
    jQuery(".between").hide();
    jQuery(".upto").show();
    jQuery("#tooltipAge").hide();
  }
  else
  {
    jQuery("input.age[value='"+jsonData.age_switch_F+"']").attr("checked", true);
    jQuery(".between").show();
    jQuery(".upto").hide();
    jQuery("#tooltipAge").show();

  }
  // drivetime radio
  
  var peak_yn = 'N';

  if(jsonData.peak_yn_F)
  {
    peak_yn = jsonData.peak_yn_F;  
  }
  jQuery("input.peak_yn[value='"+peak_yn+"']").attr("checked", true);

  // dealer search radios
  config_r['dealer_type_F'] = 'dealer_type';
  config_r['sort_order_F'] = 'sort_order';

  for(i in config_r)
  {
    if(jsonData[i])
    {
      jQuery("input."+config_r[i]+"[value='"+jsonData[i]+"']").attr("checked", true);
    }
  }
}

function refresh_dealer_search_fields()
{
  if(jQuery("#dealerSrch #maker_F").length > 0)
  {
    jQuery("#dealerSrch #maker_F").find("option").each(function()
    {
      var value = jQuery(this).attr("value");
      if(jsonData.maker_F && jsonData.maker_F == value)
      {
        jQuery(this).attr("selected", "selected");
      }
    });
  }

  if(jsonData != undefined && jsonData.postcode_F != undefined)
  {
    jQuery("#dlr_postcode_F").attr("value", jsonData.postcode_F);
  }

  if(jsonData.screen_results_F == 1)
  {
    jQuery("#screened_yn_F").attr("checked", "checked");
  }
}

function refresh_form_fields()
{
  refresh_options();
  refresh_dealer_search_fields();
}

var menu_type = '';
var status_adv = 'N';

function toggle_menu(menu_type)
{
  if(toggled == 1)
  {
     jQuery("ul.searchNav > li").toggleClass("current");
     jQuery(".altSwitch").toggle();
     jQuery("#basicSrch,.advSrch").toggle();
  }

  jQuery("a.altSwitch, a.tabSwitch").click(function()
  {
    jQuery("ul.searchNav > li").toggleClass("current");
    if(menu_type == 'alt')
    {
      jQuery(".altSwitch").slideToggle();
      jQuery(".advSrch").slideToggle(300);
      if(toggled == 0)
      {
        jQuery("#refineSearch").scrollTo(1000);
        toggled = 1;
      }
      else
      {
        jQuery("#container").scrollTo(900);
        toggled = 0;
      }
    }
    else
    {
      jQuery(".altSwitch").toggle();
      jQuery("#basicSrch,.advSrch").toggle();
      if(toggled == 0)
      {
        toggled = 1;
        jQuery("#search_from_advanced_F").attr("value", "1");
        if (status_adv == 'N' && jQuery("#search_from_homepage_F").val() == '1')
	{ 
         jQuery.get("/ajaxColor", function(data)
         {
	   $('#srchColour').html("").html(data);
         });
         status_adv = 'Y';
	}
      }
      else
      {
        toggled = 0;
        jQuery("#search_from_advanced_F").attr("value", "");
      }
    }
    return false;
  });
}

/* tooltps */
function tooltip()
{	
  /* CONFIG */		
  xOffset = 10;
  yOffset = 20;		
  // these 2 variable determine popup's distance from the cursor
  // you might want to adjust to get the right result		
  /* END CONFIG */		

  jQuery("a.tooltip").hover(function(e)
  {											  
    this.t = this.title;
    this.title = "";									  
    jQuery("body").append("<p id='tooltip'>"+ this.t +"</p>");
    jQuery("#tooltip")
    .css("top",(e.pageY - xOffset) + "px")
    .css("left",(e.pageX + yOffset) + "px")
    .css("position", "absolute")
    .fadeIn("fast");		
  },
  function()
  {
    this.title = this.t;		
    jQuery("#tooltip").remove();
  });	

  jQuery("a.tooltip").mousemove(function(e)
  {
    jQuery("#tooltip")
    .css("top",(e.pageY - xOffset) + "px")
    .css("left",(e.pageX + yOffset) + "px");
  });
  
  jQuery("a.tooltip").click(function()
  {
    return false;
  });  
};
/* end tooltips */

/* form submission handler */
function form_submit()
{
  var inputs = [];
  jQuery("#search_form input").each(function()
  {
    inputs.push(this.name +'='+escape(this.value));
  })    
  
  jQuery.ajax(
  {
    data: inputs.join('&'),
    url: this.action,
    timeout: 2000,
    error: function()
    {
      alert("Failed to submit");
    },
    success: function() 
    {
      alert("success");
    }
  })
}

jQuery(document).ready(function()
{
  jQuery("#surveyLink").hide();
  jQuery("#surveyLink").fadeIn(1500);
  jQuery("#surveyLink img").hover(
    function () {
      jQuery(this).hide().attr("src","/images/pop-under-expanded.gif").attr("height","292").fadeIn("slow");
    }, 
    function () {
      jQuery(this).attr("src","/images/pop-under-collapsed.gif").attr("height","47");
    }
  );

});


var dealerSort;

jQuery(document).ready(function() 
{
  jQuery("select#sort").change(function()
  {
   jQuery('[name=sort_order_F]').val(jQuery("select#sort").val());
   dealerurl = jQuery("#sort_dlr_url_F").val();
   regionurl = jQuery("#sort_region_url_F").val();
   newurl = jQuery("#sort_new_url_F").val();

   if (dealerurl != "")
   {
     dealerSort = '1';
     jQuery("#search_form").attr("action",dealerurl);
   }
   else if (regionurl != "")
   {
     jQuery("#search_form").attr("action",regionurl);
   }
   else if (newurl != "")
   {
     jQuery("#search_form").attr("action",newurl);
   }
   jQuery("#search_form").submit();

  });
});

jQuery(document).ready(function() 
{
  jQuery("select#sort2").change(function()
  {
   jQuery('[name=sort_order_F]').val(jQuery("select#sort2").val());
   dealerurl = jQuery("#sort_dlr_url_F").val()
   regionurl = jQuery("#sort_region_url_F").val();
   newurl = jQuery("#sort_new_url_F").val();

   if (dealerurl != "")
   {
     dealerSort = '1';
     jQuery("#search_form").attr("action",dealerurl);
   }
   else if (regionurl != "")
   {
    jQuery("#search_form").attr("action",regionurl);
   }
   else if (newurl != "")
   {
    jQuery("#search_form").attr("action",newurl);
   }
   jQuery("#search_form").submit();

  });
});

//clear form fields
jQuery.fn.clearForm = function()
{
  return this.each(function()
  {
    jQuery(':input', this).each(function()
    {
      var type = this.type, tag = this.tagName.toLowerCase(), fname = this.name;

      if(type == 'text' && fname == 'postcode_F')
      {
        this.value = 'Postcode *Required*';
      }
      else if(type == 'text' && fname == 'keyword_F')
      {
        this.value = 'Keyword, e.g. GTI';
      }
      else if(type == 'text' && fname == 'email_F')
      {
        this.value = 'Email address';
      }
      else if(type == 'checkbox')
      {
        this.checked = false;
      }
      else if(tag == 'select' && fname != 'maker_F' && fname != 'model_F' && fname != 'distance_basic_F')
      {
        this.selectedIndex = 0;
      }
      else if(tag == 'select' && fname == 'distance_basic_F')
      {
        this.selectedIndex = 2;
      }
    });
  });
};

// reset fields when user arrives via seo link
jQuery.fn.seo_reset = function()
{
//phil
  jQuery('#search_form').clearForm();

  //jsonData['postcode_F'] = "";
  jsonData = new Array();
  jQuery("input#postcode").val("");

  var objCSS = {
    'border-color':'#FF0000',
    'border-style':'solid',
    'border-width':'2px'
  }

  jQuery('#postcode').css(objCSS);

  alert("Please enter a valid Postcode");

  jQuery("#postcode").focus();
}

jQuery("#sms_phone1").focus(function() 
{
  if( this.value == 'Mobile Phone Number') 
  {
    this.value = "";
  }
}).blur(function() 
{
  if( !this.value.length ) 
  {
    this.value = 'Mobile Phone Number';
  }
});

jQuery("#sms_phone").focus(function()
{
  if( this.value == 'Mobile Phone Number')
  {
    this.value = "";
  }
}).blur(function()
{
  if( !this.value.length )
  {
    this.value = 'Mobile Phone Number';
  }
});

jQuery("#sms_email").focus(function()
{
  if( this.value == 'Email address')
  {
    this.value = "";
  }
}).blur(function()
{
  if( !this.value.length )
  {
    this.value = 'Email address';
  }
});


jQuery(document).ready(function()
{
  jQuery("#special_code").keyup(function()
  {

      if (this.value != '')
      {
        //setTimeout("jQuery(\"#code_text\").load(\"/validateCode?code=\"+this.value)",3050);
        jQuery("#code_text").load("/validateCode?code="+trim(this.value)+"&no_display=1");
      }
  });
});


function clickCheckCode()
{
   if (jQuery("#special_code").val() != '')
   {
     jQuery("#code_text").load("/validateCode?code="+trim(jQuery("#special_code").val()));
   }
}

/* function loader - add all functions here to be loaded on document ready */
jQuery(document).ready(function() 
{
  jQuery.getJSON("/jsonData?"+new Date(), function(data)
  {
    jsonData = data;

    /*if(jsonData && jsonData.reset_on_change == 'Y')
    {
      jQuery("#maker_F").change(function()
      {
         jQuery(this).seo_reset();
      });

      jQuery("#model_F").change(function()
      {
         jQuery(this).seo_reset();
      });
    }*/

    // instant gratification
    var igswitch = 1; // set to 0 to stop instant gratification
    if(jsonData != undefined && igswitch == 0)
    {
      if(jsonData.submitted == 1)
      {
        $("#search_form :input").change(function()
        {
          $("#search_form").submit();
        });
      }
    }

    jQuery("#dlr_maker_F").change(function()
    {
      jQuery("select#dlr_model_F option[value='']").attr("selected","true");
      jQuery("select#dlr_body_F option[value='']").attr("selected","true");
      jQuery("select#dlr_fuel_F option[value='']").attr("selected","true");
      jQuery("select#dlr_model_F").attr("disabled","true");
      jQuery("select#dlr_fuel_F").attr("disabled","true");
      jQuery("select#dlr_body_F").attr("disabled","true");
      jQuery("#dlr_refine_search").attr("action", jQuery("#sort_dlr_url_F").val()+'1');
      jQuery("#dlr_refine_search").submit();
    });

    jQuery("#dlr_model_F").change(function()
    {
      jQuery("select#dlr_body_F option[value='']").attr("selected","true");
      jQuery("select#dlr_fuel_F option[value='']").attr("selected","true");
      jQuery("select#dlr_maker_F").attr("disabled","true");
      jQuery("select#dlr_fuel_F").attr("disabled","true");
      jQuery("select#dlr_body_F").attr("disabled","true");
      jQuery("#dlr_refine_search").attr("action", jQuery("#sort_dlr_url_F").val()+'1');
      jQuery("#dlr_refine_search").submit();
    });

    jQuery("#dlr_fuel_F").change(function()
    {
     // jQuery("select#dlr_body_F option[value='']").attr("selected","true");
      jQuery("select#dlr_maker_F").attr("disabled","true");
      jQuery("select#dlr_model_F").attr("disabled","true");
      jQuery("select#dlr_body_F").attr("disabled","true");
      jQuery("#dlr_refine_search").attr("action", jQuery("#sort_dlr_url_F").val()+'1');
      jQuery("#dlr_refine_search").submit();
    });

    jQuery("#dlr_body_F").change(function()
    {
      //jQuery("select#dlr_fuel_F option[value='']").attr("selected","true");
      jQuery("select#dlr_maker_F").attr("disabled","true");
      jQuery("select#dlr_model_F").attr("disabled","true");
      jQuery("select#dlr_fuel_F").attr("disabled","true");
      jQuery("#dlr_refine_search").attr("action", jQuery("#sort_dlr_url_F").val()+'1');
      jQuery("#dlr_refine_search").submit();
    });

    jQuery('input:text').text_field();
    toggle_menu(menu_type);

    jQuery("#search_form").submit(function()
    {
      var pcode = jQuery("#postcode").val();
      if(validate_postcode(pcode.toUpperCase()) == 0 && new_yn != 'Y')
      {
        alert("Please enter a full or partial postcode so we can find cars closest to you. If you don't have a UK postcode please enter W4 5TS to see results.");
        jQuery("#postcode").focus();
	return false;
      }
      else if (newused == 'F')
      {
        jQuery.get("/saveFast?postcode_F="+pcode+"&manufacturer_F="+jQuery("#maker_F").val()+"&model_F="+jQuery("#model_F").val()+"&from_price_F="+jQuery("#min_price").val()+"&to_price_F="+jQuery("#max_price").val()+"&body_type_F="+jQuery("#body_F").val(), function(data)
        {
       
        });

        tb_show("Motors Search Beta","/fast-iframe.php?height=700&width=1000&modal=false");
	return false;
      }

      if (newused != 'F')
      {
      var searchtype = $("#dealer").attr("checked");
 
      if (!searchtype && dealerSort != 1)
      {
        if(jQuery("#maker_F").val() == 'ANY' && jQuery("#keyword").val() == 'Keyword, e.g. GTI' && jQuery("#min_price").val() == 0 && jQuery("#max_price").val() == 999999 )
        {
          alert ("Motors.co.uk has 200,000 cars for sale. If you want to search for 'any make', you'll need to limit your price search to a £2000 spread . Otherwise, the list that'll return will be so big, it'll take hours to read!");
          return false;
        }
 
        if ((jQuery("#min_price").val() == 0 && jQuery("#max_price").val() == 999999) && jQuery("#maker_F").val() == 'ANY')
        {
          alert ("Motors.co.uk has 200,000 cars for sale. If you want to search for 'any make', you'll need to limit your price search to a £2000 spread . Otherwise, the list that'll return will be so big, it'll take hours to read!");
          return false;
        }

        var minval = jQuery("#min_price").val();
        var maxval = jQuery("#max_price").val();

        if (minval == 'min')
        {
          minval = 0;
        }

        if (maxval== 'max')
        {
          maxval = 1000000;
        }

        if ((jQuery("#min_price").val() != 'min' || jQuery("#max_price").val() != 'max') && jQuery("#maker_F").val() == 'ANY')
        {
          var diffValue = maxval - minval;

          if (jQuery("#max_price").val() <= 20000 && diffValue > 2000)
          {
            range = 2000;
	    alert ("Motors.co.uk has 200,000 cars for sale. If you want to search for 'any make', you'll need to limit your price search to a £2000 spread . Otherwise, the list that'll return will be so big, it'll take hours to read!");
	    return false;
  	  }

          if (jQuery("#max_price").val() <= 30000 && diffValue > 2500)
          {
            range = 2500;
            alert ("Motors.co.uk has 200,000 cars for sale. If you want to search for 'any make', you'll need to limit your price search to a £2500 spread . Otherwise, the list that'll return will be so big, it'll take hours to read!");
            return false;
          }

          if (jQuery("#min_price").val() < 30000 && jQuery("#max_price").val() > 30000)
          {
            alert ("Please choose a smaller price range or select a manufacturer");
            return false;
          }

          return true;

        }

       if ((jQuery("#from_age").val() > jQuery("#to_age").val()) && (jQuery("#from_age").val() != "" && jQuery("#to_age").val() != ""))
       {
        alert ("The from year is greater than to year");
        return false;
       }
 
        var eaddress = jQuery("#email_address").val();
        if (eaddress != "Email address")
        {
          if(validate_email(eaddress) == 0)
          {
            alert("Please enter a valid Email address");
            jQuery("#email_address").focus();
            return false;
          }
        }
      }
     } // End 'F'
    });

    jQuery("#sms_signup").submit(function()
    {

      var email = jQuery("#sms_email").val();
      var phone = jQuery("#sms_phone").val();
     
      if (email =='Email address' && phone =='Mobile Phone Number')
      {
        alert("Please enter your email address or mobile phone number for the latest car offers");
        jQuery("#sms_phone").focus();
        return false;
      }

      if (phone != 'Mobile Phone Number')
      {
        if (validate_mobile_phone(phone) == 0)
        {
           alert ('Please enter a valid UK mobile phone number');
           jQuery("#sms_phone").focus();
           return false;
        }
      }
      
      if(email != 'Email address')
      {
         if(validate_email(email) == 0)
         {
            alert("Please enter a valid Email address");
            jQuery("#sms_email").focus();
            return false;
         }
      }


      var pcode = jQuery("#sms_postcode_F").val();

      if(validate_postcode(pcode.toUpperCase()) == 0)
      {
        alert("Please enter a full or partial postcode so we can find cars closest to you. ");
        jQuery("#postcode").focus();
        return false;
      }
    });


    jQuery("#sms_signup_left").submit(function()
    {
      var phone = jQuery("#sms_phone1").val();
      var page = jQuery("#sms_page_id").val();
	  var sms_maker =jQuery("#sms_hidden_maker_F").val();
	  var sms_model =jQuery("#sms_hidden_model_F").val();
	  var sms_distance =jQuery("#sms_hidden_distance_F").val();
	  var sms_min =jQuery("#sms_hidden_min_price_F").val();
	  var sms_max =jQuery("#sms_hidden_max_price_F").val();
	  var sms_postcode =jQuery("#sms_hidden_postcode_F").val();

      if (phone =='')
      {
        alert("Please enter your mobile phone number for the latest car offers");
        jQuery("#sms_phone").focus();
        return false;
      }

      if (phone != '')
      {
        if (validate_mobile_phone(phone) == 0)
        {
           alert ('Please enter A valid UK Mobile Phone Number');
           jQuery("#sms_phone").focus();
           return false;
        }
      }

      if (page == '/car-search-results.php')
      {
        jQuery("#search_form").append('<input type="hidden" id="sms_phone"       name="sms_phone"       value="'+phone+'" />');
		jQuery("#search_form").append('<input type="hidden" id="sms_maker_F"     name="sms_maker_F"     value="'+sms_maker+'" />');
		jQuery("#search_form").append('<input type="hidden" id="sms_model_F"     name="sms_model_F"     value="'+sms_model+'" />');
		jQuery("#search_form").append('<input type="hidden" id="sms_distance_F"  name="sms_distance_F"  value="'+sms_distance+'" />');
		jQuery("#search_form").append('<input type="hidden" id="sms_min_price_F" name="sms_min_price_F" value="'+sms_min+'" />');
		jQuery("#search_form").append('<input type="hidden" id="sms_max_price_F" name="sms_max_price_F" value="'+sms_max+'" />');
		jQuery("#search_form").append('<input type="hidden" id="sms_postcode_F"  name="sms_postcode_F"  value="'+sms_postcode+'" />');

		
        jQuery("#search_form").submit();
        return false;
      }
   
    });
   
    if(jsonData != null)
    {
      if(jsonData.submitted == 1 && (jsonData.distance_basic_F == undefined || jsonData.distance_basic_F == 0))
      {
        jsonData.distance_basic_F = 1000;
      }   
    
      if(jsonData.from_price_F >= 0 && jsonData.from_price_F != 'min')
      {
        current_min = jsonData.from_price_F;
      }
    
      if(jsonData.to_price_F <= 9999999 && jsonData.to_price_F != 'max')
      {
        current_max = jsonData.to_price_F;
      }

      refresh_form_fields();
    }
    else
    {
      if (newused == undefined || newused == 'U')
      {
        jQuery(".between").hide();
        jQuery(".upto").show();
        jQuery("#tooltipAge").hide();
        jQuery("input[value='U']").attr("checked", "checked"); 
        jQuery("input.peak_yn[value='N']").attr("checked", "checked");

      }
    }
 
    jQuery("#dealer_form").submit(function()
    {
      var pcode = jQuery("#dlr_postcode").val();
      if(validate_postcode(pcode.toUpperCase()) == 0)
      {
        alert("Please enter a valid Postcode");
        jQuery("#dlr_postcode").focus();
        return false;
      }
    });
   
    max_price_options();

    if (jQuery('#sms_maker_F').length > 0)
    {
	  sms_car_finder();
    }

    if (jQuery('select#dlr_fuel_F').length > 0) // this mean we are on the filter page
    {
      load_dealer_manufacturer('D');   
    }
    else if (jQuery("input[name=dealer_type_F]").length > 0)
    {
      load_dealer_manufacturer('');
    }
    else
    {
      load_manufacturer();
    }

    model_options();
    dlr_model_options(); // AMIT

    jQuery("#new_cars").click(function()
    {
      jQuery(".used").hide();
      jQuery(".dealer").show();
      jQuery("#search_form").attr("action", "/new-car-search-results.php");
      jQuery(".tabR").hide();
      jQuery("#altSwitch").hide();
      jQuery("select#maker_F option[value='ANY']").text("Manufacturer");
      jQuery("#min_price").val("0");
      jQuery("#max_price").val("9999999");
 
      if (jsonData != undefined)
      { 
        if (jsonData.maker_F_new == undefined)
        {
          var maker = jsonData.maker_F;
	}
	else
	{
          var maker = jsonData.maker_F_new;
	}

        if (jsonData.model_F_new == undefined)
	{
          var model = jsonData.model_F;
	}
	else
	{
          var model = jsonData.model_F_new;
	}
      }
      new_yn = 'Y';
      load_manufacturer();

      if (maker == undefined)
      {
        models_body_types("ANY","");
      }
      else
      {
        models_body_types(maker,model);
      }
      jQuery(".rmpostcode").hide();
      jQuery(".altSwitch").hide();
      newused='N';
    });  

    jQuery("#used_cars").click(function()
    { 

         jQuery(".used").show();
         jQuery(".dealer").show();
         jQuery("#search_form").attr("action", "/car-search-results.php");
         jQuery(".tabR").show();
         jQuery("#altSwitch").show();
         jQuery("select#maker_F option[value='ANY']").text("Manufacturer");
 
  //    var maker = jQuery("select#maker_F").attr("value");
  //    var model = jQuery("select#model_F").attr("value");
      new_yn = 'N';
      load_manufacturer();

      if (jsonData != undefined)
      {
        models_body_types(jsonData['maker_F'],jsonData['model_F']);
      }
      else
      {
        models_body_types('ANY',null);
      }
      jQuery(".rmpostcode").show();
      jQuery(".altSwitch").show();
    });

    jQuery("#dealer").click(function()
    {
      jQuery(".used").hide();
      jQuery(".dealer").hide();
      jQuery("#search_form").attr("action", "/car-dealers");
      jQuery(".tabR").hide();
      jQuery("#altSwitch").hide();
      jQuery("select#maker_F option[value='ANY']").text("Any Dealer");
      new_yn = 'N';
      load_manufacturer();
      jQuery(".rmpostcode").show();
      jQuery(".altSwitch").hide();
    });

    jQuery("#radioupto").click(function()
    {
      jQuery(".between").hide();
      jQuery(".upto").show();
      jQuery("#tooltipAge").hide();

    });

    jQuery("#radiobetween").click(function()
    {
      jQuery(".between").show();
      jQuery(".upto").hide();
      jQuery("#tooltipAge").show();
    });
  });

  // colour and feature popups
  jQuery("#colour_opts").click(function()
  {
    positionEle(this,'srchColour',-200);
    return false;
  });
 
  jQuery("#feature_opts").click(function()
  {
    positionEle(this,'srchFeatures',-300);
    return false;
  });  
 
  jQuery("#clear_search").click(function()
  {
    var answer = confirm('Do you want to clear search panel ?');

    if (answer)
    {
      jQuery.getJSON("/utils/mvc/ajax_clear_results.php?"+new Date(), function(data)
      {
        jsonData = data;
        refresh_form_fields();
        UncheckAll('ftrFrm');
        UncheckAll('clrFrm');
        jQuery("ul.searchNav > li").toggleClass("current");
        jQuery(".altSwitch").toggle();
        jQuery("#basicSrch,.advSrch").toggle();
        toggled = 0;
        jQuery("#search_from_advanced_F").attr("value", "");

      });
      return false;
    }
  });    

  jQuery(".closeMenu").click(function()
  {
    jQuery(this).parent().parent().parent().toggle(); 
  });

  tooltip();

  /* tabnav mouseover change panels on homepage */

  jQuery("div#panelsL ul.tabNav a").mouseover(function()
  {
    jQuery("div#panelsL ul.tabNav li").removeClass("current");
    jQuery(this).parent().addClass("current");
    var panel = "div#panelsL div#"+jQuery(this).attr("class")+"Panel";
    jQuery("div#panelsL div.content").hide();
    jQuery(panel).show();
  });
 
});

/* end search panel */

/* that thing called love */

jQuery("select#love_manufacturer").change(function()
  {
    var maker = jQuery(this).attr("value");
    love_models(maker);
  });

jQuery("select#sms_maker_F").change(function()
{
   var maker = jQuery(this).attr("value");
	sms_models(maker);
});

function test_dealer()
{
	var vale;
	var lll ;
jQuery(document).ready(function() {
  jQuery("#dlr_form_phone").change(function () {
	  vale = jQuery("#dlr_form_phone").val();
	  lll = vale.length+1;
      if (lll > 10 )
	  {
	   if (validate_mobile_phone(vale) == 1)
       {  
		 jQuery("#sms_tick").replaceWith("<label><span style =\"width: 325px; text-align: left\">Sign up to receive free text updates of the latest special offers* </span><input type=\"checkbox\" name=\"sms_carfinder_tick_F\"></label>");
       }
	  }	
	 });
});

}


function love_models(maker)
{ 
  jQuery(".model_love_options").remove();
  jQuery("select#love_model option[value='ANY']").text("Loading...");
  //jQuery.get("../ajax-models-list.php?maker_F="+maker,function(data)
  var options = "man="+maker;
  jQuery.get("/jsonModBod?"+options, function(data)
  {
    var data_array = data.split("|");

    var models_array = data_array[0].split("\n");

    var model = models_array[0];
    for(i=0;i<models_array.length;i++)
    {
//      
        if(models_array[i].length > 0)
		{
        if(model == models_array[i])
        //if((jsonData != undefined && jsonData['model_F'] == models_array[i]) || model == models_array[i])
        {
         jQuery('select#love_model').append('<option value="'+models_array[i]+'" class="model_love_options" SELECTED>'+models_array[i]+'</option>');
        }
        else
        {
          jQuery('select#love_model').append('<option value="'+models_array[i]+'" class="model_love_options" >'+models_array[i]+'</option>');
       }
      }
    }

  });
}

function unSetDirect(url)
{
  jQuery.get("/unsetDirect", function(data)
  {
   window.location = url;
   return true;
  });
}

function show_feedback_link()
{
  jQuery.getJSON("feedback_link?"+new Date(), function(data)
  {
    if (data == 1)
    {
      window.open('http://dm1.contactatonce.co.uk/CaoClientContainer.aspx?MerchantId=14002&ProviderId=2041&PlacementId=2&OriginationUrl='+encodeURIComponent(location.href),'','resizable=yes,toolbar=no,menubar=no,location=no,scrollbars=no,status=no,height=400,width=600');
    }
    else
    {
      window.open("mailto:feedback@motors.co.uk");
    }
  });
}

function sms_models(maker)
{
  jQuery(".model_sms_options").remove();
  jQuery("select#sms_model_F option[value='ANY']").text("Loading...");

  var model =  jsonData['model_F'];
  var options = "man="+maker;
  jQuery.get("/jsonModBod?"+options, function(data)
  {
    var data_array = data.split("|");
    var models_array = data_array[0].split("\n");
    for(i=0;i<models_array.length;i++)
    {
     if(models_array[i].length > 0)
                {
        if(model == models_array[i])
        {
         jQuery('select#sms_model_F').append('<option value="'+models_array[i]+'" class="model_sms_options" SELECTED>'+models_array[i]+'</option>');
        }
        else
        {
          jQuery('select#sms_model_F').append('<option value="'+models_array[i]+'" class="model_sms_options" >'+models_array[i]+'</option>');
        }
      }
    }
  });
}

function sms_car_finder()
{
  var maker = jsonData['maker_F'];
  var options;

  jQuery(".man_options").remove();

  if (new_yn == 'Y')
  {
    options = 'N'
  }

   jQuery.get("/jsonMan?type="+options, function(data)
  {
    if (jsonData != undefined)
    {
      maker = jsonData['maker_F'];
    }

    var data_array = data.split("|");
    var man_array = data_array[0].split("\n");
   
    for(i=0;i<man_array.length;i++)
    {
      if(man_array[i].length > 0)
      {
        if(maker == man_array[i])
        {
          jQuery('select#sms_maker_F').append('<option value="'+man_array[i]+'" class="man_options" SELECTED>'+man_array[i]+'</option>');
        }
        else
        {
          jQuery('select#sms_maker_F').append('<option value="'+man_array[i]+'" class="man_options">'+man_array[i]+'</option>');
        }
      }
    }
  });

  sms_models(maker);

  var max_price1 = parseInt(jQuery("#min_price").val());
  var min_price = jQuery("#min_price").val();

  jQuery("#sms_min_price_F").find("option").each(function()
  {
     var value = jQuery(this).attr("value");

     if(jQuery("#min_price").val() == value)
     {
       jQuery(this).attr("selected", "selected");
     }

  });

  var max_price = jQuery("#max_price").val();

  jQuery("#sms_max_price_F").find("option").each(function()
  {
    var value = jQuery(this).attr("value");

    if(jQuery("#max_price").val() == value)
    {
     jQuery(this).attr("selected", "selected");
    }

    if (value  <= max_price1)
    {
      jQuery(this).addClass("hide");

    }

  });

  var sms_distance_F = jQuery("#distance").val();

  jQuery("#sms_distance_F").find("option").each(function()
  {
    var value = jQuery(this).attr("value");
  
    if(jQuery("#distance").val() == value)
    {
      jQuery(this).attr("selected", "selected");
    }
  });

  var post_code  = jQuery("#postcode").val();
  jQuery('#sms_postcode_F').val(post_code);
   
  var email_sms  = jQuery("#email_address").val();
  jQuery('#sms_email').val(email_sms) ;

  sms_max_price_options();

}

function sms_max_price_options()
{
  /* on change of min_price_F hide all max options that are less <= value of min */
  jQuery("select#sms_min_price_F").change(function()
  {
    var min_val = parseInt(jQuery(this).attr("value"));
    var update_max = '';

    if(current_max == '' || current_max <= min_val)
    {
      current_max = '';
      update_max = 1;
    }

    current_min = min_val;
    var i = 0;

    jQuery("#sms_max_price_F").find("option").each(function()
    {
      jQuery(this).removeClass("hide");
      var max_val = parseInt(jQuery(this).attr("value"));

      if(min_val >= max_val)
      {
        jQuery(this).addClass("hide");
      }
      else
      {
        if(i==0 && jQuery(this).attr("value") != "max" && current_max == '' && current_max < jQuery(this).attr("value"))
        {
          jQuery(this).attr("selected","selected");
          i = 1;

          if(update_max == 1)
          {
            current_max = jQuery(this).attr("value");
            update_max = 0;
          }
        }
      }
    });

  });

  jQuery("select#sms_max_price_F").change(function()
  {
    var max_val = parseInt(jQuery(this).attr("value"));

    if(current_min && current_min > max_val)
    {
      current_min = '';
    }

    current_max = max_val;

    jQuery("#sms_min_price_F").find("option").each(function()
    {
      var min_val = parseInt(jQuery(this).attr("value"));
      if(max_val == min_val && current_min == '' && current_min < jQuery(this).attr("value"))
      {
        jQuery(this).prev().attr("selected","selected")
      }
    });

  });
}




