Yosemite.Slider=function(){this.stop=!1};Yosemite.Slider.prototype={defaultConfig:{index:0,auto:!0,delay:5e3,restart:1e4},init:function(){this.index=ko.observable(this.index);this.items=this.list.children();this.start()},afterInit:function(){var n=null;$(window).resize($.proxy(function(){this.list.stop(!0);this.clearTimeout();clearTimeout(n);n=setTimeout($.proxy(this.start,this),500)},this));Modernizr.touch||this.element.hover($.proxy(function(){this.stop=!0;this.clearTimeout()},this),$.proxy(function(){this.stop=!1;this.autoUpdate()},this))},start:function(){this.setListWidth();this.update(0,!0)},autoUpdate:function(){this.auto&&!this.stop&&this.scheduleNext()},scheduleNext:function(){this.timeout=setTimeout($.proxy(function(){this.update(1);this.wait=!1},this),this.wait?this.restart:this.delay)},clearTimeout:function(){clearTimeout(this.timeout)},update:function(n,t){var i,r;this.list.stop(!0);this.clearTimeout();i=this.index()+n;i<0?i=this.items.length-1:i>=this.items.length&&(i=0);(i!=this.index()||n==0)&&(r={marginLeft:this.getDistance(i)*-1+(this.viewport.width()-this.getWidth(i))/2},t?(this.list.css(r),this.autoUpdate()):this.list.animate(r,"slow",$.proxy(function(){this.autoUpdate();this.index(i)},this)))},setListWidth:function(){this.list.width(this.getDistance(this.items.length))},getDistance:function(n){for(var i=0,t=0;tthis.initial||n==this.allPage?this.minPage:this.page)))}};Yosemite.ProductList=function(){this.display=ko.observable();this.productId=ko.observable()};Yosemite.ProductList.prototype={defaultConfig:{initialDisplay:"grid",cookieDisplayKey:"product-list-display"},afterInit:function(){this.display.subscribe($.proxy(this.changed,this));this.display($.cookie(this.cookieDisplayKey)||this.initialDisplay)},displayGrid:function(){this.display("grid")},displayList:function(){this.display("list");this.hideProduct()},changed:function(n){$.cookie(this.cookieDisplayKey,n,{path:"/"})},hideProduct:function(){this.productId(null)},showProduct:function(n){this.productId(n)}};Yosemite.AddToBasket=function(){this.quantity=ko.observable()};Yosemite.AddToBasket.prototype={add:function(){this.addUrl&&this.productId&&$.post(this.addUrl,{productId:this.productId,quantity:this.quantity()||1},Yosemite.basketChanged)},modify:function(){this.modifyUrl&&this.productId&&this.previousProductId&&this.ordersubsetId&&$.post(this.modifyUrl,{productId:this.productId,previousProductId:this.previousProductId,quantity:this.quantity(),orderSubsetId:this.ordersubsetId})}};Yosemite.Filters=function(){};Yosemite.Filters.prototype={defaultConfig:{opened:!1,filtersPattern:"{filters}"},init:function(){this.open=ko.observable(this.opened)},getFilters:function(){var n={};return this.element.find("[data-model]").each(function(){var t=ko.dataFor(this),i;t&&t.code&&$.isFunction(t.getFilter)&&(i=t.getFilter(),i&&(n[t.code]=i))}),n},toggle:function(){this.open(!this.open())},apply:function(){if(this.url){var n=this.getFilters(),t=$.isEmptyObject(n)?"":Base64.encode(JSON.stringify(n)),i=this.url.replace(this.filtersPattern,encodeURI(t));Yosemite.redirect(i)}}};Yosemite.Filters.ListFilter=function(){this.value=ko.observable()};Yosemite.Filters.ListFilter.prototype={getFilter:function(){return this.value()}};Yosemite.Filters.PriceFilter=function(){this.minPrice=ko.observable();this.maxPrice=ko.observable()};Yosemite.Filters.PriceFilter.prototype={code:"price",defaultConfig:{noUiSliderCssClass:"noUiSlider",sliderContainerCssClass:"container"},afterInit:function(){this.lowerPrice=parseInt(this.lowerPrice);this.upperPricer=parseInt(this.upperPrice);this.toFloat(this.minPrice,this.lowerPrice);this.toFloat(this.maxPrice,this.upperPrice);var n=$("
").addClass(this.sliderContainerCssClass).appendTo(this.element),t=$("
").addClass(this.noUiSliderCssClass).appendTo(n).noUiSlider({step:1,handles:2,range:[this.lowerPrice,this.upperPrice],start:[this.minPrice(),this.maxPrice()],slide:$.proxy(function(){var n=t.val();this.minPrice(Math.round(n[0]));this.maxPrice(Math.round(n[1]))},this)})},toFloat:function(n,t){var i=n();n(i?parseFloat(i):t)},getFilter:function(){var t=this.minPrice(),i=this.maxPrice(),r=t!=this.lowerPrice,u=i!=this.upperPrice,n;if(r||u)return n={},r&&(n.min=t),u&&(n.max=i),n}};Yosemite.Filters.StringFilter=function(){this.value=ko.observable()};Yosemite.Filters.StringFilter.prototype={getFilter:function(){return this.value()}};Yosemite.Filters.BooleanFilter=function(){this.value=ko.observable()};Yosemite.Filters.BooleanFilter.prototype={getFilter:function(){return this.value()}};Yosemite.Filters.DecimalFilter=function(){this.minValue=ko.observable();this.maxValue=ko.observable()};Yosemite.Filters.DecimalFilter.prototype={defaultConfig:{noUiSliderCssClass:"noUiSlider",sliderContainerCssClass:"container"},afterInit:function(){this.lowerValue=parseFloat(this.lowerValue);this.upperValue=parseFloat(this.upperValue);this.toFloat(this.minValue,this.lowerValue);this.toFloat(this.maxValue,this.upperValue);var n=$("
").addClass(this.sliderContainerCssClass).appendTo(this.element),t=$("
").addClass(this.noUiSliderCssClass).appendTo(n).noUiSlider({handles:2,range:[this.lowerValue,this.upperValue],start:[this.minValue(),this.maxValue()],slide:$.proxy(function(){var n=t.val();this.minValue(parseFloat(n[0]));this.maxValue(parseFloat(n[1]))},this)})},toFloat:function(n,t){var i=n();n(i?parseFloat(i):t)},getFilter:function(){var t=this.minValue(),i=this.maxValue(),r=t!=this.lowerValue,u=i!=this.upperValue,n;if(r||u)return n={},r&&(n.min=t),u&&(n.max=i),n}};Yosemite.Filters.IntegerFilter=function(){this.minValue=ko.observable();this.maxValue=ko.observable()};Yosemite.Filters.IntegerFilter.prototype={defaultConfig:{noUiSliderCssClass:"noUiSlider",sliderContainerCssClass:"container"},afterInit:function(){this.lowerValue=parseInt(this.lowerValue);this.upperValue=parseInt(this.upperValue);this.toInt(this.minValue,this.lowerValue);this.toInt(this.maxValue,this.upperValue);var n=$("
").addClass(this.sliderContainerCssClass).appendTo(this.element),t=$("
").addClass(this.noUiSliderCssClass).appendTo(n).noUiSlider({step:1,handles:2,range:[this.lowerValue,this.upperValue],start:[this.minValue(),this.maxValue()],slide:$.proxy(function(){var n=t.val();this.minValue(Math.round(n[0]));this.maxValue(Math.round(n[1]))},this)})},toInt:function(n,t){var i=n();n(i?parseInt(i):t)},getFilter:function(){var t=this.minValue(),i=this.maxValue(),r=t!=this.lowerValue,u=i!=this.upperValue,n;if(r||u)return n={},r&&(n.min=parseInt(t)),u&&(n.max=parseInt(i)),n}};Yosemite.Filters.DateTimeFilter=function(){this.initializedDateInput=0};Yosemite.Filters.DateTimeFilter.prototype={init:function(){this.getDateElements().bind({initialized:$.proxy(this.dateElementInitialized,this)})},dateElementInitialized:function(){++this.initializedDateInput==2&&this.setDatesEventHandlers()},setDatesEventHandlers:function(){var n=this.getMinDateModel(),t=this.getMaxDateModel(),i=function(){t.setMinDate(n.date())},r=function(){n.setMaxDate(t.date())};n.onDateChange(i);t.onDateChange(r);i();r()},getDateElements:function(){return this.element.find('[data-model="Yosemite.DateInput"]')},getDateModel:function(n){var t=this.getDateElements(),i=n?t.first():t.last();return ko.dataFor(i.get(0))},getMinDateModel:function(){return this.getDateModel(!0)},getMaxDateModel:function(){return this.getDateModel(!1)},getFilter:function(){var t=this.getMinDateModel().date(),i=this.getMaxDateModel().date(),n;if(t||i)return n={},t&&(n.min=t),i&&(n.max=i),n}};Yosemite.Filters.DrowdownListFilter=function(){this.value=ko.observable()};Yosemite.Filters.DrowdownListFilter.prototype={getFilter:function(){return this.value()}}