/**
* Offerte — Lead-/Offertenformular als eigenes Kapitel (alle Welten)
*/
(function () {
"use strict";
var VERSION = "2";
var FORM_SRC = "assets/preview/alx-offerte-form-v5.html";
function currentLang() {
try {
return (
localStorage.getItem("mv-preview-lang") ||
sessionStorage.getItem("mv-preview-lang") ||
document.documentElement.lang ||
"de"
);
} catch (e) {
return "de";
}
}
function formWorldKey() {
var w = document.body.getAttribute("data-world") || "nexora";
if (w === "general" || w === "multiversum") return "multiversum";
if (w === "vertex" || w === "professional") return "professional";
if (w === "freiraum") return "freiraum";
return "nexora";
}
function formFrameSrc() {
return (
FORM_SRC +
"?embed=1&world=" +
encodeURIComponent(formWorldKey()) +
"&lang=" +
encodeURIComponent(currentLang()) +
"&v=20260714offerte-v5"
);
}
function offerteMarkup() {
return (
'
' +
'
Offerte
' +
'
Offerte anfragen
' +
'
Wählen Sie Ihre Leistungen und erhalten Sie eine klare Einschätzung zu Aufwand und Preis.
' +
"
" +
'' +
'' +
"
"
);
}
function resizeOfferteFrame(height) {
var frame = document.getElementById("weltenOfferteForm");
var wrap = frame && frame.closest(".welten-leadform-wrap");
if (!frame) return;
var h = parseInt(height, 10);
if (h > 200) {
frame.style.height = h + "px";
frame.style.minHeight = "0";
frame.style.maxHeight = h + "px";
frame.setAttribute("scrolling", "no");
if (wrap) {
wrap.style.height = h + "px";
wrap.style.minHeight = "0";
wrap.style.maxHeight = h + "px";
}
}
}
function syncOfferteFrame() {
var frame = document.getElementById("weltenOfferteForm");
if (!frame) return;
var nextSrc = formFrameSrc();
var current = frame.getAttribute("src") || "";
if (current === "about:blank" || current.split("#")[0] !== nextSrc.split("#")[0]) {
try {
localStorage.setItem("alex-lamberti-world", formWorldKey());
} catch (e) {}
frame.src = nextSrc;
return;
}
if (frame.contentWindow) {
try {
frame.contentWindow.postMessage(
{
type: "alx-preview-sync",
world: formWorldKey(),
lang: currentLang(),
},
"*"
);
} catch (e) {}
}
}
function needsOfferteRebuild(slide) {
if (!slide) return false;
if (slide.dataset.weltenOfferte !== VERSION) return true;
if (!slide.querySelector(".offerte-copy")) return true;
if (!slide.querySelector(".welten-offerte-form-wrap")) return true;
if (!slide.querySelector("#weltenOfferteForm")) return true;
return false;
}
function applyOfferte() {
var slide = document.querySelector("#slide-offerte .slide-inner");
if (!slide) return;
if (!needsOfferteRebuild(slide)) {
slide.className = "slide-inner offerte-layout";
syncOfferteFrame();
return;
}
slide.className = "slide-inner offerte-layout";
slide.dataset.weltenOfferte = VERSION;
slide.innerHTML = offerteMarkup();
syncOfferteFrame();
}
function apply() {
applyOfferte();
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", apply);
} else {
apply();
}
document.addEventListener("welten-lang-change", function () {
syncOfferteFrame();
});
document.addEventListener("welten-chapter-change", function (e) {
if (e && e.detail && e.detail.chapter === "offerte") applyOfferte();
});
window.addEventListener("message", function (e) {
if (!e.data) return;
if (e.data.type === "alx-form-height" && e.data.height) {
if (document.body.getAttribute("data-current-slide") === "offerte") {
resizeOfferteFrame(e.data.height);
}
}
if (e.data.type === "portfolio-preview-lang" || e.data.type === "alx-preview-sync") {
syncOfferteFrame();
}
});
try {
new MutationObserver(function () {
if (document.body.getAttribute("data-current-slide") === "offerte") {
syncOfferteFrame();
}
}).observe(document.body, {
attributes: true,
attributeFilter: ["data-world", "data-current-slide"],
});
} catch (e) {}
window.addEventListener("load", function () {
setTimeout(syncOfferteFrame, 80);
});
window.WeltenOfferteForm = {
syncOfferteFrame: syncOfferteFrame,
formWorldKey: formWorldKey,
};
})();