KISSY.add("malldetail/model/combo",function(t,e){function a(e){a.superclass.constructor.apply(this,arguments);TShop.codeTrack(26,"model.combo.init","app.init");var s=this;s.addAttr("comboData",{});s.addAttr("buyerLoc",{load:function(t){t("330100")}});s.addAttr("minicart",{load:function(e){t.use("mui/minicart",function(t,a){e(a)})}});s.addAttr("master",{load:function(e){s.onLoad(["comboData","products"],function(a,s){var o=null;t.each(a&&a.items,function(t,e){if(t.master){o=s[e]}});e(o)})}});s.addAttr("products",{load:function(e){s.onLoad(["comboData"],function(a){var o=a&&a.items,i={};if(!o){return e(null)}function r(e,o){if(a.type!==1){e.isSelected=true}if(a.reservePrice!==undefined){return o(e)}s.onLoad(["buyerLoc","urlMap"],function(s,i){if(!i.apiTmallComboItem||!e||!(e.hasSku||e.hasService)){return o(e)}var r="",l;try{l=/cna=([^;]+)/.exec(document.cookie);if(l){r=decodeURIComponent(l[1])}}catch(d){}var n,c;t.each(a.items,function(t){if(t.master){n=t.itemId;c=t.sellerId;return false}});t.use("ajax",function(t,l){l({url:i.apiTmallComboItem,data:{cna:r,refer:encodeURIComponent(document.referrer),itemId:e.itemId,areaId:s,comboId:a.id,mainItemId:n||"",type:a.type,sellerId:e.sellerId,householdService:e.householdService,manufactureCity:encodeURI(e.manufactureCity),manufactureVolume:e.manufactureVolume},dataType:"jsonp",success:function(a){if(a.success){t.each(a.skuMap,function(t){t.price=(t.price/100).toFixed(2)});t.mix(e,a)}o(e)},error:function(){o(e)}})})})}t.use("malldetail/model/productCombo",function(t,a){t.each(o,function(e,o){i[o]=new a;i[o].addAttr("itemData",{load:function(t){r(e,t)}});i[o].addAttr("amountMultiple",{load:function(t){s.onChange("amount",t)}});t.each(["buyerLoc","token"],function(t){i[o].addAttr(t,{load:function(e){s.onChange(t,e)}})})});e(i);s.onChange(["comboData"],function(e){t.each(e.items,function(t,e){if(!i[e]){return}r(t,function(t){i[e].set("itemData",t)})})})})})}});s.addAttr("selectedProducts",{load:function(e){s.onLoad(["products","comboData"],function(a,s){t.each(a,function(o){if(s.type!=1){return e(a)}o.onChange("itemEnable",function(s){var o={};t.each(a,function(t,e){if(t.get("itemEnable")){o[e]=t}});e(o)})})})}});s.addAttr("amount",{validator:function(t){return!isNaN(t=parseInt(t,10))&&t>0},setter:function(t){return parseInt(t,10)},load:function(t){t(1)}});s.addAttr("originalPrice",{load:function(e){s.onLoad("products",function(a){t.each(a,function(s,o){s.onChange(["originalPrice","servicePrice","amount","itemEnable"],function(s,o,i,r){var l={max:0,min:0},d=true;t.each(a,function(t,e){if(t.get("itemEnable")){var a=t.get("originalPrice"),s=t.get("servicePrice"),o=t.get("amount")||1;if(a!=null){l.max+=a.max*o;l.min+=a.min*o;d=false}if(s!=null){l.max+=s.max*o;l.min+=s.min*o}}});if(d){l=null}else{l.min=l.min.toFixed(2);l.max=l.max.toFixed(2);l.str=l.min;if(l.min!=l.max){l.str+="-"+l.max}}e(l)})})})}});s.addAttr("comboPrice",{load:function(e){s.onLoad(["comboData","amount","products"],function(a,s,o){if(a.reservePrice){return e({min:(a.reservePrice/100).toFixed(2),max:(a.reservePrice/100).toFixed(2),str:(a.reservePrice/100).toFixed(2)})}t.each(o,function(a,s){a.onChange(["comboPrice","servicePrice","amount","itemEnable"],function(a,s,i,r){var l={max:0,min:0},d=true;t.each(o,function(t,e){if(t.get("itemEnable")){var a=t.get("comboPrice"),s=t.get("servicePrice"),o=t.get("amount")||1;if(a!=null){l.max+=a.max*o;l.min+=a.min*o;d=false}if(s!=null){l.max+=s.max*o;l.min+=s.min*o}}});if(d){l=null}else{l.min=l.min.toFixed(2);l.max=l.max.toFixed(2);l.str=l.min;if(l.min!=l.max){l.str+="-"+l.max}}e(l)})})})}});s.addAttr("totalPrice",{load:function(t){s.onChange(["comboPrice","amount"],function(e,a){var s={min:(e.min*1*a).toFixed(2),max:(e.max*1*a).toFixed(2)};s.str=s.min;if(s.min!=s.max){s.str+="-"+s.max}t(s)})}});s.addAttr("saveMoney",{load:function(e){s.onLoad("comboData",function(a){if(a.type==1){s.onLoad("products",function(a){t.each(a,function(s,o){s.onChange(["saveMoney","amount","itemEnable"],function(s,o,i){var r={max:0,min:0},l=true;t.each(a,function(t,e){if(t.get("itemEnable")){var a=t.get("saveMoney"),s=t.get("amount")||1;if(a!=null){r.max+=a.max*s;r.min+=a.min*s;l=false}}});if(l){r=null}else{r.min=r.min.toFixed(2);r.max=r.max.toFixed(2);r.str=r.min;if(r.min!=r.max){r.str+="-"+r.max}}e(r)})})});return}s.onChange(["comboPrice","originalPrice"],function(t,a){var s=[Math.max(a.min-t.min,0),Math.max(a.max-t.max,0)].sort();var o={min:s[0].toFixed(2),max:s[1].toFixed(2)};o.str=o.min;if(o.min!=o.max){o.str+="-"+o.max}e(o)})})}});s.addAttr("canBuyStatus",{load:function(t){function e(){var t=s.get("canBuyStatus");if(t){s.set("canBuyStatus",++t)}else{s.set("canBuyStatus",1)}}s.onChange(["comboData","amount"],e);s.onLoad("product",function(t){t.onChange("canBuyStatus",e)})}})}t.extend(a,e);t.augment(a,{_cartMini:function(e,a){TShop.codeTrack(17,"combo.run.cartMini","combo.cart.start");var s=this,o;t.use(["dom","json"],function(t,i,r){s.onLoad(["products","master","token","buyerLoc","comboData","amount"],function(r,l,d,n,c,m){s.onMap(r,["itemData","selectedSku","amount","selectedService","itemEnable"],function(e,a,s,i,r){if(r){if(l==this){o=e}var d=[];if(i){t.each(i,function(t,e){d.push(e+"|"+(t||0))})}return{itemId:e.itemId,skuId:a?a.skuId:0,quantity:s,serviceInfo:d.join("-"),master:e.master}}else{return null}},function(r){var l=[];t.each(r,function(t){if(t){l.push(t)}});s.onTrackID(function(t){s.onLoad(["minicart"],function(r){TShop.onLogin(function(){r.add({anim:{img:o.pictUrl,startNode:e.button,endNode:i.get("#J_MiniCart")||i.get("#TMinaCart")||undefined},_tb_token_:d,tsid:t,add:{from_etao:TShop.getUrlParams("frm")=="etao"?1:"",tpId:s.get("tpId"),items:l,comboId:c.id,campaignId:c.campaignId||"",comboCnt:m,comboFrom:"",bizType:c.type,deliveryCityCode:n,deliveryZoneCode:n}},function(t){TShop.flush();a({method:"mini",level:0,message:t.warn||"",count:t.count||t.cartQuantity,cartQuantity:t.cartQuantity||""})},function(t){TShop.flush();a({method:"mini",level:-1,name:t.errorCode,message:t.error,count:t.count||t.cartQuantity,cartQuantity:t.cartQuantity||""})})})})})})})})},_buyForm:function(e,a){TShop.codeTrack(16,"combo.run.buyForm","combo.run.start");var s=this,o;t.use(["dom","json"],function(t,e,i){s.onLoad(["products","master","token","buyerLoc","comboData","amount","urlMap","shopId"],function(r,l,d,n,c,m,u,h){s.onMap(r,["itemData","selectedSku","amount","selectedService","itemEnable"],function(e,a,s,i,r){if(r){if(l==this){o=e}var d=[];if(i){t.each(i,function(t,e){d.push(e+"|"+(t||0))})}return{itemId:e.itemId,skuId:a?a.skuId:0,quantity:s,serviceInfo:d.join("-"),master:e.master}}else{return null}},function(r){var f=s._frmBid;if(!f){f=s._frmBid=e.create('
');e.append(f,document.body)}function p(t,e){if(f[t]){f[t].value=e}else{f.innerHTML+=''}}var g=[];t.each(r,function(t){if(t){g.push(t)}});l._buylogin(function(t){t=t||{};p("combo",i.stringify({items:g,comboId:c.id,campaignId:c.campaignId||"",comboCnt:m,comboFrom:"",comboType:c.type,divisionCode:n}));p("deliveryCityCode",n);p("deliveryZoneCode",n);p("_tb_token_",d);p("bi_from","tm_comb");p("from_etao",TShop.getUrlParams("frm")=="etao"?1:"");if(t.success&&t.token&&t.token.length>0){var e=t.token;for(var s=0,o=e.length;s