(function(){
  // Spam-Schutz: Telefonnummer & Mail erst im Browser zusammensetzen
  const phoneParts = ["+49","177","276","6086"];
  const phone = phoneParts.join("");
  const ep = ["info","hm-petrick.de"];
  const email = ep.join("@");

  const waText = "?text=" + encodeURIComponent("Hallo, ich habe Ihre Website gefunden und benötige Unterstützung in Köln und Umland. Es geht um:");
  const waLink = "https://wa.me/" + phone.replace("+","") + waText;
  const telLink = "tel:" + phone.replaceAll(" ","");
  const mailto = "mailto:" + email;

  const $ = (id) => document.getElementById(id);
  const setHref = (id, href) => { const el=$(id); if(el) el.href = href; };
  const setText = (id, txt) => { const el=$(id); if(el) el.textContent = txt; };

  function init(){
    setText("phoneText", phone);
    setText("emailText", email);

    setHref("waHeader", waLink);
    setHref("waHero", waLink);
    setHref("waContact", waLink);
    setHref("waFloat", waLink);

    setHref("callBtn", telLink);
    setHref("callBtn2", telLink);
    setHref("mailBtn", mailto);

    const year = $("year");
    if(year) year.textContent = new Date().getFullYear();

    // Formular → Mailto
    const form = $("contactForm");
    if(form){
      form.addEventListener("submit",(e)=>{
        e.preventDefault();
        const fd = new FormData(form);
        const subject = (fd.get("subject")||"Anfrage über Website").toString();
        const body =
          "Name: " + (fd.get("name")||"") + "\n" +
          "E-Mail: " + (fd.get("email")||"") + "\n" +
          "Telefon: " + (fd.get("phone")||"") + "\n\n" +
          (fd.get("message")||"");
        window.location.href = mailto + "?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body);
      });
    }

    // Lightbox
    function openLightbox(src){
      const lb = $("lightbox");
      const img = $("lightboxImg");
      if(!lb || !img) return;
      img.src = src;
      lb.style.display = "flex";
    }
    window.closeLightbox = function(){
      const lb = $("lightbox");
      if(lb) lb.style.display = "none";
    };
    document.addEventListener("keydown",(e)=>{ if(e.key==="Escape") window.closeLightbox(); });
    const lb = $("lightbox");
    if(lb) lb.addEventListener("click",(e)=>{ if(e.target.id==="lightbox") window.closeLightbox(); });
    document.querySelectorAll(".gitem img").forEach(img => img.addEventListener("click",()=>openLightbox(img.src)));

    // Mobile Menü
    window.closeMobileMenu = function(){
      const menu = $("mobileMenu");
      const btn = $("mobileMenuBtn");
      if(menu){ menu.classList.remove("open"); menu.setAttribute("aria-hidden","true"); }
      if(btn){ btn.setAttribute("aria-expanded","false"); }
    };
    const btn = $("mobileMenuBtn");
    const menu = $("mobileMenu");
    if(btn && menu){
      btn.addEventListener("click",()=>{
        const open = menu.classList.toggle("open");
        menu.setAttribute("aria-hidden", open ? "false":"true");
        btn.setAttribute("aria-expanded", open ? "true":"false");
      });
      document.addEventListener("click",(e)=>{
        if(!menu.classList.contains("open")) return;
        if(e.target===btn || btn.contains(e.target) || menu.contains(e.target)) return;
        window.closeMobileMenu();
      });
    }
  }

  if(document.readyState==="loading"){
    document.addEventListener("DOMContentLoaded", init);
  }else{
    init();
  }
})();
