
var LayeredNavigation=Class.create();LayeredNavigation.prototype={initialize:function(config){this.useAjax=parseInt(config.useAjax);this.sliderFlag=parseInt(config.slider);this.minRange=parseInt(config.minRange);this.maxRange=parseInt(config.maxRange);this.minPrice=parseInt(config.minRange);this.maxPrice=parseInt(config.maxRange);this.mediaUrl=config.mediaUrl;this.categoryUrl=config.categoryUrl;this.home=parseInt(config.isHome);this.currentUrlParams=document.location.search;if(this.sliderFlag){this.addPriceSlider();}
this.addObservers();this.checkUrlHash();},addObservers:function(){var self=this;$$('.ajax-option-link').each(function(el){Event.observe(el,'click',function(e){e.stop();self.reload.bind(self,this.href)();});});$$('.ajaxlayerednavigation-img-link').each(function(el){Event.observe(el,'click',function(e){e.stop();self.reload.bind(self,this.href)();});});$$('.ajax-option-select').each(function(el){Event.observe(el,'change',function(e){if(this.value){self.reload.bind(self,this.value)();}});});$$('.ajax-option-checkbox').each(function(el){Event.observe(el,'click',function(e){self.reload.bind(self,this.value)();});});$$('a.list').each(function(el){Event.observe(el,'click',function(e){e.stop();var query=self.getUrlQuery(this.href);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});$$('a.grid').each(function(el){Event.observe(el,'click',function(e){e.stop();var query=self.getUrlQuery(this.href);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});$$('div.sort-by select').each(function(el){el.stopObserving('change');el.onchange=function(){return false;}
Event.observe(el,'change',function(e){e.stop();var query=self.getUrlQuery(this.value);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});$$('div.sort-by a').each(function(el){Event.observe(el,'click',function(e){e.stop();var query=self.getUrlQuery(this.href);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});$$('div.limiter select').each(function(el){el.stopObserving('change');el.onchange=function(){return false;}
Event.observe(el,'change',function(e){e.stop();var query=self.getUrlQuery(this.value);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});$$('a.btn-remove').each(function(el){Event.observe(el,'click',function(e){e.stop();var query=self.getUrlQuery(this.href);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});$$('div.actions a').each(function(el){Event.observe(el,'click',function(e){e.stop();var query=self.getUrlQuery(this.href);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});$$('div.pages li a').each(function(el){Event.observe(el,'click',function(e){e.stop();var query=self.getUrlQuery(this.href);if(query){var url=self.categoryUrl+query;}else{var url=self.categoryUrl;}
self.reload.bind(self,url)();});});if(self.sliderFlag){$('from-price-range').observe('change',function(e){self.slider.setValue(this.value,0);});$('to-price-range').observe('change',function(e){self.slider.setValue(this.value,1);});}},checkUrlHash:function(){var url=this.categoryUrl;var hash=document.location.hash;if(hash!=''){var query=hash.replace('#','?');url+=query;this.reload(url);}},addPriceSlider:function(){var handles=['handle_from-tmaln','handle_to-tmaln'];var self=this;this.slider=new Control.Slider(handles,'track-tmaln',{range:$R(self.minRange,self.maxRange),sliderValue:[self.minPrice,self.maxPrice],restricted:true,onChange:function(values){var from=Math.round(parseInt(values[0]));var to=Math.round(parseInt(values[1]));self.reload(self._buildQuery({'price':from+','+to}));$('from-price-range').value=Math.round(parseInt(values[0]));$('to-price-range').value=Math.round(parseInt(values[1]));self.minPrice=Math.round(parseInt(values[0]));self.maxPrice=Math.round(parseInt(values[1]));},onSlide:function(values){$('from-price-range').value=Math.round(parseInt(values[0]));$('to-price-range').value=Math.round(parseInt(values[1]));}});},reload:function(url){var self=this;this.currentUrl=url;var query=this.getUrlQuery(url);if(this.home){if(query&&this.useAjax){hash=query.substr(1,query.length);window.location=this.categoryUrl+'#'+hash;}else{window.location=this.currentUrl;}
return;}
if(query&&this.useAjax){hash=query.substr(1,query.length);document.location.hash=hash;}else{if(this.useAjax){document.location.hash='';}}
if(this.sliderFlag){$('hidden-url').value=this.categoryUrl;}
if(this.useAjax){this.showLoader();new Ajax.Request(this.currentUrl,{method:'post',onSuccess:function(transport){var response=transport.responseText.evalJSON();$$('div.block-layered-nav')[0].update(response.filter);$$('div.col-main')[0].update(response.brend+response.categoryName+response.list);if(self.sliderFlag){self.minPrice=response.minPrice;self.maxPrice=response.maxPrice;self.updateSliderValues();self.slider=null;self.addPriceSlider();}
self.addObservers();self.hideLoader();}});}else{window.location=this.currentUrl;}},updateSliderValues:function(){$('from-price-range').value=this.minPrice;$('to-price-range').value=this.maxPrice;},showLoader:function(){var layered=$$('div.block-layered-nav')[0];layered.setOpacity(0.2);if(undefined!==$$('div.category-products')[0]){var productsGrid=$$('div.col-main')[0];productsGrid.setOpacity(0.2);}else{var productsGrid=$$('div.col-main')[0];$$('div.col-main')[0].setOpacity(0.2);}
var eltLayer=layered;var eltGrid=productsGrid;var loaderLayer=$('ajax-loading-layer');var loaderGrid=$('ajax-loading-grid');var eltDimsLayer=eltLayer.getDimensions();var eltDimsGrid=eltGrid.getDimensions();var yLayer=eltDimsLayer.height/2;var xLayer=eltDimsLayer.width/2;var yGrid=eltDimsGrid.height/2;var xGrid=eltDimsGrid.width/2;var posLayer=Position.cumulativeOffset(eltLayer);var posGrid=Position.cumulativeOffset(eltGrid);var leftLayer=posLayer[0]+xLayer;var topLayer=posLayer[1]+yLayer;var leftGrid=posGrid[0]+xGrid;var topGrid=posGrid[1]+yGrid;var stylesLayer={position:'absolute',top:(topLayer-16)+'px',left:(leftLayer-16)+'px',zIndex:999,display:'block'};var stylesGrid={position:'absolute',top:(topGrid-16)+'px',left:(leftGrid-16)+'px',zIndex:999,display:'block'};if(loaderLayer){loaderLayer.setStyle(stylesLayer);}
if(loaderGrid){loaderGrid.setStyle(stylesGrid);}},hideLoader:function(){var loaderLayer=$('ajax-loading-layer');var loaderGrid=$('ajax-loading-grid');var styles={display:'none'};if(loaderLayer){loaderLayer.setStyle(styles);}
if(loaderGrid){loaderGrid.setStyle(styles);}
$$('div.block-layered-nav')[0].setOpacity(1);$$('div.col-main')[0].setOpacity(1);$$('div.category-products')[0].setOpacity(1);},defaultPriceValue:function(){this.minPrice=this.minRange;this.maxPrice=this.maxRange;$('from-price-range').value=this.minPrice;$('to-price-range').value=this.maxPrice;},getUrlPriceParam:function(links){var strReturn="";var strHref=links;if(strHref.indexOf("?")>-1){var strQueryString=strHref.substr(strHref.indexOf("?")).toLowerCase();var aQueryString=strQueryString.split("&");for(var iParam=0;iParam<aQueryString.length;iParam++){if(aQueryString[iParam].indexOf("price"+"=")>-1){var aParam=aQueryString[iParam].split("=");strReturn=aParam[1];break;}}}
if(strReturn.length>0){return true;}else{return false;}},getUrlQuery:function(url){var strHref=url;if(strHref.indexOf("?")>-1){var strQueryString=strHref.substr(strHref.indexOf("?")).toLowerCase();return strQueryString;}
return false;},_getAllUrlParams:function(Url){Url=Url.replace(/.*\?(.*?)/,"$1");Variables=Url.split("&");return Variables;},_buildQuery:function(params){var oldParams=this._getAllUrlParams($('hidden-url').value);var defaultPrice=false;this.defaultSlderValues=false;oldParams.each(function(item){if(''==item){throw $break;}
param=item.split('=');if(undefined===params[param[0]]){params[param[0]]=param[1];}});var query=[];for(var i in params){if(undefined!==params[i]){query.push(i+'='+params[i]);}}
this.currentUrlParams='?'+query.join('&');var url=this.categoryUrl.replace(this.categoryUrl.search,'');return url+this.currentUrlParams;}};
