if(typeof Product=="undefined"){var Product={}}Product.Zoom=Class.create();Product.Zoom.prototype={initialize:function(a,b,c,d,e,f){this.containerEl=$(a).parentNode;this.imageEl=$(a);this.handleEl=$(c);this.trackEl=$(b);this.hintEl=$(f);this.containerDim=Element.getDimensions(this.containerEl);this.imageDim=Element.getDimensions(this.imageEl);this.imageDim.ratio=this.imageDim.width/this.imageDim.height;this.floorZoom=1;if(this.imageDim.width>this.imageDim.height){this.ceilingZoom=this.imageDim.width/this.containerDim.width}else{this.ceilingZoom=this.imageDim.height/this.containerDim.height}if(this.imageDim.width<=this.containerDim.width&&this.imageDim.height<=this.containerDim.height){this.trackEl.up().hide();this.hintEl.hide();this.containerEl.removeClassName("product-image-zoom");return}this.imageX=0;this.imageY=0;this.imageZoom=1;this.sliderSpeed=0;this.sliderAccel=0;this.zoomBtnPressed=false;this.showFull=false;this.selects=document.getElementsByTagName("select");this.draggable=new Draggable(a,{starteffect:false,reverteffect:false,endeffect:false,snap:this.contain.bind(this)});this.slider=new Control.Slider(c,b,{axis:"horizontal",minimum:0,maximum:Element.getDimensions(this.trackEl).width,alignX:0,increment:1,sliderValue:0,onSlide:this.scale.bind(this),onChange:this.scale.bind(this)});this.scale(0);jQuery("#image").css("opacity",1);Event.observe(this.imageEl,"dblclick",this.toggleFull.bind(this));Event.observe($(d),"mousedown",this.startZoomIn.bind(this));Event.observe($(d),"mouseup",this.stopZooming.bind(this));Event.observe($(d),"mouseout",this.stopZooming.bind(this));Event.observe($(e),"mousedown",this.startZoomOut.bind(this));Event.observe($(e),"mouseup",this.stopZooming.bind(this));Event.observe($(e),"mouseout",this.stopZooming.bind(this))},toggleFull:function(){this.showFull=false;if(typeof document.body.style.maxHeight=="undefined"){for(i=0;i<this.selects.length;i++){this.selects[i].style.visibility=this.showFull?"hidden":"visible"}}val_scale=!this.showFull?this.slider.value:1;this.scale(val_scale);this.trackEl.style.visibility=this.showFull?"hidden":"visible";this.containerEl.style.overflow=this.showFull?"visible":"hidden";this.containerEl.style.zIndex=this.showFull?"1000":"3";return this},scale:function(a){var b=(this.containerDim.width*(1-this.imageZoom)/2-this.imageX)/this.imageZoom;var c=(this.containerDim.height*(1-this.imageZoom)/2-this.imageY)/this.imageZoom;var d=this.imageDim.width>this.containerDim.width&&this.imageDim.height>this.containerDim.height;this.imageZoom=this.floorZoom+a*(this.ceilingZoom-this.floorZoom);if(d){if(this.imageDim.height>this.containerDim.height){this.imageEl.style.width=this.imageZoom*this.containerDim.height+"px"}if(this.containerDim.ratio){this.imageEl.style.height=this.imageZoom*this.containerDim.width*this.containerDim.ratio+"px"}}else{this.slider.setDisabled()}this.imageX=this.containerDim.width*(1-this.imageZoom)/2-b*this.imageZoom;this.imageY=this.containerDim.height*(1-this.imageZoom)/2-c*this.imageZoom;this.contain(this.imageX,this.imageY,this.draggable);return true},startZoomIn:function(){if(!this.slider.disabled){this.zoomBtnPressed=true;this.sliderAccel=.05;this.periodicalZoom();this.zoomer=new PeriodicalExecuter(this.periodicalZoom.bind(this),.05)}return this},startZoomOut:function(){if(!this.slider.disabled){this.zoomBtnPressed=true;this.sliderAccel=-.05;this.periodicalZoom();this.zoomer=new PeriodicalExecuter(this.periodicalZoom.bind(this),.05)}return this},stopZooming:function(){if(!this.zoomer||this.sliderSpeed==0){return}this.zoomBtnPressed=false;this.sliderAccel=0},periodicalZoom:function(){if(!this.zoomer){return this}if(this.zoomBtnPressed){this.sliderSpeed+=this.sliderAccel}else{this.sliderSpeed/=1.5;if(Math.abs(this.sliderSpeed)<.001){this.sliderSpeed=0;this.zoomer.stop();this.zoomer=null}}this.slider.value+=this.sliderSpeed;this.slider.setValue(this.slider.value);this.scale(this.slider.value);return this},contain:function(a,b,c){var d=Element.getDimensions(c.element);var e=0,f=this.containerDim.width-d.width;var g=0,h=this.containerDim.height-d.height;a=a>e?e:a;a=a<f?f:a;b=b>g?g:b;b=b<h?h:b;if(this.containerDim.width>d.width){a=this.containerDim.width/2-d.width/2}if(this.containerDim.height>d.height){b=this.containerDim.height/2-d.height/2}this.imageX=a;this.imageY=b;this.imageEl.style.left=this.imageX+"px";this.imageEl.style.top=this.imageY+"px";return[a,b]}};Product.Config=Class.create();Product.Config.prototype={initialize:function(a){this.config=a;this.taxConfig=this.config.taxConfig;this.settings=$$(".super-attribute-select");this.state=new Hash;this.priceTemplate=new Template(this.config.template);this.prices=a.prices;this.settings.each(function(a){Event.observe(a,"change",this.configure.bind(this))}.bind(this));this.settings.each(function(a){var b=a.id.replace(/[a-z]*/,"");if(b&&this.config.attributes[b]){a.config=this.config.attributes[b];a.attributeId=b;this.state[b]=false}}.bind(this));var b=[];for(var c=this.settings.length-1;c>=0;c--){var d=this.settings[c-1]?this.settings[c-1]:false;var e=this.settings[c+1]?this.settings[c+1]:false;if(c==0){this.fillSelect(this.settings[c])}else{this.settings[c].disabled=true}$(this.settings[c]).childSettings=b.clone();$(this.settings[c]).prevSetting=d;$(this.settings[c]).nextSetting=e;b.push(this.settings[c])}var f=window.location.href.indexOf("#");if(f!=-1){var g=window.location.href.substr(f+1);this.values=g.toQueryParams();this.settings.each(function(a){var b=a.attributeId;a.value=this.values[b];this.configureElement(a)}.bind(this))}},configure:function(a){var b=Event.element(a);this.configureElement(b)},configureElement:function(a){this.reloadOptionLabels(a);if(a.value){this.state[a.config.id]=a.value;if(a.nextSetting){a.nextSetting.disabled=false;this.fillSelect(a.nextSetting);this.resetChildren(a.nextSetting)}}else{this.resetChildren(a)}this.reloadPrice()},reloadOptionLabels:function(a){var b;if(a.options[a.selectedIndex].config){b=parseFloat(a.options[a.selectedIndex].config.price)}else{b=0}for(var c=0;c<a.options.length;c++){if(a.options[c].config){a.options[c].text=this.getOptionLabel(a.options[c].config,a.options[c].config.price-b)}}},resetChildren:function(a){if(a.childSettings){for(var b=0;b<a.childSettings.length;b++){a.childSettings[b].selectedIndex=0;a.childSettings[b].disabled=true;if(a.config){this.state[a.config.id]=false}}}},fillSelect:function(a){var b=a.id.replace(/[a-z]*/,"");var c=this.getAttributeOptions(b);this.clearSelect(a);a.options[0]=new Option(this.config.chooseText,"");var d=false;if(a.prevSetting){d=a.prevSetting.options[a.prevSetting.selectedIndex]}if(c){var e=1;for(var f=0;f<c.length;f++){var g=[];if(d){for(var h=0;h<c[f].products.length;h++){if(d.config.allowedProducts&&d.config.allowedProducts.indexOf(c[f].products[h])>-1){g.push(c[f].products[h])}}}else{g=c[f].products.clone()}if(g.size()>0){c[f].allowedProducts=g;a.options[e]=new Option(this.getOptionLabel(c[f],c[f].price),c[f].id);a.options[e].config=c[f];e++}}}},getOptionLabel:function(a,b){var b=parseFloat(b);if(this.taxConfig.includeTax){var c=b/(100+this.taxConfig.defaultTax)*this.taxConfig.defaultTax;var d=b-c;var e=d*(1+this.taxConfig.currentTax/100)}else{var c=b*(this.taxConfig.currentTax/100);var d=b;var e=d+c}if(this.taxConfig.showIncludeTax||this.taxConfig.showBothPrices){b=e}else{b=d}var f=a.label;if(b){if(this.taxConfig.showBothPrices){f+=" "+this.formatPrice(d,true)+" ("+this.formatPrice(b,true)+" "+this.taxConfig.inclTaxTitle+")"}else{f+=" "+this.formatPrice(b,true)}}return f},formatPrice:function(a,b){var c="";a=parseFloat(a);if(b){if(a<0){c+="-";a=-a}else{c+="+"}}var d=(Math.round(a*100)/100).toString();if(this.prices&&this.prices[d]){c+=this.prices[d]}else{c+=this.priceTemplate.evaluate({price:a.toFixed(2)})}return c},clearSelect:function(a){for(var b=a.options.length-1;b>=0;b--){a.remove(b)}},getAttributeOptions:function(a){if(this.config.attributes[a]){return this.config.attributes[a].options}},reloadPrice:function(){var a=0;for(var b=this.settings.length-1;b>=0;b--){var c=this.settings[b].options[this.settings[b].selectedIndex];if(c.config){a+=parseFloat(c.config.price)}}optionsPrice.changePrice("config",a);optionsPrice.reload();return a;if($("product-price-"+this.config.productId)){$("product-price-"+this.config.productId).innerHTML=a}this.reloadOldPrice()},reloadOldPrice:function(){if($("old-price-"+this.config.productId)){var a=parseFloat(this.config.oldPrice);for(var b=this.settings.length-1;b>=0;b--){var c=this.settings[b].options[this.settings[b].selectedIndex];if(c.config){a+=parseFloat(c.config.price)}}if(a<0)a=0;a=this.formatPrice(a);if($("old-price-"+this.config.productId)){$("old-price-"+this.config.productId).innerHTML=a}}}};Product.Super={};Product.Super.Configurable=Class.create();Product.Super.Configurable.prototype={initialize:function(a,b,c,d,e){this.container=$(a);this.observeCss=b;this.updateUrl=c;this.updatePriceUrl=d;this.priceContainerId=e;this.registerObservers()},registerObservers:function(){var a=this.container.getElementsByClassName(this.observeCss);a.each(function(a){Event.observe(a,"change",this.update.bindAsEventListener(this))}.bind(this));return this},update:function(a){var b=this.container.getElementsByClassName(this.observeCss);var c=Form.serializeElements(b,true);new Ajax.Updater(this.container,this.updateUrl+"?ajax=1",{parameters:c,onComplete:this.registerObservers.bind(this)});var d=$(this.priceContainerId);if(d){new Ajax.Updater(d,this.updatePriceUrl+"?ajax=1",{parameters:c})}}};Product.OptionsPrice=Class.create();Product.OptionsPrice.prototype={initialize:function(a){this.productId=a.productId;this.priceFormat=a.priceFormat;this.includeTax=a.includeTax;this.defaultTax=a.defaultTax;this.currentTax=a.currentTax;this.productPrice=a.productPrice;this.showIncludeTax=a.showIncludeTax;this.showBothPrices=a.showBothPrices;this.productPrice=a.productPrice;this.productOldPrice=a.productOldPrice;this.skipCalculate=a.skipCalculate;this.duplicateIdSuffix=a.idSuffix;this.oldPlusDisposition=a.oldPlusDisposition;this.plusDisposition=a.plusDisposition;this.oldMinusDisposition=a.oldMinusDisposition;this.minusDisposition=a.minusDisposition;this.optionPrices={};this.containers={};this.displayZeroPrice=true;this.initPrices()},setDuplicateIdSuffix:function(a){this.duplicateIdSuffix=a},initPrices:function(){this.containers[0]="product-price-"+this.productId;this.containers[1]="bundle-price-"+this.productId;this.containers[2]="price-including-tax-"+this.productId;this.containers[3]="price-excluding-tax-"+this.productId;this.containers[4]="old-price-"+this.productId},changePrice:function(a,b){this.optionPrices[a]=parseFloat(b)},getOptionPrices:function(){var a=0;var b=0;$H(this.optionPrices).each(function(c){if(c.key=="nontaxable"){b=c.value}else{a+=c.value}});var c=new Array(a,b);return c},reload:function(){var a;var b;var c=this.getOptionPrices();var d=c[1];c=c[0];$H(this.containers).each(function(a){var e;var f;var g;if($(a.value)){if(a.value=="old-price-"+this.productId&&this.productOldPrice!=this.productPrice){e=this.productOldPrice;f=this.oldPlusDisposition;g=this.oldMinusDisposition}else{e=this.productPrice;f=this.plusDisposition;g=this.minusDisposition}var h=c+parseFloat(e);if(this.includeTax=="true"){var i=h/(100+this.defaultTax)*this.defaultTax;var j=h-i;var k=j*(1+this.currentTax/100)}else{var i=h*(this.currentTax/100);var j=h;var k=j+i}j+=parseFloat(f);k+=parseFloat(f);j-=parseFloat(g);k-=parseFloat(g);j+=parseFloat(d);k+=parseFloat(d);if(a.value=="price-including-tax-"+this.productId){h=k}else if(a.value=="old-price-"+this.productId){if(this.showIncludeTax||this.showBothPrices){h=k}else{h=j}}else{if(this.showIncludeTax){h=k}else{if(!this.skipCalculate||e==0){h=j}else{h=c+parseFloat(e)}}}if(h<0)h=0;if(h>0||this.displayZeroPrice){b=this.formatPrice(h)}else{b=""}if($(a.value).select(".price")[0]){$(a.value).select(".price")[0].innerHTML=b;if($(a.value+this.duplicateIdSuffix)&&$(a.value+this.duplicateIdSuffix).select(".price")[0]){$(a.value+this.duplicateIdSuffix).select(".price")[0].innerHTML=b}}else{$(a.value).innerHTML=b;if($(a.value+this.duplicateIdSuffix)){$(a.value+this.duplicateIdSuffix).innerHTML=b}}}}.bind(this))},formatPrice:function(a){return formatCurrency(a,this.priceFormat)}}
