$((function(){if($("#card-element").length){var e=document.getElementById("stripe-wrap"),t=!1,i=document.getElementById("stripe-submit").dataset.secret,a=document.getElementById("cardholder-name"),n=function(){"undefined"==typeof Rails?$("#stripe-submit").picDisableWithText("reenable"):Rails.enableElement(e)},o=function(t){var i=document.createElement("input");i.setAttribute("type","hidden"),i.setAttribute("name","stripe_pi_token"),i.setAttribute("value",t),e.appendChild(i),e.submit()},r=stripe.elements().create("card",{classes:{base:"stripe-element",focus:"acts-on-hc-border",invalid:"stripe-invalid"}});r.mount("#card-element"),r.addEventListener("change",(function(e){var t=document.getElementById("payment-errors");e.error?t.textContent=e.error.message:t.textContent=""})),e.addEventListener("submit",(function(e){e.preventDefault(),t||(t=!0,stripe.handleCardPayment(i,r,{payment_method_data:{billing_details:{name:a.value}}}).then((function(e){e.error?(console.log("error"),console.log(e.error),console.log(e),t=!1,n(),document.getElementById("payment-errors").textContent=e.error.message):(console.log("success"),console.log(e),console.log(e.paymentIntent.id),o(e.paymentIntent.id))})))}))}})),reloadOnMissingLib("_");var Pubsub=_.extend({},Backbone.Events),PicI18n={get:function(e){return PIC_I18N_TRANSLATIONS[e]}},PicIBAN=function(){var e={},t={DE:"\\d{18}",AT:"\\d{16}"};return e.isValid=function(e){if(!/^([a-zA-Z0-9]{4} ){2,8}[a-zA-Z0-9]{1,4}|[a-zA-Z0-9]{12,34}$/.test(e))return!1;var i=e.replace(/ /g,""),a=i.substring(0,2),n=t[a];if(void 0!==n&&!new RegExp("^[A-Z]{2}\\d{2}"+n+"$","").test(i))return!1;for(var o=i.substring(4,i.length)+i.substring(0,4),r="",s=!0,c=0;c<o.length;c++){var l=o.charAt(c);"0"!==l&&(s=!1),s||(r+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(l))}for(var d="",u=0;u<r.length;u++){d=(""+d+r.charAt(u))%97}return 1===d},e}(),PicImgLoad=function(){var e={onImgLoad:function(e,t){var i=new Image,a=$(i);a.on("load",(function(){"function"==typeof t.success&&t.success(),"function"==typeof t.complete&&t.complete(),a.remove()})).on("error",(function(){"function"==typeof t.error&&t.error(),"function"==typeof t.complete&&t.complete()})),i.src=e.prop("src")}};return e}();$.fn.animationTiming=function(e,t,i){var a=function(e){var t=document.createElement("div");for(var i in e)if(e.hasOwnProperty(i)&&void 0!==t.style[i])return e[i]},n=function(e,t,a){e.one(t,(function(){e.removeClass(a),"function"==typeof i&&i()})).addClass(a)},o=a({animation:"animationend",OAnimation:"oanimationend",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd",MSAnimation:"MSAnimationEnd"}),r=a({transition:"transitionend",OTransition:"otransitionend",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"});return this.each((function(){"onTransEnd"===e?$(this).one(r,t):"offTransEnd"===e?$(this).off(r):"onTransEndStrict"===e?$(this).on(r,(function(e){e.currentTarget===e.target&&($(this).off(e),$.proxy(t,this)())})):"doAnimWith"===e?n($(this),o,t):"doTransWith"===e&&n($(this),r,t)}))};var PicWindowStorage=function(){var e={},t=0,i=function(){if(/iPhone|iPad|iPod/.test(navigator.userAgent)){var e='<div id="private-safari-hint" class="private-safari-hint"><h2 class="order-modal-header">Bilder bestellen nicht m\xf6glich</h2><p>Sie nutzen den Safari im privaten Modus. Dieser verhindert u.U., dass wir Warenkorb-Informationen speichern k\xf6nnen. Wenn Sie diesen verlassen, funktioniert die Seite wie gewohnt.<br><small class="muted">Manchmal hilft auch ein Neuladen der Seite.</small></p><p>N\xe4here Informationen erhalten Sie <a href="'+"https://support.apple.com/de-de/HT203036"+'" target="_blank">hier</a>.<br>Wenden Sie sich bei Fragen an das Support-Team:<br><strong>0341 - 392 81 746</strong><br><a href="'+"mailto:info@pictrs.com?subject=Private%20Safari%20"+'">info@pictrs.com</a></p><p><button class="btn btn-success">Hinweis schlie\xdfen</button></p></div>';$("body").append(e).find("#private-safari-hint .btn").click((function(){$("#private-safari-hint").remove()}))}else alert("Scheinbar k\xf6nnen wir auf Ihrem Ger\xe4t keine tempor\xe4ren Daten speichern (notwendig z.B. f\xfcr die Verwendung des Warenkorbs). Vermutlich wird diese Webseite auf Ihrem Ger\xe4t nicht ordnungsgem\xe4\xdf funktionieren.")},a=function(){var e,a=window.name;if(!a||"webkitendfullscreen"===a)return{};if("undefined"!=typeof Raven){Raven.captureBreadcrumb({message:"trying to parse window storage contents",category:"action",data:{string:a}});try{e=JSON.parse(a)}catch(a){if(t>0)throw a;i(),t++,n(e={})}}else e=JSON.parse(a);return e},n=function(e){window.name=JSON.stringify(e)};return e.getItem=function(e){var t=a()[e];return!!t&&JSON.stringify(t)},e.getAllAsObj=function(){return a()},e.setItem=function(e,t){var i=a();i[e]=JSON.parse(t),n(i)},e.removeItem=function(e){var t=a();delete t[e],n(t)},e}(),PicStorage=function(){var e,t,i,a={},n="",o="",r="",s="",c="",l="",d=!1,u=!1,g="",m="",h="",p="",f="",v="",b="",k="",C="",w="",P="",D="lastProductData",I=function(e){var t=i.getItem(e);return!!t&&JSON.parse(t)},A=function(t,a){try{i.setItem(t,JSON.stringify(a))}catch(t){var n=e?JSON.stringify(localStorage).length:"not available";"undefined"!=typeof ErrorTracker&&ErrorTracker.localStorageExceeded(e,n),alert("\xc4nderungen gehen eventuell verloren, da Ihr lokaler Speicher (sog. localStorage) voll ist! Bitte benachrichtigen Sie das Support-Team.")}},y=function(){try{localStorage.setItem("test","test"),localStorage.removeItem("test"),e=!0,i=localStorage}catch(t){e=!1,$("html").addClass("is-private-safari"),i=PicWindowStorage}},T=function(e,t){return o+e+"_"+t},S=function(){a.setLocalTs(),A(m,{lastUpdateTs:t})},x=function(e){i.removeItem(e)},M=function(){var a=2592e6,n=e?localStorage:i.getAllAsObj();for(var r in n)if(r.indexOf(c)>-1||r.indexOf(o)>-1){var s=I(r);(!s.ts||t>s.ts+a)&&(x(r),console.log("deleted old pt or package data",r,s.ts))}};return a.getOrdered=function(){return I(n)||{}},a.getPricetableData=function(e,t,i){var n=I(c+e);return!!n&&(i||n.killswitch&&n.killswitch===t?n.data:(a.deletePricetableData(e),!1))},a.getPackageData=function(e,t){var i=T(e,t),a=I(i);return!!a&&a.data},a.getComposedPackages=function(){return I(r)||{}},a.getAlbumPackagesInCart=function(){return I(s)||[]},a.getCustomArticles=function(){return I(l)||{}},a.setOrdered=function(e){A(n,e),S()},a.setPricetableData=function(e,i,a){a||(a=I(c+e).killswitch),A(c+e,{ts:t,killswitch:a,data:i})},a.setPackageData=function(e,i,a){A(T(e,i),{data:a,ts:t})},a.setComposedPackages=function(e){A(r,e),S()},a.setAlbumPackagesInCart=function(e){A(s,e),S()},a.setLocalTs=function(){t=(new Date).getTime()},a.setCustomArticles=function(e){A(l,e),S()},a.deleteOrdered=function(){x(n),S()},a.deletePricetableData=function(e){x(c+e)},a.getWished=function(){return I(g)||{}},a.getLog=function(){return I(h)||[]},a.getShopdesignerVersion=function(){return I(k)},a.getShopdesignerSettings=function(){return I(b)||{}},a.getStartpagePositions=function(){return I(v)||[]},a.getShopdesignerUploads=function(){return I(C)||{}},a.getExpandedSections=function(){return I(w)||{}},a.getPinnedSdStatus=function(){return I(P)||!1},a.isOutOfDate=function(){var e=I(m);return!!e&&e.lastUpdateTs>t},a.hasSeenCategoryHint=function(){return!!I(p)},a.hasSeenScrollHint=function(){return!!I(f)},a.setWished=function(e){A(g,e),S()},a.setLog=function(e){A(h,e)},a.setSeenCategoryHint=function(){A(p,!0)},a.setSeenScrollHint=function(){A(f,!0)},a.setShopdesignerVersion=function(e){A(k,e)},a.setShopdesignerSettings=function(e){A(b,e)},a.setStartpagePositions=function(e){A(v,e)},a.setShopdesignerUploads=function(e){A(C,e)},a.setExpandedSections=function(e){A(w,e)},a.setPinnedSdStatus=function(e){A(P,e)},a.deleteAllOrderedPackages=function(){var e=a.getComposedPackages(),t={};_.each(e,(function(e,i){e.isProcessing&&(t[i]=e)})),a.setComposedPackages(t),a.setAlbumPackagesInCart([])},a.deleteLog=function(){x(h)},a.getDefaultProductData=function(){return I(D)||{}},a.setLastProductData=function(e){A(D,e)},a.makeMobile=function(){u=!0},a.init=function(e){d||(n="ordered"+e,r="composedPackages"+e,s="albPackInCart"+e,l="customArticles"+e,c=(u?"pt_m":"pt")+e+"_",o="packageData"+e+"_",g="wishlist"+e,m="update"+e,h="log"+e,p="knowsCategoryHint",f="knowsScrollHint",v="startPos"+e,b="sdSettings"+e,k="sdVersion"+e,C="sdUploads"+e,w="sdExpandedSections",P="sdPinned",y(),a.setLocalTs(),M(),d=!0)},a}(),NumberFormatter=function(){var e={sumAsText:function(e,t,i){var a=String(e.toFixed(t||2)).replace(".",",");return i&&(a+=" "+i),a},centsAsPrice:function(e){return accounting.formatMoney(e/100)}};return e}(),PicScroll=function(){var e={to:function(e,t,i){var a="function"!=typeof i;$("body, html").stop(!0,!0).animate({scrollTop:e},t,(function(){a||(a=!0,i())}))},toElement:function(t,i,a,n){var o=0,r=function(){return t.offset().top-(i||0)-30},s=function(){var e=$(document).height()-$(window).height();if($("html").scrollTop()===e)return!1;var t=$("html").scrollTop()-r();return Math.abs(t)>10},c=function(){e.to(r(),a,(function(){o<3&&s()?(o++,c()):"function"==typeof n&&n()}))};c()}};return e}();$.fn.picTextFit=function(e){var t=$.extend({minFontSize:15,checkWidthOnly:!1,checkWidthAndHeight:!1},e),i=this,a=function(e){var i=t.checkWidthAndHeight||!t.checkWidthOnly,a=t.checkWidthAndHeight||t.checkWidthOnly;return i&&e.scrollHeight>e.offsetHeight||a&&e.scrollWidth>e.offsetWidth},n=function(e){var t=e[0].style.fontSize;return t||(t=e.css("font-size")),parseInt(t)},o=function(e){for(var i=e[0],o=0,r=20;o++<r&&a(i);){var s=n(e),l=s-1;e.data("fz-orig")||e.data("fz-orig",s),l<t.minFontSize?c(e):e.css("font-size",l+"px")}},r=function(e){for(var t=!1,i=e.data("fz-orig"),o=0,r=10;o++<r&&!t;){var s=n(e),c=s+1;if(c>i)t=!0,e.data("fz-orig",!1);else{e.css("font-size",c+"px");var l=e[0];a(l)&&(e.css("font-size",s+"px"),t=!0)}}},s=function(){i.each((function(){var e=$(this);a(this)?o(e):e.data("has-ellipsis")?(c(e),e.data("has-ellipsis")||r(e)):e.data("fz-orig")&&r(e)}))},c=function(e){var t=e[0],i=e.data("words-orig");if(i?t.innerHTML=i.join(" "):i=$.trim(t.innerHTML).split(" "),e.data("words-orig",$.merge([],i)),a(t)){for(e.data("has-ellipsis",!0);a(t)&&void 0!==i.pop();)t.innerHTML=i.join(" ")+"...";var n=$.trim(t.innerText);n&&"..."!==n||(t.innerHTML=e.data("words-orig").join(" "))}else e.data("has-ellipsis",!1)};return $(window).on("resize trigger-text-fit",_.throttle(s,200)),s(),this.data("pic-text-fit",!0),this};var PicRateLimit=function(){var e={},t=100,i=0,a=function(){i--};return e.rateLimit=function(n){i<t?(n(),i++,setTimeout(a,1e3)):setTimeout(_.partial(e.rateLimit,n),1e3)},e}(),PicUpload=function(){var e,t,i,a,n,o,r,s,c={},l="",d=0,u=0,g=function(e){o.toggleClass("disabled",e).find("input").prop("disabled",e)},m=function(){s||(s=$('<progress class="fileupload-overall-progress" value="0" max="100" ></progress>'),o.after(s),r.text("Bitte warten..."),g(!0))},h=function(){u===d&&(s&&(s.remove(),s=null),d=0,r.text(l),g(!1),t&&t())},p=function(e){"function"==typeof stickyGrowler?stickyGrowler(e):alert(e)},f=function(){var t={beforeSend:m,complete:function(){u++,h(),a&&a()},add:function(e,a){0===d&&(d=a.originalFiles.length,u=0,i&&i(d));var n=a.files[0];/(\.|\/)(gif|jpe?g|png)$/i.test(n.type||n.name)?a.submit():(p(n.name+": Es werden nur Bilder in den Formaten jpg, png und gif akzeptiert."),t.complete())},progressall:function(e,t){var i=parseInt(t.loaded/t.total*100,10);if(s.val(i),100===i){var a=$('<span class="fileupload-processing">Verarbeite...</span>');s.replaceWith(a),s=a}},fail:function(e,t){var i=t.jqXHR,a="Es ist ein Fehler bei der Verarbeitung aufgetreten.";400===i.status&&(a=i.responseText),p(t.files[0].name+": "+a)}};n.fileupload(_.extend(t,e))};return c.init=function(s,c){n=(o=s).find(".js-pic-upload-input"),r=o.find(".js-pic-upload-label"),l=r.text(),t=c.allDone,i=c.addFiles,a=c.complete,delete c.allDone,delete c.addFiles,delete c.complete,e=c,f()},c}(),ContactForm=function(){var e,t,i={},a=function(i){"mobile"===t?$("#contact-error").text(i).removeClass("hide"):(growler(i,"warning"),Rails.enableElement(e[0]))},n=function(){if(!e.valid())return!1;var t=$("#contactform-billnumber:visible").val();return!(t&&!t.match(/^[0-9-]+$/))||(a("Bitte g\xfcltige Rechnungsnummer eingeben!"),!1)},o=function(t){t.preventDefault(),n()&&$.ajax({type:"POST",url:e.prop("action"),data:e.serialize(),success:function(){$("#contact-thanks").show(),e.hide()},error:function(e){var t=400===e.status?e.responseText:"Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp\xe4ter erneut";a(t)}})},r=function(){$("#contactform-billnumber-wrap").toggleClass("hide",!$(this).prop("checked"))},s=function(){e.submit(o),$("#contactform-is-order").change(r)};return i.init=function(i){e=$("#contact-form"),t=i,s()},i}();$.fn.cropper.setDefaults({viewMode:1,dragMode:"none",movable:!1,guides:!1,cropBoxResizable:!1,zoomable:!1,background:!1,center:!1,minContainerWidth:1,minContainerHeight:1,checkCrossOrigin:!1,checkOrientation:!1,rotatable:!1,scalable:!1,toggleDragModeOnDblclick:!1}),$(document).ready((function(){var e={"aol.con":"aol.com","aol.vom":"aol.com","bluevin.ch":"bluewin.ch","bluwin.ch":"bluewin.ch","bluewin.com":"bluewin.ch","bleuwin.ch":"bluewin.ch","dreenet.de":"freenet.de","fmail.com":"gmail.com","frennet.de":"freenet.de","com.gmail":"gmail.com","gamail.com":"gmail.com","gamil.com":"gmail.com","gmail.at":"gmail.com","gmil.com":"gmail.com","gmal.com":"gmail.com","gail.com":"gmail.com","gimal.com":"gmail.com","gimail.com":"gmail.com","gemail.com":"gmail.com","gmai.com":"gmail.com","gmail.c":"gmail.com","gmail.ca":"gmail.com","gmail.ch":"gmail.com","gmail.cm":"gmail.com","gmail.co":"gmail.com","gmail.col":"gmail.com","gmail.de":"gmail.com","gmail.coma":"gmail.com","gmail.come":"gmail.com","gmail.comn":"gmail.com","gmail.conm":"gmail.com","gmail.comm":"gmail.com","gmail.gom":"gmail.com","gmial.com":"gmail.com","gmail.con":"gmail.com","gmail.vom":"gmail.com","gmaik.com":"gmail.com","gmali.com":"gmail.com","g-mail.com":"gmail.com","gaiml.com":"gmail.com","gnail.de":"gmail.com","gmaul.com":"gmail.com","gnail.com":"gmail.com","gnail.con":"gmail.com","gms.de":"gmx.de","gmy.de":"gmx.de","gmx.d":"gmx.de","gmx.dd":"gmx.de","gmx.e":"gmx.de","gnx.de":"gmx.de","gnx.net":"gmx.net","gmx.dr":"gmx.de","gmx.dw":"gmx.de","google.com":"gmail.com","googlemail.de":"googlemail.com","googlemai.com":"googlemail.com","gogglemail.com":"googlemail.com","goglemail.com":"googlemail.com","googlmail.com":"googlemail.com","googelmail.com":"googlemail.com","goooglemail.com":"googlemail.com","googlemail.co":"googlemail.com","googlemail.con":"googlemail.com","googlenail.com":"googlemail.com","goolemail.com":"googlemail.com","hmail.com":"gmail.com","hotmail.co":"hotmail.com","hotmail.ocm":"hotmail.com","homail.com":"hotmail.com","hotmail.fe":"hotmail.de","hotmaail.com":"hotmail.com","hotmail.con":"hotmail.com","hotmail.vom":"hotmail.com","hotmali.com":"hotmail.com","hotmai.com":"hotmail.com","hotmal.com":"hotmail.com","hotmaul.com":"hotmail.com","hotmaul.de":"hotmail.de","hotmal.de":"hotmail.de","htmail.de":"hotmail.de","hotmeil.de":"hotmail.de","hotmil.com":"hotmail.com","iclaud.com":"icloud.com","icloud.con":"icloud.com","icioud.com":"icloud.com","icloud.de":"icloud.com","iclous.com":"icloud.com","iloud.com":"icloud.com","icloude.com":"icloud.com","cloud.com":"icloud.com","jahoo.com":"yahoo.com","jahoo.de":"yahoo.de","live.con":"live.com","me.vom":"me.com","me.con":"me.com","outlook.con":"outlook.com","tonline.de":"t-online.de","t.online.de":"t-online.de","t-obline.de":"t-online.de","t-omline.de":"t-online.de","t-online.dr":"t-online.de","t-onlein.de":"t-online.de","t-onlone.de":"t-online.de","t-onilne.de":"t-online.de","t\u2013online.de":"t-online.de","web.d":"web.de","we.de":"web.de","web.dd":"web.de","web.dr":"web.de","web.se":"web.de","web.dw":"web.de","wen.de":"web.de","web.e":"web.de","wep.de":"web.de","yahoo.vom":"yahoo.com","yahoo.co":"yahoo.com","yahoo.con":"yahoo.com","yahoo.dr":"yahoo.de","yahoo.dd":"yahoo.de","yaho.de":"yahoo.de"};$(".js-check-domain-typos-form").on("submit",(function(){var t=$(this),i=t.find(".js-check-domain-typos-input"),a=i.val().replace(/.*@/,""),n=e[a];if(n){var o=i.val();t.append('<input type="hidden" name="corrected_mail_domain" value="'+o+'" />'),i.val(o.replace(/(?=@).*/,"@"+n))}}))})),$((function(){$(document).on("click",".js-toggle-trigger",(function(e){function t(e){return!0===e||""===e}e.preventDefault();var i=$(this).blur(),a=$(i.data("toggle-target")||i.attr("href")),n=t(i.data("toggle-slide")),o=t(i.data("toggle-fade")),r=i.data("toggle-once"),s=i.data("toggle-text");void 0!==r&&(t(r)?i:$(r)).remove();if(s){var c=i.text();i.text(s),i.data("toggle-text",c)}n?a.slideToggle(200):o?a.fadeToggle(200):a.toggleClass("hide")}))}));var CookieConsent=function(){var e,t={},i=function(t){var i=$(".js-cookie-prefs-option");t&&i.prop("checked",!0),i=i.filter(":checked"),$.post(e.data("url"),{cookie_types:_.map(i,"value")},(function(e){_.each(e.markup_changes||[],(function(e){e.append?$(e.target).append(e.html):$(e.target).html(e.html)}))}))},a=function(){var e=COOKIE_HINT_NO_SM_TEXT;growler(e,"warning",null,!0)},n=function(){$("#cookie-prefs-allow-all").click(_.partial(i,!0)),$("#cookie-prefs-save").click(_.partial(i,!1)),void 0!==Pubsub&&Pubsub.on("cookie-consent:social-media-not-allowed",a)};return t.init=function(){e=$("#alert-cookie-hint"),n()},t}();$((function(){$("#alert-cookie-hint, .js-cookie-not-allowed").length&&CookieConsent.init()})),$((function(){var e,t,i,a,n,o,r,s,c,l,d;(o=function(){a.addClass("hide")},r=function(e){a.text(e).removeClass("hide")},s=async function(e,t){const i=await fetch(e,{method:t?.isPatch?"PATCH":"POST",headers:{"Content-Type":"application/json"}}),a=await i.json();if(i.ok)return a;throw new Error(a.error)},c=async function(){o();const t=await s(i.data("url"));return e=t.captureURL,t.id},l=async function(){o();const t=await s(e,{isPatch:!0});window.location.href=t.redirectURL},d=function(){paypal.Buttons({createOrder:c,onApprove:l,onError:r}).render(t)},(n={}).init=function(){t="#paypal-element",i=$(t),a=$("#payment-errors"),i.length&&d()},n).init()}));var Payrexx={init:function(){$((function(){$(".payrexx-modal-button").each((function(){var e=$(this).data("cancelled-url"),t=$(this).data("success-url");$(this).payrexxModal({hideObjects:["footer"],hidden:function(i){console.log(i),i.status&&("confirmed"===i.status?window.location.href=t+"&"+$.param(i):window.location.href=e)}})}))}))}};$.fn.picDisableWithText=function(e,t){void 0===t&&(t={});var i=function(e){n(e,!0),o(e,!0)},a=function(e){n(e,!1),o(e,!1)},n=function(e,i){var a=e.is("input"),n=a||e.is("button");if(e.toggleClass("disabled",i),n&&e.prop("disabled",i),!t.preventTextChange){var o=e.data("saved-text"),r="";if(!i||!o){if(i){var s=a?e.prop("value"):e.text();e.data("saved-text",s),r=e.data("disable-with")}else e.removeData("saved-text"),r=o;r&&(a?e.prop("value",r):e.text(r))}}},o=function(e,t){var i=e.data("disable-also");i&&n($(i).not(e),t)};return this.each((function(){var t=$(this);e?"disable"===e?i(t):"reenable"===e&&a(t):t.closest("form").submit((function(){i(t)}))}))},$((function(){$("[data-disable-auto-init]").picDisableWithText()}));var PicSimpleModal={show:function(e,t){e.removeClass("hide"),_.defer((function(){e.addClass("is-visible")}));var i=function(){PicSimpleModal.hide(e,t)};e.find(".js-simple-modal-close").one("click",i),e.on("click",(function(t){$(t.target).is(e)&&(e.off(t),i())}))},hide:function(e,t){e.animationTiming("onTransEnd",(function(){e.addClass("hide"),"function"==typeof t&&t()})).removeClass("is-visible")}},PicTempl=function(){var e={get:function(e,t){var i=$("#"+e),a=i.html();return i.remove(),t&&(a=a.replace(/data-src="{{src}}"/,'src="{{src}}"')),a},getAsFunc:function(t,i){return _.template(e.get(t,i))},setVars:function(e,t){for(var i in t){var a=new RegExp("{{"+i+"}}","g");e=e.replace(a,t[i])}return e}};return e}();_.templateSettings={interpolate:/\{\{(.+?)\}\}/g,evaluate:/\{%(.+?)%\}/g};var CartData=function(){var e,t,i={},a={},n={},o=[],r={},s={},c=0,l=!1,d=function(e,t){return e+"-"+t+"-"+(Math.random()+1).toString(36).substring(5)},u=function(){return(new Date).getTime()},g=function(e){var t=[];for(var i in a){var n=a[i].index;for(var o in a[i].products){var r=a[i].products[o],s={uuid:o,id:i,pcID:r.pcID,baseID:r.baseID,optionPath:r.optionPath,price:r.price,count:r.count,minOrderVal:a[i].album.minOrderVal};e&&(s=_.extend(s,{resolveSizeBy:r.resolveSizeBy,cropData:r.cropData,fixedCropCoords:!!r.fixedCropCoords,colorIndex:r.colorIndex,useMatte:r.useMatte,origWidth:r.origWidth,origHeight:r.origHeight,origSrc:r.origSrc,index:n}),r.allowWhiteBorder&&(s.isWhiteBorder=!!r.isWhiteBorder)),t.push(s)}}return t},m=function(e,t,i,a){var n={id:e.imageId,productIndex:i,imageIndex:t,minOrderVal:e.minOrderVal,isQr:e.isQr};return a&&(n=_.extend(n,{resolveSizeBy:e.resolveSizeBy,cropData:!!e.cropData&&e.cropData.data,origWidth:e.width,origHeight:e.height})),n},h=function(e,t,i){var a={id:e.packageId,name:e.name,price:e.price,startMonth:e.startMonth,startYear:e.startYear,count:e.count,products:t,uuid:e.uuid};return i||(a.isProcessing=e.isProcessing),a},p=function(e,t){var i=[];return _.each(e,(function(e){var a=[];_.each(e.products,(function(e,i){a.push({id:e.itemId,variationId:e.variationId,images:_.map(e.images,(function(e,a){return m(e,a,i,t)}))})})),i.push(h(e,a,t))})),i},f=function(){e=_.size(o)>0,t=!1,_.each([a,n],(function(i){_.each(i,(function(i){_.each(i.products,(function(i){e=e||!!i.isDigital,t=t||!i.isDigital}))}))}))},v=function(e){_.each(n,(function(t){_.each(t.products,(function(t){_.each(t.images,e)}))}))};return i.addItem=function(e,t){var i=d(e.id,t.baseID);if(a[e.id])a[e.id].products[i]=t;else{var n={src:e.src,title:e.title,ratio:e.ratio,album:e.album,orderUrl:e.orderUrl,pswpUrl:e.pswpUrl,products:{},index:u()};n.products[i]=t,a[e.id]=n}return i},i.reAddItem=function(e,t){return a[e]||(a[e]=$.extend({},r[e],{products:{}})),a[e].products[t]=$.extend({},r[e].products[t]),delete r[e].products[t],$.isEmptyObject(r[e].products)&&delete r[e],a[e]},i.reAddCustomArticle=function(e){var t=s[e];return CustomArticles.reAdd(t),delete s[e],t},i.get=function(){return a},i.getCustomArticles=function(){return CustomArticles.get()},i.getOrderedForSubmit=function(){return g(!0)},i.getOrderedForChanges=function(){return g()},i.getPackagedForSubmit=function(){return p(n,!0)},i.getAllPackagedForChanges=function(e){return p(e)},i.getAlbumPackagedForSubmitOrChanges=function(){return _.map(o,(function(e){return{uuid:e.uuid,price:e.price,packageId:e.packageId,ppItemId:e.ppItemId,albumId:e.albumId,albumName:e.albumName,imagesCount:e.imagesCount,minOrderVal:e.minOrderVal}}))},i.getPrice=function(){var e=0,t=function(t){e+=t.price*(t.count||1)};return _.each(a,(function(i){_.each(i.products,(function(i){if(i.volumeDiscount&&1!==i.count){var a=i.price,n=a+Math.round(a*(1-i.volumeDiscount/100))*(i.count-1);e+=n}else t(i)}))})),_.each(n,t),_.each(o,t),_.each(CustomArticles.get(),t),e},i.getCount=function(){var e=0;for(var t in a)for(var i in a[t].products)e+=a[t].products[i].count;return e+=CustomArticles.getCount()},i.getOrderedAndPackagedCount=function(){var e=0,t=function(t){_.each(t.products,(function(i){e+=i.count*(t.count||1)}))};return _.each(a,t),_.each(n,t),_.each(o,(function(t){e+=t.imagesCount})),e+=CustomArticles.getCount()},i.getPswpUrl=function(e,t){return t?r[e].pswpUrl:a[e].pswpUrl},i.getPtHash=function(e){return a[e].ptHash},i.getProductName=function(e,t){return a[e].products[t].name},i.getTitle=function(e){return a[e].title},i.getSrc=function(e){return a[e].src},i.getProductDataByUUID=function(e){for(var t in a)for(var i in a[t].products)if(i==e)return a[t].products[i]},i.getHighestMinOrderVal=function(){var e=0,t={},i=0,n=function(t){e=Math.max(t,e)},r=function(e,i){e.isQr&&e.minOrderVal&&!t[i]&&(t[i]=e.minOrderVal),n(e.minOrderVal||0)};if(_.each(a,(function(e){r(e.album,e.album.id)})),v((function(e){r(e,e.albumId)})),_.each(o,(function(e){r(e,e.albumId)})),_.size(t)>1){var s=_.values(t),c=_.reduce(s,(function(e,t){return e+t}),0);i=_.max(s),n(c)}return{val:e,qrMaxVal:i}},i.getAlbumIdsForAutoredemptionCoupons=function(){var e=_.pluck(o,"albumId");return _.each(a,(function(t){e.push(t.album.id)})),v((function(t){e.push(t.albumId)})),_.uniq(e)},i.hasUnfinishedPackages=function(){return c>0},i.hasDigi=function(){return f(),e},i.hasPrint=function(){return f(),t},i.needsDuplicatedDigiWarning=function(){if(l)return!1;var e=[],t=[],i=_.pluck(o,"albumId");return _.each(a,(function(i,a){_.each(i.products,(function(n){n.isDigital&&(t.push(i.album.id),e.push(parseInt(a)))}))})),_.each(n,(function(i){_.each(i.products,(function(i){i.isDigital&&_.each(i.images,(function(i){e.push(i.imageId),t.push(i.albumId)}))}))})),!!(e.length>_.uniq(e).length||_.intersection(t,i).length)&&(l=!0,!0)},i.setItemCount=function(e,t,i,n){n?CustomArticles.setCount(e,i):a[e].products[t].count=i},i.setWhiteBorder=function(e,t,i){a[e].products[t].isWhiteBorder=i},i.setItemPrice=function(e,t,i){a[e].products[t].price=i,a[e].album.ptHash=!1},i.updateOrderedItemMinOrderVal=function(e,t){a[e].album.minOrderVal=t},i.updateProductData=function(e,t,i){a[e].products[t].isWhiteBorder&&(i=$.extend({isWhiteBorder:!0},i)),a[e].products[t]=i},i.setPackaged=function(e){var t={},i=0;_.each(e,(function(e,a){e.isProcessing?i++:t[a]=e})),n=t,c=i},i.setAlbumPackaged=function(e){o=e},i.deleteItem=function(e,t,i){i||(r[e]||(r[e]=$.extend({},a[e],{products:{}})),r[e].products[t]=$.extend({},a[e].products[t]));var n=a[e].orderUrl;return delete a[e].products[t],$.isEmptyObject(a[e].products)&&delete a[e],n},i.deleteCustomArticle=function(e){var t=_.find(CustomArticles.get(),{id:e});s[e]=t,CustomArticles.delete(e)},i.init=function(e,t,n){a=e,i.setPackaged(t),i.setAlbumPackaged(n)},i}(),CartPackageItemView=Backbone.View.extend({template:"",packageImageTemplate:"",isAlbumPackage:!1,events:{"change .js-cart-item-amount":"updateAmount","click .js-cart-item-delete":"pubDelete","click .js-cart-package-image-outer":"goToChangeCropUrl"},initialize:function(e){if(this.template=e.template,this.packageImageTemplate=e.packageImageTemplate,this.isAlbumPackage=e.isAlbumPackage,e.isAlbumPackage)this.listenTo(this.model,"change",this.render),this.listenTo(this.model,"destroy",this.remove);else{var t=this;this.model.forEachImage((function(e,i){t.listenTo(e,"cart:show-crop-warning",t.showCropWarning.bind(t,i))}))}},render:function(){var e=this.model.attributes,t={uuid:e.uuid,price:NumberFormatter.centsAsPrice(e.price)};if(this.isAlbumPackage)_.extend(t,{color:"#999",icon:"glyphicon-download",imageCount:e.imagesCount,name:"Galerie als Download",products:"alle "+e.imagesCount+' Bilder aus der Galerie "'+e.albumName+'"',price:NumberFormatter.centsAsPrice(this.model.get("price")),albumUrl:e.albumUrl}),this.$el.html(this.template(t)),this.$(".js-cart-item-amount").remove();else{var i=this.model.get("isCalendarPackage");_.extend(t,{color:e.color,isCalender:i,icon:i?"glyphicon-calendar":"glyphicon-picture",name:e.name,products:this._getProductNames().join(", "),withFreeDownload:e.withFreeDownload,albumUrl:""}),i||(t.imageCount=this.model.getImageCount(),t.packageImageMarkup=this._getPackageImageMarkup()),this.$el.html(this.template(t)),this.$(".js-cart-item-amount").val(e.count),this.$(".js-cart-item-album-link").remove(),this._renderCroppers()}return this.setElement(this.$(".js-cart-item").unwrap()),this},pubDelete:function(e){if(confirm($(e.currentTarget).data("text-confirm")))if(this.isAlbumPackage)this.model.destroy(),this.remove();else{var t=this.model.get("uuid");Pubsub.trigger("package:delete",t),this.remove()}},updateAmount:function(e){var t=$(e.currentTarget).val();Pubsub.trigger("package:update-amount",this.model.get("uuid"),t)},goToChangeCropUrl:function(e){var t=$(e.currentTarget);if(t.find(".js-has-cropper").length>0){var i=t.data("change-crop-url");window.location.href=i}else t.animationTiming("doAnimWith","shake")},showCropWarning:function(e){this.$(".js-cart-package-image-outer").eq(e).addClass("with-crop-warning js-with-crop-warning")},_getProductNames:function(){return this.model.get("products").map((function(e){return"<strong>"+e.get("images").length+"x</strong> "+e.get("name")}))},_getPackageImageMarkup:function(){var e="",t=this.packageImageTemplate,i=this.model.get("uuid");return this.model.forEachImage((function(a,n){e+=t({imageUrl:a.get("url"),imageID:a.get("imageId"),imageIndex:n,uuid:i})})),e},_setFit:function(e,t){var i=t.find(".cropper-crop-box");t.css({width:i.css("width"),height:i.css("height")}).addClass("is-fit"),e.cropper("destroy")},_renderCroppers:function(){var e=this,t=this.$(".js-cart-package-image"),i=!1;this.model.forEachImage((function(a,n){var o=a.get("cropData"),r=a.get("resolveSizeBy");"match"===r||$.isEmptyObject(o)||(e._renderCropper(t.eq(n),o,r),i=!0)})),i||this.$(".js-cart-package-crop-change-hint").remove()},_renderCropper:function(e,t,i){var a=this;PicImgLoad.onImgLoad(e,{success:function(){var n=$.extend({cropBoxMovable:!1},t,{aspectRatio:null}),o=e.closest(".js-package-image-dimension-helper");o.css({width:e.width(),height:e.height()}),"fit"===i&&(n.built=function(){a._setFit(e,o)}),e.cropper(n).addClass("js-has-cropper")}})}}),CartPackageProcessingAlertView=Backbone.View.extend({el:"#cart-package-processing-alert",lineTemplate:"",initialize:function(){this.lineTemplate=PicTempl.getAsFunc("cart-package-processing-alert-line-templ"),this.linkTemplate=_.template('<a href="{{albumUrl}}">{{albumTitle}}</a>'),this.listenTo(Pubsub,"package:act-on-cart-changes-completed",this.render)},render:function(){var e=this,t=0,i="";this.collection.each((function(a){a.get("isProcessing")&&(i+=e.lineTemplate(e._lineVars(a)),t++)})),$("#cart-package-processing-alert-lines-wrap").html(i),this.$el.toggleClass("hide",t<1)},_lineVars:function(e){var t=0,i=0,a={},n={};e.get("products").each((function(e){e.get("images").each((function(e){if(t++,e.get("url")){var o=e.get("albumUrl").split("#")[0],r=a[o]||0;a[o]=r+1,n[o]=e.get("albumTitle")}else i++}))}));var o=this._getAlbumLinkOpts(a,n);return{name:e.get("name"),missingCount:i,imagesCount:t,albumLink:this.linkTemplate(o),albumUrl:o.albumUrl}},_getAlbumLinkOpts:function(e,t){var i="",a="",n=0;return _.each(e,(function(e,o){e>n&&(n=e,a=t[i=o])})),{albumUrl:i,albumTitle:a}}}),CartPackageView=Backbone.View.extend({el:"#cart-package-list-wrap",itemTemplate:"",packageImageTemplate:"",packColl:null,albPackColl:null,childViews:[],initialize:function(e){this.itemTemplate=PicTempl.getAsFunc("cart-package-item-templ"),this.packageImageTemplate=PicTempl.getAsFunc("cart-package-image-templ"),this.packColl=e.packColl,this.albPackColl=e.albPackColl,this._createItemViews(),this.listenTo(this.packColl,"remove",this.updateImageCountAndVisibility),this.listenTo(this.albPackColl,"remove change",this.updateImageCountAndVisibility),this.listenTo(Pubsub,"package:show-crop-warning",this.showCropWarningModal),this.listenTo(Pubsub,"package:delete-missing-image-complete",this.updateImageCountAndVisibility)},render:function(){this.updateImageCountAndVisibility();var e=_.map(this.childViews,(function(e){return e.render().el}));this.$el.append(e)},updateImageCountAndVisibility:function(){var e=this.packColl.getInCartImageCount()+this.albPackColl.getImageCount();$("#cart-package-image-count").text(e),this.$el.toggleClass("hide",0===e)},showCropWarningModal:function(e){var t=e.uuid,i=e.showStickerWarning,a=$("#cart-package-crop-warning-modal"),n=$("#cart-item-package-"+t),o=n.find(".js-with-crop-warning");a.find(".js-is-sticker-warning").toggleClass("hide",!i),PicSimpleModal.show(a,(function(){PicScroll.toElement(n,40,null,(function(){setTimeout((function(){o.animationTiming("doAnimWith","quick-zoom-in")}),400)}))}))},_createItemViews:function(){var e=this;this.albPackColl.each((function(t){e.childViews.push(new CartPackageItemView({model:t,template:e.itemTemplate,isAlbumPackage:!0}))})),this.packColl.each((function(t){t.get("isProcessing")||e.childViews.push(new CartPackageItemView({model:t,template:e.itemTemplate,packageImageTemplate:e.packageImageTemplate,isAlbumPackage:!1}))}))}}),CartStickyView=function(){var e={},t=function(){$("#cart-hint").on("click",(function(){window.location.href=$(this).find("a").prop("href")}))},i=function(){return parseInt($("body").css("margin-top"))},a=function(e){var t=i();if(t!==e){var a=$(window).scrollTop(),n=t-e;$(window).scrollTop(a+n)}},n=function(e,t,n){var o=e>0,r=!o&&t,s=0;o&&$("#cart-hint-count").text(e),n&&(s=i()),$("body").toggleClass("has-cart",o||r),$("#cart-hint-ordered").toggleClass("hide",!o),$("#cart-hint-unfinished-packages-only").toggleClass("hide",!r),n&&a(s)};return e.update=function(e,t){
n(e,t,!0)},e.init=function(e,i){n(e,i),t()},e}(),CartView=function(){var e,t,i,a,n,o,r,s,c,l={},d=!1,u=function(e,t){if(!e)return"javascript:alert('\xc4ndern leider nicht m\xf6glich.')";var i=e.indexOf("?")>-1?"&":"?";return e+i+"edit="+t},g=function(e){var t=e.volumeDiscount,i=e.count,a=e.price;if(!t||i>9)return{};var n=a+Math.round(a*(1-t/100))*i;return{discount:t,newCount:i+1,newPrice:NumberFormatter.centsAsPrice(n)}},m=function(e,t){var a=t.products[e];return i($.extend(g(a),{uuid:e,src:t.src||"",name:a.name,title:t.title,editUrl:u(t.orderUrl,e),options:a.optionsString,price:NumberFormatter.centsAsPrice(a.price),allowWhiteBorder:!!a.allowWhiteBorder}))},h=function(e){return a({id:e.id,src:e.src,name:e.name,pageUrl:e.url,price:NumberFormatter.centsAsPrice(e.price)})},p=function(e){return $(e).closest(".js-cart-item")},f=function(e){return e.closest(".js-cart-item-img-dimension-helper")},v=function(e){var t=f(e),i=t.find(".cropper-crop-box"),a=i.css("width"),n=i.css("height"),o=e[0],r=o.naturalWidth/o.naturalHeight,s=parseInt(a)/parseInt(n);t.css({width:a,height:n}).addClass("is-fit"),r>s?t.addClass("has-white-on-top"):t.addClass("has-white-on-left")},b=function(e){f(e).removeClass("is-fit has-white-on-top has-white-on-left").css({width:"",height:""})},k=function(e,t,i){PicImgLoad.onImgLoad(e,{success:function(){var a={data:t,cropBoxMovable:!1};b(e),f(e).css({width:e.width(),height:e.height()}),"fit"===i&&(a.built=function(){v(e)}),e.cropper(a)}})},C=function(e){e.data("cropper")&&(e.cropper("destroy"),b(e))},w=function(e,t,i){var a=$("#cart-item-"+t).data({id:e,uuid:t}),n=a.find(".cart-item-amount");i.isDigital?n.remove():(n.val(i.count),$.isEmptyObject(i.cropData)||k(a.find(".cart-item-img").find("img"),i.cropData,i.resolveSizeBy)),1===i.colorIndex&&a.find(".cart-item-img").addClass("is-black-white"),i.allowWhiteBorder&&a.find(".js-white-border").prop("checked",!!i.isWhiteBorder)},P=function(e){var t=e.id,i=$("#cart-item-custom-article-"+e.id).data({id:t,isCustomArticle:!0}).find(".js-cart-item-amount").val(e.count);"number"==typeof e.remaining&&e.remaining<=10&&i.find(".js-cart-item-amount-option").each((function(t){t+1>e.remaining&&$(this).remove()}))},D=function(){$("#cart").removeClass("hide")},I=function(e,t){if(o)if(e){var i={preventTextChange:!!t};o.picDisableWithText("disable",i)}else o.picDisableWithText("reenable")},A=function(e,t){$("#basket-min-order-val-wrap").toggleClass("hide",!e),$("#basket-min-order-val-qr-hint").toggleClass("hide",!t),d||I(e,!0)},y=function(e,t){return" <small>("+s.data("text-old-price")+": "+NumberFormatter.centsAsPrice(e)+", "+s.data("text-new-price")+": "+NumberFormatter.centsAsPrice(t)+")</small>"},T=function(e,t){return" ("+s.data("text-old-count")+": "+e+", "+s.data("text-new-count")+": "+t+")"},S=function(e){var t,i,a=function(e,t){return'<a href="'+t+'">'+e+"</a>"},n=[a('<img src="'+e.src+'" />',e.pswpUrl),a(e.title,e.pswpUrl),"\u2013 "+e.name].join(" "),o='<img src="'+e.src+'" /> '+e.title+" \u2013 "+e.name;return $("#cart-item-"+e.uuid).addClass("error"),"image"===e.reason?(t=$("#changes-reason-image-deleted"),i=o):("price"===e.reason?(t=$("#changes-reason-price-changed"),n+=y(e.oldPrice,e.newPrice)):"product"===e.reason&&(t=$("#changes-reason-product-deleted")),i=n),{$target:t,html:i}},x=function(e){var t,i=e.name;switch(e.reason){case"invalid":t=$("#changes-reason-package-deleted");break;case"conflicting_prices":t=$("#changes-reason-package-conflicting-prices");break;case"structure":t=$("#changes-reason-package-structure");break;case"image":t=$("#changes-reason-package-image-deleted");var a=e.images.length,n=1===a?"text-single-image":"text-multi-image";i+=" ("+a+" "+t.data(n)+")";break;case"price":t=$("#changes-reason-price-changed"),i+=y(e.oldPrice,e.newPrice);break;default:alert("Something went wrong")}return{$target:t,html:i}},M=function(e){var t,i="Galerie als Download ("+e.name+")";switch(e.reason){case"invalid":t=$("#changes-reason-package-deleted");break;case"structure":t=$("#changes-reason-package-structure");break;case"album":t=$("#changes-reason-album-package-album");break;case"images_count":t=$("#changes-reason-album-package-images-count"),i+=T(e.oldCount,e.newCount);break;case"price":t=$("#changes-reason-price-changed"),i+=y(e.oldPrice,e.newPrice);break;default:alert("Something went wrong")}return{$target:t,html:i}},O=function(e){var t,i="";if("minimum_order_value"===e.reason&&e.showNewMinOrderVal){t=$("#changes-reason-mov-changed");var a=NumberFormatter.centsAsPrice(e.newMinOrderVal);$("#changes-reason-mov-changed-val").text(a)}return{$target:t,html:i}},V=function(){var e=$("#cart-list");e.on("change",".js-white-border",(function(){$.pub("cart/white-border/update",$.extend(p(this).data(),{isChecked:$(this).prop("checked")}))})),e.on("click",".js-white-border-info-icon",(function(e){e.preventDefault(),PicSimpleModal.show($("#white-border-info-modal"))})),e.on("click",".js-cart-item-volume-discount",(function(){var e=p(this).find(".js-cart-item-amount"),t=parseInt(e.val())+1;e.val(t).trigger("change")})),e.on("change",".js-cart-item-amount",(function(){$.pub("cart/amount/update",$.extend(p(this).data(),{value:+$(this).val()}))})).on("click",".cart-item-amount",(function(e){e.stopPropagation()})),e.on("click",".js-cart-item-action-soft-delete",(function(e){e.preventDefault(),$.pub("cart/delete/soft",p(this).data())})),e.on("click",".js-cart-item-action-hard-delete",(function(){$.pub("cart/delete/hard",p(this).data())})),e.on("click",".js-cart-item-action-go-to-pswp",(function(){var e=p(this);$.pub("cart/go-to-pswp",{id:e.data("id"),isSoftDeleted:e.hasClass("is-soft-deleted")})})),e.on("click",".cart-item-re-add",(function(e){e.preventDefault(),$.pub("cart/readd",p(this).data())})),o.click((function(e){if($(this).blur(),r.hasClass("disabled"))e.preventDefault();else{var t=r.data();$.pub("cart/submit",{submitUrl:t.submitUrl,redirectUrl:t.redirectUrl})}}))};return l.reRenderItem=function(e,t,i){var a=m(t,i);$("#cart-item-"+t).replaceWith(a),w(e,t,i.products[t])},l.reAddCustomArticle=function(e){var t=h(e);$("#cart-item-custom-article-"+e.id).replaceWith(t),P(e)},l.setPrice=function(e){$(".col-summary-sum").text(NumberFormatter.centsAsPrice(e))},l.setCount=function(e,t){$("#cart-image-count").text(e),o.toggleClass("disabled",0===t)},l.setItemPrice=function(e,t){$("#cart-item-"+e).find(".cart-item-price").text(NumberFormatter.centsAsPrice(t))},l.showMinOrderVal=function(e,t){$("#basket-min-order-val-sum").text(NumberFormatter.centsAsPrice(e)),$("#basket-min-order-val-qr-val").text(NumberFormatter.centsAsPrice(t)),A(!0,!!t)},l.hideMinOrderVal=function(){A(!1)},l.setCartSubmitting=function(e){d=e,I(e)},l.showEmptyCart=function(){n||(n=PicTempl.get("templ-cart-empty")),$("#cart").html(n),D(),$("#cart-info").hide(),l.hideMinOrderVal()},l.showChanges=function(e,t){var i=!1;e.forEach((function(e){var t;"order"===e.type?t=S(e):"package"===e.type?t=x(e):"album_package"===e.type?t=M(e):"universal"===e.type&&(t=O(e));var a=t.$target,n=t.html;a&&(i=!0,a.removeClass("hide").find("ul").append('<li class="clearfix">'+n+"</li>"))})),i&&(s.show(),t&&window.scrollTo(0,s.offset().top),$("#changes-cta-hint").toggleClass("hide",!t))},l.hideChanges=function(){s.hide().find(".changes-reason").addClass("hide"),s.find("li").remove(),$(".js-cart-item").removeClass("error")},l.showError=function(){window.scrollTo(0,c.show().offset().top)},l.hideError=function(){c.hide()},l.softDeleteItem=function(t,i){i||(i='javascript:alert("Neu bestellen leider nicht m\xf6glich.")');var a=$("#cart-item-"+t),n=PicTempl.setVars(e,{orderUrl:i});C(a.find(".cart-item-img").find("img")),a.find(".cart-item-details").html(n),a.find(".js-cart-item-img-dimension-helper").css({width:"",height:""}),a.find(".js-cart-item-action-delete").toggleClass("glyphicon-trash glyphicon-remove"),a.addClass("is-soft-deleted")},l.softDeleteCustomArticle=function(e){$("#cart-item-custom-article-"+e).addClass("is-soft-deleted").find(".cart-item-details").html(t)},l.hardDelete=function(e,t){$((t?"#cart-item-custom-article-":"#cart-item-")+e).slideUp((function(){$(this).remove()}))},l.updateCartInfo=function(e,t){$(".js-cart-info-digi").toggleClass("hide",!e),$(".js-cart-info-print").toggleClass("hide",!t)},l.showDuplicatedDigiWarning=function(){PicSimpleModal.show($("#duplicated-digis-warning-modal"))},l.init=function(n,l,d){if(o=$(".js-cart-submit"),r=o.first(),s=$("#changes-alert"),c=$("#submit-error-alert"),n){e=PicTempl.get("templ-cart-readd-ordered"),t=PicTempl.get("templ-cart-readd-custom-article"),i=PicTempl.getAsFunc("templ-cart-item-ordered",!0),a=PicTempl.getAsFunc("templ-cart-item-custom-article",!0);var u="";$.each(l,(function(e,t){var i=n[t];for(var a in i.products)u+=m(a,i)})),_.each(d,(function(e){u+=h(e)})),$("#cart-list").append(u),$("#cart-list-wrap").removeClass("hide"),D(),$.each(l,(function(e,t){var i=n[t];for(var a in i.products)w(t,a,i.products[a])})),_.each(d,(function(e){P(e)}))}else D();V()},l}(),Cart=function(){var e,t,i,a={},n=0,o=function(e){var t=[];if(!e)return t;for(var i in e)t.push({id:i,index:e[i].index});var a=t.sort((function(e,t){return e.index-t.index})),n=[];return a.forEach((function(e){n.push(e.id)})),n},r=function(t,i){e=CartData.addItem(i.imgData,i.productData),h()},s=function(t,i){CartData.deleteItem(i.id,e,!0),h()},c=function(t,i){CartData.updateProductData(i.id,e,i.productData),h()},l=function(e,t){if(t.isCustomArticle){var i=CartData.reAddCustomArticle(t.id);CartView.reAddCustomArticle(i)}else{var a=CartData.reAddItem(t.id,t.uuid);h(),CartView.reRenderItem(t.id,t.uuid,a)}n--,u()},d=function(e,t){if(i){var a=i.getCropWarningData();if(_.any(a))return void Pubsub.trigger("package:show-crop-warning",a)}CartData.needsDuplicatedDigiWarning()?CartView.showDuplicatedDigiWarning():$.ajax({url:t.submitUrl,data:{ordered:JSON.stringify(CartData.getOrderedForSubmit()),packaged:JSON.stringify(CartData.getPackagedForSubmit()),albumPackaged:JSON.stringify(CartData.getAlbumPackagedForSubmitOrChanges()),customArticles:JSON.stringify(_.values(CustomArticles.get())),minOrderVal:CartData.getHighestMinOrderVal().val,mobile:!0},type:"post",beforeSend:function(){CartView.setCartSubmitting(!0),CartView.hideError(),CartView.hideChanges()},success:function(e){"OK"===e.status?window.location.href=t.redirectUrl:"changed"===e.status&&I(e.changes,!0)},error:function(){CartView.showError()},complete:function(){CartView.setCartSubmitting(!1),k()}})},u=function(){f(),v();var e=CartData.getCount(),t=CartData.getOrderedAndPackagedCount();0!==t||0!==n?(CartView.setCount(e,t),CartView.setPrice(CartData.getPrice()),CartView.updateCartInfo(CartData.hasDigi(),CartData.hasPrint()),k()):CartView.showEmptyCart()},g=function(e,t){CartData.setItemCount(t.id,t.uuid,t.value,t.isCustomArticle),h(),u();var i=CartData.get()[t.id];CartView.reRenderItem(t.id,t.uuid,i)},m=function(e,t){CartData.setWhiteBorder(t.id,t.uuid,t.isChecked),h()},h=function(){PicStorage.setOrdered(CartData.get())},p=function(){var e=t.map((function(e){return e.attributes}));PicStorage.setAlbumPackagesInCart(e)},f=function(){CartData.setPackaged(PicStorage.getComposedPackages())},v=function(){CartData.setAlbumPackaged(PicStorage.getAlbumPackagesInCart())},b=function(){f(),v();var e=CartData.getOrderedAndPackagedCount(),t=CartData.hasUnfinishedPackages();CartStickyView.update(e,t)},k=function(){var e=CartData.getPrice(),t=CartData.getHighestMinOrderVal(),i=t.val;e<i?CartView.showMinOrderVal(i,t.qrMaxVal):CartView.hideMinOrderVal()},C=function(e,t){if(t.isCustomArticle)CartData.deleteCustomArticle(t.id),CartView.softDeleteCustomArticle(t.id);else{var i=CartData.deleteItem(t.id,t.uuid);h(),CartView.softDeleteItem(t.uuid,i)}n++,u()},w=function(e,t){t.isCustomArticle?CartView.hardDelete(t.id,!0):CartView.hardDelete(t.uuid),n--,u()},P=function(){p(),u()},D=function(e,t){window.location.href=CartData.getPswpUrl(t.id,t.isSoftDeleted)},I=function(e,t){e.forEach((function(e){"order"===e.type?A(e):"package"===e.type?y(e):"album_package"===e.type?T(e):"universal"===e.type&&S(e)})),f(),Pubsub.trigger("package:act-on-cart-changes-completed"),u(),CartView.showChanges(e,t),h()},A=function(e){var t=e.id,i=e.uuid,a=CartData.getPtHash(t);e.name=CartData.getProductName(t,i),e.title=CartData.getTitle(t),e.src=CartData.getSrc(t),e.pswpUrl=CartData.getPswpUrl(t),"price"===e.reason?(CartData.setItemPrice(t,i,e.newPrice),CartView.setItemPrice(i,e.newPrice)):(CartData.deleteItem(t,i,!0),CartView.hardDelete(i)),PicStorage.deletePricetableData(a)},y=function(e){"price"===e.reason?Pubsub.trigger("package:update-price",e.uuid,e.newPrice):"image"===e.reason&&e.hasImages?Pubsub.trigger("package:delete-missing-image",e.uuid,e.images):Pubsub.trigger("package:delete",e.uuid)},T=function(e){var i=t.findWhere({uuid:e.uuid});"price"===e.reason?i.set("price",e.newPrice):"images_count"===e.reason?i.set("imagesCount",e.newCount):i.destroy(),p(),v()},S=function(e){"minimum_order_value"===e.reason&&_.each(e.changesPerImage,(function(e){if("order"===e.type)CartData.updateOrderedItemMinOrderVal(e.id,e.newMinOrderVal);else if("package"===e.type)Pubsub.trigger("package:update-min-order-val",e.uuid,e.productIndex,e.imageIndex,e.newMinOrderVal);else if("album_package"===e.type){t.findWhere({uuid:e.uuid}).set("minOrderVal",e.newMinOrderVal),p(),v()}}))},x=function(){var e=PicStorage.getComposedPackages(),t=CartData.getAllPackagedForChanges(e),i=CartData.getAlbumPackagedForSubmitOrChanges(),a=CartData.getOrderedForChanges();CartView.hideChanges(),t.length+a.length===0+i.length!==0&&$.ajax({url:$("#cart").data("changes-url"),type:"post",data:{packaged:JSON.stringify(t),ordered:JSON.stringify(a),albumPackaged:JSON.stringify(i),minOrderVal:CartData.getHighestMinOrderVal().val},success:function(e){"changed"===e.status&&I(e.changes)}})},M=function(){var e=$("#coupons-for-autoredemption"),t=CartData.getAlbumIdsForAutoredemptionCoupons();0!==e.length&&0!==t.length&&$.ajax({url:e.data("url"),data:{album_ids:t},success:function(t){e.replaceWith(t)}})},O=function(e){e?($.sub("cart/go-to-pswp",D),$.sub("cart/white-border/update",m),$.sub("cart/amount/update",g),$.sub("cart/submit",d),$.sub("cart/delete/soft",C),$.sub("cart/readd",l),$.sub("cart/delete/hard",w),Pubsub.on("package:update-amount-complete",u),Pubsub.on("package:delete-complete",u),t&&t.on("remove",P)):($.sub("order-dialog/put-into-cart/product-data",r),$.sub("order-dialog/remove-from-cart",s),$.sub("order-dialog/update-product-data",c),Pubsub.on("package:save-complete",b),Pubsub.on("album-package:add",b),Pubsub.on("custom-article:added",b))};return a.setUuidAndGetProductData=function(t){return e=t,CartData.getProductDataByUUID(t)},a.init=function(e,a){var n=PicStorage.getOrdered(),r=PicStorage.getComposedPackages(),s=PicStorage.getAlbumPackagesInCart();CartData.init(n,r,s);var c=CartData.getCount(),l=CartData.getOrderedAndPackagedCount(),d=l-c,g=CartData.hasUnfinishedPackages(),m=g||d>0;if(e){if(m&&(CartPackageStore.init(),i=new CartPackagesCollection(null,{packagesData:PicStorage.getComposedPackages()}),new CartPackageProcessingAlertView({collection:i}).render()),l>0){if(c>0){var h=o(n);CartView.init(n,h,CartData.getCustomArticles())}else m&&CartView.init();if(d>0){var p=PicStorage.getAlbumPackagesInCart();t=new CartAlbumPackagesCollection(null,{albPackData:p}),new CartPackageView({packColl:i,albPackColl:t}).render()}u(),O(!0)}else m&&CartView.init(),CartView.showEmptyCart();(l>0||g)&&x(),M()}else a||CartStickyView.init(l,g),O()},a}(),CropperData=function(){var e,t,i,a,n,o,r,s,c,l={MODE_MATCH:"match",MODE_CROP:"crop",MODE_FIT:"fit",MODE_CANVAS_NO_FRAME:"canvas-noframe",MODE_CANVAS_REFLECT:"canvas-reflect"},d=!0,u=!1,g=function(){var e=s.ratio,t=!s.forceOrientation,a=!!s.frame;if(e&&!a){var n=o/100,r=i*(1-n),c=i*(1+n),l=function(e){return e>=r&&e<=c};if(l(e)||t&&l(1/e))return!0}return!1},m=function(){return{minCropBoxWidth:Math.min(100,e),minCropBoxHeight:Math.min(100,t)}},h=function(){var e=s.width,t=s.height,i=l.isCanvasNoFrame()?a:0;return{width:e+2*i,height:t+2*i}},p=function(){if(l.isCanvasNoFrame()){var e=h();return e.width/e.height}return s.ratio};return l.getMode=function(){return c},l.getFrameWidthFactor=function(){var e=h(),t=Math.max(e.width,e.height),i=0;return l.isCanvasNoFrame()?i=a:u&&(i=n),i/t},l.calculateCropSettings=function(){if(d&&r)return r;var a,n=p(),o=s.forceOrientation;if(o?("horizontal"===o&&n<1||"vertical"===o&&n>1)&&(n=1/n):(i<1&&n>1||i>1&&n<1)&&(n=1/n),i>n){var c=Math.floor(t*n);a={width:c-.1,height:t,x:(e-c)/2,y:0}}else{var l=Math.floor(e/n);a={width:e,height:l,x:0,y:(t-l)/2}}return $.extend(m(),{data:a,aspectRatio:n})},l.isMatch=function(){return c===l.MODE_MATCH},l.isCrop=function(){return c===l.MODE_CROP},l.isCanvasNoFrame=function(){return c===l.MODE_CANVAS_NO_FRAME},l.isFit=function(){return c===l.MODE_FIT},l.isInitialCropLoad=function(){return d},l.setFormatData=function(e){s=$.extend(e,{ratio:parseFloat(e.ratio)})},l.setCropModeToMatch=function(){c=l.MODE_MATCH},l.setCropMode=function(e){c=e},l.setInitialCropLoad=function(e){d=e},l.setIsSticker=function(e){u=e},l.invalidateInitialCropData=function(){r=!1},l.updateCropMode=function(){r||(c=g()?l.MODE_MATCH:s.frame?l.MODE_CANVAS_REFLECT:l.MODE_CROP)},l.init=function(s){i=s.ratio,e=s.width,t=s.height,a=s.canvasFrameWidth,n=s.stickerFrameWidth,o=s.ratioMatchTolerance,s.initialCropData&&(r={data:s.initialCropData,aspectRatio:s.initialCropData.width/s.initialCropData.height},c=s.initialResolveSizeBy)},l}(),CropperView=function(){var e,t,i,a={},n=!1,o=function(e){var i=t.find(".cropper-crop-box"),a=function(e){i.css({outline:e?e+"px solid rgba(255, 0, 0, 0.75) ":"",outlineOffset:e?-1*e:""})};e?a(Math.max(i.outerWidth(),i.outerHeight())*e):a()},r=function(e){$("#order-modal-crop-radios, #order-modal-frame-radios").find('input[value="'+e+'"]').prop("checked",!0)},s=function(){var t=$("#order-modal-crop-image-wrap"),i=t.find(".cropper-crop-box"),a=i.css("width"),n=i.css("height"),o=e[0],r=o.naturalWidth/o.naturalHeight,s=parseInt(a)/parseInt(n);t.css({width:a,height:n}).addClass("is-fit"),r>s?t.addClass("has-white-on-top"):t.addClass("has-white-on-left")},c=function(){$("#order-modal-crop-cancel").click((function(){$.pub("cropper/cancel")})),$(".js-order-modal-crop-save").click((function(){$.pub("cropper/save")})),$("#order-modal-frame-help-link").click((function(e){e.preventDefault(),$("#order-modal-frame-help-content").slideToggle()})),$("#order-modal-crop-radios, #order-modal-frame-radios").find("input").change((function(){$.pub("cropper/set-crop-mode",{val:$(this).val()})}))};return a.getData=function(){return e.cropper("getData")},a.isReady=function(){return n},a.set=function(t,i,a){PicImgLoad.onImgLoad(e,{success:function(){var r=$("#order-modal-crop-image-wrap"),c=function(){o(i),a&&s(),n=!0};r.hasClass("is-fit")&&r.removeClass("is-fit has-white-on-top has-white-on-left").css({width:"",height:""}),e.data("cropper")&&e.cropper("destroy"),r.css({width:e.width(),height:e.height()}),t.built=c,e.cropper(t)}})},a.showModal=function(e,t){$("#order-modal-frame-hint-wrap, #order-modal-frame-radios").toggle(!e),$("#order-modal-crop-hint-wrap, #order-modal-crop-radios").toggle(e),$("#order-modal-crop-radios").toggle(!!t.allowFit),$("#order-modal-crop-image-wrap").toggleClass("is-black-white",!!t.isBlackWhite).toggleClass("is-postcard",!!t.isPostcard).toggleClass("is-snowglobe",!!t.isSnowglobe),i.show(),window.scrollTo(0,0)},a.reset=function(){$("#frame-option-canvas-reflect, #crop-option-crop").prop("checked",!0),i.hide()},a.removeModal=function(){i.remove()},a.init=function(a){e=a.$img,t=a.$imgWrap,i=a.$cropModal,a.initialResolveSizeBy&&r(a.initialResolveSizeBy),c()},a}(),Cropper=function(){var e={},t=function(){CropperView.set(CropperData.calculateCropSettings(),CropperData.getFrameWidthFactor(),CropperData.isFit())},i=function(){$.sub("cropper/set-crop-mode",(function(e,i){CropperData.setCropMode(i.val),t()}))};return e.getMode=function(){return CropperData.getMode()},e.getData=function(e){var t,i=!(e&&e.forceFromView)&&CropperData.isInitialCropLoad(),a=function(){return CropperData.calculateCropSettings().data};return CropperData.isMatch()?t={}:i||!CropperView.isReady()?(t=a(),i&&CropperData.setInitialCropLoad(!1)):(t=CropperView.getData(),$.isEmptyObject(t)&&(t=a())),t},e.isMatch=function(){return CropperData.isMatch()},e.setCropModeToMatch=function(){CropperData.setCropModeToMatch()},e.show=function(e,i){return CropperData.setFormatData(e),CropperData.updateCropMode(),CropperData.setIsSticker(!!i.isSticker),!CropperData.isMatch()&&(CropperView.showModal(CropperData.isCrop()||CropperData.isFit(),{allowFit:e.allowFit,isBlackWhite:i.isBlackWhite,isPostcard:i.isPostcard,isSnowglobe:i.isSnowglobe}),t(),!0)},e.reset=function(){CropperView.reset()},e.remove=function(){CropperView.removeModal()},e.invalidateInitialCropData=function(){CropperData.invalidateInitialCropData()},e.init=function(e,t,a){CropperView.init({$img:$("#order-modal-crop-image"),$imgWrap:$("#order-modal-crop-image-wrap"),$cropModal:$("#order-modal-crop"),initialResolveSizeBy:a}),CropperData.init({ratio:e.ratio,width:e.width,height:e.height,canvasFrameWidth:CANVAS_FRAME_WIDTH_MM/10,stickerFrameWidth:STICKER_FRAME_WIDTH_MM/10,ratioMatchTolerance:2,initialCropData:t,initialResolveSizeBy:a}),i()},e}(),deferredTokenLoaderPromise={};$.loadTokens=function(e){return deferredTokenLoaderPromise[e]||(deferredTokenLoaderPromise[e]=$.getJSON("/service/get_tokens",{album_id:e})),deferredTokenLoaderPromise[e]};var deferredPtDataPromise={};$.loadPtData=function(e,t){if(!deferredPtDataPromise[e]){var i=$("#order-wrap").addClass("is-loading");deferredTokenLoaderPromise[e]=$.Deferred((function(i){$.loadTokens(e).done((function(a){var n=a.price_hash,o=a.killswitch,r=PicStorage.getPricetableData(n,o);r?i.resolve(r,n):$.getJSON(t,{album_id:e}).done((function(e){PicStorage.setPricetableData(n,e,o),i.resolve(e,n)}))}))})).promise().done((function(){i.removeClass("is-loading")}))}return deferredTokenLoaderPromise[e]};var OrderDialogData=function(){var e,t,i,a,n={},o={},r=!1,s=!1,c=[],l=1,d=0,u=null,g=function(e,a){var o=[],r=function(e){$.inArray(e.id,c)>-1&&o.push(e.name)};for(var s in e)e[s].options.forEach(r);return!a&&n.isBlackWhite()&&o.push(t[1].name),n.isMatte()&&o.push(i[1].name),o.join(", ")},m=function(e,t){return $.trim(e)+" "+$.trim(t)},h=function(e,t){var i=!e.forceOrientation,a=e.ratio,n=t*(1-RATIO_MATCH_TOLERANCE_PERCENT),o=t*(1+RATIO_MATCH_TOLERANCE_PERCENT),r=function(e){return e>=n&&e<=o};return r(a)||i&&r(1/a)};return n.isDigital=function(){return o[r].isDigital},n.isBlackWhite=function(){return d===t[1].id},n.isMatte=function(){return u===i[1].id},n.doShowMatteOption=function(){return o[r].showMatteOption},n.isSticker=function(){return o[r].isSticker},n.isPostcard=function(){return o[r].isPostcard},n.isVideo=function(){return o[r].isVideo},n.isBranding=function(){return n.isDigital()&&o[r].bases[s].isBranding},n.isSnowglobe=function(){return o[r].bases[s].isSnowglobe},n.getBases=function(){var t=o[r].isDigital,i=e.width/e.height,a={};return _.each(o[r].bases,(function(e,n){a[n]=_.extend({isMatchable:t||h(e.formatData,i)},e)})),a},n.getSelectedBaseID=function(){return"undefined"!=typeof INITIAL_ORDER_BASIS?INITIAL_ORDER_BASIS:s||a.baseID},n.getVolumeDiscount=function(){return o[r].volumeDiscount},n.getOptGrs=function(){return o[r].optiongroups},n.getOptionInfo=function(){var e={};return _.each(o[r].optiongroups,(function(t){e[t.name]=t.options})),e},n.getFormatData=function(){return o[r].bases[s].formatData},n.getPrice=function(){for(var e=o[r].bases[s].prices,t=0;t<c.length;t++)if(!(e=e[c[t]]))return!1;return e.sum},n.getDisabledOptionIds=function(){var e=[],t=function(i){if(!i.sum){var a=_.keys(i);e=e.concat(a),_.each(i,t)}};return t(o[r].bases[s].prices),e=_.map(_.uniq(e),(function(e){return parseInt(e)})),_.chain(o[r].optiongroups).map("options").flatten().map("id").difference(e).value()},n.getShortDescription=function(){return o[r].bases[s].shortDescription||""},n.getImgData=function(){return e},n.getOptsStr=function(){return g(o[r].optiongroups,!0)},n.getProductData=function(){var t=o[r],i=t.isDigital,a=t.bases[s],u={pcID:r,baseID:s,optionPath:c,optionsString:g(t.optiongroups),name:m(t.name,a.name),price:n.getPrice(a.prices),count:i?1:l,origWidth:e.width,origHeight:e.height,origSrc:e.src};return u.colorIndex=d,i&&(u.isDigital=!0),t.showMatteOption&&(u.useMatte=n.isMatte()),t.volumeDiscount&&(u.volumeDiscount=t.volumeDiscount),a.formatData.allowWhiteBorder&&(u.allowWhiteBorder=!0),u},n.getDefaultProductData=function(e){return e&&e.considerInitialValues&&"undefined"!=typeof INITIAL_ORDER_CATEGORY?{pcID:INITIAL_ORDER_CATEGORY}:a},n.setPtData=function(t,i){o=t,e.album.ptHash=i},n.setCatID=function(e){r=e},n.setBaseID=function(e){s=e},n.setOptGrPath=function(e){c=e},n.setColorIndex=function(e){d=e},n.setMatteIndex=function(e){u=e},n.setAmount=function(e){l=e},n.setLastProductData=function(e){a={pcID:e.pcID,baseID:e.baseID,colorIndex:e.colorIndex,optionPath:e.optionPath,useMatte:e.useMatte},PicStorage.setLastProductData(a)},n.init=function(n,o,r,s){e=n,t=o,i=r,a=s||PicStorage.getDefaultProductData()},n}(),OrderDialogView=function(){var e,t,i,a,n,o,r,s,c={},l="no-choice",d=!1,u=!0,g=!0,m=function(e){var t=Object.keys(e).length;return _.chain(e).map((function(e,i){var a=e.position;return window.isNaN(parseInt(a))&&(a=t),{idOrIndex:i,position:a}})).sortBy("position").pluck("idOrIndex").value()},h=function(e){u&&window.scrollTo(0,e.offset().top)},p=function(e){return NumberFormatter.centsAsPrice(e)},f=function(e,t){var i=e.colorIndex,a=e.optionPath,n=e.useMatte;if(i||a||n){var o=[void 0===i?0:i];t&&o.push(n?1:0),$.merge(o,a||[]),$.each(o,(function(e,t){$("#optgr-"+e+"-"+t).click()}))}},v=function(e){var t=$("#productinfo-link");if(t.length){var i=e===l?"":"/"+e;t.attr("href",t.data("url").replace("/__id__",i))}},b=function(e){return _.map(e,(function(e,t){return'<div class="order-optinfo-group"><h2 class="order-optinfo-group-header">'+t+"</h2>"+m(e).map((function(t){var i=e[t],a='<h3 class="order-optinfo-item-header">'+i.name+"</h3>";return i.image&&(a+='<img class="order-optinfo-item-img" src="'+i.image+'">'),'<div class="alert">'+(a+='<div class="order-optinfo-item-desc">'+(i.description||"")+"</div>")+"</div>"})).join("")+"</div"})).join()},k=function(e){$("#order-footer").toggleClass("order-allowed",e)},C=function(e){$("#order-invalid-variation").toggleClass("show",e)},w=function(){var e=$("#order-wrap");e.on("change","#order-cat",(function(){$("#order-base-wrap").remove(),$.pub("order-dialog/disable-order");var e=$(this),t=e.val();v(t),t!==l&&($.pub("order-dialog/set-cat",{catID:+t}),h(e))})),e.on("change","#order-base",(function(){var e=$(this),t=e.val();t!==l?($(".js-order-optgr").length<1&&$.pub("order-dialog/render-opt-grs"),$.pub("order-dialog/set-base",{baseID:+t}),h(e)):$.pub("order-dialog/disable-order")})),e.on("change","#order-optgr-wrap",(function(){d||$.pub("order-dialog/set-opt-grs",{opts:c.getSelectedOpts()})})),e.on("click","#optinfo-link",(function(e){e.preventDefault(),$.pub("order-dialog/show-option-info")})),$("#order-amount").change((function(){$.pub("order-dialog/set-amount",{amount:+$(this).val()})})),$("#order-into-cart").click((function(){$.pub("order-dialog/put-into-cart")}))};return c.renderCatList=function(e,t,n){var o="";m(e).forEach((function(t){o+=PicTempl.setVars(i,{id:t,label:e[t].name})})),o=PicTempl.setVars(a,{options:o}),$("#order-form").append(o),t&&e[t]&&$("#order-cat").val(t).change(),n&&$("#order-amount").val(n).change()},c.renderBaseList=function(e,t,a){var o="",r="";m(e).forEach((function(t){var a=p(e[t].minPrice);e[t].hasOnlyOnePrice||(a=PicI18n.get("order.prices.from")+" "+a);var n=PicTempl.setVars(i,{id:t,label:e[t].name+" ("+a+")"});e[t].isMatchable?o+=n:r+=n}));var s="";if(o.length&&r.length){var c=PicI18n.get("order.formats.matching"),l=PicI18n.get("order.formats.nonMatching");s=['<optgroup label="'+c+'">',o,"</optgroup>",'<optgroup label="'+l+'" class="order-non-match-format-label">',r,"</optgroup>"].join()}else s=o+r;var d=PicTempl.setVars(n,{options:s});$("#order-form").append(d),t||1!==_.size(e)||(t=_.keys(e)[0]),t&&e[t]&&(a||e[t].isMatchable||0===o.length)&&$("#order-base").val(t).change()},c.renderOptGrs=function(i){var a="",n=[{options:e,isPseudo:!0}];i.doShowMatteOption&&n.push({options:t,isPseudo:!0}),$.merge(n,i.optGrs||[]),_.each(n,(function(e,t){var i=_.map(m(e.options),(function(i){return PicTempl.setVars(r,{grIndex:t,optID:e.options[i].id,optLabel:e.options[i].name})}));a+=PicTempl.setVars(o,{options:i.join(""),pseudoClass:e.isPseudo?"js-is-pseudo":""})})),d=!0;var c=$("#order-optgr-wrap");c.toggleClass("hide",!!i.isVideo).append(a).find(".js-order-optgr").each((function(){$(this).find("input").first().click()})),f(i.defaultData,i.doShowMatteOption),c.find(".js-order-optgr").not(".js-is-pseudo").length>0&&c.append(s),d=!1},c.getSelectedOpts=function(){var e,t,i=[];return $("#order-optgr-wrap").find("input:checked").each((function(a){var n=$(this),o=+n.val();0!==a?1===a&&n.closest(".js-order-optgr").hasClass("js-is-pseudo")?t=o:i.push(o):e=o})),{optGrPath:i,colorIndex:e,matteIndex:t}},c.renderOptionInfoModal=function(e){var t=window.scrollY;c.hideDialog(),window.scrollTo(0,0),$("#order-optinfo-wrap").html(b(e)),$("#order-optinfo-modal").addClass("is-open"),window.history.pushState({},"Option Info Modal"),window.onpopstate=function(){window.onpopstate=null,c.showDialog(),$("#order-optinfo-modal").removeClass("is-open"),window.scrollTo(0,t)},g&&(g=!1,$(".js-order-optinfo-close").on("click",(function(){window.history.back()})))},c.getBasketUrl=function(){return $("#order-modal-continue-basket-btn").prop("href")},c.setShortDescription=function(e){var t=$("#order-short-desc");e?t.html(e).show():t.html("").hide()},c.setPrice=function(e){$("#order-price").text(e&&p(e))},c.disableOptions=function(e){var t=$(".js-order-optgr-input").prop("disabled",!1),i=$(".js-order-optgr-label").removeClass("disabled");if(e.length){var a=$();_.each(e,(function(e){var n=t.filter('[value="'+e+'"]').prop("disabled",!0),o=n.prop("id");i.filter('[for="'+o+'"]').addClass("disabled"),n.prop("checked")&&(a=a.add(n.closest(".js-order-optgr")))})),a.each((function(){$(this).find("input").not(":disabled").first().trigger("click")}))}},c.toggleShippingcostHint=function(e){$("#order-shippingcost-hint").toggleClass("hide",!e)},c.toggleVolumeDiscount=function(e){$("#order-volume-discount-wrap").toggleClass("hide",!e),$("#order-volume-discount").text(e)},c.setAllowScolling=function(e){u=e},c.setImageGrayFilter=function(e){$("#order-image").toggleClass("is-blackwhite",e)},c.toggleAmountBtn=function(e){$("#order-amount").toggle(!e)},c.toggleBranding=function(e){if(e){var t=$("#order-image"),i=BRANDING_BASE_URL.replace("__width__",t.width()).replace("__height__",t.height());$('<img id="order-image-branding" class="order-image-branding" />').prop("src",i).insertBefore(t)}else $("#order-image-branding").remove()},c.enableOrderMode=function(){k(!0),C(!1)},c.disableOrderMode=function(){$(".js-order-optgr").remove(),k(!1),c.toggleBranding(!1)},c.showInvalidVariationName=function(e){k(!1),C(!0),$("#order-invalid-variation-name").text("("+e+")")},c.showDialog=function(){$("#order-dialog").removeClass("hide")},c.hideDialog=function(){$("#order-dialog").addClass("hide")},c.showContinueModal=function(){$("#order-modal-continue").show(),window.scrollTo(0,0)},c.init=function(c,l){e=c,t=l,i=PicTempl.get("templ-order-opt"),a=PicTempl.get("templ-order-cat"),n=PicTempl.get("templ-order-base"),o=PicTempl.get("templ-order-optgr"),r=PicTempl.get("templ-order-optgr-radio"),s=PicTempl.get("templ-order-optinfo"),w()},c}(),OrderDialog=function(){var e,t={},i=!1,a=!1,n=!1,o=OrderDialogData,r=OrderDialogView,s=[{id:0,name:PicI18n.get("order.color.unchanged")},{id:1,name:PicI18n.get("order.color.blackAndWhite")}],c=[{id:0,name:PicI18n.get("order.useMatte.glossy")},{id:1,name:PicI18n.get("order.useMatte.matte")}],l=function(){var e=o.getProductData();return e.resolveSizeBy=Cropper.getMode(),e.cropData=Cropper.getData(),e},d=function(e){o.setOptGrPath(e.optGrPath),o.setColorIndex(e.colorIndex),o.setMatteIndex(e.matteIndex),r.setImageGrayFilter(o.isBlackWhite())},u=function(){var e=o.getShortDescription();r.setShortDescription(e)},g=function(){r.enableOrderMode();var e=o.getPrice();"boolean"!=typeof e||!1!==e?r.setPrice(e):r.showInvalidVariationName(o.getOptsStr())},m=function(){!i||a||n||(Cropper.invalidateInitialCropData(),a=!0)},h=function(e,t){var i=o.getDefaultProductData({considerInitialValues:!0}),a=_.findKey(e,{isVideo:!0});i&&(n=!0,r.setAllowScolling(!1)),t?r.renderCatList(_.pick(e,a),a):r.renderCatList(_.omit(e,a),i.pcID,i.count),n=!1,
r.setAllowScolling(!0)},p=function(){i?window.location.href=r.getBasketUrl():(Cropper.remove(),r.showContinueModal())},f=function(e){$.pub("order-dialog/update-product-data",{id:o.getImgData().id,productData:e})},v=function(){var e=!1;if(o.isDigital())Cropper.setCropModeToMatch();else{var t=o.getFormatData(),a={isBlackWhite:o.isBlackWhite(),isSticker:o.isSticker(),isPostcard:o.isPostcard(),isSnowglobe:o.isSnowglobe()};e=Cropper.show(t,a)}var n=l();i?f(n):$.pub("order-dialog/put-into-cart/product-data",{imgData:o.getImgData(),productData:n}),o.setLastProductData(n),e||p(),r.hideDialog()},b=function(){r.showDialog(),Cropper.reset(),i?f(e):$.pub("order-dialog/remove-from-cart",{id:o.getImgData().id})},k=function(){$.sub("order-dialog/disable-order",(function(){r.disableOrderMode()})),$.sub("order-dialog/set-cat",(function(e,t){o.setCatID(t.catID),r.renderBaseList(o.getBases(),o.getSelectedBaseID(),i);var a=o.isDigital();r.toggleAmountBtn(a),r.toggleShippingcostHint(!a),r.toggleVolumeDiscount(o.getVolumeDiscount())})),$.sub("order-dialog/render-opt-grs",(function(){r.renderOptGrs({optGrs:o.getOptGrs(),defaultData:o.getDefaultProductData(),isVideo:o.isVideo(),doShowMatteOption:o.doShowMatteOption()}),d(r.getSelectedOpts())})),$.sub("order-dialog/set-base",(function(e,t){o.setBaseID(t.baseID),u(),g(),r.disableOptions(o.getDisabledOptionIds()),r.toggleBranding(o.isBranding()),m()})),$.sub("order-dialog/set-opt-grs",(function(e,t){d(t.opts),g()})),$.sub("order-dialog/show-option-info",(function(){var e=o.getOptionInfo();r.renderOptionInfoModal(e)})),$.sub("order-dialog/set-amount",(function(e,t){o.setAmount(t.amount)})),$.sub("order-dialog/put-into-cart",v),$.sub("cropper/save",(function(){f(l()),p()})),$.sub("cropper/cancel",b)};return t.init=function(t,a){i=!!a,e=a,r.init(s,c),o.init(t,s,c,a),Cropper.init(t,!!a&&a.cropData,!!a&&a.resolveSizeBy),$.loadPtData(t.album.id,$("#order-form").data("pt-src")).done(o.setPtData).done((function(e){h(e,t.isVideo)})),k()},t}(),AddressPaymethodsData=function(){var e,t,i,a,n,o,r={};return r.getPaymethods=function(){return(e?n:a)[o]},r.canShowDigiNotice=function(){return!!t&&!e},r.canShowInvoiceNotice=function(){return!i},r.setCountryID=function(e){o=e},r.setIsTrustedUser=function(t){e=t},r.init=function(r,s){e=r.trusted_user,t=r.includes_digitals,i=r.includes_only_digitals,a=r.paymethods_by_country,n=r.trusted_paymethods_by_country,o=s},r}(),AddressValiView=function(){var e={},t=function(){$.extend($.validator.messages,{required:PicI18n.get("cart.validation.required"),minlength:$.validator.format(PicI18n.get("cart.validation.minlength")),rangelength:$.validator.format(PicI18n.get("cart.validation.rangelength")),email:PicI18n.get("cart.validation.email"),equalTo:PicI18n.get("cart.validation.equalTo")})},i=function(e){var t=$(e).closest(".js-address-wrapper").find(".js-country-selector").val();return parseInt(t)===GERMANY_ID},a=function(e){return/^(DE|AT)/.test(e)},n=function(e,t){return!!this.optional(t)||PicIBAN.isValid(e)},o=function(e,t){return!i(t)||""!==(e=$.trim(e))&&/^\d{5}$/.test(e)},r=function(e){return!/Packstation/i.test(e)},s=function(e){return!/[\\\u20ac]/i.test(e)},c=function(e,t){if(!/[0-9]+/i.test(e))return!1;if(i(t)&&!/[a-zA-Z].*[0-9]+/i.test(e))return!1;var a=/([^ 0-9/-])([0-9])/;return a.test(e)&&$(t).val((function(e,t){return t.replace(a,"$1 $2")})),!0},l=function(e){return/[a-z\xe4\xf6\xfc\xdfA-Z\xc4\xd6\xdc]{2,}/i.test(e)},d=function(e){return!/[\xe4\xf6\xfc\xdf].*@/i.test(e)},u=function(e,t){return!new RegExp(".*@"+(e?"gmail":"googlemail")+".de","i").test(t)},g=function(e,t){return $(t).closest(".js-address-wrapper").find(".js-address-firstname").val()!==e},m=function(){jQuery.validator.addMethod("valid_zip_in_germany",o),jQuery.validator.addMethod("iban_german_or_austrian",a),jQuery.validator.addMethod("iban",n,"Please specify a valid IBAN"),jQuery.validator.addMethod("no_packstation",r),jQuery.validator.addMethod("house_number",c),jQuery.validator.addMethod("no_backslash_or_euro",s),jQuery.validator.addMethod("min_2_letters",l),jQuery.validator.addMethod("no_umlauts_in_local_part",d),jQuery.validator.addMethod("no_gmail_de",$.proxy(u,this,!0)),jQuery.validator.addMethod("no_googlemail_de",$.proxy(u,this,!1)),jQuery.validator.addMethod("not_equal_to_firstname",g)},h=function(e){var t={no_packstation:PicI18n.get("cart.validation.noPackstation"),house_number:PicI18n.get("cart.validation.houseNumber"),no_backslash_or_euro:PicI18n.get("cart.validation.noBackslashOrEuro")},i={iban_german_or_austrian:!0,iban:!0},a={no_packstation:!0,no_backslash_or_euro:!0,house_number:!0,min_2_letters:!0},n={no_packstation:!0,no_backslash_or_euro:!0},o={not_equal_to_firstname:PicI18n.get("cart.validation.notEqualToFirstname")};e.validate({ignore:":hidden",rules:{"ship_address[zip]":"valid_zip_in_germany","address[zip]":"valid_zip_in_germany","bankdata[iban]":i,"ship_address[address1]":a,"ship_address[address2]":n,"address[address1]":a,"address[address2]":n,"address[lastname]":"not_equal_to_firstname","ship_address[lastname]":"not_equal_to_firstname","user[email]":{no_umlauts_in_local_part:!0,no_gmail_de:!0,no_googlemail_de:!0}},messages:{"bankdata[iban]":{iban_german_or_austrian:PicI18n.get("cart.validation.germanIban")},"ship_address[address1]":t,"ship_address[address2]":t,"address[address1]":t,"address[address2]":t,"address[lastname]":o,"ship_address[lastname]":o,"user[email]":{no_umlauts_in_local_part:PicI18n.get("cart.validation.noUmlauts"),no_gmail_de:PicI18n.get("cart.validation.noGmail"),no_googlemail_de:PicI18n.get("cart.validation.noGooglemail")}},errorPlacement:function(e,t){e.appendTo(t.parent())}})},p=function(e){e.submit((function(t){var i=$("#autochoose-coupon").data("coupon-value"),a=$("#coupon_code").data("coupon-value");if(null!==i&&null!==a&&i>a&&!window.confirm(PicI18n.get("cart.submit.expensiveCoupon")))t.preventDefault();else{var n=e.find(".js-cart-submit");n.picDisableWithText("disable"),e.valid()?$(".js-clear-if-hidden:hidden").val(""):(alert(PicI18n.get("cart.validation.incomplete")),n.picDisableWithText("reenable"))}}))};return e.init=function(e){t(),m(),h(e),p(e)},e}(),AddressPaymethodsView=function(){var e={},t=function(e){$(".bankaccount").toggle(e).find("input").toggleClass("required",e).prop("disabled",!e)},i=function(e,t,i){var a="invoice"===e,n=a&&t,o=a&&i&&!n;$("#prepaid_notice").toggle("prepaid"===e),$("#paypal_notice").toggle("paypal"===e),$("#creditcard_notice").toggle("creditcard"===e),$("#invoice_notice").toggle(o),$("#digitalinvoice_notice").toggle(n),$("#twint_notice").toggle("twint"===e)},a=function(e){var t=$("#address-phone-hint");if(0!==t.length){var i=t.data(e?"required-text":"optional-text");$("#address-phone-field").toggleClass("required",e),t.text(i)}},n=function(){$(".js-radio-input-pm").change((function(){$.pub("address/paymethod/change")}))};return e.updateAvailableMethods=function(e){var t=$(),i=$(".js-radio-input-pm:checked");$(".js-radio-input-pm-wrap").hide(),$.each(e,(function(e,i){t=t.add("#radio-input-pm-wrap-"+i)})),t.show(),(i.length<1||i.is(":hidden"))&&t.first().find(".js-radio-input-pm").click()},e.toggleFieldsAndNotices=function(e,n){var o=$(".js-radio-input-pm:checked").val(),r="debit"===o,s="invoice"===o;i(o,e,n),t(r),a(s||r)},e.init=function(t,i,a){n(),e.updateAvailableMethods(t),e.toggleFieldsAndNotices(i,a)},e}(),AddressView=function(){var e,t,i,a,n,o,r,s={},c=!1,l=!1,d=function(e){var t=e.text(),i=e.data("toggle-text");e.text(i).data("toggle-text",t)},u=function(){if(c)e.html(e.data("toggle-html-xtra"));else{var t=l?"toggle-text-bulk":"toggle-text-default";e.text(e.data(t))}},g=function(e,t,i){var a=e.val();e.keyup(_.debounce((function(){var t=e.val();t!==a&&(a=t,i(t))}),t))},m=function(e){if(0!==e.length){var t=e.closest(".form-group"),i=$("#check-coupon-result");g(e,1e3,(function(a){e.data("coupon-value",null),a.length<1?(i.html(""),t.removeClass("error")):$.ajax({data:{code:a},dataType:"json",url:e.data("valid-check-url"),success:function(a){var n="";a.valid?(n=a.text_natural,e.data("coupon-value",a.coupon_value)):n=a.outdated?a.text_outdated:a.text_invalid,t.toggleClass("error",!a.valid),i.html("("+n+")")}})}))}},h=function(){$.pub("address/country/change",{id:s.getShipCountryID()})},p=function(e){if(t.click((function(e){e.preventDefault(),c=!c,u(),d(t),a.slideToggle(),o.toggle(),r.val(c?"0":"1"),h(),i.toggle()})),i.click((function(e){e.preventDefault(),l=!l,u(),d(i),l||$("#prevent-bulk-order-input").prop("checked",!0),n.slideToggle(),o.toggle(),t.toggle()})),$("#address_country_id, #ship_address_country_id").change((function(){c&&"ship_address_country_id"!==this.id||h()})),e){var s=$("#user_email");g(s,1e3,(function(e){$.pub("address/email/change",{email:e,url:s.data("trusted-check-url")})}))}m($("#coupon_code"))};return s.getShipCountryID=function(){return(c?$("#ship_address_country_id"):$("#address_country_id")).val()},s.showExtraAddress=function(){t.click()},s.showBulkOrderInfo=function(){i.click()},s.init=function(s){e=$("#toggle-ship-or-bulk-header"),t=$("#toggle-ship-link"),i=$("#toggle-bulk-link"),a=$("#ship-address"),n=$("#bulk-info"),o=$("#bill-header"),r=$("#address_isshipping"),p(s)},s}(),Address=function(){var e={},t=function(){AddressPaymethodsView.updateAvailableMethods(AddressPaymethodsData.getPaymethods())},i=function(){AddressPaymethodsView.toggleFieldsAndNotices(AddressPaymethodsData.canShowDigiNotice(),AddressPaymethodsData.canShowInvoiceNotice())},a=function(e){$.sub("address/country/change",(function(e,i){AddressPaymethodsData.setCountryID(i.id),t()})),$.sub("address/paymethod/change",i),e&&$.sub("address/email/change",(function(e,a){$.ajax({url:a.url,method:"post",data:{email:a.email},success:function(e){var a="false"!==e;AddressPaymethodsData.setIsTrustedUser(a),t(),i()}})}))};return e.init=function(){var e=$("#address-form");AddressValiView.init(e),AddressView.init(ALLOWED_PAYMETHOD_DATA.includes_digitals),AddressPaymethodsData.init(ALLOWED_PAYMETHOD_DATA,AddressView.getShipCountryID()),a(ALLOWED_PAYMETHOD_DATA.includes_digitals),AddressPaymethodsView.init(AddressPaymethodsData.getPaymethods(),AddressPaymethodsData.canShowDigiNotice(),AddressPaymethodsData.canShowInvoiceNotice()),e.data("has-extra-ship")?AddressView.showExtraAddress():e.data("use-bulk-order")&&AddressView.showBulkOrderInfo()},e}(),GalleryImages=function(){var e,t,i,a,n,o,r,s,c,l,d={},u=[],g="report",m="{{imageID}}",h=function(e,t){var i,a=window.location,n=a.search,o="image_index="+e;n.indexOf("image_index")>-1?i=n.replace(/image_index=\d+/,o):i=n+(n?"&":"?")+o;var r=a.pathname+i+a.hash;try{history[t?"pushState":"replaceState"](null,document.title,r)}catch(e){if(S("versucht einen Error abzufangen"),"SecurityError"!==e.name)throw new Error(e);window.location.href=r}},p=function(){var e=[];a&&e.push({id:"download",label:"Kostenloser Download",url:"{{raw_image_url}}",download:!0}),ALLOW_SHARE&&(n&&e.push({id:"twitter",label:"Tweet",url:"https://twitter.com/intent/tweet?text={{text}}&url={{url}}"}),o&&e.push({id:"facebook",label:"Auf Facebook teilen",url:"https://www.facebook.com/sharer/sharer.php?u={{url}}"}),r&&e.push({id:"whatsapp",label:"Per WhatsApp verschicken",url:"whatsapp://send?text={{text}}%20{{url}}"}));var t="Guten Tag,\r\n\r\nich m\xf6chte folgendes Bild melden: xxx (ID: yyy).\r\n\r\nDer Grund lautet wie folgt: \r\n\r\nMit freundlichen Gr\xfc\xdfen\r\nVorname Nachname",i="mailto:datenschutz@pictrs.com?subject="+encodeURIComponent("Bild melden")+"&body="+encodeURIComponent(t).replace("xxx","{{url}}").replace("yyy",m);return e.push({id:g,label:"Bild melden",url:i}),e},f=function(t){var a=i.eq(t).prop("href"),n=e.currItem;$("#pswp-order").prop("href",a),$("#pswp-download").prop("href",n.dlUrl),$("#pswp-redakteur-download").prop("href",n.redakteurDownloadUrl)},v=function(t){var i;(t=t||0)&&t>9||($(".pswp__item img").each((function(){i||$(this).attr("src")!==e.currItem.src||(i=$(this))})),i?i.attr("alt",e.currItem.alt):setTimeout(_.partial(v,t+1),250))},b=function(){var t=$('meta[name="description"]'),i=e.currItem.description;0===t.length?$("head").append('<meta name="description" content="'+i+'">'):t.prop("content",i),document.title=e.currItem.seoTitle},k=function(){$("#pswp-order, #pswp-download, #pswp-extra-download").toggleClass("hide",!!s),$("#pswp-to-package").toggleClass("hide",!s)},C=function(t){var i={index:t,history:!1,shareButtons:p(),getTextForShare:function(){return e.currItem.title||""},parseShareButtonOut:function(t,i){return t.id!==g?i:i.replace(m,e.currItem.id)}};0===i.shareButtons.length?$("#pswp__button--share").addClass("hide"):a&&(i.getImageURLForShare=function(t){return"download"===t.id?e.currItem.dlUrl:e.currItem.src}),k(),S("\xf6ffne pswp durch klick oder Deeplink",{position:t}),e=new PhotoSwipe($("#pswp")[0],PhotoSwipeUI_Default,u,i),h(t,!0),e.init(),I(),f(t),v(),b(),V(),E(),B(),F()},w=function(){var e,t=/pid=(\d+)/,i=/(&|\?)image_index=(\d+)/,a=window.location,n=-1,o=document.title;t.test(a.hash)?(n=parseInt(a.hash.match(t)[1])-1,e=a.pathname+a.search):i.test(a.search)&&(n=parseInt(a.search.match(i)[2]),e=a.href.replace(/image_index=(\d+)&?/,"").replace(/&$/,"")),n>-1&&(history.replaceState(null,o,e),C(n))},P=function(){_.defer((function(){var e=$(".pswp__ui").hasClass("pswp__ui--hidden");S("toggle minimal ui",{doShow:e}),t.toggleClass("minimal-ui",e)}))},D=function(){echo.init({offset:$("#image-list").data("needs-more-offset")?500:100,debounce:!1,throttle:250})},I=_.once((function(){void 0===e.ui.getFullscreenAPI()&&$("#pswp").find(".pswp__button--fs").remove()})),A=function(){var e=window.location.hash;if(e){var t=e.split("#")[1];0===t.indexOf("hl")&&T(t.substr(3)-1)}},y=function(e,t){PicScroll.to(e,null,t)},T=function(e,t,a){var n=i.eq(e);if(0!==n.length){var o=$(window),r=n.offset().top,s=r+n.outerHeight(),c=$("#packages-composer.visible").height()||0,l=o.scrollTop(),d=l+o.outerHeight()-c-s,u=!1,g=function(){if(!u){u=!0;var e=t||1e3,i=function(){n.animationTiming("doAnimWith","quick-zoom-in",a)};window.setTimeout(i,e)}};r-l<0?y(Math.max(r-100,0),g):d<0?y(l-d+100,g):g()}},S=function(e,t){Raven.captureBreadcrumb({message:e,category:"action",data:t})},x=function(e,t){var i=$("body").data();$.loadTokens(i.albumId).done((function(a){var n=_.map(e,(function(e){return{id:e.id,width:e.w,height:e.h,ratio:e.w/e.h,url:e.src,title:e.title,albumId:i.albumId,albumUrl:i.albumUrl,albumTitle:i.albumTitle,minOrderVal:a.minimum_order_value,isQr:i.isQr}}));t(n)}))},M=function(){x([e.currItem],(function(t){var a=i.eq(e.getCurrentIndex());Pubsub.trigger("package-image:choose",a,t[0])}))},O=function(){$.post(e.currItem.extraDlUrl,(function(e){alert(e.msg)}))},V=function(){e.framework.bind(e.scrollWrap,"pswpTap",P),e.listen("close",(function(){t.removeClass("minimal-ui"),e.framework.unbind(e.scrollWrap,"pswpTap",P)}))},E=function(){e.listen("close",(function(){var t;S("close pswp",{index:e.getCurrentIndex()}),s&&c&&(c=!1,t=M),T(e.getCurrentIndex(),200,t)}))},B=function(){e.listen("afterChange",(function(){var t=e.getCurrentIndex();S("habe bild gewechselt",{index:t}),h(t),f(t),v(),b()})),l=!1,window.onpopstate=function(){l=!0,e.close()},e.listen("destroy",(function(){l||history.back()}))},F=function(){e.listen("shareLinkClick",(function(){S("klick auf share-Icon")}))},N=function(){i.not(".js-image-list-link-video").click((function(e){e.preventDefault(),C($(this).data("index"))})),Pubsub.on("package-composer:show-complete",(function(){s=!0})),Pubsub.on("package-composer:hide",(function(){s=!1})),Pubsub.on("package-collection:request-image-data",(function(e){x(u,e)})),$("#pswp-to-package").click((function(){$(this).blur(),c=!0,e.close()})),$("#pswp-extra-download").click(O),$("#pswp__button--info").on("click touchstart",(function(t){t.preventDefault(),window.location.href=e.currItem.infoUrl}))};return d.init=function(e,s,c,l,d){u=e,a=s,n=c,o=l,r=d,t=$("#pswp-order-button-wrap"),i=$(".js-image-list-link"),D(),N(),w(),A()},d}(),NavToggle=function(){var e,t,i={},a=!1,n=function(e){var t=$("#nav-main").find("li").filter('[data-album-id="'+e+'"]');t.length>0&&(t.addClass("active").parents("li").children(".js-nav-toggle-sub").trigger("click"),t.children(".acts-on-hc-active").addClass("active"),t.children(".js-nav-toggle-sub").trigger("click"))},o=function(i){$("html").toggleClass("is-nav-open"),(a=!a)?(e.on("panleft",s),t.on("panleft",s),$("#nav-main-backdrop").on("click",c),$("#nav-main").animationTiming("onTransEnd",(function(){$(this).addClass("animation-done"),"function"==typeof i&&i()}))):(e.off("panleft"),t.off("panleft"),$("#nav-main-backdrop").off("click"),$("#nav-main").removeClass("animation-done"))},r=function(e){e.preventDefault(),$(this).toggleClass("glyphicon-chevron-down glyphicon-chevron-up").closest("li").children("ul").stop().slideToggle()},s=function(e){a&&"pointercancel"!==e.srcEvent.type&&e.deltaX<-100&&o()},c=function(){a&&o()};return i.openAndHighlightGalleries=function(){o((function(){$("#nav-main-album-header").animationTiming("doAnimWith","shake")}))},i.init=function(i){$("#nav-main-toggle, #nav-main-close").click(o),$(".js-nav-toggle-sub").click(r);var a=document.getElementById("nav-main-backdrop"),s=document.getElementById("nav-main"),c=new Hammer.Pan({direction:Hammer.DIRECTION_LEFT});e=new Hammer.Manager(a),t=new Hammer.Manager(s),e.add(c),t.add(c),i&&n(i)},i}(),Subscription=function(){var e,t,i,a,n,o,r={},s=function(){e.submit((function(r){r.preventDefault(),$.ajax({url:e.prop("action"),method:"POST",data:{subscriber_email:i.val()},success:function(i){e.slideUp(),i.headline&&n.html(i.headline),t.show().html(i.response).removeClass(o)},error:function(i){var n=i.responseJSON&&i.responseJSON.response||e.data("error-text");t.show().html(n).addClass(o),a.picDisableWithText("reenable")}})}))};return r.init=function(){e=$("#subscribe-album-form"),n=$("#subscribe-album-headline"),t=$("#subscribe-album-msg"),i=$("#subscriber_email"),a=$("#subscribe-album-form-submit"),s()},r}(),Productinfos=function(){var e={},t=function(){$(".js-productinfo-more").click((function(){$(".js-productinfo-wrap.active").removeClass("active");var e=$(this).closest(".js-productinfo-wrap").addClass("active");PicScroll.toElement(e,-20),e.data("lazyload-started")||e.find(".js-productinfo-video, img").each((function(){var e=$(this),t=e.data("src");e.prop("src",t).removeData("src").removeAttr("data-src").data("lazyload-started",!0)}))}))};return e.init=function(e){t(),e&&$("#productinfo-wrap-"+e).find(".js-productinfo-more").click()},e}(),AbstractCropperModel=Backbone.Model.extend({MODE_MATCH:"match",MODE_CROP:"crop",MODE_VARIABLE:"variable",MODE_CANVAS_NO_FRAME:"canvas-noframe",MODE_CANVAS_REFLECT:"canvas-reflect",VAL_VERT:"vertical",VAL_HORI:"horizontal",RATIO_MATCH_TOLERANCE:2,getDefaultCropData:function(){var e=this._getFormatRatioWithFrame();return{data:this._calculateCropData(e),aspectRatio:e}},isCanvasNoFrame:function(){return this.get("mode")===this.MODE_CANVAS_NO_FRAME},_getFormatRatioWithFrame:function(){var e=this.get("formatData"),t=e.ratio,i=e.forceOrientation||this.get("mode")===this.MODE_CROP&&this.get("customOrientation");return this.isCanvasNoFrame()&&(t=(e=this._getFormatWidthAndHeightWithFrame()).width/e.height),this._fixFormatRatio(t,i)},_getFormatWidthAndHeightWithFrame:function(){var e=this.get("formatData"),t=e.width,i=e.height,a=0;return this.isCanvasNoFrame()&&(a=2*CANVAS_FRAME_WIDTH_MM/10),{width:t+a,height:i+a}},_fixFormatRatio:function(e,t){var i=e;if(t)(t===this.VAL_HORI&&e<1||t===this.VAL_VERT&&e>1)&&(i=1/e);else{var a=this.get("imgRatio");(a<1&&e>1||a>1&&e<1)&&(i=1/e)}return i},_calculateCropData:function(e){var t,i=this.get("imgWidth"),a=this.get("imgHeight");if(this.get("imgRatio")>e){var n=Math.floor(a*e);t={width:n-.1,height:a,x:(i-n)/2,y:0}}else{var o=Math.floor(i/e);t={width:i,height:o,x:0,y:(a-o)/2}}return t}}),CropperModel=AbstractCropperModel.extend({defaults:{imgRatio:null,imgWidth:null,imgHeight:null,formatData:null,mode:null},initialize:function(e){var t=e.isDigital?{}:this._ensureRatioIsFloat(e.formatData);this.set({formatData:t,mode:this._calculateCropMode(t,e.isDigital)})},_ensureRatioIsFloat:function(e){return $.extend({},e,{ratio:parseFloat(e.ratio)})},_calculateCropMode:function(e,t){return t||this._isRatioMatch(e)?this.MODE_MATCH:e.frame?this.MODE_CANVAS_REFLECT:this.MODE_CROP},_isRatioMatch:function(e){var t=e.ratio,i=!e.forceOrientation,a=!!e.frame;if(t&&!a){var n=this.RATIO_MATCH_TOLERANCE/100,o=this.get("imgRatio"),r=o*(1-n),s=o*(1+n),c=function(e){return e>=r&&e<=s};if(c(t)||i&&c(1/t))return!0}return!1}}),PackageComposerImageModel=Backbone.Model.extend({defaults:{imageId:null,ratio:null,url:"",title:"",width:null,height:null,isActive:!1,resolveSizeBy:null,cropData:null,albumId:0,albumUrl:"",albumTitle:"",minOrderVal:0,isQr:!1,isSticker:!1,allowKf:!0,isKfAutofilled:!1,isFromKfAlbum:!1,classAlbumID:null,isAllowedForAlbum:!0},initialize:function(){this.listenTo(this,"change",this.updateDebugCropper)},updateDataAfterImageSelection:function(e,t){var i=new CropperModel({formatData:this.collection.formatData,isDigital:this.collection.isDigital,imgWidth:e.width,imgHeight:e.height,imgRatio:e.ratio}),a={imageId:e.id,ratio:e.ratio,url:e.url,title:e.title||e.filename,width:e.width,height:e.height,isActive:!1,resolveSizeBy:i.get("mode"),albumId:e.albumId,albumUrl:e.albumUrl,albumTitle:e.albumTitle,minOrderVal:e.minOrderVal,isQr:e.isQr,isFromKfAlbum:this.isKfAlbum()||t&&t.isKfAutofill,classAlbumID:$("body").data("class-album-id")};"match"!==a.resolveSizeBy&&(a.cropData=i.getDefaultCropData()),this.set(a),t&&(t.isSameImageForAll||t.isKfAutofill)||this.trigger("update-after-selection-completed",e)},reset:function(e){this.set(_.extend(_.clone(this.defaults),{allowKf:this.get("allowKf")},e||{}))},updateDebugCropper:function(){var e=this.get("url");(this.changed.isActive&&e||this.changed.url)&&Pubsub.trigger("package-image:show-debug-cropper",e,this.get("resolveSizeBy"),this.get("cropData"))},isKfAlbum:function(){return"undefined"!=typeof IS_KF_ALBUM},isAllowed:function(){return!!this.get("isAllowedForAlbum")&&(!this.isKfAlbum()||this.get("allowKf"))},isNotAllowedForKf:function(){return this.isKfAlbum()&&!this.get("allowKf")}}),PackageModel=Backbone.Model.extend({defaults:{packageId:null,uuid:null,name:"",discount:"",price:0,count:1,color:"",isCalendarPackage:!1,startMonth:null,startYear:null,isBrightCalendar:!1,forbidMultipleAlbums:!1,sameImageForAllProducts:!1,withFreeDownload:!1,isActive:!1,isProcessing:!1,isInCart:!1,products:[],startedProcessingTs:null},initialize:function(){if(this._addNewUUID(),this.on("change:isActive",this.updateAllowedForAlbum),this.listenTo(Pubsub,"package-image:remove-url",this.updateAllowedForAlbum),this.listenTo(Pubsub,"package-collection:decorated",this.markProcessingOnImageChange),this.listenTo(Pubsub,"cart:delete-ordered-packages",this.removeFromCart),this.listenTo(Pubsub,"package-image:remove-url",this.cancelIfNoImages),this.get("sameImageForAllProducts")&&this._listenToSameImageForAllEvents(),this.get("isCalendarPackage")){var e=new Date,t=e.getFullYear(),i=e.getMonth()<6;this.set({startMonth:0,startYear:i?t:t+1})}},markProcessingOnImageChange:function(){this.get("isProcessing")||this._forEachImage((function(e){this.listenTo(e,"change",this._markAsProcessing)}))},removeFromCart:function(){this.set("isInCart",!1)},resetOnComposerHideComplete:function(){this.listenToOnce(Pubsub,"package-composer:hide-complete",this._reset)},cancelIfNoImages:function(){this.get("isActive")&&!this.get("products").hasImages()&&(this.cancel(!0),this.markProcessingOnImageChange())},updateAllowedForAlbum:function(){if(this.get("isActive")&&this.get("forbidMultipleAlbums")){var e=!0,t=$("body"),i=+t.data("album-id"),a=+t.data("class-album-id"),n=this._isKfAlbum();this._forEachImage((function(t){e&&t.get("url")&&(e=n||t.get("isFromKfAlbum")?a===t.get("classAlbumID"):i===t.get("albumId"))})),this._forEachImage((function(t){t.set({isAllowedForAlbum:e})}))}},applySameImage:function(e,t){this._forEachNonKlassenfotoImage((function(i){i.cid!==e&&i.updateDataAfterImageSelection(t,{isSameImageForAll:!0})}))},resetImageForAll:function(){this._forEachNonKlassenfotoImage((function(e){""!==e.get("url")&&e.reset()}))},cancel:function(e){this.set({isProcessing:!1}),e||this.resetOnComposerHideComplete(),Pubsub.trigger("package:cancel",this.get("uuid"))},addToCart:function(){this._removeEmptyDynamicImages(),this.set({isInCart:!0,isProcessing:!1}),this.resetOnComposerHideComplete(),Pubsub.trigger("package:add-to-cart",this)},getProgressInPercent:function(){var e=0,t=0;return this._forEachImage((function(i){i.get("url").length>0&&e++,t++})),Math.round(100*e/t)},isDigitalOnly:function(){return 0===this.get("products").where({isDigital:!1}).length},_addNewUUID:function(){var e=this.get("packageId")+"-"+(Math.random()+1).toString(36).substring(5);this.set({uuid:e})},_stopListeningForImageChanges:function(){this._forEachImage((function(e){this.stopListening(e,"change")}))},_markAsProcessing:function(){this.get("products").hasImages()&&(this.set({isProcessing:!0,startedProcessingTs:(new Date).getTime()}),this._stopListeningForImageChanges())},_reset:function(){var e=this.get("products").getDynamicQuantityProduct();if(e){var t=e.get("origCount"),i=e.get("images"),a=i.filter((function(e,i){return i>=t}));i.remove(a),e.set({count:t})}var n=!0;this._forEachImage((function(e){e.reset({isActive:n}),n=!1})),this._addNewUUID(),this.markProcessingOnImageChange()},_removeEmptyDynamicImages:function(){var e=this.get("products").getDynamicQuantityProduct();if(e){var t=e.get("images"),i=t.filter({url:""});t.remove(i),e.set({count:t.length})}},_listenToSameImageForAllEvents:function(){const e=this._isKfAlbum(),t=_.bind(this.resetImageForAll,this);this._forEachImage((function(i){e||this.listenTo(i,"update-after-selection-completed",_.partial(this.applySameImage,i.cid)),this.listenTo(i,"remove-url",(function(){i.previous("isFromKfAlbum")||t()}))}))},_isKfAlbum:function(){return"undefined"!=typeof IS_KF_ALBUM},_forEachImage:function(e){var t=this;this.get("products").forEachImage((function(i){e.call(t,i)}))},_forEachNonKlassenfotoImage:function(e){var t=this;this.get("products").each((function(i){i.get("images").each((function(a){(!i.get("isKlassenfoto")||!a.get("isFromKfAlbum")&&a.get("url"))&&e.call(t,a)}))}))}}),PackageProductModel=Backbone.Model.extend({defaults:{itemId:null,variationId:null,count:0,origCount:0,name:"",options:"",formatData:null,isDigital:!1,isKlassenfoto:!1,infoContent:null,shortDescription:null,isDynamicQuantity:!1,images:[]},getInfoContent:function(e,t){var i=this.get("infoContent");if(i)t(i);else{var a=this;$.ajax({url:e,data:{ppitem_id:this.get("itemId")},success:function(e){a.set({infoContent:e}),t(e)},error:function(){t(!1)}})}},addImages:function(e){this.set({count:this.get("count")+e}),this.get("images").addImages(e)}}),scrollPosRestorableMethods={_height:function(e){return(e||this.$el).outerHeight(!0)},_restoreScrollPos:function(e,t){var i=this._height(t)-e,a=$(window).scrollTop();0!==i&&$(window).scrollTop(a+i)}},PackageComposerImageCollection=Backbone.Collection.extend({model:PackageComposerImageModel,formatData:null,isDigital:!1,initialize:function(e,t){this.formatData=t.formatData,this.isDigital=t.isDigital,t.dummyCount&&this.addImages(t.dummyCount,t)},addImages:function(e,t){var i=this;_.times(e,(function(e){var a={};t&&(a={isActive:0===e&&t.makeFirstActive,allowKf:t.allowKf,isSticker:t.isSticker}),i.add(new PackageComposerImageModel(a))}))}}),PackageProductsCollection=Backbone.Collection.extend({model:PackageProductModel,initialize:function(e,t){var i=this,a=!0,n=_.every(t.productsData,(function(e){return!e.isKlassenfoto}));t.productsData.forEach((function(e){i.add(new PackageProductModel({itemId:e.id,variationId:e.variationId,name:e.name,options:e.options,count:e.count,origCount:e.origCount||e.count,formatData:e.formatData,isDigital:e.isDigital,isKlassenfoto:e.isKlassenfoto,shortDescription:e.shortDescription,isDynamicQuantity:e.isDynamicQuantity,images:new PackageComposerImageCollection(null,{dummyCount:e.count,makeFirstActive:a,formatData:e.formatData,isDigital:e.isDigital,allowKf:n||e.isKlassenfoto,isSticker:e.isSticker})})),a=!1}))},forEachImage:function(e){this.each((function(t){t.get("images").each(e)}))},getActive:function(){return this._findProductByImageWhere({isActive:!0})},getDynamicQuantityProduct:function(){return this.findWhere({isDynamicQuantity:!0})},setNextActiveImage:function(){var e=this._findImageWhere({url:""});e&&e.set({isActive:!0})},hasImages:function(){return!!this._findByImage((function(e){return e.get("url").length>0}))},isDone:function(){return!this._findImageWhere({url:""})},allowAddToCart:function(){return this.isDone()||this.every((function(e){var t=e.get("images");return e.get("isDynamicQuantity")?t.some("url"):t.every("url")}))},ensureActive:function(){this.getActive()||this.isDone()||this.setNextActiveImage()},_findImageWhere:function(e){return this._findByImage(e,!0)},_findProductByImageWhere:function(e){return this._findByImage(e,!1)},_findByImage:function(e,t){var i,a,n="function"==typeof e;return a=this.find((function(t){var a=t.get("images");return!!(i=n?a.find(e):a.findWhere(e))})),t?i:a}}),PackagesCollection=Backbone.Collection.extend({model:PackageModel,cookieKey:"hide-packages",initialize:function(e,t){var i=this;return t.packagesData.forEach((function(e){i.add(new PackageModel({packageId:e.id,name:e.name,discount:e.discountPercent,price:e.price,count:e.count,isCalendarPackage:e.isCalendarPackage,isBrightCalendar:e.isBrightCalendar,forbidMultipleAlbums:e.forbidMultipleAlbums,sameImageForAllProducts:e.sameImageForAllProducts,withFreeDownload:e.withFreeDownload,isActive:!1,products:new PackageProductsCollection(null,{productsData:e.products})}))})),this.listenTo(Pubsub,"package:change-active",this.changeActive),this.listenTo(Pubsub,"package-composer:hide",this.resetActive),this.listenTo(this,"change:isProcessing",this.pubHasUnfinished),this},changeActive:function(e){this.resetActive(),e.set({isActive:!0})},resetActive:function(){var e=this._findActive();e&&e.set({isActive:!1})},pubHasUnfinished:function(){Pubsub.trigger("package:update-has-unfinished",{hasUnfinishedPackages:this.countUnfinished()>0,hasUnfinishedCalendars:this.countUnfinished(!0)>0})},isHiddenByCookie:function(){return!!$.cookie(this.cookieKey)},setHiddenCookie:function(){$.cookie(this.cookieKey,"1",{path:"/"}),this.trigger("change")},removeHiddenCookie:function(){$.cookie(this.cookieKey,"",{expires:-1,path:"/"}),this.trigger("change")},countUnfinished:function(e){return this.reduce((function(t,i){return t+(!!e===i.get("isCalendarPackage")&&i.get("isProcessing")?1:0)}),0)},_findActive:function(){return this.findWhere({isActive:!0})}}),DynamicAutofill=function(){var e={},t=function(e){Pubsub.trigger("package-collection:request-image-data",(function(t){var i=e.get("images").length,a=t.length;e.addImages(a-i),_.each(t,(function(t,i){e.get("images").at(i).updateDataAfterImageSelection(t)}))}))},i=function(e){var i=e.get("products").getDynamicQuantityProduct();!i||e.getProgressInPercent()>0||(t(i),Pubsub.trigger("package-composer:dynamic-fill-complete"))},a=function(){e.listenTo(Pubsub,"package:change-active",i),e.listenTo(Pubsub,"package-composer:fill-dynamic",i)};return e.init=function(){"undefined"!=typeof ALLOW_DYNAMIC_AUTOFILL&&(e=_.extend(e,Backbone.Events),a())},e}(),KlassenfotoAutofill=function(){var e,t={},i=function(t){var i=t.get("products").where({isKlassenfoto:!0});i.length&&_.contains(ALLOWED_KF_PACKAGE_IDS,t.get("packageId"))&&_.each(i,(function(t){t.get("images").each((function(t){t.get("url")||(t.updateDataAfterImageSelection(e,{isKfAutofill:!0}),t.set("isKfAutofilled",!0),Pubsub.trigger("package-image:url-changed"))}))}))},a=function(){t.listenTo(Pubsub,"package:change-active",i)};return t.init=function(i){e=i,t=_.extend(t,Backbone.Events),a()},t}(),PackageCollectionFetcher=function(){var e,t,i,a,n={},o=[],r=[],s=function(){var e=_.partition(o,(function(e){return e.isAlbumPackage})),t=e[0],i=_.chain(e[1]).sortBy("price").sortBy("position").value();PackageStore.init({packagesData:i,callback:function(e){a(e,t)}})},c=function(e){_.each(e,(function(e,t){var i=PicStorage.getPackageData(t,e);i?o.push(i):r.push(t)}))},l=function(){$.getJSON(i,{album_id:e,package_ids:r}).done((function(e){_.each(e,(function(e){var t=e.hash;delete e.hash,PicStorage.setPackageData(e.id,t,e),o.push(e)})),s()}))};return n.init=function(n){var o=$("body").data();e=o.albumId,t=o.shopId,i=n.fetchUrl,a=n.callback,$.loadTokens(e,!1,"package collection fetcher").done((function(e){e.package_hashes&&0!==_.keys(e.package_hashes).length&&(PicStorage.init(t),c(e.package_hashes),0===r.length?s():l())}))},n
}(),PackageStore=function(){var e={},t=function(){return PicStorage.getComposedPackages()},i=function(e){return e.map((function(e){var t=e.toJSON();return delete t.infoContent,t.images=e.get("images").toJSON(),t}))},a=function(e){var t=e.toJSON();return delete t.discount,delete t.isActive,delete t.isInCart,t.products=i(e.get("products")),t},n=function(e){PicStorage.setComposedPackages(e),Pubsub.trigger("package:save-complete")},o=function(e,i){if(!i||e.get("isProcessing")){var o=t(),r=a(e);o[r.uuid]=r,n(o)}},r=function(e){o(e),Pubsub.trigger("package:add-to-cart-complete")},s=function(e){var i=t();delete i[e],n(i)},c=function(e,t){return _.some(e,(function(e){return!e.isProcessing&&e.packageId===t.packageId&&e.price===t.price}))},l=function(e){var t=7776e6,i=new Date(2021,8,22).getTime();return(e||i)+t<(new Date).getTime()},d=function(e){var i=t();_.each(i,(function(t,a){var o=e.findWhere({packageId:t.packageId});if(o&&t.price===o.get("price"))if(t.isProcessing){if(l(t.startedProcessingTs))return console.info('Das angefangene Paket "'+t.name+'" war \xe4lter als 3 Monate und wurde verworfen.'),delete i[a],void n(i);o.set({uuid:a,isProcessing:!0,isInCart:c(i,t),startMonth:t.startMonth,startYear:t.startYear,startedProcessingTs:t.startedProcessingTs}),o.get("products").each((function(e,i){var a=t.products[i],n=a.images,o=e.get("images");a.origCount&&(e.set({count:a.count,origCount:a.origCount}),o.addImages(a.count-a.origCount)),o.each((function(e,t){e.set(n[t])}))}))}else o.set({isInCart:!0})})),Pubsub.trigger("package-collection:decorated")},u=function(t){var i=_.debounce(o,500);t.each((function(t){var a=_.bind(i,e,t,!0);t.get("products").each((function(t){e.listenTo(t.get("images"),"change",a),e.listenTo(t,"change:count",a)})),e.listenTo(t,"change:startMonth",a),e.listenTo(t,"change:startYear",a)})),e.listenTo(Pubsub,"package:cancel",s),e.listenTo(Pubsub,"package:add-to-cart",r)};return e.init=function(t){e=_.extend(e,Backbone.Events);var i=new PackagesCollection(null,{packagesData:t.packagesData});d(i),u(i),t.callback(i)},e}(),CartPackageCropperModel=AbstractCropperModel.extend({defaults:{mode:"crop",formatData:null,imgRatio:null,imgWidth:null,imgHeight:null,imageUrl:null,cropData:null,useSavedCropData:!1,customOrientation:null,isSticker:!1},setCropData:function(e){var t=this.get("cropData");t.data=e,this.set({cropData:t})},getCropperOpts:function(){var e=this._getSavedOrDefaultCropData();return{aspectRatio:e.aspectRatio,data:e.data,minCropBoxWidth:Math.min(100,this.get("imgWidth")),minCropBoxHeight:Math.min(100,this.get("imgHeight"))}},allowVariable:function(){var e=this.get("formatData");return e.variable&&this._validMaxRatio(e.maxratio)},getFixedImageRatio:function(){var e=this.get("imgRatio");return e<1&&(e=1/e),e},getLongerSideWithFrame:function(){var e=this._getFormatWidthAndHeightWithFrame();return Math.max(e.width,e.height)},getShorterSide:function(){var e=this.get("formatData");return Math.min(e.width,e.height)},reset:function(){this.set({customOrientation:null},{silent:!0})},_getSavedOrDefaultCropData:function(){var e={};return this.get("useSavedCropData")?(this.set({useSavedCropData:!1}),e=this.get("cropData")):(e=this.getDefaultCropData(),this.set({cropData:e})),e},_validMaxRatio:function(e){return!e||this.getFixedImageRatio()<=e}}),CartPackageImageModel=Backbone.Model.extend({defaults:{imageId:null,ratio:null,url:"",width:null,height:null,resolveSizeBy:null,cropData:null,cropConfirmed:!1,albumUrl:"",albumTitle:"",isSticker:!1,productIndex:0,imageIndex:0},needsCropWarning:function(){if(!this.isUnconfirmedCrop())return!1;if(this.get("isSticker"))return!0;var e=this.get("cropData").data;return e.width*e.height/(this.get("width")*this.get("height"))<.8},isUnconfirmedCrop:function(){var e=this.get("resolveSizeBy");return"match"!==e&&"fit"!==e&&"variable"!==e&&!this.get("cropConfirmed")}}),CartPackageModel=Backbone.Model.extend({defaults:{packageId:null,uuid:null,name:null,isProcessing:null,price:null,count:null,color:"",isCalendarPackage:!1,startMonth:null,startYear:null,isBrightCalendar:!1,withFreeDownload:!1,products:null},getImageCount:function(){return this.get("products").reduce((function(e,t){return e+t.get("images").size()}),0)},forEachImage:function(e){var t=0;this.get("products").each((function(i){i.get("images").each((function(i){e(i,t++)}))}))}}),CartPackageProductModel=Backbone.Model.extend({defaults:{name:"",options:"",images:null}}),CartPackageStore=function(){var e={},t=function(){return PicStorage.getComposedPackages()},i=function(e){PicStorage.setComposedPackages(e)},a=function(e){var a=t();delete a[e],i(a),_.defer((function(){Pubsub.trigger("package:delete-complete",e)}))},n=function(e,a){var n=t();n[e].count=a,i(n),Pubsub.trigger("package:update-amount-complete")},o=function(e,a){var n=t(),o=n[e].products[a.productIndex].images[a.imageIndex];o.resolveSizeBy=a.resolveSizeBy,o.cropData=a.cropData,o.cropConfirmed=a.cropConfirmed,i(n)},r=function(e,a){var n=t();n[e].price=a,i(n)},s=function(e,a,n,o){var r=t();r[e].products[a].images[n].minOrderVal=o,i(r)},c=function(e,a){var n=t();n[e].isProcessing=!0,_.each(a,(function(t){n[e].products[t.productIndex].images[t.imageIndex]={}})),i(n),Pubsub.trigger("package:delete-missing-image-complete")},l=function(){e.listenTo(Pubsub,"package:delete",a),e.listenTo(Pubsub,"package:update-amount",n),e.listenTo(Pubsub,"package-image:change-crop-data",o),e.listenTo(Pubsub,"package:update-price",r),e.listenTo(Pubsub,"package:update-min-order-val",s),e.listenTo(Pubsub,"package:delete-missing-image",c)};return e.init=function(){e=_.extend(e,Backbone.Events),l()},e}(),CartPackageImagesCollection=Backbone.Collection.extend({model:CartPackageImageModel,formatData:null,isDigital:!1,packageUuid:null,shortDescription:null,initialize:function(e,t){this.formatData=t.formatData,this.isDigital=t.isDigital,this.packageUuid=t.packageUuid,this.shortDescription=t.shortDescription;var i=this;_.each(t.imagesData,(function(e,a){i.add(new CartPackageImageModel({imageId:e.imageId,ratio:e.ratio,url:e.url,title:e.title,width:e.width,height:e.height,resolveSizeBy:e.resolveSizeBy,cropData:e.cropData,cropConfirmed:e.cropConfirmed,albumUrl:e.albumUrl?e.albumUrl+"#hl"+e.imageId:"",albumTitle:e.albumTitle,isSticker:e.isSticker,productIndex:t.productIndex,imageIndex:a}))}))}}),CartPackageProductsCollection=Backbone.Collection.extend({model:CartPackageProductModel,initialize:function(e,t){var i=this;_.each(t.productsData,(function(e,a){i.add(new CartPackageProductModel({name:e.name,options:e.options,images:new CartPackageImagesCollection(null,{imagesData:e.images,formatData:e.formatData,isDigital:e.isDigital,shortDescription:e.shortDescription,productIndex:a,packageUuid:t.packageUuid})}))}))}}),CartPackagesCollection=Backbone.Collection.extend({model:CartPackageModel,initialize:function(e,t){var i=this;_.each(t.packagesData,(function(e,t){i.add(new CartPackageModel({packageId:e.packageId,uuid:t,name:e.name,isProcessing:e.isProcessing,price:e.price,count:e.count||1,color:e.color,isCalendarPackage:e.isCalendarPackage,startMonth:e.startMonth,startYear:e.startYear,isBrightCalendar:e.isBrightCalendar,withFreeDownload:e.withFreeDownload,products:new CartPackageProductsCollection(null,{productsData:e.products,packageUuid:t})}))})),this.listenTo(Pubsub,"package:update-price",this.updatePrice),this.listenTo(Pubsub,"package:delete-missing-image",this.makeProcessing),this.listenTo(Pubsub,"package:delete",this.delete)},updatePrice:function(e,t){this._findPackage(e).set({price:t})},makeProcessing:function(e,t){var i=this._findPackage(e),a=i.get("products"),n=this;_.each(t,(function(e){n._findImageByIndexes(a,e.productIndex,e.imageIndex).clear({silent:!0})})),i.set({isProcessing:!0})},delete:function(e){this.remove(this._findPackage(e))},getInCartImageCount:function(){return this.reduce((function(e,t){return e+(t.get("isProcessing")?0:t.getImageCount())}),0)},getCropWarningData:function(){var e,t=!1;return this.each((function(i){i.get("isCalendarPackage")||i.get("isProcessing")||i.forEachImage((function(a){a.needsCropWarning()&&(e=e||i.get("uuid"),t=t||a.get("isSticker"),a.trigger("cart:show-crop-warning"))}))})),e?{uuid:e,showStickerWarning:t}:{}},_findPackage:function(e){return this.findWhere({uuid:e})},_findImageByIndexes:function(e,t,i){return e.at(t).get("images").at(i)}}),AlbumPackageModel=Backbone.Model.extend({defaults:{uuid:"",price:0,packageId:0,packageName:"",ppItemId:0,albumId:0,albumUrl:"",albumName:"",imagesCount:0,minOrderVal:0},addToCart:function(e){var t=this;$.loadTokens(e.albumId).done((function(i){var a={uuid:t._generateUUID(),albumId:e.albumId,albumUrl:e.albumUrl,albumName:e.albumTitle,imagesCount:e.imagesCountForAlbumPackage,minOrderVal:i.min_order_val};e.isQr&&(a.isQr=!0),t.set(a);var n=PicStorage.getAlbumPackagesInCart();n.push(t.attributes),PicStorage.setAlbumPackagesInCart(n),Pubsub.trigger("album-package:add")}))},_generateUUID:function(){return this.get("packageId")+"-"+(Math.random()+1).toString(36).substring(5)}}),CartAlbumPackagesCollection=Backbone.Collection.extend({model:AlbumPackageModel,initialize:function(e,t){var i=this;_.each(t.albPackData,(function(e){i.add(new AlbumPackageModel(e))}))},getImageCount:function(){return this.reduce((function(e,t){return e+t.get("imagesCount")}),0)}}),Packages={init:function(){var e,t=$("#packages-list").data("packages-src"),i=this;t&&(e=new PackagesOpenerView,PackageCollectionFetcher.init({fetchUrl:t,callback:function(t,a){var n=t.length>0,o=a.length>0;n||o?(n&&(e.setCollection(t),new PackagesComposerView,i._initKlassenfotoAutofill(),DynamicAutofill.init()),o&&e.initAlbumPackageMode(a),e.render(),new PackagesOrderContinueModal):e.remove()}}))},_initKlassenfotoAutofill:function(){var e=$("body");e.data("is-qr")&&"undefined"!=typeof KLASSENFOTO_IMAGE_DATA&&KlassenfotoAutofill.init({id:KLASSENFOTO_IMAGE_DATA.id,width:KLASSENFOTO_IMAGE_DATA.w,height:KLASSENFOTO_IMAGE_DATA.h,ratio:KLASSENFOTO_IMAGE_DATA.w/KLASSENFOTO_IMAGE_DATA.h,url:KLASSENFOTO_IMAGE_DATA.src,title:KLASSENFOTO_IMAGE_DATA.title,albumId:e.data("album-id"),albumUrl:e.data("album-url"),albumTitle:e.data("album-title"),isQr:e.data("is-qr")})}},PackagesComposerCloseBtnsView=Backbone.View.extend({el:"#packages-composer-close-wrap",events:{"click #packages-composer-hide":"hide","click #packages-composer-cancel":"cancel"},initialize:function(){this.listenTo(Pubsub,"package:add-to-cart",this.hide),this.listenTo(Pubsub,"package-opener:hide",this.hide),this.listenTo(Pubsub,"package:change-active",this.setPackage)},render:function(){return this.toggleCancelButton(),this},hide:function(){Pubsub.trigger("package-composer:hide")},cancel:function(){this.model.cancel(),this.hide()},toggleCancelButton:function(){$("#packages-composer-cancel").toggleClass("hide",!this.collection.hasImages())},setPackage:function(e){this.model&&this.stopListening(this.model),this.model=e,this.collection=e.get("products"),this.listenTo(this.model,"change:isProcessing",this.toggleCancelButton)}}),PackagesComposerImageAddView=Backbone.View.extend({tagName:"button",className:"btn btn-primary packages-composer-add-button",events:{click:"addImage"},render:function(){return this.$el.html('<span class="glyphicon glyphicon-plus"></span>'),this},addImage:function(){Pubsub.trigger("package-composer:add-image")}}),PackagesComposerImageSeparatorView=Backbone.View.extend({tagName:"span",className:"packages-composer-separator"}),PackagesComposerImageView=Backbone.View.extend({tagName:"span",className:"packages-composer-placeholder acts-on-hc",iconTemplate:'<span class="glyphicon glyphicon-remove"></span>',calenderTemplate:'<div class="calendar-package-image js-calendar-package-image"></div>',packageModel:null,isTitle:!1,events:{click:"setActive","click .glyphicon":"removeUrl"},initialize:function(e){this.packageModel=e.packageModel,this.isTitle=e.isTitle,this.listenForChooseImage(),this.listenTo(this.model,"change:isActive",this.listenForChooseImage),this.listenTo(this.model,"change",this.render),this.listenTo(this.packageModel,"change:startMonth",this.render),this.listenTo(this.packageModel,"change:startYear",this.render),this.listenTo(Pubsub,"package-image:reset-active",this.resetActive)},render:function(){var e=this.model.get("isActive"),t=this.model.get("url"),i=!!t,a=i&&this.model.get("ratio")>=1,n=this.iconTemplate,o=this.packageModel.get("isCalendarPackage");return o&&(n=this.calenderTemplate+n,this._addCalendarClassesAndAtts(a)),this.$el.toggleClass("active",e).toggleClass("not-allowed",e&&!this.model.isAllowed()).toggleClass("has-image",i).toggleClass("is-landscape",a).html(n),(o?this.$(".js-calendar-package-image"):this.$el).css("background-image",i?this._urlAsProp(t):""),this},setActive:function(){this.model.get("isActive")||(Pubsub.trigger("package-image:reset-active"),this.model.set({isActive:!0}),Pubsub.trigger("package-image:change-active"))},removeUrl:function(e){var t=PicI18n.get("order.packages.composer.remove");if(!this.model.get("isKfAutofilled")||window.confirm(t)){e.stopPropagation(),$(e.currentTarget).blur();var i={isActive:!0};this.model.reset(i),this.model.trigger("remove-url"),Pubsub.trigger("package-image:remove-url",this.model)}},listenForChooseImage:function(){this.model.get("isActive")?this.listenTo(Pubsub,"package-image:choose",this.animateItemToComposer):this.stopListening(Pubsub,"package-image:choose")},animateItemToComposer:function(e,t){if(this.model.isAllowed())this.model.updateDataAfterImageSelection(t),Pubsub.trigger("package-image:url-changed");else{var i=this.model.isNotAllowedForKf()?"order.packages.composer.noKf":"order.packages.composer.noMultiAlbums";alert(PicI18n.get(i))}},resetActive:function(){this.model.set({isActive:!1})},_urlAsProp:function(e){return'url("'+e+'")'},_addCalendarClassesAndAtts:function(e){var t=this.packageModel.get("startMonth"),i=this.packageModel.get("startYear");if(this.$el.addClass("is-calendar-image").toggleClass("is-bright",this.packageModel.get("isBrightCalendar")).toggleClass("is-title",this.isTitle),this.isTitle)this.$el.toggleClass("spans-one-year",0===t).toggleClass("spans-two-years",t>0).attr("data-title-text",this._makeTitleText(t,i,e));else{var a=(t+this.model.collection.indexOf(this.model))%12,n=t>a?i+1:i,o=[0,1,2].map((function(e){return"is-year-"+(i+e)})).join(" ");this.$el.removeClass(o).addClass("is-year-"+n).attr("data-month",MONTHS_ABBR[a])}},_makeTitleText:function(e,t,i){if(0===e)return t;var a=new Date(t,e),n=new Date(t+1,e-1),o=a.toLocaleString("de-de",{month:"long"}),r=n.toLocaleString("de-de",{month:"long"});return i?o+" "+t+"\n\u2013\n"+r+" "+(t+1):o+"\n"+t+"\n\n\u2013\n\n"+r+"\n"+(t+1)}}),PackagesComposerProductTextView=Backbone.View.extend({el:"#packages-composer-progress-text",events:{"change #packages-composer-start-month":"setCalStartDate","change #packages-composer-start-year":"setCalStartDate"},template:"",packageModel:null,initialize:function(){this.template=PicTempl.getAsFunc("packages-composer-product-text-templ"),this.listenTo(Pubsub,"package:change-active",this.setPackage),this.listenTo(Pubsub,"package-image:change-active",this.render)},render:function(){var e=this.packageModel.get("products"),t=e.getActive(),i={hasProductsLeft:!!t};if(t){var a=t.get("images"),n=a.findIndex((function(e){return e.get("isActive")})),o=this.packageModel.get("isCalendarPackage")&&e.at(1)===t;_.extend(i,{current:n+1,max:a.size(),name:t.get("name"),isCalPackProduct:o,startMonth:this.packageModel.get("startMonth"),startYear:this.packageModel.get("startYear"),shortDescription:t.get("shortDescription")})}this.$el.html(this.template(i))},setPackage:function(e){this.packageModel=e},setCalStartDate:function(){this.packageModel.set({startMonth:parseInt(this.$("#packages-composer-start-month").val()),startYear:parseInt(this.$("#packages-composer-start-year").val())})}}),PackagesComposerProgressBarView=Backbone.View.extend({el:"#packages-composer-progress-bar-wrap",events:{"click #packages-composer-hint-dynamic-cta":"fillDynamic"},$bar:null,$hint:null,imagesPosBefore:0,initialize:function(){this.$bar=$("#packages-composer-progress-bar"),this.$hint=$("#packages-composer-hint"),this.listenTo(Pubsub,"package:change-active",this.setPackage),this.listenTo(Pubsub,"package:badge-update",this.saveImagesPos),this.listenTo(Pubsub,"package-image:remove-url",this.render)},render:function(){var e=this.model.getProgressInPercent(),t=e>1,i=this.$("#packages-composer-hint-dynamic-cta-wrap"),a=1===i.length,n=t&&!a,o=this.$bar.hasClass("hide")&&n,r=!!this.collection.getDynamicQuantityProduct(),s=a&&!t&&r;if(i.toggleClass("hide",!s),$("#packages-composer-hint-dynamic").toggleClass("hide",!r),$("#packages-composer-hint-static").toggleClass("hide",r),o){var c=this.$hint.outerHeight();this.$bar.css("height",c+"px")}this.$hint.toggleClass("hide",n),this.$bar.toggleClass("hide",!n),this._updateBarDimensions(o,e)},setPackage:function(e){this.model=e,this.collection=e.get("products")},fillDynamic:function(){Pubsub.trigger("package-composer:fill-dynamic",this.model)},_updateBarDimensions:function(e,t){var i=this,a=function(){var e=t>1?t+"%":"";i.$bar.css("width",e)};e?_.defer((function(){i.$bar.animationTiming("onTransEnd",a).css("height","2px")})):a()}}),PackagesComposerSaveBtnView=Backbone.View.extend({events:{click:"shakeOrPubSubmit"},initialize:function(){var e=PicTempl.get("packages-composer-save-templ"),t=this.$el.html(e).find("#packages-composer-save").unwrap();this.setElement(t),this.listenTo(Pubsub,"package:change-active",this.setPackage),this.listenTo(Pubsub,"package-image:remove-url",this.render)},render:function(){var e=this.collection.allowAddToCart(),t=this.collection.isDone();this.$el.toggleClass("disabled",!e).toggleClass("heartbeat",t)},shakeOrPubSubmit:function(){this.collection.allowAddToCart()?this.model.addToCart():this.$el.animationTiming("doAnimWith","shake")},setPackage:function(e){this.model=e,this.collection=e.get("products")}}),PackagesComposerView=Backbone.View.extend({$carousel:null,progressView:null,textView:null,closeView:null,btnView:null,placeholderViews:[],isVisible:!1,initialize:function(){var e=PicTempl.get("packages-composer-templ");this.$el.html(e).appendTo("body"),this.setElement($("#packages-composer").unwrap()),this.$carousel=$("#packages-composer-carousel"),this.progressView=new PackagesComposerProgressBarView,this.textView=new PackagesComposerProductTextView,this.closeView=new PackagesComposerCloseBtnsView,this.btnView=new PackagesComposerSaveBtnView,this.listenTo(Pubsub,"package:change-active",this.setPackage),this.listenTo(Pubsub,"package-image:url-changed",this.setNextActiveImage),this.listenTo(Pubsub,"package-composer:hide",this.hide),this.listenTo(Pubsub,"package-image:change-active",this.centerActivePlaceholder),this.listenTo(Pubsub,"package-composer:add-image",this.addImage),this.listenTo(Pubsub,"package-composer:dynamic-fill-complete",this.render),window.addEventListener("orientationchange",_.bind(this.updateOrientation,this))},render:function(){this.collection.ensureActive(),this.updateOrientation(),this._renderChildren(),this._renderPlaceholders(),this._addDocumentMargin(),this.$el.addClass("visible"),this.isVisible=!0,PicScroll.toElement($("#image-list"),20)},setPackage:function(e){this.model=e,this.collection=e.get("products"),this.render(),Pubsub.trigger("package-composer:show-complete")},setNextActiveImage:function(){this.collection.setNextActiveImage(),this._renderChildren(),this.centerActivePlaceholder()},hide:function(){this.isVisible&&(this._removeDocumentMargin(),this.$el.animationTiming("onTransEnd",(function(){Pubsub.trigger("package-composer:hide-complete")})).removeClass("visible"),this.isVisible=!1)},centerActivePlaceholder:function(){var e,t,i,a=this.$carousel.outerWidth(),n=this.$carousel.find(".active");if(n.length){var o=n.css("transform").match(/\d+(\.\d+)?/),r=o?parseFloat(o[0]):1;e=n.outerWidth()*r}else e=(n=this.btnView.$el).outerWidth();i=(t=n.offset().left+e/2-a/2)>0?"+":"-",this.$carousel.animate({scrollLeft:i+"="+Math.abs(t)},400)},addImage:function(){this.collection.getDynamicQuantityProduct().addImages(1),this.render()},updateOrientation:function(){var e=$(window),t=e.height(),i=e.width()/t;this.$el.toggleClass("is-landscape",i>1&&t<500)},_renderChildren:function(){this.progressView.render(),this.textView.render(),this.closeView.render(),this.btnView.render()},_renderPlaceholders:function(){var e=this;_.each(this.placeholderViews,(function(e){e.remove()})),this.placeholderViews=[],this.collection.each((function(t,i){t.get("images").each((function(t,a){e.placeholderViews.push(new PackagesComposerImageView({model:t,packageModel:e.model,isTitle:0===i&&0===a}))})),t.get("isDynamicQuantity")&&e.placeholderViews.push(new PackagesComposerImageAddView),e.placeholderViews.push(new PackagesComposerImageSeparatorView)})),this.$carousel.append(_.map(this.placeholderViews,(function(e){return e.render().$el})),this.btnView.$el),this.centerActivePlaceholder()},_addDocumentMargin:function(){this._setDocumentMargin(this.$el.outerHeight())},_removeDocumentMargin:function(){this._setDocumentMargin(0)},_setDocumentMargin:function(e){$("html").css("margin-bottom",e)}}),PackagesItemView=Backbone.View.extend(_.extend({},scrollPosRestorableMethods,{className:"packages-list-item acts-on-hc-bg-light",template:"",$images:null,events:{click:"setActive"},initialize:function(e){this.template=e.template,this.$images=$("#image-list"),this.listenTo(this.model,"change:isProcessing",this.updateBadgesWithRestore),this.listenTo(this.model,"change:isCart",this.updateBadgesWithRestore),this.listenToOnce(Pubsub,"packages-list:render-complete",this.setColor)},render:function(){var e=this.model.attributes,t=!!e.products.getDynamicQuantityProduct(),i=this.model.isDigitalOnly();return this.$el.toggleClass("is-digi-only",i).html(this.template({isCalender:e.isCalendarPackage,name:e.name,price:NumberFormatter.centsAsPrice(e.price),discount:e.discount?e.discount:"",discountClass:e.discount?"":"hide",shippingHintClass:i?"hide":"",withFreeDownload:e.withFreeDownload,showDynamicDesc:t,products:t?"":e.products.map((function(e){return"<strong>"+e.get("count")+"x</strong> "+e.get("name")})).join("<br />")})),this.updateBadges(),this},setActive:function(e){$(e.currentTarget).blur(),Pubsub.trigger("package:change-active",this.model)},updateBadges:function(){var e=this.model.attributes;this.$(".js-packages-started-label").toggleClass("hide",!e.isProcessing),this.$(".js-packages-in-cart-label").toggleClass("hide",!e.isInCart)},updateBadgesWithRestore:function(){var e=this._height();this.updateBadges(),this._restoreScrollPos(e)},setColor:function(){var e=this.$(".js-packages-list-item-name-wrap").css("background-color");this.model.set({color:e})},toggle:function(e){this.$el.toggleClass("hide",!e)},markAsLastVisible:function(){this.$el.addClass("is-last-visible")}})),PackagesListView=Backbone.View.extend({el:"#packages-list",templateItem:"",itemViews:[],initialize:function(){this.templateItem=PicTempl.getAsFunc("packages-list-item-templ"),this.listenTo(Pubsub,"package-opener:show",this.show),this.listenTo(Pubsub,"package-opener:hide",this.hide)},render:function(){var e=this,t=[];this.collection.each((function(i){var a=new PackagesItemView({model:i,template:e.templateItem});t.push(a.render().$el),e.itemViews.push(a)})),this.$el.append(t),Pubsub.trigger("packages-list:render-complete")},show:function(e){var t;this.$el.removeClass("hide"),_.each(this.itemViews,(function(i){var a=e!==i.model.get("isCalendarPackage");i.toggle(a),a&&(t=i)})),t&&t.markAsLastVisible()},hide:function(){this.$el.addClass("hide")}}),PackagesOpenerView=Backbone.View.extend({el:"#packages-mode",events:{"click .js-packages-mode":"changeMode","click .js-packages-opener-close":"close","click #album-packages-add-to-cart":"addAlbumPackageToCart","click #packages-opener-hint-package":function(){this.pubActivePackOrCal(!1)},"click #packages-opener-hint-calendar":function(){this.pubActivePackOrCal(!0)}},activeID:null,render:function(){var e="packages-mode-normal"===this.activeID,t="packages-mode-calendars"===this.activeID,i="packages-mode-images"===this.activeID,a="packages-mode-download"===this.activeID,n="active acts-on-hc-bg",o=e||t?"package-opener:show":"package-opener:hide";this.$("#packages-mode-normal").toggleClass(n,e),this.$("#packages-mode-calendars").toggleClass(n,t),this.$("#packages-mode-images").toggleClass(n,i),this.$("#packages-mode-download").toggleClass(n,a),this.$("#packages-opener-normal").toggleClass("hide",!e),this.$("#packages-opener-calendars").toggleClass("hide",!t),this.$("#packages-opener-images").toggleClass("hide",!i),this.$("#packages-opener-download").toggleClass("hide",!a),Pubsub.trigger(o,e)},changeMode:function(e){var t=$(e.currentTarget).prop("id");this.activeID=this.activeID===t?null:t,this.render()},close:function(){this.activeID=null,this.render()},addAlbumPackageToCart:function(){this.albumPackageModel.addToCart($("body").data()),Pubsub.trigger("package:show-continue-modal")},updateUnfinishedCount:function(){var e=this.collection.countUnfinished(),t=this.collection.countUnfinished(!0);this.$("#package-mode-normal-count").text(e).toggleClass("hide",0===e),this.$("#package-mode-calendars-count").text(t).toggleClass("hide",0===t),this.$("#packages-opener-hint-package").toggleClass("hide",0===e),this.$("#packages-opener-hint-calendar").toggleClass("hide",0===t)},pubActivePackOrCal:function(e){var t=this.collection.findWhere({isProcessing:!0,isCalendarPackage:e});Pubsub.trigger("package:change-active",t)},setCollection:function(e){this.collection=e,this.listenTo(e,"change:isProcessing",this.updateUnfinishedCount),this.updateUnfinishedCount(),new PackagesListView({collection:e}).render()},initAlbumPackageMode:function(e){if(0!==this.$("#packages-opener-download").length){var t=e[0];this.albumPackageModel=new AlbumPackageModel({price:t.price,packageId:t.id,packageName:t.name,ppItemId:t.products[0].id})}}}),PackagesOrderContinueModal=Backbone.View.extend({el:"#order-modal-continue",events:{"click #order-modal-continue-cancel":"hide"},initialize:function(){this.listenTo(Pubsub,"package:show-continue-modal",this.show),this.listenTo(Pubsub,"package:add-to-cart-complete",this.show)},show:function(){var e=this.$el.addClass("soft-visible");_.defer((function(){e.addClass("visible")}))},hide:function(){var e=this.$el.animationTiming("onTransEnd",(function(){e.removeClass("soft-visible")})).removeClass("visible")}});$((function(){var e=$("#customer-upload-button");if(0!==e.length){var t=$("#custom-upload-results-num").text("0"),i=0,a=0,n=$("#custom-upload-results-reload-link-wrap"),o=function(){$.ajax({url:n.data("url"),success:function(e){n.html(e),s()}})},r=_.throttle(o,5e3,{leading:!1}),s=_.throttle((function(){$("#custom-upload-results-loading-spinner").length&&r()}));PicUpload.init(e,{url:e.data("url"),complete:function(){t.text(++a)},addFiles:function(e){$("#customer-upload-lifespan-hint").addClass("hide"),n.addClass("hide"),$("#custom-upload-results").removeClass("hide"),i+=e,$("#custom-upload-results-max").text(i)},allDone:function(){n.removeClass("hide"),$("#customer-upload-lifespan-hint").removeClass("hide"),o()}}),s()}}));var ChangeCrop=function(){var e={},t=function(){window.location.href=BASKET_URL},i=function(e,t){var i=0;_.each(e[CROP_PACK_UUID].products,(function(e){_.each(e.images,(function(a){i++===CROP_IMAGE_INDEX&&t(a,e)}))}))},a=function(){var e=PicStorage.getComposedPackages();i(e,(function(e){e.resolveSizeBy=Cropper.getMode(),e.cropData.data=Cropper.getData({forceFromView:!0}),e.cropConfirmed=!0})),PicStorage.setComposedPackages(e),t()},n=function(){$("#order-modal-crop-cancel").click(t),$(".js-order-modal-crop-save").click(a)};return e.init=function(){i(PicStorage.getComposedPackages(),(function(e,t){var i=t.formatData,a={ratio:e.ratio,width:e.width,height:e.height},n=e.cropData.data,o=e.resolveSizeBy;Cropper.init(a,n,o),i=_.extend({},i,{allowFit:i.fit}),Cropper.show(i,{isSticker:e.isSticker})})),n()},e}(),CustomArticles=function(){var e={},t=PicStorage.getCustomArticles,i=PicStorage.setCustomArticles,a=function(e){var i=e.data("id"),a=t()[i];a&&e.prop("disabled",a.remaining===a.count)},n=function(e,a){var n=t(),o=a||_.clone(CUSTOM_ARTICLE_DATA[e]);if(!a){var r=n[e],s=r&&r.count||0;o.count=s+1}n[e]=o,i(n),Pubsub.trigger("custom-article:added")},o=function(e){e.on("click",(function(){var e=$(this);n(e.data("id")),a(e),PicSimpleModal.show($("#custom-article-notification-modal"))}))};return e.getCount=function(){return _.reduce(t(),(function(e,t){return e+t.count}),0)},e.get=function(){return t()},e.reAdd=function(e){n(e.id,e)},e.setCount=function(e,a){var n=t();n[e].count=parseInt(a),i(n)},e.delete=function(e){var a=t();delete a[e],i(a)},e.deleteAll=function(){i({})},e.init=function(){var e=$(".js-article-order").each((function(){a($(this))}));o(e),CustomArticlesDiashow.init()},e}(),CustomArticlesDiashow=function(){var e={},t=function(){var e=$(this);new Swiper(this,{lazy:{checkInView:!1,loadOnTransitionStart:!0},pagination:{el:e.find(".js-ca-diashow-pagination")[0],renderBullet:function(e,t){return'<span class="acts-on-hc-bg '+t+'"></span>'}}})};return e.init=function(){$(".js-ca-diashow").each(t)},e}(),Diashow=function(){var e={},t=function(){return $(".js-swiper-slide").length>1?{el:"#swiper-pagination",dynamicBullets:!0,renderBullet:function(e,t){return'<span class="acts-on-hc-bg '+t+'"></span>'}}:{}},i=function(){new Swiper("#swiper-container",{loop:!0,lazy:!0,pagination:t()})};return e.init=function(){i()},e}();$((function(){$.fn.popover||($.fn.popover=function(e){var t=function(){return String.fromCharCode(65+Math.floor(26*Math.random()))+Date.now()};return this.each((function(){"click"===e.trigger&&$(this).click((function(){var i=t(),a='<div id="'+i+'" class="popover-fallback-wrap"><div class="popover-fallback-content">'+e.content+"<br><br><small>(klicken zum Schlie\xdfen)</small></div></div>";$("body").append(a),$("#"+i).click((function(){$(this).remove()}))}))}))})}));var RecentlyOrderedConfirm={init:function(){$(".js-orderbutton").click((function(e){var t=$(this).data("recently-ordered-text");t&&!window.confirm(t)&&e.preventDefault()}))}},Redakteur=function(){var e,t={},i="on-download-requested",a=function(){e.toggleClass("disabled",!$(this).is(":checked"))},n=function(t){if(!e.hasClass(i)){t.preventDefault();var a=$("#redaktion-download");if(!a.hasClass("disabled")&&window.confirm(a.data("confirm-text"))){var n,o=parseInt($("#redaktion-pre-download").data("image-id"),10);$.ajax({url:a.data("url"),data:{iid:o},type:"post",beforeSend:function(){a.addClass("disabled"),n=a.text(),a.text(a.data("loading-text"))},error:function(){alert("Leider ist etwas schief gegangen, probieren Sie es bitte sp\xe4ter nochmal oder kontaktieren Sie unseren Support.")},complete:function(){a.removeClass("disabled"),a.text(n)},success:function(){e.addClass(i)}})}}},o=function(){$("#redaktion-copyright-checkbox").on("click",a),$("#redaktion-download-wrapper").on("click",n)};return t.init=function(){return e=$("#redaktion-download-wrapper"),o(),this},t}(),ShopGalleryMobileMain=function(){var e={init:function(){PicStorage.makeMobile();var e=$("body").data();if(e.isOrder||e.isChangeCrop||(NavToggle.init(e.activeGalleryId),$("#startpage-header-link-to-galleries").click((function(e){e.preventDefault(),NavToggle.openAndHighlightGalleries()}))),$(".header .text-fit").picTextFit({minFontSize:16,checkWidthAndHeight:!0}),$("#nav-main").find(".text-fit").picTextFit({minFontSize:16,checkWidthAndHeight:!0}),e.isCheckout)e.isAddress?Address.init():e.isConfirm?RecentlyOrderedConfirm.init():e.isOrdersent&&(PicStorage.init(e.shopId),PicStorage.deleteOrdered(),PicStorage.deleteAllOrderedPackages(),CustomArticles.deleteAll());else if(PicStorage.init(e.shopId),Cart.init(e.isCart,e.isOrder||e.isChangeCrop),e.isSubscription)Subscription.init();else if(e.isProductinfo)Productinfos.init(e.productinfoId);else if(e.isRedaktionPreDownload)Redakteur.init();else if(!e.isLocked){if($(".gallery-list-name").picTextFit({minFontSize:15}),e.isOrder&&!e.isUnsaleable&&"undefined"!=typeof imgData){var t=!!e.editUuid&&Cart.setUuidAndGetProductData(e.editUuid);OrderDialog.init(imgData,t)}if(e.isChangeCrop&&ChangeCrop.init(),e.isGallery&&$(".js-image-list-link").length){var i="undefined"!=typeof pswpItems&&pswpItems.length>0;GalleryImages.init(i?pswpItems:[],e.isDownloadAllowed,e.hasTwitter,e.hasFacebook,e.hasWhatsapp),i&&Packages.init()}$("#swiper-container").length&&Diashow.init()}CustomArticles.init(),e.hasProductinfoForCu&&Productinfos.init()}};return e}();$((function(){ShopGalleryMobileMain.init(),$("#contact-form").length&&ContactForm.init("mobile");var e=$("body").data("album-id")
;e&&$.loadTokens(e,!1,"mobile view html"),$("#stay-on-mobile").click((function(){$.get($(this).data("url")),$("#switch-to-desktop-layer-overlay").remove()})),$(".payrexx-modal-button").length&&Payrexx.init()}));