Zum Inhalt springen
document.addEventListener("DOMContentLoaded", function () {
/* Blauen Balken am Halteverbot-Button entfernen (Theme-Override per JS) */
(function removeBlueBar() {
var btns = document.querySelectorAll(".agv-btn-header, a.agv-btn-header, #agv-header-block a[href*='halteverbot']");
btns.forEach(function (el) {
el.style.setProperty("background", "linear-gradient(135deg, #fee9c7, #f0a623)", "important");
el.style.setProperty("background-color", "#f0a623", "important");
el.style.setProperty("border", "1px solid rgba(240, 166, 35, 0.5)", "important");
el.style.setProperty("border-left", "1px solid rgba(240, 166, 35, 0.5)", "important");
el.style.setProperty("border-right", "1px solid rgba(240, 166, 35, 0.5)", "important");
el.style.setProperty("box-shadow", "none", "important");
});
var wraps = document.querySelectorAll(".agv-btn-header-wrap");
wraps.forEach(function (w) {
w.style.overflow = "hidden";
var next = w.nextElementSibling;
if (next) next.style.display = "none";
});
})();
/* Scroll zu Anker nach Seitenwechsel */
if (window.location.hash) {
var id = window.location.hash.slice(1).split("?")[0];
if (id) {
setTimeout(function () {
var target = document.getElementById(id);
if (target) {
var offset = 100;
var y = target.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop) - offset;
window.scrollTo({ top: Math.max(0, y), behavior: "smooth" });
}
}, 150);
}
}
function qs(sel, root) {
return (root || document).querySelector(sel);
}
function qsAll(sel, root) {
return Array.prototype.slice.call((root || document).querySelectorAll(sel));
}
var header = document.getElementById("agv-header-block");
var hero = document.getElementById("agv-hero-block");
var extra = document.getElementById("agv-extra-highlight");
var main = document.getElementById("agv-main-sections");
var footer = document.getElementById("agv-footer-block");
var faqPage = document.getElementById("agv-faq-page");
var kontaktPage = document.getElementById("agv-kontakt-page");
var roots = [header, hero, extra, main, footer, faqPage, kontaktPage].filter(Boolean);
if (header) {
var toggle = qs(".agv-nav-toggle", header);
var nav = qs(".agv-header-row-nav", header);
if (toggle && nav) {
toggle.addEventListener("click", function () {
var open = nav.classList.toggle("agv-nav-open");
toggle.setAttribute("aria-expanded", open ? "true" : "false");
toggle.classList.toggle("agv-nav-toggle-open", open);
});
qsAll(".agv-nav-link, .agv-btn-header", nav).forEach(function (link) {
link.addEventListener("click", function () {
nav.classList.remove("agv-nav-open");
toggle.setAttribute("aria-expanded", "false");
toggle.classList.remove("agv-nav-toggle-open");
});
});
}
}
function scrollToAnchor(e, href) {
if (!href || href.indexOf("#") < 0) return false;
var id = (href.split("#")[1] || "").split("?")[0];
if (!id) return false;
var target = document.getElementById(id);
if (!target && id === "leistungen") {
target = document.querySelector("[id*='leistung']");
if (!target) {
var headings = document.querySelectorAll("h2, h3");
for (var i = 0; i < headings.length; i++) {
if (/leistung/i.test(headings[i].textContent)) {
target = headings[i].closest("section, div, .agv-section, .agv-card");
if (target) break;
}
}
}
}
if (!target && id === "unternehmen") {
target = document.querySelector("[id*='unternehmen']");
if (!target) {
var all = document.querySelectorAll("h2, h3");
for (var i = 0; i < all.length; i++) {
if (/unternehmen/i.test(all[i].textContent)) {
target = all[i].closest("section, div, .agv-section");
if (target) break;
}
}
}
}
if (target) {
e.preventDefault();
var offset = 100;
var y = target.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop) - offset;
window.scrollTo({ top: Math.max(0, y), behavior: "smooth" });
return true;
}
return false;
}
function scrollZuKontakt(e) {
var target = document.getElementById("agv-kontakt-page");
if (!target) return false;
e.preventDefault();
e.stopPropagation();
var offset = 100;
var y = target.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop) - offset;
if (window.scrollTo) {
window.scrollTo({ top: Math.max(0, y), behavior: "smooth" });
} else {
target.scrollIntoView({ behavior: "smooth", block: "start" });
}
return true;
}
document.addEventListener("click", function (e) {
var el = e.target;
if (!el || !el.nodeName) return;
var clickable = null;
if (el.closest) {
clickable = el.closest("a[href*='agv-kontakt-page'], [data-agv-scroll='agv-kontakt-page'], .agv-faq-cta-btn");
}
if (!clickable && el.tagName === "A") {
var h = el.getAttribute("href") || "";
if (h.indexOf("agv-kontakt-page") >= 0 || el.classList.contains("agv-faq-cta-btn")) clickable = el;
}
if (clickable) {
scrollZuKontakt(e);
}
}, true);
document.querySelectorAll("#agv-header-block a.agv-nav-link[href*='#']").forEach(function (link) {
link.addEventListener("click", function (e) {
var h = this.getAttribute("href") || "";
if (h.indexOf("#agv-kontakt-page") >= 0) return;
scrollToAnchor(e, h);
});
});
roots.forEach(function (root) {
qsAll('a[href^="#"]', root).forEach(function (link) {
if ((link.getAttribute("href") || "").indexOf("#agv-kontakt-page") >= 0) return;
if (link.closest("#agv-header-block")) return;
link.addEventListener("click", function (e) {
scrollToAnchor(e, this.getAttribute("href"));
});
});
qsAll(".agv-reveal", root).forEach(function (el) {
if (typeof IntersectionObserver === "undefined") {
el.classList.add("is-visible");
return;
}
var observer = new IntersectionObserver(
function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add("is-visible");
observer.unobserve(entry.target);
}
});
},
{ threshold: 0.1, rootMargin: "0px 0px -40px 0px" }
);
observer.observe(el);
});
});
});