var TopCart=Class.create(InfoBar,{checkoutUrl:"/t-nation.com/carthandler.do",storeUrl:"/t-nation.com/cjson.do",sid:"",sidcookie:"axsid",itemCount:0,initialLoad:true,toggleEffect:null,lastTimeoutId:-1,cartIsShown:false,flashTimeout:5000,options:null,html:{summBar:null,cartDetails:null,cartForm:null,loadingRow:null,numItems:null,subTotals:null,lineItems:null,toggleLink:null,closeLink:null,checkoutLinks:null,recalcLink:null},initialize:function($super,b,a){$super(b);this.checkOldIE();this.initElements();if(a){this.options=a}Event.observe(window,"load",this.setup.bindAsEventListener(this))},checkOldIE:function(){this.oldIE=false;if(Prototype.Browser.IE){var b=navigator.userAgent.match(/MSIE ([\d\.]+)/);if(b!=null&&b.length>0){var a=parseInt(b[1]);if(a<7){this.oldIE=true}}}},initElements:function(){this.html=Object.clone(this.html);
this.html.summBar=this.bar.down(".cartSummary");this.html.cartDetails=this.bar.down(".cartDetails");this.html.cartForm=this.bar.down(".cartForm");this.html.loadingRow=this.bar.down(".loadingRow");this.html.numItems=this.bar.down(".numItems");this.html.subTotals=this.bar.select(".subTotal");this.html.lineItems=this.bar.down(".lineItems");this.html.toggleLink=this.bar.down(".toggleCart");this.html.closeLink=this.bar.down(".closeCart");this.html.checkoutLinks=this.bar.select(".checkout");this.html.recalcLink=this.bar.down(".recalculate");Event.observe(this.html.toggleLink,"click",this.toggleCartDetails.bindAsEventListener(this));Event.observe(this.html.closeLink,"click",this.toggleCartDetails.bindAsEventListener(this,{show:false}));this.html.checkoutLinks.each(function(a){Event.observe(a,"click",this.axCheckout.bindAsEventListener(this))
}.bind(this));Event.observe(this.html.recalcLink,"click",this.axRecalculate.bindAsEventListener(this));$Templates().initTemplates(this.bar);this.hideLoading()},setSubTotal:function(a){this.html.subTotals.each(function(b){b.innerHTML=a})},setup:function(){var b=Cookie.get(this.sidcookie);if(b){this.sid=b}if(this.options&&this.options.storeDomain){this.checkoutUrl="https://"+this.options.storeDomain+this.checkoutUrl}var a=$("prodform");if(a){a.action="javascript:void(0);"}$$("a").each(function(c){if(c.hasClassName("order")){var d=c.href.match(/\?add\.(.+)=(\d+)/);if(d&&d.size()==3){c.sku=d[1];c.qty=d[2]}c.href="javascript: void(0);";Event.observe(c,"click",this.axOrder.bindAsEventListener(this,c.identify()))}}.bind(this));if(this.oldIE){return}this.axRefreshBar()},showLoading:function(){this.html.lineItems.innerHTML="";
this.html.loadingRow.show();this.html.numItems.innerHTML="Loading...";this.setSubTotal("Loading...")},hideLoading:function(){this.html.loadingRow.hide()},flashCart:function(){this.showCart();if(this.lastTimeoutId>=0){clearTimeout(this.lastTimeoutId);this.lastTimeoutId=-1}this.lastTimeoutId=setTimeout(function(){this.hideCart();this.lastTimeoutId=-1}.bind(this),this.flashTimeout)},showCart:function(){if(this.toggleEffect!=null){return}if(!this.html.cartDetails.visible()){this.html.toggleLink.innerHTML="Close Cart";this.toggleEffect=Effect.SlideDown(this.html.cartDetails,{duration:0.5,afterFinish:this.clearEffect.bind(this)})}},hideCart:function(){if(this.toggleEffect!=null){return}if(this.html.cartDetails.visible()){this.html.toggleLink.innerHTML="View Cart";this.toggleEffect=Effect.SlideUp(this.html.cartDetails,{duration:0.5,afterFinish:this.clearEffect.bind(this)})
}},clearEffect:function(){this.toggleEffect=null},toggleCartDetails:function(b){var c=this.html.cartDetails.visible();var a=!c;if(b.memo&&b.memo.show!==undefined){a=b.memo.show}if(a===c){return}this.cartIsShown=a;if(a){this.showCart()}else{this.hideCart()}},renderProductLine:function(e){var b=new Element("span");var f="BACKORDER";var d="";if(this.options&&this.options.inStockTxt&&this.options.boTxt){f=this.options.boTxt;d=this.options.inStockTxt}e.availability=e.isBackOrder?f:d;$Templates().process(b,"lineItemTemplate",e);this.html.lineItems.insert({bottom:b});if(e.subTotal==""||parseFloat(e.subTotal.replace(/\$/,""))<=0){var c=new Element("span");c.innerHTML=e.qty;var a=b.down(".qtyField");a.insert({after:c});a.remove()}},renderTopCart:function(a){this.updateCart(a);this.hideLoading()},axRefreshBar:function(){new Ajax.Request(this.storeUrl+this.sid,{method:"post",onComplete:this.updateCart.bind(this)})
},updateCart:function(e){if(e!=null){var a=JSON.parse(e.responseText);this.sid=a.sid;this.sid=";jsessionid="+this.sid;Cookie.set(this.sidcookie,this.sid);var b=0;for(var c=0;c<a.lineItems.length;c++){var d=a.lineItems[c];this.renderProductLine(d);b+=parseInt(d.qty)}this.setSubTotal(a.subTotal);this.itemCount=b;this.html.numItems.innerHTML=this.itemCount;document.fire("store:cartUpdate",{cartJson:a})}if(this.itemCount>0&&!this.bar.visible()){if(this.initialLoad){this.html.cartDetails.hide()}this.showBar();if(!this.initialLoad){this.html.cartDetails.toggle();this.flashCart()}}if(this.initialLoad){this.initialLoad=false}},axOrder:function(b,f){this.showLoading();var d=$(f);var e="add."+d.sku;var c=d.up("form");if(c){var a=c.down("select");if(a){if(a.hasClassName("dynSku")){e="add."+a.getValue()}else{e+="."+a.getValue()
}}}e+="="+d.qty;if(this.oldIE){window.location=this.checkoutUrl+this.sid+"?"+e}else{new Ajax.Request(this.storeUrl+this.sid,{method:"post",postBody:e,onComplete:this.renderTopCart.bind(this)})}if(!this.cartIsShown){this.flashCart()}},axCheckout:function(){this.html.cartForm.action=this.checkoutUrl+this.sid;this.html.cartForm.submit()},axRecalculate:function(){var a=this.html.cartForm.serialize();this.showLoading();new Ajax.Request(this.storeUrl+this.sid,{method:"post",postBody:a,onComplete:this.renderTopCart.bind(this)})},barRepositioned:function(a){if(a.isFloating&&a.useFixed){this.html.cartDetails.setStyle({position:"fixed"});this.html.cartDetails.setStyle({top:(a.barOffset+a.barHeight)+"px"})}else{this.html.cartDetails.setStyle({position:"absolute"});this.html.cartDetails.setStyle({top:"0px"})}}});
