myDeco.postcode={init:function(){var a=$.cookie("geolocation");$("#postcode").each(function(){var b=$(this);if(a){b.defaultValue(a)}b.parents("form").submit(function(c){$.cookie("geolocation",b.defaultValue(),{expires:60})})})}};$(myDeco.postcode.init.bind(myDeco.postcode.init));myDeco.searchControlsDispatcher={_controls:{},_baseParams:{},_activeAjaxCalls:0,_ajaxLoader:null,_historyData:null,_curfacets:[],_globalClear:null,_contentPos:0,_clearButtons:[],_permaLink:null,onFailure:function(a,c,b){console.log(c)},onSuccess:function(b,c){var a=myDeco.searchControlsDispatcher;if(a._activeAjaxCalls==this.call_id){$.each(a._curfacets||[],function(){if(!b[this]){b[this]=""}});$.each(a._controls,function(d,e){if(b[d]){e.updateView(b[d])}});myDeco.shortlist.updateUrls();a._ajaxLoader.addClass("ajax-loader-hidden");if($(document).scrollTop()>a._contentPos){$(document).scrollTop(a._contentPos)}}},_historyChanged:function(c,b){var a=this;this._historyData=typeof(b)=="string"?b.toQueryParams():b;$.each(this._controls,function(d,e){e.setData(a._historyData)});this._dataChanged(null,this._historyData||{},true)},_clearToggled:function(b){var a=this;this._globalClear.hide();this._clearButtons.each(function(){if($(this).css("display")!="none"){a._globalClear.show();return false}})},_dataChanged:function(d,f,c){this._ajaxLoader.removeClass("ajax-loader-hidden");var b={};$.extend(b,this._baseParams,f||this._collectData());if(d){if(!d.isPagination){b.startrank=0;b.rtype="refine"}else{b.curfacets=[];b.rtype="paginate"}}b.prefdb=b.prefdb||"product";if(myDeco.isHighend&&b.prefdb=="product"){b.prefdb="product_designbar"}var a=$.param(b);if(!c){$.history.add(a)}this._curfacets=b.curfacets;$.ajax({url:"ajax/",data:a,dataType:"json",call_id:++this._activeAjaxCalls,error:this.onFailure.bind(self),success:this.onSuccess});delete b.curfacets;if(b.startrank=="0"){delete b.startrank}if(b.view=="details"&&b.count==20||b.view!="details"&&b.count==42){delete b.count}if(b.view=="details"){delete b.view}if(b.rtype=="refine"){delete b.rtype}this._permaLink.attr("href",myDeco.urls.search+"?"+$.param(b))},_collectData:function(){var a={curfacets:[]};$.each(this._controls,function(c,b){a=$.extend(a,b.getData())});return a},_clearAll:function(a){a.stop();$.each(this._controls,function(c,b){b.clear()});this._globalClear.hide();this._dataChanged(null)},initControls:function(b,c){var a=this,d=b.each(function(){var g=$.extend({_control:$(this),getData:function(){return{}},attachEvents:function(){},updateView:function(e){this._control[0].innerHTML=e;this.attachEvents()},setData:function(e){},_init:function(){throw"You must redefine _init method for search controls!"},clear:function(){}},c);try{a._controls[g._init()]=g;g.attachEvents();if(a._historyData){g.setData(a._historyData)}}catch(f){console.warn(f)}});return d},init:function(){var a=this;$("body").bind("datachanged.facets",this._dataChanged.bind(this)).bind("cleartoggled.facets",this._clearToggled.bind(this)).history(this._historyChanged.bind(this));a._baseParams=location.href.toQueryParams();this._ajaxLoader=$("#search-results .ajax-loader");this._globalClear=$("#main-reset").click(this._clearAll.bindAsEventListener(this));this._clearButtons=$("#left-navigation").find(".search-refiner-reset");this._contentPos=$("#content-inner").offset().top;$(".choose-more").show();this._permaLink=$("#search-permalink");var b=$.history.getCurrent();if(b){b=b.toQueryParams();$.each(b,function(d,e){if(d.match(/^facet_/)){b.facet=$.merge(e,b.facet||[]);delete b[d]}else{var f=d.match(/^filter_(.*)/);if(f){b.filter=$.merge([f[1]+",1"],b.filter||[]);delete b[d]}}});this._historyChanged(null,b)}else{var c={};if(this._baseParams.facet||this._baseParams.filter){this._historyData={facet:this._baseParams.facet,filter:this._baseParams.filter};delete this._baseParams.facet;delete this._baseParams.filter}}}};$(myDeco.searchControlsDispatcher.init.bind(myDeco.searchControlsDispatcher));$(function(){myDeco.searchControlsDispatcher.initControls($("#paginator-main"),{_startrank:0,_paginators:null,_searchResults:null,getData:function(){return{startrank:this._startrank}},updateView:function(a){this._searchResults.html(a[0]);this._paginators.html(a[1])},_init:function(){var a=this;this._paginators=$(".paginator").click(function(c){c.stop();var b=c.findElement("a");if(b.length==0){return}a._startrank=b.attr("href").getURIParam("startrank").reduce()||0;$("body").trigger({type:"datachanged.facets",isPagination:true})});this._searchResults=$(".search-results-showing");return"paginator"}})});$(function(){myDeco.searchControlsDispatcher.initControls($("#left-navigation"),{_chooseMorePopup:null,_selectedItems:null,_controls:null,_requiredFacets:[],_facetInPopup:null,_value2id:function(a){return a.replace(/[^0-9A-Za-z-_:]/,"_")},_clearImageColour:function(){$("#image_colour").find("a").removeClass("list-scrollable-selected")},getData:function(){var a={curfacets:this._requiredFacets};if(this._selectedItems.length){a.facet=this._selectedItems}return a},setData:function(b){var a=this,c=b.facet||[];if(!$.isArray(c)){c=[c]}this._clearImageColour();$.each(c,function(d,e){if(e.indexOf("image_colour")!=-1){$("#"+a._value2id(e)).addClass("list-scrollable-selected")}});this._selectedItems=c},updateView:function(c){var b=this,a=true;this._controls.each(function(){var f=c[this.id],d=$(this),e=false;if(f==undefined){return true}if(this.id=="image_colour"){e=true;d.find("a").each(function(){var g=this.href.getURIParam("facet").pop();if(f[g]){$(this).removeClass("list-scrollable-disabled");e=false}else{$(this).addClass("list-scrollable-disabled")}})}else{if(this.id!="distance"){this.innerHTML=f}}b._toggleClearButton(d.data("clear"),this.innerHTML.indexOf("list-scrollable-selected")>=0);if((typeof f=="string"&&$.trim(f)==""&&this.id!="distance")||e){d.closest("li").hide()}else{d.closest("li").show()}});$("body").trigger("cleartoggled.facets")},_toggleClearButton:function(c,a,b){if(a){c.show()}else{c.hide()}if(b){$("body").trigger("cleartoggled.facets")}},clear:function(a){this._chooseMorePopup.hide();if(a){a.stop();var b=$(a.target).parent().find(".list-scrollable").attr("id");if(b=="image_colour"){this._clearImageColour()}this._selectedItems=$.grep(this._selectedItems,function(d,c){return d.indexOf(b)==-1});$("body").trigger("datachanged.facets")}else{this._clearImageColour();this._selectedItems=[]}},_popupSubmitHandler:function(b){var a=this;this._selectedItems=$.grep(this._selectedItems,function(d,c){return d.indexOf(a._facetInPopup)==-1});this._chooseMorePopup.find("input:checked").each(function(){a._selectedItems.push(this.value)});this._chooseMorePopup.hide();$("body").trigger("datachanged.facets");return false},_showMore:function(g){var b=$(g.target),f=b.offset(),j=this,d=myDeco.searchControlsDispatcher._collectData(),i=myDeco.searchControlsDispatcher._baseParams,k=i.db||i.prefdb||"product",c=g.target.href.getURIParam("facet").shift(),h=g.target.href.getURIParam("query").reduce();if(myDeco.isHighend&&k=="product"){k="product_designbar"}if(c){if(d.facet==undefined){d.facet=[c]}else{if($.inArray(c,d.facet)==-1){d.facet.push(c)}}}if(h){d.query=h}if(i.simid){d.simid=i.simid}delete d.curfacets;delete d.view;delete d.sort,delete d.startrank;var a=$.param($.extend(d,{count:0,query:i.query,requirefacet:this._facetInPopup,expandfacets:"1",db:k}));$.ajax({url:"/ws/search/search",data:a,dataType:"json",success:function(l){var m=l.results[k].facets;if(!$.isArray(m)||m.length==0||!$.isArray(m[0])||!$.isArray(m[0][1])){return}var e=j._chooseMorePopup.find("ul").html("");j._chooseMorePopup.find("#choose-more-type").html("Select "+$("#"+j._facetInPopup).parents("li.search-refiner-item:first").find("strong").html().toLowerCase());if(m[0][1].length>18){e.addClass("scroller-refiners")}else{e.removeClass("scroller-refiners")}$.each(m[0][1],function(n,o){e.append($(["<li ",(n%2==1?'class="second"':""),">",'<input type="checkbox" id="morevalue',n,'" value="',o[2][0],'" ',($.inArray(o[2][0],j._selectedItems)!=-1?'checked="checked"':""),'/><label for="morevalue',n,'">',o[0],"</label></li>"].join("")))});j._chooseMorePopup.css({left:f.left+b.outerWidth()+20+"px",top:f.top-65+"px"}).show().find("a.send").one("click",j._popupSubmitHandler.bindAsEventListener(j))}})},_init:function(){this._selectedItems=[];var a=this;this._chooseMorePopup=$(".choose-more-popup").find("a.close").click(function(b){b.stop();a._chooseMorePopup.hide()}).end().find("#select-all").click(function(b){b.stop();a._chooseMorePopup.find("input:checkbox").attr("checked",true)}).end().find(".search-refiner-reset").click(function(b){b.stop();a._chooseMorePopup.find("input:checkbox").attr("checked",false)}).end();this._controls=this._control.find(".list-scrollable").click(function(f){f.stop();a._chooseMorePopup.hide();var c=f.findElement("a"),b=c.parents(".list-scrollable:first"),g=b.attr("id");if(c.length==0){return}if(c.hasClass("choose-more")){a._facetInPopup=g;a._showMore(f)}else{c.toggleClass("list-scrollable-selected");if(g!="image_colour"){a._selectedItems=c.attr("href").getURIParam("facet")}else{var d=c.attr("href").getURIParam("facet").pop();a._selectedItems=c.hasClass("list-scrollable-selected")?$.merge(a._selectedItems,[d]):a._selectedItems=$.grep(a._selectedItems,function(e){return e!=d});a._toggleClearButton(b.data("clear"),b.find(".list-scrollable-selected").length>0,true)}$("body").trigger("datachanged.facets")}}).each(function(){a._requiredFacets.push(this.id);var b=$(this);b.data("clear",b.parent().find("a.search-refiner-reset").click(a.clear.bindAsEventListener(a)))});return"facet"}})});$(function(){myDeco.searchControlsDispatcher.initControls($(".search-refiner-results"),{attachEvents:function(){$(".buynow").click(function(a){var b=this.href.toQueryParams();if(b.product!=undefined){myDeco.buynow.buynowClick(this,b.product,b.price|"0.00")}});$(".project-list-item").find(".photo").hover(function(a){a.findElement(".photo").find(".controls").fadeIn("fast")},function(a){a.findElement(".photo").find(".controls").fadeOut("fast")})},_init:function(){return"items"}})});$(function(){myDeco.searchControlsDispatcher.initControls($("#viewing-sort-options"),{_switches:{},getData:function(){var b=this._switches.filter(".active").attr("rel")||"details",c=this._sortCombo.val(),a={view:b,count:(b=="details"?20:42)};if(c!=""){a.sort=c}return a},attachEvents:function(){var a=this;this._sortCombo.change(function(b){$("body").trigger("datachanged.facets")});this._switches.click(function(c){c.stop();var b=$(c.target);if(b.hasClass("active")){return}a._switches.removeClass("active");$(c.target).addClass("active");$("body").trigger("datachanged.facets")})},setData:function(a){if(a.sort){this._sortCombo.val(a.sort)}else{this._sortCombo.val("")}this._switches.removeClass("active");this._switches.filter("[rel="+(a.view||!myDeco.isHighend?"details":"images")+"]").addClass("active")},_init:function(){this._switches=this._control.find("a");this._sortCombo=this._control.find("#results-sort");return"viewswitch"}})});$(function(){var b=myDeco.searchControlsDispatcher.initControls($(".refiner-type-dimension"),{_minValue:0,_maxValue:300,_minInput:null,_maxInput:null,_handleTimeout:null,_name:"",getData:function(){var f={},e=parseInt(this._minInput.val()),d=parseInt(this._maxInput.val()),g=this._minInput.attr("defaultValue")!=e||this._maxInput.attr("defaultValue")!=d;if(g){f[this._name]=e+","+d}this._control.data("changed",g);a();return f},clear:function(d){this._minInput.val(this._minValue);this._maxInput.val(this._maxValue)},setData:function(e){var g=e[this._name];if(g){var d=g.split(",");if(d){this._minInput.val(d[0]);this._maxInput.val(d[1]);var f=this._minInput.attr("defaultValue")!=d[0]||this._maxInput.attr("defaultValue")!=d[1];this._control.data("changed",f);a()}}},attachEvents:function(){var d=this;this._control.find(".refiner-value").keyup(function(g){var f=parseInt($(this).val());if(isNaN(f)){return}if(d._handleTimeout){window.clearTimeout(d._handleTimeout)}if(g.keyCode==13){$("body").trigger("datachanged.facets")}else{d._handleTimeout=window.setTimeout(function(){$("body").trigger("datachanged.facets")},1000)}});this._control.parent().find("a.search-refiner-reset").click(this.clear.bindAsEventListener(this))},_init:function(){this._minInput=this._control.find(".refiner-value-min");this._maxInput=this._control.find(".refiner-value-max");this._minValue=this._minInput.val();this._maxValue=this._maxInput.val();this._name=this._control.attr("id");return this._name}});var c=$("#refiner-dimensions a.search-refiner-reset").click(function(d){d.stop();$("body").trigger("datachanged.facets")});function a(){var d=false;b.each(function(){d=d||$(this).data("changed");return d});if(d){c.show()}else{c.hide()}$("body").trigger("cleartoggled.facets")}});$(function(){myDeco.searchControlsDispatcher.initControls($("#search-filters"),{getData:function(){var a=[];this._control.find("a.list-scrollable-selected").each(function(){a.push(this.id+",1")});this._toggleClearButton(a.length!=0,true);return{filter:a}},setData:function(c){var a=this,b=c.filter!=undefined?c.filter:[];b=$.isArray(b)?b:[b];this._control.find("a").removeClass("list-scrollable-selected");$.each(b,function(d,f){var e=f.split(",");if($.isArray(e)){a._control.find("#"+e[0]).addClass("list-scrollable-selected")}});this._toggleClearButton(b.length!=0)},clear:function(a){this._control.find(".list-scrollable-selected").removeClass("list-scrollable-selected");this._clear.hide();if(a){a.stop();$("body").trigger("datachanged.facets")}},_toggleClearButton:function(a,b){if(a){this._clear.show()}else{this._clear.hide()}if(b){$("body").trigger("cleartoggled.facets")}},attachEvents:function(){this._control.find("a").click(function(a){a.stop();$(a.target).toggleClass("list-scrollable-selected");$("body").trigger("datachanged.facets")})},_init:function(){this._clear=this._control.parent().find("a.search-refiner-reset");this._clear.click(this.clear.bindAsEventListener(this));return"filter"}})});$(function(){myDeco.searchControlsDispatcher.initControls($("#geolocation"),{_postcode:null,_errorMessage:null,attachEvents:function(){var a=this;this._control.submit(function(c){c.stop();var b=a._postcode.val();$.ajax({url:myDeco.urls.ws.location_to_coords,data:"location="+encodeURIComponent(b),dataType:"json",error:function(d){d=window["eval"]("("+d.responseText+")");a._errorMessage.show().html(d.error.message)},success:function(d){var e={};$.extend(e,myDeco.searchControlsDispatcher._baseParams,myDeco.searchControlsDispatcher._collectData());delete e.curfacets;delete e.db;delete e.display;e.view="geo_products";e.geolocation=b;e.distance_centre=d[0].coord.join(",");document.location.href="?"+$.param(e)}});return false})},_init:function(){this._postcode=$("#postcode");this._errorMessage=this._control.find("div.error");return"geo"}})});$(function(){myDeco.formDispatcher.initForm($("#confirm-popup"),"addFriend",{ajaxUrl:myDeco.urls.addFriend,position:"center",method:"post",onBeforeShow:function(a){if(!myDeco.username){location.href=myDeco.urls.userLoginQuick+"?next="+location.href;return false}this.params=a.attr("href").toQueryParams();this._form.find(".confirm-message").html("Are you sure you want to add "+this.params.username+" to your friends?")},onSuccess:function(a,b){this._form.hide();myDeco.formDispatcher.alert("Friend request sent")},onFailure:function(a,c,b){this._form.hide();myDeco.formDispatcher.alert("Invite already sent")}})});$(function(){$("body").trigger("cleartoggled.facets")});