var MASCH = {}; MASCH.MsgErrAmountRequired = "Bitte geben Sie die Anzahl an!"; MASCH.MsgErrLastNameRequired = "Bitte geben Sie den Nachnamen an!"; MASCH.MsgErrEmailRequired = "Bitte geben Sie die E-Mail-Adresse an!"; MASCH.MsgErrBookingInThePast = "Die ausgewählte Zeit liegt in der Vergangenheit!"; MASCH.MsgErrBookingTooLate = "Die Vorlaufzeit für die Buchung dieser Leistung beträgt {period} {period_unit}. Bitte buchen Sie die gewünschte Leistung mit mindestens {period} {period_unit} ab heute!"; MASCH.EcomMinute = "Minute(n)"; MASCH.EcomHour = "Stunde(n)"; MASCH.EcomDay = "Tag(e)"; MASCH.desiredWidth = 1140; MASCH.currentScript = document.currentScript.src; MASCH.getMyScript = function () { var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; i++) { var script = scripts[i]; // you might consider using a regex here if (MASCH.currentScript.indexOf(script.getAttribute('src')) !== -1) { // we've got a match return script; } } return null; }; function getMyAttribute(name) { var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; i++) { var script = scripts[i]; // you might consider using a regex here if (script.getAttribute('src') == MASCH.currentScript) { // we've got a match alert(script.getAttribute(name)); } } } MASCH.show_more = function (button) { button.style.display = "none"; var widgets = button.parentNode.parentNode.querySelectorAll(".masch_widget_tile"); for (var i = 0; i < widgets.length; i++) { widgets[i].style.display = "block"; } window.scrollBy(0, 400); } MASCH.reset_filter = function (area_id) { var area = document.getElementById(area_id); var widget_search_field = area.querySelector(".widget_search_field"); if (widget_search_field) { widget_search_field.value = ""; } MASCH.reload_widget_content(area_id); } MASCH.reload_widget_content = function (area_id) { var my_src = MASCH.currentScript.replace(/plugin_widget\.js\.php/, "reload_content.js.php"); my_src += "&area_id=" + area_id; var area = document.getElementById(area_id); var widget_search_field = area.querySelector(".widget_search_field"); if (widget_search_field) { my_src += "&search_key=" + encodeURIComponent(widget_search_field.value); } my_src += "&t=" + new Date().getTime(); var script = document.getElementById("masch_reload_script"); if(script) { document.head.removeChild(script); } script = document.createElement("script"); // create a script DOM node script.id = "masch_reload_script"; document.head.appendChild(script); script.src = my_src; // set its src to the provided URL } MASCH.smart_show_details = function (button, params, width, hide_back) { if(width) MASCH.desiredWidth = width; else MASCH.desiredWidth = 1140; var i_am_in_lightbox = false; var currentParent = button.parentNode; while(currentParent) { if(currentParent.classList && currentParent.id == "masch_preview_wrapper") { i_am_in_lightbox = true; break; } currentParent = currentParent.parentNode; } if(!i_am_in_lightbox) { MASCH.show_details(params); return; } var my_src = MASCH.currentScript.replace(/plugin_widget\.js\.php(.*)/, "inject_content.js.php" + params + "&t=" + new Date().getTime()); var script = document.getElementById("masch_preview_script"); if(script) { document.head.removeChild(script); } script = document.createElement("script"); // create a script DOM node script.id = "masch_preview_script"; document.head.appendChild(script); script.src = my_src; // set its src to the provided URL if(hide_back) return; var masch_preview_back = document.getElementById("masch_preview_back"); if(masch_preview_back) masch_preview_back.style.display = "block"; } MASCH.lastListParams = null; MASCH.show_details = function (params, width) { if(width) MASCH.desiredWidth = width; else MASCH.desiredWidth = 1140; MASCH.lastListParams = params; var masch_preview_wrapper = document.getElementById("masch_preview_wrapper"); if(!masch_preview_wrapper) { masch_preview_wrapper = document.createElement("div"); masch_preview_wrapper.id = "masch_preview_wrapper"; preview = document.createElement("div"); preview.id = "masch_preview"; masch_preview_wrapper.append(preview); var head = document.createElement("div"); head.classList.add("masch_preview_head"); preview.append(head); var close = document.createElement("div"); close.classList.add("masch_preview_close"); head.append(close); var back = document.createElement("div"); back.id = "masch_preview_back"; back.classList.add("masch_preview_back"); head.append(back); var div = document.createElement("div"); div.style.clear = "both"; head.append(div); var area = document.createElement("div"); area.id = "masch_preview_area"; preview.append(area); var outputsize = function() { console.log('oversed height: ' + area.offsetHeight); console.log("Resize on ResizeObserver"); MASCH.resizePreview(); } outputsize(); new ResizeObserver(outputsize).observe(area); document.body.append(masch_preview_wrapper); MASCH.addEvent(close, "click", function() { masch_preview_wrapper.style.display = "none"; area.innerHTML = ""; }); MASCH.addEvent(back, "click", function() { area.innerHTML = ""; var my_src = MASCH.currentScript.replace(/plugin_widget\.js\.php(.*)/, "inject_content.js.php" + MASCH.lastListParams + "&=" + new Date().getTime()); var script = document.getElementById("masch_preview_script"); if(script) { document.head.removeChild(script); } script = document.createElement("script"); // create a script DOM node script.id = "masch_preview_script"; document.head.appendChild(script); script.src = my_src; // set its src to the provided URL this.style.display = "none"; }); MASCH.addEvent(window, "resize", function () { console.log("Resize on window event (show_details)"); MASCH.resizePreview(); }); } var masch_preview_back = document.getElementById("masch_preview_back"); if(masch_preview_back) masch_preview_back.style.display = "none"; masch_preview_wrapper.style.display = "block"; var my_src = MASCH.currentScript.replace(/plugin_widget\.js\.php(.*)/, "inject_content.js.php" + params + "&=" + new Date().getTime()); var script = document.getElementById("masch_preview_script"); if(script) { document.head.removeChild(script); } script = document.createElement("script"); // create a script DOM node script.id = "masch_preview_script"; document.head.appendChild(script); script.src = my_src; // set its src to the provided URL MASCH.executePlugins(); //console.log("show_details main resize"); //MASCH.resizePreview(); } MASCH.resizePreview = function() { var masch_preview = document.getElementById("masch_preview"); if(!masch_preview) return; var wd = window.innerWidth - 50; if(wd > MASCH.desiredWidth) wd = MASCH.desiredWidth; masch_preview.style.width = wd + "px"; var ht = masch_preview.scrollHeight; if(ht > window.innerHeight - 100) { ht = window.innerHeight - 100; masch_preview.style.height = ht + "px"; } else { masch_preview.style.height = "auto"; } if(masch_preview.offsetHeight > window.innerHeight - 100) { ht = window.innerHeight - 100; masch_preview.style.height = ht + "px"; } var top = (window.innerHeight - masch_preview.offsetHeight) / 2; masch_preview_wrapper.style.top = top + "px"; }; MASCH.injectWidget = function(script) { var my_src = MASCH.currentScript.replace(/plugin_widget\.js\.php(.*)/, "masch_widgets.css?tmp=" + new Date().getTime()); var link = document.createElement('link'); link.setAttribute('rel', 'stylesheet'); link.setAttribute('href', my_src); document.head.appendChild(link); link = document.createElement('link'); link.setAttribute('rel', 'stylesheet'); my_src = MASCH.currentScript.replace(/plugin_widget\.js\.php(.*)/, "../../../templates/ecom-caprice-mobile/user.css?tmp=" + new Date().getTime()); link.setAttribute('href', my_src); document.head.appendChild(link); var elm = document.createElement("div"); elm.classList.add("masch_widget_area"); elm.id = "masch_widget_area_" + '9afb38ecaf5dd42d542733367b4210bf'; elm.innerHTML = '