if(typeof(Cnc2)=="undefined"){Cnc2={version:"2010-06-07"}}Cnc2.Product=new Class({initialize:function(c,a,b){this.id=c.toInt();this.categoryId=a.toInt();this.productSpecs=$A([]);$A(b).each(function(d){this.productSpecs.push(new Cnc2.ProductSpec(d))}.bind(this))},findProductSpec:function(a,c){if($defined(a)&&$defined(c)){a=a.trim().replace(/\s+/g," ");c=c.trim().replace(/\s+/g," ");for(var b=0;b<this.productSpecs.length;b++){var e=this.productSpecs[b].color.trim().replace(/\s+/g," ");var d=this.productSpecs[b].size.trim().replace(/\s+/g," ");if(e==a&&d==c){return this.productSpecs[b]}}}else{if(this.productSpecs.length){return this.productSpecs[0]}}return false}});Cnc2.ProductSpec=new Class({initialize:function(a){this.id=a.id;this.color=a.color;this.size=a.size;this.quantity=a.quantity}});Cnc2.CartItem=new Class({initialize:function(f,c,a,g,e,d,b){this.productId=f.toInt();this.productSpecId=c.toInt();this.categoryId=a.toInt();this.quantity=g.toInt();if(typeof e!="undefined"){this.countryId=e.toInt()}if(typeof d!="undefined"){this.attribute=d.toString()}if(typeof b!="undefined"){this.fromCnc2=b.toInt()}},changeQuantity:function(a){this.quantity=a.toInt()},changeSpec:function(a){this.productSpecId=a.toInt()},isFromCnc2:function(){return($defined(this.fromCnc2)&&this.fromCnc2>0)},isGreenLabel:function(){return($defined(this.attribute)&&this.attribute=="greenLabel")},isAddon:function(){return($defined(this.attribute)&&this.attribute=="addon")}});Cnc2.Cart=new Class({Implements:[Events,Options,Chain],options:{cookieName:"cart",addWishItemUrl:"/cart/wish-list-add.php",removeWishItemUrl:"/cart/wish-list-remove.php"},initialize:function(a){this.id="";this.cartItems=$A([]);this.coupons=$A([]);this.installment=false;this.payment=false;this.greenLabelQuota=$H([]);this.greenLabelCountries=$H([]);this.load()},save:function(){var a={};a.id=this.id;a.items={};a.coupons=[];$A(this.cartItems);this.cartItems.each(function(c,b){if($defined(a.items[c.productSpecId])){a.items[c.productSpecId].qty+=c.quantity}else{a.items[c.productSpecId]={};a.items[c.productSpecId].prd=c.productId;a.items[c.productSpecId].spec=c.productSpecId;a.items[c.productSpecId].cat=c.categoryId;a.items[c.productSpecId].qty=c.quantity}});this.coupons.each(function(b){a.coupons.push(b)});if(this.payment){a.pay=this.payment}if(this.installment){a.ins=this.installment}Cookie.write(this.options.cookieName,JSON.encode(a),{path:"/"})},load:function(){var a=Cookie.read(this.options.cookieName);if(a){cart=JSON.decode(a);if(cart.id){this.id=cart.id.replace(/\+/," ")}if(cart.coupons){this.coupons=cart.coupons}$H(cart.items).each(function(c,b){this.addCartItem(new Cnc2.CartItem(c.prd,c.spec,c.cat,c.qty))},this)}},hasOutOfStockItem:function(){var a=false;this.cartItems.each(function(c,b){if(c.quantity==0){a=true}},this);return a},addCartItem:function(a){this.cartItems.push(a);if(a.isGreenLabel()){if(a.isFromCnc2()){this.greenLabelCountries.set("global","global")}else{this.greenLabelCountries.set(a.countryId,a.countryId)}}return this},removeCartItem:function(a){this.cartItems=$A(this.cartItems);this.cartItems.each(function(c,b){if(a==c){this.cartItems.erase(c);return this}},this);return this},removeCartItems:function(d){this.cartItems=$A(this.cartItems);var a=d.productId;var c=d.productSpecId;var b=$A([]);this.cartItems.each(function(f,e){if(f.productId==a&&f.productSpecId==c){b.push(f)}},this);b.each(function(f,e){this.cartItems.erase(f)},this);return this},addWishItem:function(a){this.result=false;if(Cookie.read("user")){var b=$H({prd:a.productId,spec:a.productSpecId,cat:a.categoryId,qty:a.quantity});new Request.JSON({async:false,url:this.options.addWishItemUrl,onSuccess:function(c){if(c){this.result=true}}.bind(this)}).post(b)}return this.result},removeWishItem:function(a){this.result=false;if(Cookie.read("user")){var b=$H({prd:a.productId,spec:a.productSpecId,cat:a.categoryId,qty:a.quantity});new Request.JSON({async:false,url:this.options.removeWishItemUrl,onSuccess:function(c){if(c){this.result=true}}.bind(this)}).post(b)}return this.result},isValidCoupon:function(a){return(a.toUpperCase().match(/^[A-Z]{2}\d{13}$/)||this.isPublicCouponCode(a))},isPublicCouponCode:function(a){return(a.toLowerCase().contains("9in")&&a.toLowerCase().contains("+"))},trimCoupon:function(a){return a.toSingleByteAscii().replace(/[^\w]/g,"").replace(/9in/i,"9in+")},containsCoupon:function(a){return(this.coupons.contains(a))},useCoupon:function(a){if(this.isPublicCouponCode(a)){a=a.toLowerCase()}else{a=a.toUpperCase()}if(!this.coupons.contains(a)&&this.isValidCoupon(a)){this.coupons.push(a)}},cancelCoupon:function(a){if(this.coupons.contains(a)){this.coupons.erase(a)}},setPayment:function(b,a){this.payment=b;if($defined(a)){this.installment=a}else{this.installment=false}},checkGreenLabelQuota:function(d,c){if(!this.greenLabelCountries.get(d.countryId)||d.isAddon()){return 0}var e;if(d.isGreenLabel()){e=c-d.quantity}else{e=-(c-d.quantity)}var a=0;var b;if(d.isFromCnc2()){b="global"}else{b=d.countryId}if(this.greenLabelQuota.get(b)>0){a=this.greenLabelQuota.get(b)-e}else{a=-e}return(a>0)?0:-a},setGreenLabelQuota:function(a){this.greenLabelQuota=$H(a)}});Cart=new Cnc2.Cart();Cart.createCartItem=function(f,c,a,g,e,d,b){return new Cnc2.CartItem(f,c,a,g,e,d,b)};