var SmallCart=Class.create({sid:"",opts:{autoLoad:true,storeDomain:"",sidCookie:"axsid",cartUrl:"/t-nation.com/carthandler.do",storeUrl:"/t-nation.com/cjson.do",itemCountCss:"cartItemCount",subTotalCss:"cartSubTotal",cartLinksCss:"cartLink"},html:{top:null,itemCounts:[],subTotal:null},initialize:function(b,a){a=a||{};this.opts=Object.extend(Object.clone(this.opts),a);this.html=Object.clone(this.html);this.html.top=$(b);if(SmallCart.instance){throw"Warning: multiple instances of SmallCart"}SmallCart.instance=this;this.checkOldIE();this.initElements();Event.observe(document,"store:cartUpdate",this.evUpdateCart.bindAsEventListener(this));if(this.opts.autoLoad){Event.observe(window,"load",this.evOnLoad.bindAsEventListener(this))}},initElements:function(){this.html.itemCounts=this.html.top.select("."+this.opts.itemCountCss);
this.html.subTotal=this.html.top.down("."+this.opts.subTotalCss);this.html.cartLinks=this.html.top.select("."+this.opts.cartLinksCss)},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}}}},setItemCount:function(a){this.html.itemCounts.each(function(b){b.innerHTML=a});this.itemCount=a},setSubTotal:function(a){if(this.html.subTotal){this.html.subTotal.innerHTML=a}this.subTotal=a},setCartLinks:function(a){this.html.cartLinks.each(function(b){b.href=a})},getItemCount:function(a){var b=0;for(var c=0;c<a.lineItems.length;c++){var d=a.lineItems[c];b+=parseInt(d.qty)}return b},load:function(){var a=Cookie.get(this.opts.sidCookie);if(a){this.sid=a}this.axGetCartInfo()},evOnLoad:function(){this.load()
},evUpdateCart:function(a){if(a.memo.cartJson){var c=a.memo.cartJson;this.sid=c.sid;this.sid=";jsessionid="+this.sid;Cookie.set(this.opts.sidCookie,this.sid);this.setSubTotal(c.subTotal);this.setItemCount(this.getItemCount(c));var b=this.opts.storeDomain?"https://"+this.opts.storeDomain:"";b+=this.opts.cartUrl+this.sid;this.setCartLinks(b)}},axGetCartInfo:function(){var b=function(c){if(c&&c.responseText){document.fire("store:cartUpdate",{cartJson:JSON.parse(c.responseText)})}}.bind(this);var a=this.opts.storeDomain?"http://"+this.opts.storeDomain:"";a+=this.opts.storeUrl+this.sid;new Ajax.Request(a,{method:"post",onComplete:b})}});var $SmallCart=$SmallCart||function(){return SmallCart.instance};
