function Pager(n){function h(){l();a();p();c();t.removeClass("loading");r&&e&&s(e)}function c(){f.find(".pager li a").click(function(){if($(this).attr("href")==="#")return!1;if(r){var n=$(this).attr("href");return s(n),n+=(n.indexOf("?")<0?"?":"&")+"cb="+Math.round((new Date).getTime()/1e3),o(n),!1}return!0})}function o(n){n!=="#"&&(t.addClass("loading"),$.get(n,function(n){var i=$(n);i.find("[data-current-url]").removeAttr("data-current-url");t.html(i);t.find(".catalog-item:first").offset().top<$(document).scrollTop()&&t.get(0).scrollIntoView(!0)}))}function l(){r=!!(window.history&&history.pushState)}function a(){r&&!window.onpopstate&&(window.onpopstate=function(n){n.state&&v(n.state)})}function s(n){var t={state:{fetchUrl:n},title:document.title+" p"+y(n),url:n};console.log("["+i+"] pushing state",t);window.history.pushState(t.state,t.title,t.url)}function v(n){console.log("["+i+"] popping state",n);n.fetchUrl&&o(n.fetchUrl)}function y(n){var i=n.indexOf("?"),t;return window.URLSearchParams&&i>=0&&(t=new URLSearchParams(n.substr(i)),t.has("page"))?t.get("page"):"?"}function p(){u.length>0&&(t=u.parent(),t.is(".loading-container")||(t=u.wrap('<div class="loading-container"><\/div>').parent()))}var i;if(!n.is(".catalog-items-pager"))throw new Error("Given container does not have the right class");if(i=n.attr("id"),!i)throw new Error("Given container does not have a valid id");var f=n,u=f.closest(".catalog-items"),t=$(),r=!1,e=n.attr("data-current-url");h()}function Cart(n,t){function u(n,t){t<1&&n.attr("disabled","disabled").addClass("disabled")}function f(n,t){n.find(".cart-item-count").html(t>0?t:"")}function e(n,t){n.qtip({content:$(t),style:"qtip-bootstrap qtip-stripshop",position:{target:$(window),my:"top right",at:"top right"},adjust:{scroll:!0,resize:!1},hide:{when:{event:"inactive"},delay:3e3},show:{when:!1,ready:!0},events:{hide:function(){$(this).qtip("destroy")}}})}function o(n){n.attr("disabled","disabled");n.find("span.glyphicon").removeClass("glyphicon-shopping-cart").addClass("glyphicon-asterisk")}function s(n){n.removeAttr("disabled");n.find("span.glyphicon").addClass("glyphicon-shopping-cart").removeClass("glyphicon-asterisk")}var i=this,r=$.Stripshop.BasePath+"Cart/";i.$link=n;i.options={fetchOnInit:!0};$.extend(i.options,t);i.add=function(t,i,h){var c=$(t);o(c);$.post(r+"AddToCart",{articleEntityId:i,copyEntityId:h},function(t){s(c);t.success===!0&&(t.cartLink&&n.html(t.cartLink),isNaN(t.stockLeft)||u(c,t.stockLeft),isNaN(t.inCart)||f(c,t.inCart),t.popup&&e(c,t.popup))})};i.update=function(t,i){$.post(r+"Update",{copyEntityId:t,quantity:i},function(t){t.success===!0&&(n.html(t.cartLink),t.view&&$("#cart-overview-table").html(t.view))})};i.remove=function(t){$.post(r+"RemoveFromCart",{copyEntityId:t},function(t){t.success===!0&&(n.html(t.cartLink),t.view&&$("#cart-overview-table").html(t.view))})};i.refreshCartLink=function(){n.load(r+"CartLink")};i.options.fetchOnInit===!0&&i.refreshCartLink()}function CartOverview(n,t){function u(){f();e();o()}function f(){i.find("select").change(function(){$(this).val()=="more"?$(this).hide().siblings('input[type="text"]').show():$(this).siblings('input[type="hidden"]').val($(this).val()).change()})}function e(){var n=/[^0-9]|^0+(?!$)/g;i.find('input[type="text"]').keyup(function(){n.test($(this).val())&&$(this).val($(this).val().replace(n,""))}).change(function(){$(this).siblings('input[type="hidden"]').val($(this).val()).change()})}function o(){i.find('input[type="hidden"]').change(function(){var n=parseInt($(this).val());!isNaN(n)&&n>0?$.Stripshop.Cart.update(parseInt($(this).closest("[data-copy-entity-id]").attr("data-copy-entity-id")),n):(console.error("Unable to set quantity."),$(this).val("1").change())})}function s(){n.find('a[data-button-type="remove-item"]').each(function(){var n=$(this);$.Stripshop.Forms.confirmTip(n,function(){$.Stripshop.Cart.remove(parseInt(n.closest("tr").attr("data-copy-entity-id")))})})}var r=this,i;r.$table=n;r.options={};$.extend(r.options,t);i=n.find(".quantity-picker");s();u()}function AddressManager(n){function r(){$.get($.Stripshop.BasePath+"Address/Address"+(e?"Picker":"Manager"),{currentAddressId:h||0,modal:i===null,type:u},function(n){i==null&&e?(i=$(n).modal(),t=i.find(".modal-body .modal-body-content"),o(t)):t.slideUp("fast",function(){t.html(n).slideDown("fast");o(t)})})}function o(n){n.find(".address-row").each(function(){c($(this))});n.find('button[data-button-type="new-address"]').click(function(){s(0)})}function c(n){var t=parseInt(n.attr("data-address-id"));n.find('button[data-button-type="pick-address"]').click(function(){l(t,n.find(".address-item"))});n.find('button[data-button-type="edit-address"]').click(function(){s(t)});$.Stripshop.Forms.confirmTip(n.find('button[data-button-type="remove-address"]'),function(){v(t)});n.find('a[data-button-type="set-default-address"]').click(function(){return y($(this).attr("data-address-type"),t),!1})}function l(n,t){f(n,u,t);i.modal("hide").data("bs.modal",null)}function s(n){$.Stripshop.Forms.load(t,"Address/EditAddressForm",{addressId:n},function(n){a(t.html(n))})}function a(n){n.find('button[data-button-type="cancel"]').click(function(){r()});n.find("form").data("onSuccess",function(n){n.success===!0&&r()})}function v(n){$.post($.Stripshop.BasePath+"Address/RemoveAddress",{addressid:n},function(n){n.success===!0&&r()})}function y(n,t){$.post($.Stripshop.BasePath+"Address/SetDefaultAddressId",{type:n,addressId:t},function(){r()})}var u=n.type,f=n.onPick,h=n.picked,e=$.isFunction(f),i=null,t=n.container;r()}(function(){var n={init:function(t){t.find(".form-group").each(function(){n.bindQtip(t,$(this))})},bindQtip:function(n,t){t.qtip({content:{text:function(){return t.attr("data-validation-message")}},events:{show:function(n,t){$(t.target).hasClass("has-error")||n.preventDefault()}},style:{classes:"qtip-bootstrap qtip-error"},position:{my:"bottom left",at:"top left",adjust:{y:15,x:15},container:n}})},clear:function(n){n.find(".has-error").removeClass("has-error").attr("data-validation-message","");n.find(".validation-summary").slideUp(function(){$(this).remove()})},show:function(n,t){var i=[];$.each(t,function(){var t=n.find(':input[name="'+this.key+'"]:not(:disabled)').closest(".form-group").addClass("has-error").attr("data-validation-message",this.value);i.push({lbl:t.find("> label").text()||this.key,msg:this.value})});n.attr("data-no-validation-summary")||$.Stripshop.Validation.insertSummary(n,i)},insertSummary:function(t,i){var r=$("<div><\/div>"),u;r.append("<p>Onjuiste invoer van velden<\/p>");u=$('<table class="table table-condensed"><\/table>');$.each(i,function(){u.append('<tr><td class="validation-label">'+this.lbl+"<\/td><td>"+this.msg+"<\/td><\/tr>")});r.append(u);n.insertAlert(t,"alert-danger validation-summary",r)},insertAlert:function(n,t,i,r){var u=$('<div class="alert '+t+'"><\/div>').hide();u.append(i);n.prepend(u);u.slideDown("fast");r>0&&u.delay(r).slideUp("false")}};$.extend(!0,{Stripshop:{Validation:n}})})(),function(){var n={editPersonalData:function(t){n.load(t,"Account/EditPersonalData",null)},cancelPersonalData:function(t){n.load(t,"Account/PersonalData",null)},editEmailAddress:function(t){n.load(t,"Account/EditEmailAddress",null)},editPassword:function(t){n.load(t,"Account/EditPassword",null)},deletePendingEmailAddress:function(t,i){$.post($.Stripshop.BasePath+"Account/DeletePendingEmailAddress",{token:i},function(n){n.success===!0&&setSectionView(t,n.view,!0)}).fail(function(t,i){n.autoLogout(t,i)})},cancelAccountData:function(t){n.load(t,"Account/AccountData",null)},load:function(t,i,r,u){$.isFunction(r)&&u==undefined&&(u=r,r=undefined);var e=t.closest("section"),f=$.ajax({type:r!=null&&r!=undefined?"POST":"GET",url:$.Stripshop.BasePath+i,data:r});return e.slideUp("fast",function(){f.done(function(t){n.autoLogout(f,status)||(e.html(t).slideDown("fast"),$.isFunction(u)&&u.call(this,t))})}),f},genericFormSent:function(t,i){var r=$("#"+t);$.Stripshop.Validation.clear(r);n.enableSubmitForm(r,!1);i.success===!0?i.view?$.Stripshop.Forms.setSectionView(r,i.view,i.replace==null||i.replace):i.redirectUrl?i.redirectUrl=="."?window.location.reload():window.location=i.redirectUrl:i.message&&$.Stripshop.Validation.insertAlert(r,"alert-success",$("<p/>").text(i.message),2e3):i.success===!1&&(!window.grecaptcha||grecaptcha.reset(),i.validationMessages?$.Stripshop.Validation.show(r,i.validationMessages):i.message&&$.Stripshop.Validation.insertAlert(r,"alert-danger",$("<p/>").text(i.message)));$.isFunction(r.data("onSuccess"))&&r.data("onSuccess")(i)},onBegin:function(t){n.disableSubmit(t,!1)},onSuccess:function(t,i){n.genericFormSent(t,i)},onFailure:function(t,i,r){if(!n.autoLogout(i,r)){var u=$("#"+t);$.Stripshop.Validation.clear(u);n.enableSubmitForm(u,!1)}},disableSubmit:function(t){n.disableSubmitForm($("#"+t))},disableSubmitForm:function(n){$submit=n.find('button[type="submit"]');$submit.each(function(){$(this).prop("disabled",!0).attr("data-prev-caption",$(this).html()).html('Bezig met laden <div class="loading"><\/div>')})},enableSubmit:function(t){n.enableSubmitForm($("#"+t))},enableSubmitForm:function(n){$submit=n.find('button[type="submit"]');$submit.each(function(){$(this).prop("disabled",!1).html($(this).attr("data-prev-caption")).removeAttr("data-prev-caption")})},autoLogout:function(n,t){return t=="error"&&n.status==403&&(window.location.href="/Account"),!1},confirmTip:function(n,t,i,r){n&&n.length!=0&&($.isFunction(t)&&(i=t,t=n.attr("data-confirm-message").replace(/&lt;/g,"<").replace(/&gt;/g,">")),n.qtip({content:{text:function(r,u){var f=$("div#blueprint-confirm-tip").clone().removeAttr("id");return t!=undefined&&f.find("p").html(t),f.find('[data-button-type="cancel"]').click(function(){return u.hide(),!1}),f.find('[data-button-type="confirm"]').click(function(){return i(n),u.hide(),!1}),f}},events:{show:function(t){if(!n.hasClass("confirm"))try{t.preventDefault()}catch(i){}}},style:"qtip-bootstrap qtip-confirm",position:r||{viewport:$(".col-content"),my:"left center",at:"left center"},show:"click",hide:"unfocus"}).addClass("confirm").click(function(n){return n.preventDefault(),!1}))},setSectionView:function(n,t,i){n=n.is("section")?n:n.closest("section");i?n.hide("fast",function(){n.html(t).show("fast")}):n.after(t)}};$.extend(!0,{Stripshop:{Forms:n}})}(),function(){function t(n,t){n.qtip({content:$(t),style:"qtip-bootstrap qtip-stripshop",position:{viewport:$(".col-content"),my:"center",at:"center"},show:{when:!1,ready:!0},hide:"unfocus",events:{hide:function(){$(this).qtip("destroy")}}})}var n={showFormPopupByAlbum:function(n,i){n.find("span.glyphicon").removeClass("glyphicon-search").addClass("glyphicon-asterisk");$.get($.Stripshop.BasePath+"SearchList/FormByAlbumId",{albumId:i,asPopup:!0},function(i){i&&t(n,i)}).always(function(){n.find("span.glyphicon").removeClass("glyphicon-asterisk").addClass("glyphicon-search")})}};$.extend(!0,{Stripshop:{SearchList:n}})}();var Stripshop=Stripshop||{};Stripshop.ZipCodeApi=Stripshop.ZipCodeApi||{};Stripshop.ZipCodeApi.DutchZipCodeRegex=/^\d{4} ?[a-z]{2}$/i;Stripshop.ZipCodeApi.BaseZipCode=function(n){var t=this;this.$zipCodeFld=n.find('input[name$="ZipCode"]');this.$houseNumberFld=n.find('input[name$="HouseNumber"]');this.$addressFld=n.find('input[name$="Street"]');this.$placeFld=n.find('input[name$="Place"]');this.$allFields=this.$zipCodeFld.add(this.$houseNumberFld).add(this.$addressFld).add(this.$placeFld);this.$frm=this.$zipCodeFld.closest("form");this.$allFormInputs=this.$frm.find(":input")};$.extend(Stripshop.ZipCodeApi.BaseZipCode.prototype,{enabled:!1,$zipCodeFld:null,$houseNumberFld:null,$addressFld:null,$placeFld:null,$allFields:null,$allFormInputs:null});Stripshop.ZipCodeApi.BaseZipCode.prototype.enable=function(){this.enabled=!0};Stripshop.ZipCodeApi.BaseZipCode.prototype.disable=function(){this.disabled=!0};Stripshop.ZipCodeApi.BaseZipCode.prototype.disableFields=function(){this.setFieldsEnable(!1)};Stripshop.ZipCodeApi.BaseZipCode.prototype.enableFields=function(){this.setFieldsEnable(!0)};Stripshop.ZipCodeApi.BaseZipCode.prototype.setFieldsEnable=function(n){this.$allFields.prop("disabled",!n)};Stripshop.ZipCodeApi.BaseZipCode.prototype.focusOnInput=function(n){n.focus().select()};Stripshop.ZipCodeApi.BaseZipCode.prototype.focusOnNextInput=function(n){var t=this.$allFormInputs.index(n);this.$allFormInputs.eq(t+1).first().focus().select()};Stripshop.ZipCodeApi.BaseAutoComplete=function(n){function i(n,i){return t.selectSuggestion.call(t,i?i.item:null)}var t=this;this.api=n;this.autoCompleteArguments={autoFocus:!0,select:i,change:i,source:function(n,i){var r=this,u=t.getRequestObject.call(t,n.term);u!=null&&$.post(t.url,u,function(n){if(n.success===!0){var r=n.suggestions;t.formatSuggestions(r);i(r)}}).fail(function(n){n.status!==200&&(r.close(),r.disable())})}}};$.extend(Stripshop.ZipCodeApi.BaseAutoComplete.prototype,{api:null,url:null,autoCompleteArguments:null});Stripshop.ZipCodeApi.BaseAutoComplete.prototype.getAutoCompleteArguments=function(){return this.autoCompleteArguments};Stripshop.ZipCodeApi.BaseAutoComplete.prototype.getRequestObject=function(){};Stripshop.ZipCodeApi.BaseAutoComplete.prototype.formatSuggestions=function(){};Stripshop.ZipCodeApi.BaseAutoComplete.prototype.selectSuggestion=function(){};Stripshop.ZipCodeApi.BelgianZipCode=function(n){function f(){t.$zipCodeFld.autocomplete(i.getAutoCompleteArguments()).attr("autocomplete","nope");t.$addressFld.autocomplete(r.getAutoCompleteArguments()).attr("autocomplete","nope");t.$houseNumberFld.autocomplete(u.getAutoCompleteArguments()).attr("autocomplete","nope")}var t=this;Stripshop.ZipCodeApi.BaseZipCode.call(t,n);var i=new Stripshop.ZipCodeApi.BelgianZipCodePostalAreaAutoComplete(t),r=new Stripshop.ZipCodeApi.BelgianZipCodeStreetAutoComplete(t),u=new Stripshop.ZipCodeApi.BelgianZipCodeHouseNumberAutoComplete(t);f.call(this)};Stripshop.ZipCodeApi.BelgianZipCode.prototype=Object.create(Stripshop.ZipCodeApi.BaseZipCode.prototype);$.extend(Stripshop.ZipCodeApi.BelgianZipCode.prototype,{nisCode:null,streetId:null});Stripshop.ZipCodeApi.BelgianZipCode.prototype.enable=function(){console.log("belgian zip code enabled");Stripshop.ZipCodeApi.BaseZipCode.prototype.enable.call(this);this.$zipCodeFld.autocomplete("enable");this.$addressFld.autocomplete("enable");this.$houseNumberFld.autocomplete("enable")};Stripshop.ZipCodeApi.BelgianZipCode.prototype.disable=function(){console.log("belgian zip code disabled");Stripshop.ZipCodeApi.BaseZipCode.prototype.disable.call(this);this.$zipCodeFld.autocomplete("disable");this.$addressFld.autocomplete("disable");this.$houseNumberFld.autocomplete("disable")};Stripshop.ZipCodeApi.BelgianZipCodePostalAreaAutoComplete=function(n){var t=this;t.url="/ZipCode/CompletePostalArea";Stripshop.ZipCodeApi.BaseAutoComplete.call(this,n)};Stripshop.ZipCodeApi.BelgianZipCodePostalAreaAutoComplete.prototype=Object.create(Stripshop.ZipCodeApi.BaseAutoComplete.prototype);Stripshop.ZipCodeApi.BelgianZipCodePostalAreaAutoComplete.prototype.getRequestObject=function(n){return typeof n=="string"&&n.length>0?{postalArea:n}:null};Stripshop.ZipCodeApi.BelgianZipCodePostalAreaAutoComplete.prototype.formatSuggestions=function(n){for(var t=0,i;i=n[t];t++)n[t].value=n[t].label=i.MunicipalityName,typeof i.PostalCode=="number"&&(n[t].value=n[t].label=i.PostalCode),typeof i.Name=="string"&&(n[t].label+=" ("+i.Name+")")};Stripshop.ZipCodeApi.BelgianZipCodePostalAreaAutoComplete.prototype.selectSuggestion=function(n){return n!==null&&(this.api.$zipCodeFld.val(n.PostalCode),this.api.$placeFld.val(n.Name),this.api.focusOnInput(this.api.$addressFld)),!1};Stripshop.ZipCodeApi.BelgianZipCodeStreetAutoComplete=function(n){var t=this;t.url="/ZipCode/CompleteStreet";Stripshop.ZipCodeApi.BaseAutoComplete.call(this,n)};Stripshop.ZipCodeApi.BelgianZipCodeStreetAutoComplete.prototype=Object.create(Stripshop.ZipCodeApi.BaseAutoComplete.prototype);Stripshop.ZipCodeApi.BelgianZipCodeStreetAutoComplete.prototype.getRequestObject=function(n){return typeof n=="string"&&n.length>0&&this.api.$zipCodeFld.val()!=""?{postalArea:this.api.$zipCodeFld.val(),street:n}:null};Stripshop.ZipCodeApi.BelgianZipCodeStreetAutoComplete.prototype.formatSuggestions=function(n){for(var t=0,i;i=n[t];t++)n[t].value=n[t].label=i.Name};Stripshop.ZipCodeApi.BelgianZipCodeStreetAutoComplete.prototype.selectSuggestion=function(n){return n!==null&&(this.api.streetId=n.StreetId||null,this.api.$addressFld.val(n.Name),this.api.focusOnInput(this.api.$houseNumberFld)),!1};Stripshop.ZipCodeApi.BelgianZipCodeHouseNumberAutoComplete=function(n){var t=this;t.url="/ZipCode/CompleteHouseNumber";Stripshop.ZipCodeApi.BaseAutoComplete.call(this,n)};Stripshop.ZipCodeApi.BelgianZipCodeHouseNumberAutoComplete.prototype=Object.create(Stripshop.ZipCodeApi.BaseAutoComplete.prototype);Stripshop.ZipCodeApi.BelgianZipCodeHouseNumberAutoComplete.prototype.getRequestObject=function(n){return typeof n=="string"&&n.length>0&&this.api.$zipCodeFld.val()!=""&&this.api.$addressFld.val()!=""?{postalArea:this.api.$zipCodeFld.val(),street:this.api.$addressFld.val(),houseNumber:n}:null};Stripshop.ZipCodeApi.BelgianZipCodeHouseNumberAutoComplete.prototype.formatSuggestions=function(n){for(var t=0,i;i=n[t];t++)n[t].label=n[t].value=i.HouseNumber};Stripshop.ZipCodeApi.BelgianZipCodeHouseNumberAutoComplete.prototype.selectSuggestion=function(n){return n!==null&&(this.api.$houseNumberFld.val(n.label),this.api.focusOnNextInput(this.api.$houseNumberFld)),!1};Stripshop.ZipCodeApi.DutchZipCode=function(n){function i(){return{zipCode:this.$zipCodeFld.val(),houseNumber:this.$houseNumberFld.val()}}function r(n){var t=i.call(this);t.zipCode&&Stripshop.ZipCodeApi.DutchZipCodeRegex.test(t.zipCode)&&t.houseNumber&&u.call(this,t,n)}function u(n,t){var i=this;i.disableFields();$.post("/ZipCode/LookupZipCode",n).always(function(n,r){var u=r==="success"&&n.success===!0&&n.result.IsEmpty===!1;u&&f.call(i,n.result);e(n);i.enableFields();t===i.$zipCodeFld[0]?i.$houseNumberFld.focus().select():u?i.focusOnNextInput(i.$placeFld):i.focusOnInput(i.$addressFld)})}function f(n){this.$addressFld.val(n.Street);this.$placeFld.val(n.Place);this.$zipCodeFld.val(n.ZipCode);this.$houseNumberFld.val(n.HouseNumber)}function e(n){var i=null,r;$.isArray(n.result.HouseNumberSuggestions)&&n.result.HouseNumberSuggestions.length>0&&(i=n.result.HouseNumberSuggestions);n.success===!0&&i==null?(t.find("span").text(""),t.slideUp("fast")):(r=i==null?t.attr("data-api-message-not-recognized"):t.attr("data-api-message-addition-suggestions").replace("{SUGGESTIES}",i.join(", ")),t.find("span").text(r),t.slideDown("fast"))}function o(){var n=this;this.$zipCodeFld.add(this.$houseNumberFld).change(function(){n.enabled===!0&&r.call(n,this)})}Stripshop.ZipCodeApi.BaseZipCode.call(this,n);var t=n.find(".zip-code-api-feedback");o.call(this)};Stripshop.ZipCodeApi.DutchZipCode.prototype=Object.create(Stripshop.ZipCodeApi.BaseZipCode.prototype)