var moduleProductFilters={filterOptions:null,xhr:null,isFiltersOpen:null,moduleContainer:$(".module-product-filters"),filtersPanel:$(".product-filters-panel"),showHideFiltersBtn:$(".product-filters-trigger"),applyFiltersBtn:$(".product-filters-submit-trigger"),filterForm:$(".product-filters-panel form"),tagContainer:$(".module-product-tags"),tagsButtons:$(".module-tag-buttons"),keywordField:$(".module-product-filters input[name='keyword']"),init:function(){moduleProductFilters.showHideFiltersBtn.click(moduleProductFilters.eventHandlers.toggleProductFiltersPanel);$(".close-product-filters-trigger").click(moduleProductFilters.eventHandlers.toggleProductFiltersPanel);$(".filter-title").click(moduleProductFilters.eventHandlers.openFilterType);moduleProductFilters.applyFiltersBtn.click(moduleProductFilters.eventHandlers.applyFilter)},eventHandlers:{toggleProductFiltersPanel:function(){moduleProductFilters.isFiltersOpen?moduleProductFilters.helpers.closeProductFiltersPanel():moduleProductFilters.helpers.openProductFiltersPanel()},openFilterType:function(){var n=$(this).parent(".filter-item");n.hasClass("open-filter")?n.removeClass("open-filter"):(moduleProductFilters.moduleContainer.find(".filter-item").removeClass("open-filter"),n.addClass("open-filter"))},selectFilter:function(){$(this).attr("value")!="alloptions"&&$(".product-filters-panel input[data-filter-name='"+$(this).attr("name")+"-alloptions']").prop("checked",!1);moduleProductFilters.helpers.enableApplyFiltersButton();moduleProductFilters.serverRequests.updateFilters(cartopia.global.helpers.serializeObject(moduleProductFilters.filterForm))},removeProductFilterTag:function(){var n=$(this).attr("data-tag-name");n==="keyword"?moduleProductFilters.helpers.updateKeywordSearch(""):$(".product-filters-panel input[data-filter-name='"+$(this).attr("data-tag-name")+"']").prop("checked",!1);moduleProductFilters.serverRequests.updateFilters(cartopia.global.helpers.serializeObject(moduleProductFilters.filterForm));typeof pageSearchResults!="undefined"&&pageSearchResults.serverRequests.performSearch()},applyFilter:function(n){n.preventDefault();enquire.register("screen and (max-width: 1024px)",{match:function(){moduleProductFilters.helpers.closeProductFiltersPanel()}});typeof pageSearchResults!="undefined"&&pageSearchResults.serverRequests.performSearch();moduleProductFilters.helpers.disableApplyFiltersButton()}},serverRequests:{updateFilters:function(n){moduleProductFilters.xhr!=null&&moduleProductFilters.xhr.readyState!=4&&moduleProductFilters.xhr.abort();moduleProductFilters.xhr=$.ajax({type:"GET",url:moduleProductFilters.filterForm.attr("action"),data:n,dataType:"json",global:!1,traditional:!0,cache:!1,timeout:1e4,success:function(n){n.error===!1&&moduleProductFilters.helpers.updatePanel(n.filters)}})}},helpers:{updateKeywordSearch:function(n){moduleProductFilters.keywordField.val(n);moduleProductFilters.helpers.updateTagPanel()},getKeywordSearch:function(){return moduleProductFilters.keywordField.val()},updatePanel:function(n){moduleProductFilters.filterOptions=n;moduleProductFilters.helpers.updateTagPanel();moduleProductFilters.helpers.updateFilters()},updateFilters:function(){moduleProductFilters.filterOptions!==null&&(moduleProductFilters.helpers.updateFilterPanel($(".module-product-filters .search-body-types-field"),"bodytype",moduleProductFilters.filterOptions.BodyTypes),moduleProductFilters.helpers.updateFilterPanel($(".module-product-filters .search-makes-field"),"make",moduleProductFilters.filterOptions.Makes),moduleProductFilters.helpers.updateFilterPanel($(".module-product-filters .search-models-field"),"model",moduleProductFilters.filterOptions.Models),moduleProductFilters.helpers.updateFilterPanel($(".module-product-filters .search-colours-field"),"colour",moduleProductFilters.filterOptions.Colours,!0),moduleProductFilters.helpers.updateFilterPanel($(".module-product-filters .search-locations-field"),"location",moduleProductFilters.filterOptions.Locations),moduleProductFilters.helpers.updateFilterPanel($(".module-product-filters .search-prices-field"),"price",moduleProductFilters.filterOptions.Prices))},updateFilterPanel:function(n,t,i,r){var u;if(n.length>0&&(n.html(""),i!==null)){for(u=0;u<i.length;u++){var f=i[u].Count!=null?"&nbsp;<span>("+i[u].Count+")<\/span>":"",e=i[u].Selected==!0?" checked='checked' ":" ",o=r===!0?" colour-"+i[u].Value:"";n.append("<label class='custom-checkbox-radio'><input type='checkbox'"+e+"name='"+t+"' value='"+i[u].Value+"' data-filter-name='"+t+"-"+i[u].Value+"'><span class='decorate "+o+"'><\/span>"+i[u].Name+f+"<\/label>")}n.find(".custom-checkbox-radio input").click(moduleProductFilters.eventHandlers.selectFilter)}},updateTagPanel:function(){moduleProductFilters.tagsButtons.html("");var n=moduleProductFilters.helpers.getKeywordSearch();n!==null&&n!==""&&moduleProductFilters.tagsButtons.append("<button type='button' class='remove-filter-tag' data-tag-name='keyword'>"+n+"<\/button>");moduleProductFilters.filterOptions!==null&&(moduleProductFilters.helpers.updateTagOptions("bodytype",moduleProductFilters.filterOptions.BodyTypes),moduleProductFilters.helpers.updateTagOptions("make",moduleProductFilters.filterOptions.Makes),moduleProductFilters.helpers.updateTagOptions("model",moduleProductFilters.filterOptions.Models),moduleProductFilters.helpers.updateTagOptions("colour",moduleProductFilters.filterOptions.Colours),moduleProductFilters.helpers.updateTagOptions("location",moduleProductFilters.filterOptions.Locations),moduleProductFilters.helpers.updateTagOptions("price",moduleProductFilters.filterOptions.Prices));moduleProductFilters.tagsButtons.find(".remove-filter-tag").click(moduleProductFilters.eventHandlers.removeProductFilterTag)},updateTagOptions:function(n,t){var r,i;if(t!==null)for(r=0;r<t.length;r++)i=t[r],i.Selected==!0&&i.Value!="alloptions"&&moduleProductFilters.tagsButtons.append("<button type='button' class='remove-filter-tag' data-tag-name='"+n+"-"+i.Value+"'>"+i.Name+"<\/button>")},openProductFiltersPanel:function(){moduleProductFilters.showHideFiltersBtn.html('<span class="icon-filter"><\/span> Hide Filters');$("body").addClass("open-product-filters-panel");TweenLite.set(moduleProductFilters.filtersPanel,{display:"none",opacity:"0",ease:SlowMo.easeInOut});TweenLite.to(moduleProductFilters.filtersPanel,cartopia.global.animationDuration,{display:"block",opacity:"1",ease:SlowMo.easeInOut});moduleProductFilters.isFiltersOpen=!0},closeProductFiltersPanel:function(){moduleProductFilters.showHideFiltersBtn.html('<span class="icon-filter"><\/span> Show filters');$("body").removeClass("open-product-filters-panel");TweenLite.set(moduleProductFilters.filtersPanel,{display:"block",opacity:"1",ease:SlowMo.easeInOut});TweenLite.to(moduleProductFilters.filtersPanel,cartopia.global.animationDuration,{display:"none",opacity:"0",ease:SlowMo.easeInOut});moduleProductFilters.isFiltersOpen=!1},enableApplyFiltersButton:function(){moduleProductFilters.applyFiltersBtn.prop("disabled",!1)},disableApplyFiltersButton:function(){moduleProductFilters.applyFiltersBtn.prop("disabled",!0)}}},moduleWatchlist={sourcePageType:{SEARCH:0,GOOD:1,WATCHLIST:2},init:function(n){switch(n){case moduleWatchlist.sourcePageType.SEARCH:$(".watchlist-trigger").click(moduleWatchlist.eventHandlers.searchPageClick);break;case moduleWatchlist.sourcePageType.GOOD:$(".watchlist-trigger").click(moduleWatchlist.eventHandlers.goodPageClick);break;case moduleWatchlist.sourcePageType.WATCHLIST:$(".watchlist-trigger").click(moduleWatchlist.eventHandlers.watchlistPageClick)}},eventHandlers:{searchPageClick:function(n){n.preventDefault();var t=$(this);t.hasClass("added")?moduleWatchlist.serverRequests.watchlistRemove(moduleWatchlist.sourcePageType.SEARCH,t):moduleWatchlist.serverRequests.watchlistAdd(moduleWatchlist.sourcePageType.SEARCH,t)},goodPageClick:function(n){n.preventDefault();var t=$(this);t.hasClass("added")?moduleWatchlist.serverRequests.watchlistRemove(moduleWatchlist.sourcePageType.GOOD,t):moduleWatchlist.serverRequests.watchlistAdd(moduleWatchlist.sourcePageType.GOOD,t)},watchlistPageClick:function(n){n.preventDefault();var t=$(this);t.hasClass("added")?moduleWatchlist.serverRequests.watchlistRemove(moduleWatchlist.sourcePageType.WATCHLIST,t):moduleWatchlist.serverRequests.watchlistAdd(moduleWatchlist.sourcePageType.WATCHLIST,t)}},serverRequests:{watchlistAdd:function(n,t){var i={goodId:t.data("goodid")};$.ajax({type:"POST",url:"/Client/WatchlistClient/WatchlistAdd",data:i,traditional:!0,cache:!1,timeout:3e4,success:function(i){moduleWatchlist.helpers.updateUi(n,!0,i,t)},error:function(){alert("An error occurred adding this good to your watchlist. Please try again.")}});moduleWatchlist.helpers.sendFBEvent(t.data("goodname"),t.data("goodid"))},watchlistRemove:function(n,t){var i={goodId:t.data("goodid")};$.ajax({type:"POST",url:"/Client/WatchlistClient/WatchlistRemove",data:i,traditional:!0,cache:!1,timeout:3e4,success:function(i){moduleWatchlist.helpers.updateUi(n,!1,i,t)},error:function(){alert("An error occurred removing this good from your watchlist. Please try again.")}})}},helpers:{sendFBEvent:function(n){typeof fbq!="undefined"&&fbq("track","AddToWishlist",{content_name:n})},updateUi:function(n,t,i,r){i.error===!0?alert(i.message):n==moduleWatchlist.sourcePageType.SEARCH?t?(r.addClass("added"),r.attr("title","Remove From Watchlist"),r.data("tooltip","Remove From Watchlist")):(r.removeClass("added"),r.attr("title","Add To Watchlist"),r.data("tooltip","Add To Watchlist")):n==moduleWatchlist.sourcePageType.GOOD?t?(r.addClass("added"),r.attr("title","Remove From Watchlist")):(r.removeClass("added"),r.attr("title","Add To Watchlist")):n==moduleWatchlist.sourcePageType.WATCHLIST&&pageWatchlist.serverRequests.performSearch()}}},pageSearchResults={currentpageno:1,searchcount:0,xhr:null,initialselections:null,iseditor:!1,init:function(n,t){pageSearchResults.initialselections=n;pageSearchResults.iseditor=t;pageSearchResults.eventHandlers.toggleFilterModulePosition();window.addEventListener("resize",cartopia.global.helpers.debounce(pageSearchResults.eventHandlers.toggleFilterModulePosition,250));window.onpopstate=function(n){pageSearchResults.eventHandlers.onStatePop(n)};$("select[name='sortorder']").change(pageSearchResults.eventHandlers.onSortByChange);$(".module-page-size a").click(pageSearchResults.eventHandlers.onPageSizeClick);$.isEmptyObject(window.history.state)?(moduleProductFilters.serverRequests.updateFilters(n),moduleProductFilters.helpers.updateKeywordSearch(n.keyword),pageSearchResults.initResults()):(pageSearchResults.helpers.updatePageSize(window.history.state.pagesize),moduleProductFilters.serverRequests.updateFilters(window.history.state),pageSearchResults.serverRequests.performSearch(window.history.state,!1,!1,!1))},initResults:function(){$(".module-pagination a").click(pageSearchResults.eventHandlers.onPageNoClick);moduleWatchlist.init(moduleWatchlist.sourcePageType.SEARCH);$(".module-product-block-grid .lightbox-ajax-trigger").click(moduleLightbox.eventHandlers.overlayAjax);pageSearchResults.helpers.hideloader();$("[data-tooltip]").each(function(){$(this).qtip("destroy")});$("[data-tooltip]").qtip({content:{attr:"data-tooltip"},position:{at:"top center",my:"bottom center",adjust:{y:-10}},style:{tip:{width:14,height:7}}})},eventHandlers:{onSortByChange:function(){var n=$(this);$("select[name='sortorder']").each(function(){$(this).val(n.val());$(this)[0].sumo.reload()});pageSearchResults.serverRequests.performSearch(null,!0,!0,!1)},onPageSizeClick:function(n){n.preventDefault();var t=$(this);pageSearchResults.helpers.updatePageSize(t.attr("data-val"));pageSearchResults.serverRequests.performSearch(null,!0,!0,!1)},onPageNoClick:function(n){n.preventDefault();var t=$(this).attr("data-val");t=="-1"?pageSearchResults.currentpageno--:t=="+1"?pageSearchResults.currentpageno++:pageSearchResults.currentpageno=t;pageSearchResults.serverRequests.performSearch(null,!1,!0,!1)},onStatePop:function(){moduleProductFilters.serverRequests.updateFilters($.isEmptyObject(window.history.state)?pageSearchResults.initialselections:window.history.state);pageSearchResults.serverRequests.performSearch($.isEmptyObject(window.history.state)?pageSearchResults.initialselections:window.history.state,!1,!1,!1)},toggleFilterModulePosition:function(){var n=$(".module-product-filters"),t=$(".section-header .column:first-of-type");enquire.register("screen and (min-width: 1024px)",{match:function(){t.append(n)},unmatch:function(){t.prepend(n)}})}},serverRequests:{performSearch:function(n,t,i,r){var u=null;pageSearchResults.xhr!=null&&pageSearchResults.xhr.readyState!=4&&pageSearchResults.xhr.abort();t!==!1&&(pageSearchResults.currentpageno=1);$.isEmptyObject(n)&&(n=cartopia.global.helpers.serializeObject(moduleProductFilters.filterForm),n.sortorder=$("select[name='sortorder']:first").val(),n.pagesize=$(".module-page-size a.page-size-active:first").text(),n.pageno=pageSearchResults.currentpageno);r!==!1&&pageSearchResults.helpers.sendFBEvent(n);pageSearchResults.xhr=$.ajax({type:"GET",url:"/Client/SearchClient/Search",data:n,dataType:"json",global:!0,traditional:!0,cache:!1,timeout:3e4,beforeSend:function(){u=setTimeout(function(){pageSearchResults.helpers.showloader()},500)},success:function(t){t.error===!1&&($("#totalcount").text(t.totalfound),$(".module-product-block-grid").html(t.resultcontent),$(".module-pagination").html(t.paginationcontent),pageSearchResults.initResults(),clearTimeout(u),i!==!1&&(pageSearchResults.iseditor===!0?window.history.pushState(n,document.title,"?"+$.param(n)):window.history.replaceState(n,document.title)))}})}},helpers:{sendFBEvent:function(n){typeof fbq!="undefined"&&(pageSearchResults.searchcount=pageSearchResults.searchcount+1,n.num=pageSearchResults.searchcount,fbq("track","Search",{search_string:JSON.stringify(n)}))},updatePageSize:function(n){$(".module-page-size a").removeClass("page-size-active");$(".module-page-size a[data-val='"+n+"']").addClass("page-size-active")},showloader:function(){$(".main").addClass("show-loading-module-search-results");$(".main").find(".module-loading").removeClass("hide-lm")},hideloader:function(){$(".main").removeClass("show-loading-module-search-results");$(".main").find(".module-loading").addClass("hide-lm")}}}