var breadCrumbsContainer;var breadCrumbsArea;var searchResults;var dimValSelectionsQueue;var navigation;var bannerParams;$(document).ready(function(){breadCrumbsArea=$("#breadcrumbArea");breadCrumbsContainer=new BreadCrumbsContainer({breadCrumbMaxChars:28,container:breadCrumbsArea,onAddBreadCrumb:function(){if(breadCrumbsContainer.size()==1){breadCrumbsArea.show();}},onRemoveBreadCrumb:function(){if(breadCrumbsContainer.size()==0){breadCrumbsArea.hide();searchResults.nParam="0";}else{searchResults.nParam=breadCrumbsContainer.getNParam();}if(yearDimensionNParam.length==0){searchResults.readYearFromBrowseLinkUrl=false;}},refreshNavigation:function(){searchResults.modifiedUpdateSearchResults();}});$("#clearBreadCrumbs").click(function(){searchResults.clearAllSelections();searchResults.readYearFromBrowseLinkUrl=false;return false;});searchResults=new SearchResults({resultsContainer:$("#search-results-wrapper"),breadCrumbsContainer:breadCrumbsContainer});dimValSelectionsQueue=new DimValSelectionsQueue({searchResults:searchResults,onAddFirstSelection:function(){searchResults.block();var A=$("#accordionMenu li:has(a.open)");if(A.length==1){A.find("button.updateButton").show();}},onRemoveLastSelection:function(){searchResults.unblock();var A=$("#accordionMenu li:has(button.updateButton:visible)");if(A.length==1){A.find("button.updateButton").hide();}}});$("#btnKeywordSearch").click(function(){searchResults.addKeywords($("#keywordSearch").val().trim());});initializeNavigation();initializeAccordion(true);$(".navBlock").click(function(){if(!isAccordionDrawerOpen(this.id)){openAccordionDrawer(this.id);}$("#temp-left-results-skyscraper").css("top","-50001px").css("left","-50001px");});$(".updateButton").click(function(){$("#updateResults").click();});loadCounter(true);});function GenericCheckboxDimension(D){var B=D.dimVals;var G=D.checkboxesContainer;var F=D.selectDimVal;var C=D.deSelectDimVal;var A=function(I){return"<p><input type='checkbox' id='"+I.id+"'"+(I.selected?" checked":"")+" name='"+I.name+"' class='"+I.name+"'/><label for='"+I.id+"'>"+I.name+"<span class='numAdverts'>("+formatNumber(I.count)+")</span></label></p>";};var H=function(J){var I;$(B).each(function(){if(this.id==J){I=this;return false;}});return I;};var E=function(){G.find(":checkbox").click(function(){var I=H(this.id);I.selected=this.checked;dimValSelectionsQueue.queueGenericDimVal(I);});};this.drawCheckboxes=function(){var I="";$(B).each(function(){I+=A(this);});G.html(I);E();};}function DimensionDrawer(C){this.drawerId=C.drawerId;this.dimensionName=C.dimensionName;var B=C.refreshRefinements;var D=null;var A=null;this.isUpToDate=function(){var I=false;if(A!=null){var G=getCurrentDimensionRefinementsUrl(this.dimensionName);if(A==G){I=true;}else{if(A.length==G.length){var L=A.split("?")[1].split("&");var J=G.split("?")[1].split("&");if(L.length==J.length){var H;var M;var K;for(var F=0;F<L.length;F++){H=false;for(var E=0;E<J.length;E++){if(L[F]==J[E]){H=true;break;}if(L[F].indexOf("NParam=")>0&&J[F].indexOf("NParam=")>0){M=L[F].split("=");K=J[F].split("=");if(M[0]==K[0]&&areNParamsEquivalent(M[1],K[1])){H=true;break;}}}if(!H){I=false;break;}}if(H){I=true;}}}}}return I;};this.update=function(){var E=this;if(!this.isUpToDate()){executeAjaxRequest(getCurrentDimensionRefinementsUrl(this.dimensionName),"json",function(F){B(F);E.setNParam(getCurrentDimensionNParam(this.dimensionName));});}};this.setNParam=function(E){D=E;A=getCurrentDimensionRefinementsUrl(this.dimensionName,D);};this.addDimValToNParam=function(E){this.setNParam(addDimValToNParam(D,E));};this.addMakeModelSelectionsToNParam=function(E){this.setNParam(addMakeModelSelectionsToNParam(D,E));};this.removeDimValFromNParam=function(E){this.setNParam(removeDimValFromNParam(D,E));};this.removeMakeModelSelectionsFromNParam=function(E){this.setNParam(removeMakeModelSelectionsFromNParam(D,E));};}function Navigation(){var A=[];this.addDimensionDrawer=function(B){A[A.length]=B;};this.getDimensionDrawer=function(B){var D;for(var C=0;C<A.length&&!D;C++){if(A[C].drawerId==B){D=A[C];}}return D;};this.getOpenDrawer=function(){var C;var B=$("#accordionMenu li:has(a.open)");if(B.length>0){C=this.getDimensionDrawer(B.find("a.navBlock").attr("id"));}return C;};}function initializeNavigation(){navigation=new Navigation();navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"makesOnly",dimensionName:"make",refreshRefinements:function(B){var C=$("#makes");var E;var A=B.refinements.Make;if(A){hideNoRemainingRefinementsOverlay(C);var D=new GenericCheckboxDimension({dimVals:A,checkboxesContainer:C});D.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(C);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"bodyType",dimensionName:"bodyType",refreshRefinements:function(B){var D=$("#bodyTypes");var C;var E=B.refinements["Body Type"];if(E){hideNoRemainingRefinementsOverlay(D);var A=new GenericCheckboxDimension({dimVals:E,checkboxesContainer:D});A.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(D);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"fuelType",dimensionName:"fuelType",refreshRefinements:function(B){var A=$("#fuelTypes");var D=B.refinements["Fuel Type"];if(D){hideNoRemainingRefinementsOverlay(A);var C=new GenericCheckboxDimension({dimVals:D,checkboxesContainer:A});C.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(A);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"transmission",dimensionName:"transmission",refreshRefinements:function(B){var D=$("#transmissionTypes");var A=B.refinements["Transmission"];if(A){hideNoRemainingRefinementsOverlay(D);var C=new GenericCheckboxDimension({dimVals:A,checkboxesContainer:D});C.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(D);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"location",dimensionName:"county",refreshRefinements:function(D){var A=$("#counties");var C=D.refinements["County"];if(C){hideNoRemainingRefinementsOverlay(A);var B=new GenericCheckboxDimension({dimVals:C,checkboxesContainer:A});B.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(A);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"colour",dimensionName:"colour",refreshRefinements:function(A){var C=$("#colours");var D=A.refinements["Colour"];if(D){hideNoRemainingRefinementsOverlay(C);var B=new GenericCheckboxDimension({dimVals:D,checkboxesContainer:C});B.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(C);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"category",dimensionName:"category",refreshRefinements:function(B){var A=$("#categories");var C=B.refinements["Category"];if(C){hideNoRemainingRefinementsOverlay(A);var D=new GenericCheckboxDimension({dimVals:C,checkboxesContainer:A});D.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(A);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"doors",dimensionName:"quantityOfDoors",refreshRefinements:function(D){var C=$("#quantitiesOfDoors");var B=D.refinements["Quantity of Doors"];if(B){hideNoRemainingRefinementsOverlay(C);var A=new GenericCheckboxDimension({dimVals:B,checkboxesContainer:C});A.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(C);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"sellerType",dimensionName:"sellerType",refreshRefinements:function(A){var B=$("#sellerTypes");var C=A.refinements["Seller Type"];if(C){hideNoRemainingRefinementsOverlay(B);var D=new GenericCheckboxDimension({dimVals:C,checkboxesContainer:B});D.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(B);}}}));navigation.addDimensionDrawer(new DimensionDrawer({drawerId:"vehicleType",dimensionName:"vehicleType",refreshRefinements:function(B){var C=$("#vehicleTypes");var D=B.refinements["Vehicle Type"];if(D){hideNoRemainingRefinementsOverlay(C);var A=new GenericCheckboxDimension({dimVals:D,checkboxesContainer:C});A.drawCheckboxes();}else{showNoRemainingRefinementsOverlay(C);}}}));}function SearchResults(D){var E=D.resultsContainer;var B=D.breadCrumbsContainer;var C=false;var F=new RegExp('jQuery[0-9]*="[0-9]"*',"g");this.nParam;this.sortKey;this.keywords;this.keywordSelectionIndex;this.view;this.numberOfAdvertsPerPage;this.readYearFromBrowseLinkUrl=true;this.addDimValToNParam=function(G){this.nParam=addDimValToNParam(this.nParam,G);};this.addMakeModelSelectionsToNParam=function(G){this.nParam=addMakeModelSelectionsToNParam(this.nParam,G);};this.removeDimValFromNParam=function(G){this.nParam=removeDimValFromNParam(this.nParam,G);};this.removeMakeModelSelectionsFromNParam=function(G){this.nParam=removeMakeModelSelectionsFromNParam(this.nParam,G);};var A=function(G){$("#stopNum").html(G);digit=0;n=numbs[digit];updateCounter(0);};this.block=function(){if(!C){var H=$("#makesModelsDrawer .refinementContainer")[0];if(H){var G=H.scrollTop;}E.block({message:null,overlayCSS:{backgroundColor:"#FFF",opacity:"0.6"}});if(H&&H.scrollTop==0&&G!=0){H.scrollTop=G;}this.displayUpdateChoicesOverlay();B.lock();C=true;}};this.unblock=function(){if(C){$.modal.close();$("#updateResults").unbind("click");$("#cancelChoices").unbind("click");E.unblock();B.unlock();C=false;}};this.displayUpdateChoicesOverlay=function(){var H=$("#makesModelsDrawer .refinementContainer")[0];if(H){var G=H.scrollTop;}$("#updateChoices").modal({onOpen:function(I){I.overlay.show();I.container.show();I.data.show();I.overlay.css({height:0,width:0});if(I.iframe){I.iframe.css({height:0,width:0});}}});if(H&&H.scrollTop==0&&G!=0){H.scrollTop=G;}$("#updateResults").click(function(){$.modal.close();searchResults.modifiedUpdateSearchResults();});};this.isSearchResultsHtmlEqualTo=function(I){var H=E.html();var G=$("div#temp-fourth-result-banner").filter(":first").html();var K=$("div#temp-eighth-result-banner").filter(":first").html();var J=false;if(H==I){J=true;}else{H=H.replace(F,"");I=I.replace(F,"");H=H.replace(G,"");I=I.replace(G,"");H=H.replace(K,"");I=I.replace(K,"");if(H==I){J=true;}}return J;};this.updateResultsHtml=function(G){if(!this.isSearchResultsHtmlEqualTo(G)){E.html(G);var H=E.find("span[name=searchResultsTotalAdverts]:first").text();A(H.replace(/,/g,""));}};this.getResultsHtml=function(){return E.html();};this.getQueryString=function(G){var H="nParam="+encodeURIComponent(this.nParam)+"&sortby="+this.sortKey+"&channel="+navigationConfig.channel+"&currency="+getCurrency()+"&searchResultsView="+this.view;if(this.numberOfAdvertsPerPage){H+="&maxrows="+this.numberOfAdvertsPerPage;}if(G&&G!=null){H+="&"+G;}if(this.keywords!=""){H+="&keywords="+encodeURIComponent(this.keywords)+"&keywordSelectionIndex="+this.keywordSelectionIndex;}if(dealerId){H+="&dealerid="+dealerId;}return H;};this.updateSearchResults=function(G){if(dimValSelectionsQueue.hasPendingSelections()){dimValSelectionsQueue.executePendingSelections();}if(dealerId){setDealerLandingPageUrl(dealerName,this.getQueryString(G));}else{setMySearchResultsUrl(this.getQueryString(G),navigationConfig.channel);}$.history.load(this.getQueryString(G));};this.modifiedUpdateSearchResults=function(G){var H=this.fetchYearFromUrl();var J="";var I="year=";if(G){J="page="+G;I="&year=";}if(H&&this.readYearFromBrowseLinkUrl){J+=I+H;}this.updateSearchResults(J);};this.sortBy=function(G){this.sortKey=G;this.modifiedUpdateSearchResults();};this.switchToPage=function(G){this.modifiedUpdateSearchResults(G);};this.setView=function(G){this.view=G;$.cookie("SearchResultsView",G,{path:"/",expires:365});};this.showPhotos=function(){this.numberOfAdvertsPerPage=undefined;this.view="THUMBNAIL";displayMyCompareListCount(navigationConfig.site,navigationConfig.channel);this.modifiedUpdateSearchResults();};this.hidePhotos=function(){this.numberOfAdvertsPerPage=undefined;this.view="SPREADSHEET";displayMyCompareListCount(navigationConfig.site,navigationConfig.channel);this.modifiedUpdateSearchResults();};this.setNumberOfAdvertsPerPage=function(G){this.numberOfAdvertsPerPage=G;this.modifiedUpdateSearchResults();};this.isBlocked=function(){return C;};this.addKeywords=function(G){this.keywords=G;this.keywordSelectionIndex=B.size();if(B.hasKeywords()){this.keywordSelectionIndex--;}this.modifiedUpdateSearchResults();};this.removeKeywords=function(){this.keywords="";this.keywordSelectionIndex=0;this.modifiedUpdateSearchResults();};this.clearAllSelections=function(){this.nParam="0";this.keywords="";this.keywordSelectionIndex=0;this.updateSearchResults();};this.initialiseClickableSearchRows=function(){var G=this;var H=$("ul.search-result,ul.search-result-tn,div#featured-listing");H.click(function(L){var I=$(this).find("li.vehicle-make-model a");var M=$(L.target);if(M.is("div#featured-listing")||M.parents("div#featured-listing").length>0){var K=$(this).find("li.featured-content span.enhanced-flag").is(":visible");var O;if(M.is("li.slideshow-link")||M.parents("li.slideshow-link").length>0){O=true;}else{O=false;}if(K){G.trackEnhancedFeaturedListingClick(I[0],O);}else{G.trackFeaturedListingClick(I[0],O);}}else{if(M.is("li[name=sponsored-listing]")||M.parents("li[name=sponsored-listing]").length>0){var N=$(this).find("li.vehicle-make-model span.enhanced-flag").is(":visible");if(N){G.trackEnhancedSponsoredListingClick(I[0]);}else{G.trackSponsoredListingClick(I[0]);}}}if(!M.is("a")&&M.parents("a").length==0){var J=I.attr("href");setTimeout(function(){window.location=J;},500);}});H.hover(function(){$(this).addClass("search-hover");},function(){$(this).removeClass("search-hover");});};this.isThumbnailView=function(){return this.view=="THUMBNAIL";};this.trackFeaturedListingClick=function(G,J){var H=s_gi(s_account);H.linkTrackVars="prop42,prop43,prop44,prop45";H.prop42=H.pageName;H.prop43="featured_listing,vehicle_details";H.prop44=H.prop42+"|"+H.prop43;var I;if(this.isThumbnailView()){if(J){I="FEATLIST_TBSR_VSS";}else{I="FEATLIST_TBSR_CLICK";}}else{if(J){I="FEATLIST_SSSR_VSS";}else{I="FEATLIST_SSSR_CLICK";}}H.prop45=I;H.tl(G,"o","featured_listing:vehicle_details");H.prop42="";H.prop43="";H.prop44="";H.prop45="";};this.trackEnhancedFeaturedListingClick=function(G,J){var H=s_gi(s_account);H.linkTrackVars="prop42,prop43,prop44,prop45";H.prop42=H.pageName;H.prop43="enhanced_featured_listing,vehicle_details";H.prop44=H.prop42+"|"+H.prop43;var I;if(this.isThumbnailView()){if(J){I="ENHANCED_FEATLIST_TBSR_VSS";}else{I="ENHANCED_FEATLIST_TBSR_CLICK";}}else{if(J){I="ENHANCED_FEATLIST_SSSR_VSS";}else{I="ENHANCED_FEATLIST_SSSR_CLICK";}}H.prop45=I;H.tl(G,"o","enhanced_featured_listing:vehicle_details");H.prop42="";H.prop43="";H.prop44="";H.prop45="";};this.trackSponsoredListingClick=function(G){var H=s_gi(s_account);H.linkTrackVars="prop42,prop43,prop44,prop45";H.prop42=H.pageName;H.prop43="sponsored_listing,vehicle_details";H.prop44=H.prop42+"|"+H.prop43;var I;if(this.isThumbnailView()){I="SPONLIST_TBSR_CLICK";}else{I="SPONLIST_SSSR_CLICK";}H.prop45=I;H.tl(G,"o","sponsored_listing:vehicle_details");H.prop42="";H.prop43="";H.prop44="";H.prop45="";};this.trackEnhancedSponsoredListingClick=function(G){var H=s_gi(s_account);H.linkTrackVars="prop42,prop43,prop44,prop45";H.prop42=H.pageName;H.prop43="enhanced_sponsored_listing,vehicle_details";H.prop44=H.prop42+"|"+H.prop43;var I;if(this.isThumbnailView()){I="ENHANCED_SPONLIST_TBSR_CLICK";}else{I="ENHANCED_SPONLIST_SSSR_CLICK";}H.prop45=I;H.tl(G,"o","enhanced_sponsored_listing:vehicle_details");H.prop42="";H.prop43="";H.prop44="";H.prop45="";};this.fetchYearFromUrl=function(){var H=window.location;var J=""+H;var I=null;var G=J.indexOf("used-cars");if(G>0&&J.indexOf("?")>0){var K=J.substring(G).split("/");if(K.length>4){I=K[5].split("?")[0];}else{I=K[3].split("?")[0];}}G=J.indexOf("&year=");if(G>0){var K=J.substring(G).split("&");I=K[1].split("=")[1];}return I;};}function loadSearchResults(B){var I=$("#historySaver textarea#cache");var A;if(!B){var G=window.location.search.substring(1);if(G.indexOf("nParam")<0){if(G.length>0&&G.charAt(G.length-1)!="&"){G+="&";}G+="nParam="+searchResults.nParam;}if(dealerId){G+="&dealerid="+dealerId;}var H=I.val();if(H!=""){B=G;}else{A=[];A[0]={queryString:G,searchResultsHtml:searchResults.getResultsHtml()};I.val($.toJSON(A));}}if(B){if(dimValSelectionsQueue.hasPendingSelections()){dimValSelectionsQueue.clearPendingSelections();}var E=I.val();var F;if(E!=""){A=$.parseJSON(I.val());for(var D=0;D<A.length;D++){if(A[D].queryString==B){F=A[D].searchResultsHtml;}}}else{A=[];}if(F){searchResults.updateResultsHtml(F);}else{var C=navigationConfig.updateSearchResultsUrl+"?"+B;executeAjaxRequest(C,"html",function(K){searchResults.updateResultsHtml(K);var J=1;if(A.length>=J){for(var L=0;L<A.length;L++){if(L+1==A.length){A[L]={queryString:B,searchResultsHtml:K};}else{A[L]=A[L+1];}}}I.val($.toJSON(A));});}displayCompareLinksOnLoad(navigationConfig.site,navigationConfig.channel);setTimeout("relocateBanners()",1000);}}function checkCR(B){if(B.keyCode!=13){return ;}var A=$("#btnKeywordSearch");if(A!=null){A.click();}return false;}function initializeAccordion(A){$("#accordionMenu").accordion({header:"a.navBlock",active:false,selectedClass:"open",clearStyle:true,alwaysOpen:A,autoHeight:true});}function closeOpenAccordionDrawer(){var A=$("#accordionMenu a.open");if(A.length==1){A.removeClass("open");initializeAccordion(false);$("#accordionMenu").accordion("activate",-1);initializeAccordion(true);}}function isAccordionDrawerOpen(A){return $("#"+A).hasClass("open");}function openAccordionDrawer(A){if(dimValSelectionsQueue.hasPendingSelections()){searchResults.modifiedUpdateSearchResults();}else{navigation.getDimensionDrawer(A).update();}setTimeout("relocateBanners()",500);}function getCurrentDimensionRefinementsUrl(D,A){var B=navigationConfig.currentDimensionRefinementsUrl+"?excludeCurrentDimensionNParam="+encodeURIComponent(getExcludeCurrentDimensionNParam(D));if(D){B+="&currentDimension="+D+"&currentDimensionNParam=";if(A){B+=encodeURIComponent(A);}else{B+=encodeURIComponent(getCurrentDimensionNParam(D));}}var C=searchResults.keywords;if(C.length>0){B+="&keywords="+encodeURIComponent(C);}if(dealerId){B+="&dealerid="+dealerId;}B+="&currency="+navigationConfig.currency+"&channel="+navigationConfig.channel+"&jsoncallback=?";return B;}function showNoRemainingRefinementsOverlay(B){if(!B.next().hasClass("noRefinementsMsg")){var A="<div class='noRefinementsMsg' style='height:auto;'>"+"None Available<span>Please widen your search for more options</span></div>";B.hide();B.after(A);}}function hideNoRemainingRefinementsOverlay(A){if(A.next().hasClass("noRefinementsMsg")){A.next().remove();A.show();}}
