"use strict";function _classCallCheck(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}function updateSizes(n,t,i){var f=n.find(".sizes-selector"),u,r,e;if(f.length!==0){for(f.empty(),u=[],r=0;r<i.length;r++)i[r].Color===t&&$.inArray(i[r].Size,u)<0&&u.push(i[r].Size);var o=n.find(".selected-size"),h=o.val(),s=!1;for(r=0;r<u.length;r++)e="",u[r]===h&&(e="selected",s=!0),f.append("<option value ='"+u[r]+"' "+e+">"+u[r]+" <\/option>");s||o.val(u[0])}}function updateNames(n,t,i){var f=n.find(".names-selector"),u,r,e;if(f.length!==0){for(f.empty(),u=[],r=0;r<i.length;r++)i[r].Color===t&&$.inArray(i[r].SkuName,u)<0&&u.push(i[r].SkuName);var o=n.find(".selected-name"),h=o.val(),s=!1;for(r=0;r<u.length;r++)e="",u[r]===h&&(e="selected",s=!0),f.append("<option value ='"+u[r]+"' "+e+">"+u[r]+" <\/option>");s||o.val(u[0])}}function _classCallCheck(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}var _createClass=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}(),GiftOptions=function(){function n(t){_classCallCheck(this,n);this.init=this.init.bind(this);this.changeColor=this.changeColor.bind(this);this.changeSize=this.changeSize.bind(this);this.changeName=this.changeName.bind(this);this.getStockHtml=this.getStockHtml.bind(this);this.changeGiftOption=this.changeGiftOption.bind(this);this.getSelectedVariant=this.getSelectedVariant.bind(this);this.addFreeGift=this.addFreeGift.bind(this);this.callbackFunc=t}return _createClass(n,[{key:"init",value:function(){if($("#choose-gift-section").length!==0){$(".js-gift-option-table tr").each(function(){var n=$(this),u=n.find(".js-serialized-product").val(),f=JSON.parse(u),t=f.VariantOptions,i=t[0],r=i.Color,e=i.Size,o=i.SkuName;updateSizes(n,r,t);updateNames(n,r,t)});$(".colors-selector img").on("click",this.changeColor);$(".sizes-selector").on("change",this.changeSize);$(".names-selector").on("change",this.changeName);$(".add-free-gift").on("click",this.addFreeGift)}}},{key:"addFreeGift",value:function(n){var t=$(n.target),i=t.closest("tr"),r=t.closest("table"),u=i.find(".js-serialized-product").val(),f=JSON.parse(u),e=this.getSelectedVariant(i,f),o=r.data("promoId"),s={promoId:o,variantCode:e.VariationCode},h=this;$.ajax(app.WEB.postOptions(window.location.pathname,"chooseGift",s)).then(function(n){h.callbackFunc(n)}).fail(function(n){console.log(n);alert("An error occured while performing this action.")})}},{key:"changeColor",value:function(n){var r=$(n.target),t=r.closest("tr"),e=t.find(".js-serialized-product").val(),u=JSON.parse(e),f=u.VariantOptions,i=r.data("color");updateSizes(t,i,f);updateNames(t,i,f);t.find(".selected-color").val(i);this.changeGiftOption(t,u)}},{key:"changeSize",value:function(n){var i=$(n.target),t=i.closest("tr"),r=t.find(".js-serialized-product").val(),u=JSON.parse(r);t.find(".selected-size").val(i.val());this.changeGiftOption(t,u)}},{key:"changeName",value:function(n){var i=$(n.target),t=i.closest("tr"),r=t.find(".js-serialized-product").val(),u=JSON.parse(r);t.find(".selected-name").val(i.val());this.changeGiftOption(t,u)}},{key:"changeGiftOption",value:function(n,t){var i=this.getSelectedVariant(n,t);n.find(".main-image").attr("src",i.ImageUrl);n.find(".status").html(this.getStockHtml(i));n.find(".cart-item-itemPrice .strikethrough").html(i.Price)}},{key:"getSelectedVariant",value:function(n,t){for(var u,f=n.find(".selected-color").val(),e=n.find(".selected-size").val(),o=n.find(".selected-name").val(),h=n.find(".names-selector").length!=0,r=t.VariantOptions,i=0;i<r.length;i++){var c=f===""||r[i].Color===f,l=e===""||r[i].Size===e,s=o===""||r[i].SkuName===o;h==!1&&(s=!0);l&&c&&s&&(u=r[i],i=r.length)}return u}},{key:"getStockHtml",value:function(n){switch(n.StockStatusDto.Status){case 0:return'<span class="in-stock">'+n.StockStatusDto.Display+"<\/span>";case 1:return'<span class="out-of-stock">'+n.StockStatusDto.Display+"<\/span>";case 2:return'<span class="out-of-stock">'+n.StockStatusDto.Display+"<\/span>";case 3:return'<span class="limited-stock">'+n.StockStatusDto.Display+"<\/span>";default:return'<span class="out-of-stock">'+n.StockStatusDto.Display+"<\/span>"}}}]),n}(),CartPage;_createClass=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}();CartPage=function(){function n(){_classCallCheck(this,n);this.cartContainer=$("#shopping-cart-container");this.changeItemQuantity=this.changeItemQuantity.bind(this);this.saveForLaterItem=this.saveForLaterItem.bind(this);this.removeItem=this.removeItem.bind(this);this.emptyCart=this.emptyCart.bind(this);this.updateCartAjaxCall=this.updateCartAjaxCall.bind(this);this.applyCouponCode=this.applyCouponCode.bind(this);this.removeCouponCode=this.removeCouponCode.bind(this);this.couponErrorContainer=$("#coupon-apply-error-message");this.updateShoppingCartHtml=this.updateShoppingCartHtml.bind(this);this.countryChange=this.countryChange.bind(this);this.changeSaveForLaterItemQuantity=this.changeSaveForLaterItemQuantity.bind(this);this.moveItemToCart=this.moveItemToCart.bind(this);this.removeItemFromSaved=this.removeItemFromSaved.bind(this);this.applyShippingMethod=this.applyShippingMethod.bind(this);this.applyShippingAddress=this.applyShippingAddress.bind(this);this.renderPayPalButton=this.renderPayPalButton.bind(this);this.handleError=this.handleError.bind(this);this.giftOptions=new GiftOptions(this.updateShoppingCartHtml);this.giftOptions.init()}return _createClass(n,[{key:"init",value:function(){$(document).on("click","[data-change-quantity]",this.changeItemQuantity);$(document).on("click","[data-remove-item]",this.removeItem);$(document).on("click","[data-save-for-later-item]",this.saveForLaterItem);$(document).on("click","[data-coupon-code]",this.removeCouponCode);$(document).one("click","#apply-coupon-code",this.applyCouponCode);$(document).on("click","#emptry-cart",this.emptyCart);$(document).on("change","#countryDdl",this.countryChange);$(document).on("click","[data-change-save-for-later-quantity]",this.changeSaveForLaterItemQuantity);$(document).on("click","[data-move-item-to-cart]",this.moveItemToCart);$(document).on("click","[data-remove-item-from-saved]",this.removeItemFromSaved);this.applyCouponCodeOnEnterKey();this.applyZipCodeOnEnterKey();$(document).on("change",".custom-radio-btn",this.applyShippingMethod);$(document).on("click","#get-shipping-methods",this.applyShippingAddress);$(document).on("change","#regionDdl",this.applyShippingAddress);$(".modal-backdrop").length>0&&$(".modal-backdrop").remove();$(window).width()>768&&$("table.cart-item-list tr[data-line-item-id]:not(.visible-xs):even").css("background","#fff");this.renderPayPalButton()}},{key:"applyCouponCodeOnEnterKey",value:function(){$("#coupon-code").on("keypress",function(n){n.which===13&&($(this).attr("disabled","disabled"),$("#apply-coupon-code").trigger("click"),$(this).removeAttr("disabled"))})}},{key:"applyZipCodeOnEnterKey",value:function(){$("#postalCode").on("keypress",function(n){n.which===13&&($(this).attr("disabled","disabled"),$("#get-shipping-methods").trigger("click"),$(this).removeAttr("disabled"))})}},{key:"countryChange",value:function(n){var t=$(n.target).val();t==="USA"?($("#zipcode-form").show(),$("#regions-form").hide()):($("#zipcode-form").hide(),$("#regionDdl").empty(),$("#postalCode").val(""),$.ajax({url:"/API/CheckoutApi/LoadStatesForCountry?countryCode="+t,method:"POST",success:function(n){n.length==0?$("#regions-form").hide():($("#regions-form").show(),$.each(n,function(){$("#regionDdl").append($("<option>",{value:this.name,text:this.name}))}))}}))}},{key:"applyShippingMethod",value:function(n){var i={shippingMethodId:$(n.target).val()},t=this;$.ajax(app.WEB.postOptions(window.location.pathname,"applyShippingMethod",i)).then(function(n){t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"applyShippingAddress",value:function(n){var i={countryCode:$("#countryDdl").val(),region:$("#countryDdl").val()==="USA"?"":$("#regionDdl").val(),postalCode:$("#postalCode").val()},t=this;$("#get-shipping-methods").html("loading");$(n.target).removeAttr("id");$.ajax(app.WEB.postOptions(window.location.pathname,"applyShippingAddress",i)).then(function(n){t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"moveItemToCart",value:function(n){$(n.target).removeAttr("data-move-item-to-cart");$(n.target).html("Loading");var i={lineItemId:$(n.target).data("line-item-id"),variationCode:$(n.target).data("variation-code"),quantity:$(n.target).data("quantity")},t=this;$.ajax(app.WEB.postOptions(window.location.pathname,"moveItemToCart",i)).then(function(n){t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"changeSaveForLaterItemQuantity",value:function(n){$(n.target).removeAttr("data-change-save-for-later-quantity");$(n.target).html("Loading");var i=$(n.target).data("line-item-id"),r=$(n.target).data("cart-id"),u=$(n.target).data("variation-code"),f=$(n.target).siblings(".quantityBox")[0].value,t=this,e={savedForLaterCartId:r,lineItemId:i,variationCode:u,quantity:f};$.ajax(app.WEB.postOptions(window.location.pathname,"changeSaveForLaterItemQuantity",e)).then(function(n){t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"removeItemFromSaved",value:function(n){$(n.target).removeAttr("data-change-save-for-later-quantity");$(n.target).html("Loading");var i={lineItemId:$(n.target).data("line-item-id"),quantity:0},t=this;$.ajax(app.WEB.postOptions(window.location.pathname,"removeItemFromSavedForLater",i)).then(function(n){t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"changeItemQuantity",value:function(n){$(n.target).removeAttr("data-change-quantity");$(n.target).html("Loading");var t=$(n.target).closest("[data-line-item-id]"),i=t.data("line-item-id"),r=t.data("variation-code"),u=$(n.target).closest("[data-line-item-id]").find(".quantityBox")[0].value,f={lineItemId:i,variationCode:r,quantity:u};this.updateCartAjaxCall(f)}},{key:"removeItem",value:function(n){$(n.target).removeAttr("data-remove-item");$(n.target).html("Loading");var t=$(n.target).closest("[data-line-item-id]").data("line-item-id"),i={lineItemId:t,quantity:0};this.updateCartAjaxCall(i)}},{key:"emptyCart",value:function(n){$(n.target).html("Loading");var t=this;$("#clear-cart").modal("hide");$.ajax(app.WEB.postOptions(window.location.pathname,"emptyCart")).then(function(n){t.updateShoppingCartHtml(n);$(".modal-backdrop").length>0&&$(".modal-backdrop").remove()}).fail(function(n){t.handleError(n)})}},{key:"saveForLaterItem",value:function(n){$(n.target).removeAttr("data-save-for-later-item");$(n.target).html("Loading");var i=$(n.target).closest("[data-line-item-id]").data("line-item-id"),r={lineItemId:i},t=this;$.ajax(app.WEB.postOptions(window.location.pathname,"saveForLater",r)).then(function(n){n.url!=""&&n.url!=undefined?window.location.href=n.url:t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"applyCouponCode",value:function(){var t=this,i=$("#coupon-code").val(),r={couponCode:i},n=this;$("#apply-coupon-code").html("loading");n.couponErrorContainer.hide();$.ajax(app.WEB.postOptions(window.location.pathname,"applyCouponCode",r)).then(function(i){n.updateShoppingCartHtml(i);$(document).one("click","#apply-coupon-code",t.applyCouponCode)}).fail(function(i){n.handleError(i);$(document).one("click","#apply-coupon-code",t.applyCouponCode)})}},{key:"removeCouponCode",value:function(n){$(n.target).html("Loading");var i=$(n.target).closest("[data-coupon-code]").data("coupon-code"),r={couponCode:i},t=this;t.couponErrorContainer.hide();$.ajax(app.WEB.postOptions(window.location.pathname,"removeCouponCode",r)).then(function(n){t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"updateCartAjaxCall",value:function(n){var t=this;$.ajax(app.WEB.postOptions(window.location.pathname,"updateItemQuantity",n)).then(function(n){t.updateShoppingCartHtml(n)}).fail(function(n){t.handleError(n)})}},{key:"updateShoppingCartHtml",value:function(n){if(n.hasOwnProperty("errorMessage")&&n.errorMessage!=undefined){console.log(n);alert(n.errorMessage);return}this.cartContainer.html(n);this.renderPayPalButton();var t=this;$.ajax({url:"/Navigation/MiniCart",method:"GET",success:function(n){$("#shopping-cart").replaceWith(n);t.applyCouponCodeOnEnterKey();t.applyZipCodeOnEnterKey()}});this.giftOptions.init()}},{key:"renderPayPalButton",value:function(){var n=$("#paypal-button-container1"),t=$(n).data("checkout-url"),i=$(n).data("environment");paypal.Button.render({env:i=="live"?"production":"sandbox",commit:!1,payment:function(){return paypal.request.post("/api/checkoutApi/CreatePayPalAuthorizationPayment?isCheckoutCart=false").then(function(n){return n.paymentID})},onAuthorize:function(n){window.location=t+"?paymentId="+n.paymentID+"&payerId="+n.payerID}},"#paypal-button-container1")}},{key:"handleError",value:function(n){app.API.handleEmptyCartIdError(n)||(console.log(n),alert("An error occured while performing this action."))}}]),n}();$(function(){var n=new CartPage;n.init()})