function MiniBasketViewModel(n){var t=this;t.loaded=ko.observable(!1);t.itemCount=ko.observable(0);t.itemCountFormatted=ko.computed(function(){return Globalize.format(t.itemCount(),"N0")});t.update=function(){var i=$.ajax({url:"/basket/minidata",cache:!1});i.done(function(i){t.itemCount(i.lineCount);t.loaded(!0);n.fadeIn()})}}var $miniBasket=$("#mini-basket"),miniBasketViewModel;$miniBasket.length>0&&(miniBasketViewModel=new MiniBasketViewModel($miniBasket),ko.applyBindings(miniBasketViewModel,$miniBasket[0]),miniBasketViewModel.update()),function(){var n=0,t=3;window.onerror=function(i,r,u,f,e){if(n++>t)return!1;for(let n in window.Modernizr)if(window.Modernizr.hasOwnProperty(n)&&!n)return!1;const o={message:i,url:r,line:u,column:f};e&&(o.errorObject=JSON.stringify(e));console.info("Sending error to server");console.info(o);const s=new XMLHttpRequest;return s.open("POST","/javascript/logerror"),s.setRequestHeader("Content-Type","application/json"),s.send(JSON.stringify(o)),!1}}();var Multilang=Multilang||{},Global=Global||{CultureCode:null,LanguageCode:null},Pim=function(){"use strict";function n(n){typeof ga!="undefined"&&(ga("send","event",(n.category||"").toString().toLowerCase().trim(),(n.action||"").toString().toLowerCase().trim(),(n.label||"").toString().toLowerCase().trim(),n.value),console.log(n))}function s(){$("body").css("cursor","progress");$('<div class="nt-ajaxing-overlay"><i class="fa fa-refresh fa-spin fa-fw"><\/i><\/div>').hide().prependTo("body").delay(300).fadeIn(100)}function h(){$("body").css("cursor","default");$(".nt-ajaxing-overlay").stop().remove()}function t(n,t){var i,r;return n==="#top"?($("html,body").animate({scrollTop:0},300),!0):(i=$(n),i=i.length&&i||$("[name="+n.slice(1)+"]"),i.length)?(r=i.offset().top-(t||15),$("html,body").animate({scrollTop:r},800),!0):!1}function i(n,t,i,r){var u=this;u.category=n;u.action=t;u.label=i;u.value=r}function c(){$("body").on("click","a",function(){var u,f,e;console.log("body click a");var t=$(this),r=typeof t.attr("href")!="undefined"?t.attr("href"):"",o=r.match(document.domain.split(".").reverse()[1]+"."+document.domain.split(".").reverse()[0]);if(r.match(/^javascript:/i))return!0;if(u=null,f=null,r.match(/^mailto\:/i))u="email";else if(r.match(/\..*$/))f="download";else if(r.match(/^https?\:/i)&&!o)u="external";else if(r.match(/^tel\:/i))u="telephone";else return!0;return(e=new i(t.data("trackcat")||u||"link",t.data("trackaction")||f||"click",t.data("tracklabel")||t.text()),n(e),t.attr("target")===undefined||t.attr("target").toLowerCase()!=="_blank")?(setTimeout(function(){location.href=r},400),!1):!0})}function l(){$(".nt-js-imagebox").on("click",function(){var t=$(this),o=t.attr("title")||"&nbsp;",u=t.attr("data-description"),f=t.attr("href"),s=parseInt(t.attr("data-width")||480)+32,i='<div class="modal fade">  <div class="modal-dialog" style="width: '+s+'px">    <div class="modal-content">      <div class="modal-header">        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;<\/span><span class="sr-only">Close<\/span><\/button>        <h4 class="modal-title">'+o+'<\/h4>      <\/div>      <div class="modal-body">        <p class="text-center"><img src="'+f+'"><\/p>',r,e;return u&&(i=i+'      <p class="text-muted">'+u+"<\/p>"),i=i+"      <\/div>    <\/div>  <\/div><\/div>",r=$(i).appendTo("body"),r.on("hidden.bs.modal",function(){r.remove()}).modal({show:!0}),e={category:t.data("trackcat")||"image",action:"imagebox",label:(t.data("tracklabel")||f)+""},n(e),!1})}function a(){$(".js-priceinfo-modal-trigger").on("click",function(){var n=$(this);r(n,"#product-price-dialog","priceinfo","pricebox")})}function v(){$(".js-actioninfo-modal-trigger").on("click",function(){var n=$(this);r(n,"#product-action-dialog","actioninfo","actionbox")})}function r(t,i,r,u){var o=t.data("productid"),s=t.data("productname"),f,e;$(i+" .js-product-name").text(s);$(i+" .modal-body").html("...");$(i).modal({show:!0});f=String.format("/{0}/{1}/modalcontent/{2}",Global.CultureCode.toLowerCase(),r,o);$.ajax({url:f,success:function(n){$(i+" .modal-body").html(n)},cache:!1});e={category:"product",action:u,label:t.data("tracklabel")+""};n(e)}function u(n){var i=$(n),t=i.find("[type=submit]"),r=t.outerWidth();t.outerWidth(r).attr("disabled","disabled").data("originalhtml",t.html()).html('<i class="fa fa-circle-o-notch fa-spin fa-fw"><\/i>')}function y(n){var i=$(n),t=i.find("[type=submit]"),r=t.data("originalhtml");t.removeAttr("disabled").html(r)}function p(){typeof $.fn.typeahead=="function"?($(".typeahead").typeahead(),$("#search-box").on("typeaheadselect",function(){$(this).parents("form").submit()}).typeahead({minLength:3,autoSelect:!1,source:function(n,t){$.getJSON("/api/searchsuggestion",{query:n},function(n){t(n)})}})):console.log("no typeahead instance")}function w(){$('[data-method="delete"]').on("click",function(n){var t=this;n.preventDefault();bootbox.confirm(Multilang.Confirmation,function(n){n===!0&&$(t).parents("form").submit()})});$("form").on("submit",function(){var n,t;try{if(console.log("Validating form on submit"),n=$(this),n.valid())return u(n),t=n.find("a.submit"),t.attr("disabled","disabled"),!0}catch(i){console.error(i)}return!1})}function b(){$("[rel=popover]").popover({placement:"top",html:"true",trigger:"hover"})}function k(){$("#js-add-to-basket-multiple").click(function(){$("form.nt-add-to-basket").submit()});$("form.nt-add-to-basket").on("submit",function(n){n.preventDefault();n.stopImmediatePropagation();f(this)})}function d(){var n=$(".js-modal-person-consent");n.length>0&&n.modal({backdrop:"static",keyboard:!1})}function f(t){var r=$(t),u,f;if($(r).removeClass("has-error"),$('[name="quantity"]',r).val()!==""){if(!r.valid()){console.log("Quantity not valid.");$(r).addClass("has-error");return}var s=r.attr("data-cnk")+"",o=r.attr("data-pid"),h=parseInt($('[name="quantity"]',r).val());typeof o!="undefined"&&(u={hashedProductId:o,quantity:h},console.log("Sending data to server:"),console.log(u),$("input",r).attr("readonly","readonly"),f=$.post("/basket/add",u),f.done(function(){var t=$("<i />").addClass("fa fa-check nt-add-to-basket-notify"),f=r.closest(".js-notify-container");f.length===0&&(f=r);f.prepend(t);t.fadeIn("100",function(){t.delay("200").fadeOut("100",function(){t.remove()})});n(new i("basket","add",s,u.quantity));miniBasketViewModel.update();$('[name="quantity"]',r).val(null);$(document).trigger("addtobasket:done");e()}),f.fail(function(n,t,i){if(console.error(n),console.error(t),console.error(i),n!==undefined&&n!==null&&n.responseText!==null&&n.responseText!==""){alert(n.responseText);return}alert("Failed to add to basket.")}),f.always(function(){var n=r.find("[type=submit]");n.removeAttr("disabled");n.html(n.data("originalhtml"));$("input",r).removeAttr("readonly")}))}}function g(){Globalize.culture(Global.CultureCode);$(".hide.onload").hide().removeClass("hide").removeClass("onload");p();w();b();l();c();k();a();v();d();typeof bootbox!="undefined"&&bootbox.setDefaults({locale:Global.LanguageCode});var n=document.location.hash;typeof n!="undefined"&&n!==""&&(console.log("got hash on load - smooth scrolling"),t(n));$('a[href^="#"]').not("[data-toggle]").click(function(){return $(this).hasClass("no-scroll")===!0||this.hash.length<2||!t(this.hash)});$(".js-auto-link").each(function(n,t){var i=$("a:first:not(.nt-js-imagebox)",t);i.length>0&&$(this).css({cursor:"pointer"}).click(function(){var n=i.attr("target");return n?(window.open(i.attr("href"),n),!1):(window.document.location.href=i.attr("href"),!1)})});$(window).ajaxStart(function(){s()}).ajaxStop(function(){h()});$("select").attr("autocomplete","off");$("body").on("click","[data-method=get]",function(n){n.preventDefault();var t=$(this),i=Pim[t.data("callback")];$.getJSON(t.data("jsonurl"),null,function(n){typeof i=="function"?i(n):console.log("No callback function")})});$("a.js-auto-submit").on("click",function(n){n.preventDefault();$(this).parents("form").submit()});$('[data-toggle="tooltip"]').tooltip();$(".js-auto-submit").on("change",function(){$(this).parents("form").submit()});$(".nt-add-to-basket [name=quantity]").on("change",function(){e()})}function e(){window.removeEventListener("beforeunload",o);const n=$(".nt-add-to-basket [name=quantity]");for(let t=0;t<n.length;t++){const i=n[t].value;if(i!==""&&i!=="0"){window.addEventListener("beforeunload",o);break}}}function o(n){var t=Multilang.ConfirmationQuantityInput;return n.returnValue=t,t}function nt(n){n.response?(console.log(n.response.data),console.log(n.response.status),console.log(n.response.headers),n.response.data&&n.response.data.message&&alert(n.response.data.message)):n.request?console.log(n.request):console.log("Error",n.message);console.log(n.config)}return{init:g,trackEvent:n,smoothScrollTo:t,disableButton:u,reenableButton:y,submitAddToBasketForm:f,handleAxiosError:nt,EventData:i}}();Pim.init()