var cartController=new function(){function n(n,t,i){var r,u=getResponseValidationObject(n);return u?(r=i||getValidationSummary(),r.html(""),$.each(u.State,function(n,i){var f,u,e="";(i.Name&&(f=$("form#"+t+" span[data-valmsg-for='"+i.Name+"']").removeClass("field-validation-valid").addClass("field-validation-error"),$("input[name="+i.Name+"]").addClass("input-validation-error"),u=$("label[for="+i.Name+"]").text(),u&&(u+=": ")),f==null||!f.length||(f.text(i.Errors.shift()),i.Errors.length))&&($.each(i.Errors,function(n,t){e+="* "+(u!=null?u:"")+t}),r.append(e))}),r.find("li:first").length&&r.closest("div").show(),!0):!1}this.RemoveItemUrl=null;this.DefaultProduct=null;this.ActiveSection=null;this.Init=function(n){this.RemoveItemUrl=n;cartController.DisplayDefaultProduct()};this.DisplayDefaultProduct=function(){var n=$(".productSection[data-defaultproduct='True']").attr("id");cartController.SetActiveProduct(n)};this.SetActiveProduct=function(n){$(".productSection").hide();$(".cartNavigation").removeClass("current");$("#"+n).show();$(".cartNavigation[data-product='"+n+"']").addClass("current")};this.IncreaseQuantity=function(n){var t=$("#"+n).val();t<99&&(t=+t+1);$("#"+n).val(t)};this.DecreaseQuantity=function(n){var t=$("#"+n).val();t>1&&(t=+t-1);$("#"+n).val(t)};this.HandleAddToCartResult=function(t){var i=$.parseJSON(t);i.Success?($("#formValidationSummary").html(""),cartController.UpdateSummary(i.Summary),cartController.UpdateCartLink(i.ItemCount),cartController.AddToCartGA(i.ProductDenmoninationID,i.Name,i.Price,i.Quantity,i.ProductType)):n(i,"addtocartform",$("#formValidationSummary"))};this.AddToCartGA=function(n,t,i,r,u){dataLayer.push({event:"EEaddToCart",ecommerce:{add:{products:[{id:n,name:t,price:i,quantity:r,category:u}]}}})};this.UpdateCartLink=function(n){n>0?$(".cartItemCount").html(n):$(".cartItemCount").html("")};this.RemoveItem=function(n){$.ajax({async:!1,url:this.RemoveItemUrl,data:{cartItemID:n},type:"post",dataType:"json"}).done(function(n){n.Success&&(cartController.UpdateSummary(n.Summary),cartController.UpdateCartLink(n.ItemCount),cartController.RemoveFromCartGA(n.ProductDenmoninationID,n.Name,n.Price,n.Quantity,n.ProductType))})};this.RemoveFromCartGA=function(n,t,i,r,u){dataLayer.push({event:"EEremoveFromCart",ecommerce:{add:{products:[{id:n,name:t,price:i,quantity:r,category:u}]}}})};this.UpdateSummary=function(n){$("#cartSummarySection").html(n);cartController.BindRemoveItemButtons()};this.BindRemoveItemButtons=function(){$(".removeCartItemButton").click(function(){var n=$(this).data("cartitem");cartController.RemoveItem(n)})};this.SetActiveSection=function(n){cartController.ActiveSection=$("#"+n)}};$(function(){$(".cartNavigation").click(function(){var n=$(this).data("product");cartController.SetActiveProduct(n)});$(".quantity-number__plus").click(function(){var n=$(this).data("product");cartController.IncreaseQuantity(n)});$(".quantity-number__minus").click(function(){var n=$(this).data("product");cartController.DecreaseQuantity(n)});cartController.BindRemoveItemButtons();var r=$("#header"),n=$("#sticky-element"),i=scrollMonitor.create(r),u=$("#footer"),f=n.height()+r.height(),t=scrollMonitor.create(u,{top:f});i.lock();i.visibilityChange(function(){cartController.ActiveSection.height()>n.height()&&n.toggleClass("sticky",!i.isInViewport)});t.fullyEnterViewport(function(){cartController.ActiveSection.height()>n.height()&&t.isAboveViewport&&n.addClass("bottom")});t.partiallyExitViewport(function(){t.isAboveViewport||n.removeClass("bottom")});t.isAboveViewport&&n.addClass("sticky bottom")})