!function(n){"use strict";"function"==typeof define&&define.amd?define(["jquery"],n):"undefined"!=typeof module&&module.exports?module.exports=n(require("jquery")):n(jQuery)}(function(n){var e=-1,r=-1,i=function(n){return parseFloat(n)||0},o=function(t){var f=1,e=n(t),u=null,r=[];return e.each(function(){var t=n(this),e=t.offset().top-i(t.css("margin-top")),o=r.length>0?r[r.length-1]:null;null===o?r.push(t):Math.floor(Math.abs(u-e))<=f?r[r.length-1]=o.add(t):r.push(t);u=e}),r},u=function(t){var i={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof t?n.extend(i,t):("boolean"==typeof t?i.byRow=t:"remove"===t&&(i.remove=!0),i)},t=n.fn.matchHeight=function(i){var r=u(i),f;return r.remove?(f=this,this.css(r.property,""),n.each(t._groups,function(n,t){t.elements=t.elements.not(f)}),this):this.length<=1&&!r.target?this:(t._groups.push({elements:this,options:r}),t._apply(this,r),this)},f;t.version="0.7.0";t._groups=[];t._throttle=80;t._maintainScroll=!1;t._beforeUpdate=null;t._afterUpdate=null;t._rows=o;t._parse=i;t._parseOptions=u;t._apply=function(r,f){var e=u(f),s=n(r),c=[s],l=n(window).scrollTop(),a=n("html").outerHeight(!0),h=s.parents().filter(":hidden");return h.each(function(){var t=n(this);t.data("style-cache",t.attr("style"))}),h.css("display","block"),e.byRow&&!e.target&&(s.each(function(){var i=n(this),t=i.css("display");"inline-block"!==t&&"flex"!==t&&"inline-flex"!==t&&(t="block");i.data("style-cache",i.attr("style"));i.css({display:t,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),c=o(s),s.each(function(){var t=n(this);t.attr("style",t.data("style-cache")||"")})),n.each(c,function(t,r){var u=n(r),f=0;if(e.target)f=e.target.outerHeight(!1);else{if(e.byRow&&u.length<=1)return void u.css(e.property,"");u.each(function(){var t=n(this),u=t.attr("style"),i=t.css("display"),r;"inline-block"!==i&&"flex"!==i&&"inline-flex"!==i&&(i="block");r={display:i};r[e.property]="";t.css(r);t.outerHeight(!1)>f&&(f=t.outerHeight(!1));u?t.attr("style",u):t.css("display","")})}u.each(function(){var t=n(this),r=0;e.target&&t.is(e.target)||("border-box"!==t.css("box-sizing")&&(r+=i(t.css("border-top-width"))+i(t.css("border-bottom-width")),r+=i(t.css("padding-top"))+i(t.css("padding-bottom"))),t.css(e.property,f-r+"px"))})}),h.each(function(){var t=n(this);t.attr("style",t.data("style-cache")||null)}),t._maintainScroll&&n(window).scrollTop(l/a*n("html").outerHeight(!0)),this};t._applyDataApi=function(){var t={};n("[data-match-height], [data-mh]").each(function(){var i=n(this),r=i.attr("data-mh")||i.attr("data-match-height");t[r]=r in t?t[r].add(i):i});n.each(t,function(){this.matchHeight(!0)})};f=function(i){t._beforeUpdate&&t._beforeUpdate(i,t._groups);n.each(t._groups,function(){t._apply(this.elements,this.options)});t._afterUpdate&&t._afterUpdate(i,t._groups)};t._update=function(i,u){if(u&&"resize"===u.type){var o=n(window).width();if(o===e)return;e=o}i?-1===r&&(r=setTimeout(function(){f(u);r=-1},t._throttle)):f(u)};n(t._applyDataApi);n(window).bind("load",function(n){t._update(!1,n)});n(window).bind("resize orientationchange",function(n){t._update(!0,n)})}),function(n){var t=/(\s*\S+|\s)$/,i=/^(\S*)/;n.truncate=function(t,i){return n("<div><\/div>").append(t).truncate(i).html()};n.fn.truncate=function(r){n.isNumeric(r)&&(r={length:r});var u=n.extend({},n.truncate.defaults,r);return this.each(function(){var e=n(this),f,r,o;(u.noBreaks&&e.find("br").replaceWith(" "),f=e.text(),r=f.length-u.length,u.stripTags&&e.text(f),u.words&&r>0&&(o=f.slice(0,u.length).replace(t,"").length,r=u.keepFirstWord&&o===0?f.length-i.exec(f)[0].length-1:f.length-o-1),r<0||!r&&!u.truncated)||n.each(e.contents().get().reverse(),function(t,i){var e=n(i),o=e.text(),f=o.length;if(f<=r){u.truncated=!0;r-=f;e.remove();return}return i.nodeType===3?(n(i.splitText(f-r-1)).replaceWith(u.ellipsis),!1):(e.truncate(n.extend(u,{length:f-r})),!1)})})};n.truncate.defaults={stripTags:!1,words:!1,keepFirstWord:!1,noBreaks:!1,length:Infinity,ellipsis:"…"}}(jQuery);"use strict";var Catalogue={};(function(n,t){t.initList=[];t.controllerName="Catalog";typeof window.mmiSite.const.CATALOG_CONTROLLER!="undefined"&&(t.controllerName=window.mmiSite.const.CATALOG_CONTROLLER);t.const={REQUEST_TIMEOUT:2e4};t.addInitialiser=function(n){typeof n=="function"&&t.initList.push(n)};t.getSuccessMessage=function(i,r){n.ajax({type:"GET",url:"/umbraco/surface/DefaultSurface/GetErrorMessage?pageName="+i+"&messageNumber="+r,contentType:"application/json; charset=utf-8",timeout:2e4}).done(function(n){t.notifySuccess(n)}).fail(function(n){return console.log("Errors: ",n),"required"})};t.getErrorMessage=function(i,r,u){n.ajax({type:"GET",url:"/umbraco/surface/DefaultSurface/GetErrorMessage?pageName="+i+"&messageNumber="+r,contentType:"application/json; charset=utf-8",timeout:2e4}).done(function(n){t.notifyFailure(n,u)}).fail(function(n){return console.log("Errors: ",n),"required"})};t.init=function(){if(t.bindClickHandlers(),t.bindOneOffClickHandlers(),t.bindWishlistAddHandler(n(".btn-wishlist-add-static")),t.bindWishlistRemoveHandler(n(".btn-wishlist-active-static")),this.initList.length>0)for(var i=0;i<this.initList.length;i++)t.initList[i]()};t.runInit=function(n){t.selectorExists(n.selector)&&(t.addInitialiser(n.init),t.init())};t.setController=function(n){t.controllerName=n};t.selectorExists=function(t){return n(t).length>0};t.formatNumber=function(n){var i=n.toString(),t=[];return i.indexOf(".")>-1?t=i.split("."):t.push(i),t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),t.length>1?t.join("."):t[0]};t.formatPoints=function(n){return t.formatNumber(n)+" Points"};t.summarise=function(t){return n.truncate(t,{length:144,stripTags:!0})};t.notifySuccess=function(t){n.growl({title:"Success",message:t})};t.notifyFailure=function(t,i){console.debug("Errors: ",i);n.growl.error({title:"Error",message:t})};t.addItemToCart=function(i){n.ajax({type:"POST",url:"/umbraco/surface/"+t.controllerName+"/AddProductToCart?productId="+i,timeout:t.const.REQUEST_TIMEOUT}).done(function(){window.mmiSite.updateCartCount();t.cart.hasWidget===!0&&t.cart.reloadCartWidget();t.getSuccessMessage("JSCatalog",10)}).fail(function(n){t.getErrorMessage("JSCatalog",11,n)})};t.addItemToWishList=function(i,r,u,f){n.ajax({type:"POST",url:"/umbraco/surface/"+t.controllerName+"/AddProductToWishList?productId="+i,timeout:t.const.REQUEST_TIMEOUT}).done(function(){u===!0&&t.getCategoryProducts();typeof f=="function"&&f();t.getSuccessMessage("JSCatalog",12)}).fail(function(n){t.getErrorMessage("JSCatalog",13,n)})};t.removeItemFromWishList=function(i,r,u){n.ajax({type:"DELETE",url:"/umbraco/surface/"+t.controllerName+"/RemoveItemFromWishList?id="+i,timeout:t.const.REQUEST_TIMEOUT}).done(function(){r===!0&&t.getCategoryProducts();typeof u=="function"&&u();t.getSuccessMessage("JSCatalog",14)}).fail(function(n){t.getErrorMessage("JSCatalog",15,n)})};t.getCategoryProducts=function(){var i=n("#GetCurrentPageValue").val(),r=n("#nodeId").val(),u=n("#culture-info").val();n.ajax({type:"GET",url:"/umbraco/surface/"+t.controllerName+"/DisplayProducts?page="+i+"&nodeId="+r+"&culture="+u,timeout:t.const.REQUEST_TIMEOUT}).done(function(i){n(".product-list").html(i);t.bindClickHandlers()}).fail(function(n){t.getErrorMessage("JSCatalog",13,n)})};t.bindClickHandlers=function(){n(".btn-cart-add").on("click",function(i){i.preventDefault();var r=n(this).data("id");t.addItemToCart(r)});n(".btn-wishlist-add").on("click",function(i){i.preventDefault();var r=n(this).data("id");t.addItemToWishList(r,n(this),!0)});n(".btn-wishlist-active").on("click",function(i){i.preventDefault();var r=n(this).data("id");t.removeItemFromWishList(r,!0)})};t.bindOneOffClickHandlers=function(){n(".btn-cart-add-static").on("click",function(i){i.preventDefault();var r=n(this).data("id");t.addItemToCart(r)})};t.bindWishlistAddHandler=function(i){i.on("click",function(i){i.preventDefault();var r=n(this).data("id");t.addItemToWishList(r,n(this),!1);n(this).addClass("btn-wishlist-active-static");n(this).removeClass("btn-wishlist-add-static");n(this).off("click");t.bindWishlistRemoveHandler(n(this))})};t.bindWishlistRemoveHandler=function(i){i.on("click",function(i){i.preventDefault();var r=n(this).data("id");t.removeItemFromWishList(r,!1);n(this).removeClass("btn-wishlist-active-static");n(this).addClass("btn-wishlist-add-static");n(this).off("click");t.bindWishlistAddHandler(n(this))})}})(jQuery,Catalogue),function(n,t){t.products={selector:".catalogue-products"};var i=t.products;i.getErrorMessage=function(i,r){n.ajax({type:"GET",url:"/umbraco/surface/DefaultSurface/GetErrorMessage?pageName="+i+"&messageNumber="+r,contentType:"application/json; charset=utf-8",timeout:2e4}).done(function(n){t.notifyFailure(n,error)}).fail(function(n){return console.log("Errors: ",n),"required"})};i.removeChevron=function(n){n.removeClass("fa-chevron-down");n.removeClass("fa-chevron-up")};i.resetChevrons=function(){i.removeChevron(i.$panelChevrons);i.$panelChevrons.addClass("fa-chevron-down")};i.hideMobilePanels=function(){i.windowWidth<i.breakPointWidth&&(i.resetChevrons(),i.$mobilePanelElements.css("display","none"))};i.showCategories=function(){i.$catalogueCategories.css("display","block")};i.showFilters=function(){i.$productFilters.css("display","block")};i.submitSearch=function(){var r=n("#search-form").serializeArray().reduce(function(n,t){return n[t.name]=t.value,n},{});n.ajax({type:"POST",url:"/umbraco/surface/"+t.controllerName+"/HandleProductSearch",data:r,timeout:2e4}).done(function(i){n(".product-list").html(i);t.bindClickHandlers()}).fail(function(n){console.log(n);i.getErrorMessage("JSCatalog",7,n)})};i.init=function(){i.windowWidth=n(window).width();i.breakPointWidth=992;i.$mobilePanel=n(".catalogue-categories .panel");i.$panelChevrons=n(".mobile-panel-header i");i.$catalogueCategories=n(".catalogue-categories");i.$mobilePanelElements=n(".mobile-panel-element");i.$productFilters=n(".points-filter-label, .points-filter-input, .product-sort-label, .product-sort-input");i.$mobilePanelHeaders=n(".mobile-panel-header");i.$searchFormSubmit=n("#search-form-submit");i.$seachForm=n("#search-form");i.$keywordInput=n("#keyword");i.$mobilePanelHeaders.click(function(){var r=i.$mobilePanelHeaders.index(n(this)),t=n(i.$panelChevrons[r]),u=t.hasClass("fa-chevron-up");i.hideMobilePanels();u||(i.removeChevron(t),t.addClass("fa-chevron-up"),r==0?i.showCategories():i.showFilters())});i.$keywordInput.keypress(function(n){if(n.which==13)return i.submitSearch(),!1});i.$seachForm.submit(function(n){n.preventDefault();i.submitSearch()});i.$searchFormSubmit.click(function(){i.submitSearch()});i.$mobilePanel.on("show.bs.collapse",function(){n(this).addClass("active")});i.$mobilePanel.on("hide.bs.collapse",function(){n(this).removeClass("active")});n(window).resize(function(){i.windowWidth=n(this).width();i.windowWidth>i.breakPointWidth?(i.showCategories(),i.showFilters()):i.hideMobilePanels()});n(".product-info").matchHeight()};t.runInit(i)}(jQuery,Catalogue),function(n,t){t.product={selector:".catalogue-product"};var i=t.product;i.init=function(){i.$mainImg=n(".product-image-outer img");i.$thumbs=n(".thumbs li");i.$thumbs.click(function(){i.$mainImg.attr("src",n(this).attr("data-img-url"))})};t.runInit(i)}(jQuery,Catalogue),function(n,t){t.cart={selector:".catalogue-cart"};var i=t.cart;i.hasWidget=!0;i.getSuccessMessage=function(i,r){n.ajax({type:"GET",url:"/umbraco/surface/DefaultSurface/GetErrorMessage?pageName="+i+"&messageNumber="+r,contentType:"application/json; charset=utf-8",timeout:2e4}).done(function(n){t.notifySuccess(n)}).fail(function(n){return console.log("Errors: ",n),"required"})};i.getErrorMessage=function(i,r,u){n.ajax({type:"GET",url:"/umbraco/surface/DefaultSurface/GetErrorMessage?pageName="+i+"&messageNumber="+r,contentType:"application/json; charset=utf-8",timeout:2e4}).done(function(n){t.notifyFailure(n,u)}).fail(function(n){return console.log("Errors: ",n),"required"})};i.changeQuantityByButton=function(r){var u=r.hasClass("btn-add"),e=r.parents(".product-listing"),o=n("#NodeId").val(),s=n("#culture-info").val(),f="";i.productId=n(r).parent().data("product-id");f=u?"IncreaseQuantity":"DecreaseQuantity";n.ajax({type:"GET",url:"/umbraco/surface/"+t.controllerName+"/"+f+"?productId="+i.productId+"&nodeId="+o+"&culture="+s,timeout:t.const.REQUEST_TIMEOUT}).done(function(){i.refreshItem(e,u)}).fail(function(n){i.getErrorMessage("JSCatalog",3,n)})};i.calculateTotal=function(){var t=0;n(".subtotal").each(function(){var r=n(this).html().split(" "),u=i.convertToInt(r[0]);t=t+u});n(".points-total").val(i.convertToLocaleString(t))};i.convertToInt=function(n){var t=parseInt(n.replace(/,/g,""),10);return parseInt(t)};i.convertToLocaleString=function(n){return n.toLocaleString("en")};i.refreshItem=function(t,r,u){var s,o;t.qty=t.find("#qty-input");t.cost=t.find("#product-cost");t.subTotal=t.find("#sub-total");var f=0,h=t.cost.html().split(" "),c=i.convertToInt(h[0]),e;jQuery.type(u)==="undefined"?r?f=parseInt(t.qty.val())+1:(f=parseInt(t.qty.val())-1,f<1&&(e=n(t.qty).parents(".product-listing-wrapper"),e.remove())):f=parseInt(u);f<1?(e=n(t).parents(".product-listing-wrapper"),e.remove()):(t.qty.val(f),s=i.convertToLocaleString(c*f),o=n("#points-label").val(),typeof o=="undefined"&&(o="Points"),t.subTotal.html(s+" "+o));i.checkIfCartIsEmpty();i.calculateTotal();i.reloadCartWidget()};i.removeProductFromCart=function(){n(".remove-link").on("click",function(){var r=n(this).data("product-id"),u=n(this).parents(".product-listing-wrapper");n.ajax({type:"DELETE",url:"/umbraco/surface/"+t.controllerName+"/RemoveProductFromCart?productId="+r,timeout:t.const.REQUEST_TIMEOUT}).done(function(){u.remove();i.reloadCartWidget();i.calculateTotal();i.checkIfCartIsEmpty();i.getSuccessMessage("JSCatalog",1)}).fail(function(n){i.getErrorMessage("JSCatalog",2,n)})})};i.checkIfCartIsEmpty=function(){var t=n(".product-listing").length;t===0&&(n(".checkout-buttons-wrapper").remove(),n("#cartempty").removeClass("cart-empty"),i.bindLink());window.mmiSite.updateCartCount()};i.changeQuantityByInput=function(r){i.quantity=n(r).val();i.productId=n(r).parent().data("product-id");var u=n(r).parents(".product-listing"),f=n("#NodeId").val(),e=n("#culture-info").val();n.ajax({type:"GET",url:"/umbraco/surface/"+t.controllerName+"/SetQuantity/?productId="+i.productId+"&quantity="+i.quantity+"&nodeId="+f+"&culture="+e,timeout:t.const.REQUEST_TIMEOUT}).done(function(){i.refreshItem(u,null,i.quantity)}).fail(function(n){i.getErrorMessage("JSCatalog",3,n)})};i.removeProductFromCartWidget=function(){n(".remove-product-link").on("click",function(){var r=n(this).data("product-id");n.ajax({type:"DELETE",url:"/umbraco/surface/"+t.controllerName+"/RemoveProductFromCart?productId="+r,timeout:2e4}).done(function(){i.reloadCartWidget();var t;n.type(n(".product-list-wrapper").find("[data-product-id='"+r+"']"))!=="undefined"&&(t=n(".product-list-wrapper").find("[data-product-id='"+r+"']"),t.remove(),i.checkIfCartIsEmpty(),i.calculateTotal());i.getSuccessMessage("JSCatalog",1)}).fail(function(n){i.getErrorMessage("JSCatalog",2,n)})})};i.reloadCartWidget=function(){var u=n("#culture-info").val(),f=n("#nodeId").val(),r=n("#partialViewFolder").val();typeof r=="undefined"&&(r="");n.ajax({type:"GET",url:"/umbraco/surface/"+t.controllerName+"/CartWidgetPartial?partialViewFolder="+r+"&nodeId="+f+"&culture="+u,timeout:2e4}).done(function(t){n(".cart-partial-wrapper").html(t);i.removeProductFromCartWidget();i.clearCartWidget();window.mmiSite.updateCartCount();i.bindCartLink();var r=n(".widget-product-listing").length;r<=1&&i.bindLink()}).fail(function(n){console.debug("error reloading cart widget",n)})};i.clearCartWidget=function(){var u=n("#culture-info").val(),f=n("#nodeId").val(),r=n("#partialViewFolder").val();typeof r=="undefined"&&(r="");n(".clear-cart-widget").on("click",function(){n.ajax({type:"GET",url:"/umbraco/surface/"+t.controllerName+"/ResetCartWidget?partialViewFolder="+r+"&nodeId="+f+"&culture="+u,timeout:2e4}).done(function(t){n(".cart-partial-wrapper").html(t);i.bindLink();window.mmiSite.updateCartCount();i.getSuccessMessage("JSCatalog",4)}).fail(function(n){i.getErrorMessage("JSCatalog",5,n)})})};i.bindLink=function(){var t=n("#catalog-link").val(),i=n("#wishlist-link").val();n("#return-to-catalog-link").attr("href",t);n("#route-to-wishlist").attr("href",i)};i.bindCartLink=function(){var t=n("#cart-link").val(),i=n("#wishlist-link").val();n(".route-to-cart").attr("href",t);n(".route-to-wishlist").attr("href",i)};i.init=function(){i.$qtyBttns=n(".quantity-input button");i.qtyInput=n(".quantity-input #qty-input");i.$qtyBttns.click(function(){i.changeQuantityByButton(n(this))});i.qtyInput.focusin(function(){n(this).focusout(function(){i.changeQuantityByInput(n(this))})});i.removeProductFromCart()};i.initWidget=function(){i.removeProductFromCartWidget();i.clearCartWidget();i.bindCartLink();i.bindLink()};i.initWidget();t.runInit(i)}(jQuery,Catalogue),function(n,t){t.wishlist={selector:".catalogue-wishlist"};var i=t.wishlist;i.getSuccessMessage=function(i,r){n.ajax({type:"GET",url:"/umbraco/surface/DefaultSurface/GetErrorMessage?pageName="+i+"&messageNumber="+r,contentType:"application/json; charset=utf-8",timeout:2e4}).done(function(n){t.notifySuccess(n)}).fail(function(n){return console.log("Errors: ",n),"required"})};i.getErrorMessage=function(i,r,u){n.ajax({type:"GET",url:"/umbraco/surface/DefaultSurface/GetErrorMessage?pageName="+i+"&messageNumber="+r,contentType:"application/json; charset=utf-8",timeout:2e4}).done(function(n){t.notifyFailure(n,u)}).fail(function(n){return console.log("Errors: ",n),"required"})};i.reloadWishList=function(){var r=n("#NodeId").val(),u=n("#culture-info").val();n.ajax({type:"GET",url:"/umbraco/surface/"+t.controllerName+"/WishListPartial?nodeId="+r+"&culture="+u,timeout:t.const.REQUEST_TIMEOUT}).done(function(t){n("#wish-list-partial").html(t);i.init()}).fail(function(n){i.getErrorMessage("JSCatalog",8,n)})};i.removeItemFromWishList=function(r){n.ajax({type:"DELETE",url:"/umbraco/surface/"+t.controllerName+"/RemoveItemFromWishList?id="+r,timeout:t.const.REQUEST_TIMEOUT}).done(function(){i.reloadWishList();i.getSuccessMessage("JSCatalog",1)}).fail(function(n){i.getErrorMessage("JSCatalog",2,n)})};i.init=function(){n(".unavailable").each(function(){n(this).hover(function(){n(this).addClass("hover-on")},function(){n(this).removeClass("hover-on")})});n(".remove-link").on("click",function(t){t.preventDefault();var r=n(this).data("id");i.removeItemFromWishList(r)})};t.runInit(i)}(jQuery,Catalogue)