function initTryLikeBuy(n,t,i,r){function l(n){n.hasClass(f)?u(n,!1):u(n,!0)}function u(n,t){t?(n.removeClass(o),n.addClass(e)):(n.removeClass(e),n.addClass(o))}function h(n){var t=[],i,r;t=n.map(function(n){return{id:n.Id,productId:n.ProductId,isLiked:n.IsLiked,likedDate:n.LikedDate,isTasted:n.IsTasted,tastedDate:n.TastedDate}});i=t.filter(function(n){return n.isTasted==!0}).length;r=t.filter(function(n){return n.isLiked==!0}).length;a(i,r)}function a(n,t){c||n+t!=0?($("#legalNotice").toggleClass("padded",!0),$("#tryLikeBar").removeClass("hidden"),$("#tryLikeBarTried").text("TRIED: "+n),$("#tryLikeBarLiked").text("LIKED: "+t),s?$("#tryLikeBarReturnToTasting").parent().closest("div").hide():$("#tryLikeBarReturnToTasting").parent().closest("div").show()):($("#legalNotice").toggleClass("padded",!1),$("#tryLikeBar").addClass("hidden"))}var f="selected",e="btn-primary selected",o="btn-primary btn-outline",c=r,s=!1;$(".product-action").click(function(){var r=$(this),i=r.attr("data-id"),e=r.hasClass(f)?r.attr("data-activeAction"):r.attr("data-inactiveAction"),s={id:i},o=$(".sk-spinner",r);o.is(":visible")||(o.show(),$.post(n+e,s).done(function(n){if(n.Success)h(n.Data);else{n.Errors&&n.Errors.length==1&&n.Errors[0].Value&&n.Errors[0].Value[0]==t&&$("#loginModal").modal();return}l(r);e=="Like"?(u($('.taste-action[data-id="'+i+'"]'),!0),u($('.buy-button[data-id="'+i+'"]'),!0)):e=="Unlike"?u($('.buy-button[data-id="'+i+'"]'),!1):e=="Untaste"&&(u($('.like-action[data-id="'+i+'"]'),!1),u($('.buy-button[data-id="'+i+'"]'),!1));e=="Untaste"?$("#js-tasting-note-div-"+i).addClass("hidden"):$("#js-tasting-note-div-"+i).removeClass("hidden")}).fail(function(){}).always(function(){o.hide()}))});$("#tryLikeBar").ready(function(){var t=$("#tryLikeBar").attr("data-isAtTastingSession");s=t?t:!1;$.post(n+"LoadTastesAndLikes").done(function(n){if(!n.Success){console.log(result.Errors);return}h(n.Data)}).fail(function(n,t,i){console.log(i)}).always(function(){})});$("#tryLikeBar button.close").click(function(){$("#legalNotice").toggleClass("padded",!1);$("#tryLikeBar").addClass("hidden")});$(".js-tasting-note-icon").on("click",function(){$(this).parent().find("textarea.js-tasting-note").focus()});$(".js-tasting-note").on("blur",function(){var t=$(this);setTimeout(function(){var i=$(".sk-spinner",t.parent()),r,u;i.is(":visible")||(i.show(),r=$("i.fa",t.parent()),r.hide(),u={id:t.attr("data-id"),notes:t.val()},$.post(n+"SaveTastingNotes",u).done(function(n){if(!n.Success){console.log(result.Errors);return}}).fail(function(){}).always(function(){i.hide();r.show()}))},250)})}function initTasting(n){function i(t){$.post(n+"StartTastingSession/",{productListId:t}).done(function(t){if(!t.Success){console.log(t.Errors);return}location.href=n+"TastedWine/?tastingSessionId="+t.Data}).fail(function(n,t,i){console.log(i)}).always(function(){})}function t(n){n?($(".js-for-save-modal").hide(),$(".js-for-delete-modal").show()):($(".js-for-save-modal").show(),$(".js-for-delete-modal").hide());$(".js-for-success").hide()}$(".a-tasting-menu").click(function(n){var t=$(this),r=t.attr("data-itemcount");r&&r==1?i(t.attr("data-id")):location.href=t.attr("data-url");n.preventDefault()});$("#tryLikeBarReturnToTasting").click(function(){$.post(n+"ReturnToTasting").done(function(t){location.href=t.Success?n+"TastedWine/?tastingSessionId="+t.Data:n+"TastingMenu/"}).fail(function(n,t,i){console.log(i)}).always(function(){})});$("#tryLikeBarSaveTasting").click(function(){t(!1);$("#tryLikeSaveModal").modal()});$("#tryLikeSaveModal").on("shown.bs.modal",function(){$("#tryLikeSaveModal .js-for-success").is(":visible")&&$.post(n+"GetProductListDetails").done(function(n){if(!n.Success){console.log(result.Errors);return}var t=n.Data;$("#btn-success-start-new").attr("data-itemcount",t.Count);$("#btn-success-start-new").attr("data-id",t.Id)}).fail(function(n,t,i){console.log(i)}).always(function(){})});$("#a-delete-session").click(function(){t(!0)});$("#btn-cancel-delete").click(function(){t(!1)});var r=$("#a-save-tasting").ladda();$("#a-save-tasting").click(function(){if($("#saveForm").valid()&&!$(this).is(":disabled")){var t={Email:$("#Email").val(),Follow:$("#Follow").is(":checked"),AcceptTermsAndConditions:$("#AcceptTermsAndConditions").is(":checked")};r.ladda("start");$.post(n+"CheckEmailSaveTasting",t).done(function(n){if(!n.Success){console.log(result.Errors);return}var t=n.Data;location.href=t+"?success=taste"}).fail(function(n,t,i){console.log(i)}).always(function(){r.ladda("stop")})}});$("#tryLikeBarDiscard").click(function(){t(!0);$("#tryLikeSaveModal").modal()});$("#a-delete-tasting").click(function(){$.post(n+"DeleteTastingSession").done(function(n){if(!n.Success){console.log(result.Errors);return}var t=n.Data;location.href=t+"?success=delete"}).fail(function(n,t,i){console.log(i)}).always(function(){})});$("#btn-success-start-new").click(function(){var n=$(this),t=n.attr("data-itemcount");t&&t==1?i(n.attr("data-id")):$("#tryLikeSaveModal .close").click()});$("#btn-success-done").click(function(){location.href=$(this).attr("data-url")})}function initFollow(n,t,i){function o(i){i=="Follow"&&u||($(".js-mailing-list").html(e),$(".js-mailing-list-hero a").html(c),$.post(n+i).done(function(n){if(!n.Success){n.Errors&&n.Errors.length==1&&n.Errors[0].Value&&n.Errors[0].Value[0]==t?$("#loginModal").modal():(console.error("Error joining mailing list"),console.log(n));r(!1);return}r(!0)}).fail(function(n){console.error("Error joining mailing list");console.log(n);r(!1)}).always(function(){}))}function r(n){n?($(".js-mailing-list").html(s),$(".js-mailing-list-hero a").html(l),$(".js-mailing-list").css("opacity","0.7"),$(".js-mailing-list").css("cursor","default"),$(".js-mailing-list-hero a").css("opacity","0.7"),$(".js-mailing-list-hero a").css("cursor","default")):($(".js-mailing-list").html(f),$(".js-mailing-list-hero a").html(h),$(".js-mailing-list").css("opacity",""),$(".js-mailing-list").css("cursor",""),$(".js-mailing-list-hero a").css("opacity",""),$(".js-mailing-list-hero a").css("cursor",""));u=n}$(".js-mailing-list").on("click",function(n){n.preventDefault();o("Follow")});$(".js-mailing-list-hero a").on("click",function(n){n.preventDefault();o("Follow")});var f="JOIN MAILING LIST",e="JOINING...",s='<i class="fa fa-check"><\/i> THANKS FOR JOINING!',h=f,c=e,l='<i class="fa fa-check"><\/i> JOINED!',u=i;r(u)}var cartItemTemplateHelper={loadProduct:function(n,t,i){var u=this.calculateBottlePrice(t),r=t.fullPrice||u,e,f;n.attr("data-id",t.id);n.attr("id","cart-item-row-"+t.id);$(".cart-product-image",n).attr("src",t.thumbnailUrl);e=t.name.indexOf(t.vintage)>=0;$(".cart-product-name",n).text(e?t.name:t.name+" "+(t.vintage||""));t.brandNameOverride&&(f=$("<small><\/small>"),f.text(t.brandNameOverride),$(".cart-product-name",n).prepend(f));$(".cart-single-price",n).toggle(this.hasSinglePrice(t));$(".cart-halfdozen-price",n).toggle(this.hasHalfDozenPrice(t));$(".cart-dozen-price",n).toggle(this.hasDozenPrice(t));$(".cart-club-price",n).toggle(i>0?!0:!1);$(".cart-full-price",n).toggle(u<r);t.singlePrice&&$(".cart-single-price .cart-price-display",n).text(t.singlePrice.toFixed(2));t.halfDozenPrice&&$(".cart-halfdozen-price .cart-price-display",n).text(t.halfDozenPrice.toFixed(2));t.dozenPrice&&$(".cart-dozen-price .cart-price-display",n).text(t.dozenPrice.toFixed(2));i>0&&$(".cart-club-price .cart-price-display",n).text(this.calculateClubPrice(r,i).toFixed(2));u<r&&$(".cart-full-price .cart-price-display",n).text(r.toFixed(2));$(".cart-min-single-show",n).toggle(t.minimumOrderQuantity==1);$(".cart-min-halfdozen-show",n).toggle(t.minimumOrderQuantity==6);$(".cart-min-dozen-show",n).toggle(t.minimumOrderQuantity==12);$(".cart-tried",n).toggle(t.isTried||t.isLiked);$(".cart-liked",n).toggle(t.isLiked)},updateProductPricingDisplay:function(n,t,i,r){function f(t){s.removeClass("active");h.removeClass("active");c.removeClass("active");l.removeClass("active");t&&(t.addClass("active"),$(".cart-active-price .cart-price-display",n).text($(".cart-price-display",t).text()))}var u,e,o;$(".cart-quantity-display",n).text(t.quantity);var s=$(".cart-single-price",n),h=$(".cart-halfdozen-price",n),c=$(".cart-dozen-price",n),l=$(".cart-club-price",n);return u=0,i>=12&&t.dozenPrice&&this.hasDozenPrice(t)?(u=t.dozenPrice,f(c)):i>=6&&t.halfDozenPrice&&this.hasHalfDozenPrice(t)?(u=t.halfDozenPrice,f(h)):i>=0&&t.singlePrice&&this.hasSinglePrice(t)?(u=t.singlePrice,f(s)):(u=t.fullPrice,f(null)),r>0&&(e=this.calculateClubPrice(t.fullPrice||u,r),(!u||e<u)&&(f(l),u=e)),t.maximumOrderQuantity&&t.maximumOrderQuantity>0&&(o=$(".cart-quantity-max",n),o.text("Max: "+t.maximumOrderQuantity),o.show()),$(".cart-product-summary-price",n).text("$"+(u*t.quantity).toFixed(2)),u},websiteHasSaleableStock:function(n){if(n.outOfStockBehaviour!=null&&n.outOfStockBehaviour==0){if(n.stockCount!=null&&n.quantity>Math.max(0,n.stockCount))return!1;if(n.stockCount!=null&&n.quantity<=Math.max(0,n.stockCount)||n.quantity<1)return!0}return!0},calculateClubPrice:function(n,t){return n*(100-t)/100},calculateBottlePrice:function(n){return n.minimumOrderQuantity==1?n.singlePrice:n.minimumOrderQuantity==6?n.halfDozenPrice:n.dozenPrice},hasSinglePrice:function(n){return n.singlePrice?!0:!1},hasHalfDozenPrice:function(n){return n.halfDozenPrice&&(!n.singlePrice||n.singlePrice>n.halfDozenPrice)?!0:!1},hasDozenPrice:function(n){return n.dozenPrice&&(!n.halfDozenPrice||n.halfDozenPrice>n.dozenPrice)?!0:!1},minimumOrderQuantity:function(n,t,i){return n?1:t?6:i?12:0},mapProductFromViewModel:function(n,t){return t=t||0,{id:n.Id,thumbnailUrl:n.CoverPhotoPath,name:n.Name,brandNameOverride:n.BrandNameOverride||null,fullPrice:n.FullPrice,singlePrice:n.SinglePrice,halfDozenPrice:n.HalfDozenPrice/6,dozenPrice:n.DozenPrice/12,minimumOrderQuantity:this.minimumOrderQuantity(n.SinglePrice,n.HalfDozenPrice,n.DozenPrice),quantity:t,productGroup:n.ProductGroup,isTried:n.IsTasted||!1,isLiked:n.IsLiked||!1,vintage:n.Vintage||""}},mapProductStockFromViewModel:function(n,t){t.stockCount=n.StockCount||n.Count||0;t.outOfStockBehaviour=n.OutOfStockBehaviour;t.tastingStockCount=n.TastingStockCount||null},getTotalQuantity:function(n){return!n||n.length==0?0:n.map(function(n){return n.quantity}).reduce(function(n,t){return n+t})},getProductGroupOrderQty:function(n,t){if(!n||n.length==0)return 0;var i=$.grep(n,function(n){return n.productGroup==t});return i.map(function(n){return n.quantity}).reduce(function(n,t){return n+t})}};(function(n){n.widget("withwine.shoppingCart",{options:{value:0,cart:[],productTemplate:n(".js-cart-item-template").prop("outerHTML"),productListSelector:"#cart-item-container",basePath:"/",checkoutBasePath:"https://secure.withwine.com/",newProductClass:"animated bounceIn",clubBenefits:{discountPercentage:0,freeShipping:!1}},_latestCalculateRequest:null,_calculateTimeoutId:null,_latestLoadingRequest:null,_queuedUpdatesTimeoutId:null,_queuedUpdates:[],_checkoutDisabledItems:[],_create:function(){n.each(this.options.cart,function(){element.quantity&&element.quantity>0&&this._addProductToCartHtml(element)});this.options.cart.length>0&&this._updateTotals();var t=this;n(".cart-state",this.element).change(function(){t._updateFooterDisplay()});n(".cart-checkout-btn",this.element).click(function(i){if(i.preventDefault(),n(".cart-checkout-btn").attr("disabled")!="disabled"){var r=t.options.checkoutBasePath+"WithWineOrder/Checkout/?state="+(n(".cart-state",t.element).val()||"");r=r+"&productIds="+t.options.cart.map(function(n){return n.id}).join(",");r=r+"&quantities="+t.options.cart.map(function(n){return n.quantity}).join(",");location.href=r}})},showCart:function(t){if(shoppingCartThis=this,n(".cart-loading",this.element).show(),n(".cart-empty",this.element).hide(),n(".cart-product-row",this.element).remove(),this._latestLoadingRequest==null){this._setCheckoutDisabledForKey("showCart",!0);var i=this._latestLoadingRequest=n.get(shoppingCartThis.options.basePath+"GetCart",{tastingSessionId:t}).done(function(n){if(!n.Success){console.log(n.Errors);return}shoppingCartThis._latestLoadingRequest==i&&shoppingCartThis._processServerResults(n.Data);shoppingCartThis._setCheckoutDisabledForKey("showCart",!1);shoppingCartThis._updateCheckoutButtonForStock()}).fail(function(n,t,i){console.log(i)}).always(function(){shoppingCartThis._latestLoadingRequest==i&&(n(".cart-loading",this.element).hide(),shoppingCartThis._latestLoadingRequest=null)})}this.element.modal()},addProductToCart:function(t,i,r,u,f,e,o,s){var u=parseFloat(u),l=parseFloat(f),a=parseFloat(e),t,h,c;this._setCheckoutDisabledForKey("addProductToCart",!0);t=parseInt(t,10);h=this;n(".cart-loading",this.element).show();n(".cart-empty",this.element).hide();n(".cart-product-row",this.element).remove();c=this._latestLoadingRequest=n.post(h.options.basePath+"AddProductToCart",{productId:t,quantity:this._minimumOrderQuantity(u,l,a),tastingSessionId:s}).done(function(i){if(!i.Success){console.log(i.Errors);return}if(h._latestLoadingRequest==c){h._setCheckoutDisabledForKey("addProductToCart",!1);h._processServerResults(i.Data);var r=n('.cart-product-row[data-id="'+t+'"]',h.element);r.addClass(h.options.newProductClass)}}).fail(function(n,t,i){console.log(i)}).always(function(){h._latestLoadingRequest==c&&(n(".cart-loading",this.element).hide(),h._latestLoadingRequest=null)})},_calculateClubPrice:function(n){return cartItemTemplateHelper.calculateClubPrice(n,this.options.clubBenefits.discountPercentage)},_calculateBottlePrice:function(n){return cartItemTemplateHelper.calculateBottlePrice(n)},_hasSinglePrice:function(n){return cartItemTemplateHelper.hasSinglePrice(n)},_hasHalfDozenPrice:function(n){return cartItemTemplateHelper.hasHalfDozenPrice(n)},_hasDozenPrice:function(n){return cartItemTemplateHelper.hasDozenPrice(n)},_addProductToCartHtml:function(t){var u=n(this.options.productListSelector,this.element),i=n(this.options.productTemplate),r;cartItemTemplateHelper.loadProduct(i,t,this.options.clubBenefits.discountPercentage);n(".cart-carrot",u).before(i);r=this;n(".cart-minus",i).click(function(){r._incrementQty(t.id,!1)});n(".cart-plus",i).click(function(){r._incrementQty(t.id,!0)});this._checkStockLevels(t);i.show();this._updateCheckoutButtonForStock()},_checkStockLevels:function(t){cartItemTemplateHelper.websiteHasSaleableStock(t)?n(".js-stock-error-label",'*[data-id="'+t.id+'"]').hide():n(".js-stock-error-label",'*[data-id="'+t.id+'"]').show();this._updateCheckoutButtonForStock();t.tastingStockCount!=null&&(t.quantity>t.tastingStockCount?n(".js-tasting-stock-error-label",'*[data-id="'+t.id+'"]').show():t.quantity<=t.tastingStockCount&&n(".js-tasting-stock-error-label",'*[data-id="'+t.id+'"]').hide())},_incrementQty:function(n,t){var r=t?1:-1,i=this._getProductFromCart(n),u;i&&(u=i.quantity,i.quantity=i.quantity+r*i.minimumOrderQuantity,i.quantity<0&&(i.quantity=0),this._checkStockLevels(i),this._queueServerUpdate(n,i.quantity),this._updateTotals())},_updateTotals:function(){var r=this,i,t;if(n(".cart-empty",this.element).toggle(this.options.cart.length==0),i=0,n(".cart-carrot").hide(),t=[],n.each(this.options.cart,function(n,u){var e=r._updateProductPricingDisplay(u),f=r._getNextCarrot(u,e);f&&t.push(f);u.quantity>0&&i++}),r._updateFooterDisplay(),t.length>0&&t.reduce){var f=t.reduce(function(n,t){return n>t.additionalRequiredQty?t.additionalRequiredQty:n},12),e=n.grep(t,function(n){return n.additionalRequiredQty==f}),u=t.reduce(function(n,t){return n==null?t:n.discountPercentage>t.discountPercentage?n:t},null);u&&(n(".cart-carrot-count").text(u.additionalRequiredQty),n(".cart-carrot-discount").text(u.discountPercentage.toFixed(0)),n(".cart-carrot").show())}n(".cart-count").text(i);n(".cart-count").toggle(i>0)},_getNextCarrot:function(n,t){var u=this._getTotalOrderQty(),r=u<6?6:u<12?12:0,i,f;return r==0?null:(i=0,r>=12&&n.dozenPrice?i=n.dozenPrice:r>=6&&n.halfDozenPrice&&(i=n.halfDozenPrice),i==0)?null:i>=t?null:(f=n.fullPrice||this._calculateBottlePrice(n),{additionalRequiredQty:r-u,discountPercentage:100-i*100/f})},_updateProductPricingDisplay:function(t){return productRow=n('.cart-product-row[data-id="'+t.id+'"]',this.element),cartItemTemplateHelper.updateProductPricingDisplay(productRow,t,cartItemTemplateHelper.getProductGroupOrderQty(this.options.cart,t.productGroup),this.options.clubBenefits.discountPercentage)},_updateFooterDisplay:function(){var i=this._getTotalOrderQty(),r,t,u;(n(".cart-price-summary",this.element).toggle(i>0),n(".cart-checkout-btn",this.element).toggle(i>0),i<=0)||(r={items:this.options.cart.map(function(n){return{productId:n.id,quantity:n.quantity}}),state:n(".cart-state",this.element).val()},n(".cart-price-summary .sk-spinner",this.element).show(),n(".cart-shipping-total",this.element).hide(),n(".cart-discount-total",this.element).hide(),n(".cart-total",this.element).hide(),t=this,t._latestCalculateRequest=null,this._setCheckoutDisabledForKey("_updateFooterDisplay",!0),n("#cartModalError",this.element).text("..."),u=function(){t._calculateTimeoutId=null;var i=t._latestCalculateRequest=n.post(t.options.basePath+"CalculateOrderTotal",r).done(function(r){if(!r.Success&&!r.Data){console.log(r.Errors);return}if(i==t._latestCalculateRequest){r.Errors.length>0?(n("#cartModalError",t.element).text(r.Errors[0].Value[0]),n("#cartModalError",t.element).show()):(n("#cartModalError",t.element).hide(),t._setCheckoutDisabledForKey("_updateFooterDisplay",!1));var u=r.Data,f="";u.IsShippingIncluded?n(".cart-shipping-total",t.element).text(u.Shipping>0?"$"+u.Shipping:t.options.clubBenefits.freeShipping?"Free for club members":"Free"):(f=t.options.clubBenefits.freeShipping?"":" (plus shipping)",n(".cart-shipping-total",t.element).text(t.options.clubBenefits.freeShipping?"Free for club members":"Please select a state for shipping"));n(".cart-total",t.element).text("$"+u.Total.toFixed(2)+f)}}).fail(function(n,t,i){console.log(i)}).always(function(){i==t._latestCalculateRequest&&(n(".cart-price-summary .sk-spinner",t.element).hide(),n(".cart-shipping-total",t.element).show(),n(".cart-discount-total",t.element).show(),n(".cart-total",t.element).show())})},this._calculateTimeoutId&&clearTimeout(this._calculateTimeoutId),this._calculateTimeoutId=setTimeout(u,500))},_getTotalOrderQty:function(){return cartItemTemplateHelper.getTotalQuantity(this.options.cart)},_getProductFromCart:function(n){var t=this.options.cart.filter(function(t){return t.id==n});return t&&t.length>0?t[0]:null},_minimumOrderQuantity:function(n,t,i){return cartItemTemplateHelper.minimumOrderQuantity(n,t,i)},_processServerResults:function(t){var i=this;this.options.cart=t.map(function(n){var t=cartItemTemplateHelper.mapProductFromViewModel(n,n.Quantity);return cartItemTemplateHelper.mapProductStockFromViewModel(n,t),t}).sort(function(n,t){return n.name>t.name?1:-1});n(".cart-product-row",this.element).remove();n.each(this.options.cart,function(n,t){i._addProductToCartHtml(t)});this._updateTotals()},_queueServerUpdate:function(t,i){var r=this,u=this._queuedUpdates.filter(function(n){return n.productId==t}),f;u.length==0?this._queuedUpdates.push({productId:t,quantity:i}):u[0].quantity=i;n('.cart-product-row[data-id="'+t+'"] .cart-qty-updating',this.element).show();f=function(){r._queuedUpdatesTimeoutId=null;n.post(r.options.basePath+"UpdateProductsInCart",{items:r._queuedUpdates}).fail(function(n,t,i){console.log(i)}).always(function(){n(".cart-qty-updating",r.element).hide()});r._queuedUpdates=[]};this._queuedUpdatesTimeoutId&&clearTimeout(this._queuedUpdatesTimeoutId);this._queuedUpdatesTimeoutId=setTimeout(f,500)},_updateCheckoutButtonForStock:function(){var t=n(".js-stock-error-label").is(function(){return n(this).is(":visible")});this._setCheckoutDisabledForKey("stockError",t)},_setCheckoutDisabledForKey:function(t,i){var r=this._checkoutDisabledItems.indexOf(t);i&&r<0&&this._checkoutDisabledItems.push(t);!i&&r>=0&&this._checkoutDisabledItems.splice(r,1);this._checkoutDisabledItems.length>0?n(".cart-checkout-btn",this.element).attr("disabled","disabled"):n(".cart-checkout-btn",this.element).removeAttr("disabled")}})})(jQuery)