<!DOCTYPE html>
<html lang="de">

<head>
    <meta charset="UTF-8">
    <meta name="robots" content="noindex">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="keywords" content="edp-services ag, demoshop, demo, luzern, kriens, zeitung">
    <meta name="description" content="Demoshop von edp-services ag dient als Demo für Kunden.">
    <meta name="referrer" content="unsafe-url">
    <!-- Favicon -->
    <link rel="Shortcut icon" type="image/x-icon" href="https://www.edp.ch/favicon.ico">
    <link rel="icon" type="image/ico" href="/images/Edi_Maskottchen.ico">

    <!-- Bootstrap Core CSS -->
    <link href="/css/bootstrap.css" rel="stylesheet">
    <link href="/css/jquery/jquery-ui.min.css" rel="stylesheet">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="css/funkyradio.css">
    <link rel="stylesheet" href="css/shop-classes.css">

    <!-- Jquery -->
    <script src="/js/jquery.min.js"></script>

    <!-- Datepicker -->
    <link href="/datepicker/datepicker.css" rel="stylesheet">
    <script src="/datepicker/datepicker.js"></script>

    <!-- DataTable -->
    <link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css">
    <script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script>

    <!-- Google Fonts -->
    <link href="https://fonts.googleapis.com/css2?family=Miriam+Libre&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">

    <!-- Custom javascript -->
    <script src="/js/bootstrapjs/popper.min.js"></script>
    <script src="/js/bootstrapjs/bootstrap.min.js"></script>
    <script src="/js/script.js"></script>
    <script src="/js/pageManager/yearChangeFooter.js"></script>
    <script src="/js/pageManager/umleitungActive.js"></script>
</head>

<body id="body" onresize="bodyResize()">

    <nav class="navbar navbar-expand-lg navbar-dark bg-header-footer fixed-top mb-5">
        <div class="container d-flex flex-column">
            <div class="w-100">
                <div class="container d-flex p-0" id="navbar">
                    <a href="/?homepage" class="ms-lg-0">
                        <img src="images/edp_logo_weiss.png" alt="edp-logo" width="100">
                    </a>
                    <button class="navbar-toggler ms-auto" id="hamburger_button" type="button" data-bs-toggle="offcanvas" data-bs-target="#navigation_canvas" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>
                    <div class="ms-auto d-none d-lg-flex">
                        <br>
                        
                            <a href="#" class="nav-link text-light ps-1 pe-1" aria-label="Profile/Login" data-bs-toggle="offcanvas" data-bs-target="#login_register">
                                <span class="glyphicon glyphicon-user"></span>
                                <span class="line-height">
                                <i class="bi bi-person-fill h4 mb-3"></i>
                                <span class="d-none d-md-inline">Cockpit</span>
                            </span></a>
                        
                        <span><!-- Ungültiges Tag. Fehler: System.NullReferenceException: Object reference not set to an instance of an object.
   at Shop_Lib.GetEditRechnungsadresses() in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\Shop_Lib.cs:line 1084
   at CMSParser.ParseHTML(String inputHTML, String arguments) in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\CMSParser.cs:line 890--></span>
                        <br>
                        <a href="#" class="nav-link text-light ps-1 basketIcon" aria-label="Warenkorb" data-bs-toggle="offcanvas" data-bs-target="#basket">
                            
                                <span rel="tooltip" title="0 Artikel im Warenkorb" class="fs-nav text-white">
                                    <span class="btn-link bg-header-footer text-light text-decoration-none border-0 position-relative">
                                        <i class="bi bi-cart4 text-light h4 mb-3"></i>
                                        <span class="d-none d-md-inline">Warenkorb</span>
                                    
                                    
                                    
                                    </span>
                                </span>
                            
                        </a>
                    </div>
                </div>
            </div>
            <div class="d-flex p-0 w-100">
                <div class="collapse navbar-collapse" id="navbarContent">
                    <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                        <li class="nav-item">
                            <a class="nav-link text-light ps-0" href="/?home">
                                Abo
                            </a>
                        </li>
                        
                            <li class="nav-item dropdown">
                                <a class="nav-link dropdown-toggle text-light" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                                    <span>Bücher</span>
                                </a>
                                <ul class="dropdown-menu">
                                    
                                        <li>
                                            <a class="dropdown-item" data-target="subnav-key2" href="/?artikelliste&praesgrp=BUCH&praessub=BUCH">Publikationen</a>
                                        </li>
                                    
                                </ul>
                            </li>
                        
                            <li class="nav-item dropdown">
                                <a class="nav-link dropdown-toggle text-light" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                                    <span>Merchandise</span>
                                </a>
                                <ul class="dropdown-menu">
                                    
                                        <li>
                                            <a class="dropdown-item" data-target="subnav-key2" href="/?artikelliste&praesgrp=VERSCH&praessub=VERSCH">EDP-Artikel</a>
                                        </li>
                                    
                                </ul>
                            </li>
                        
                            <li class="nav-item dropdown">
                                <a class="nav-link dropdown-toggle text-light" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                                    <span>Spezial</span>
                                </a>
                                <ul class="dropdown-menu">
                                    
                                        <li>
                                            <a class="dropdown-item" data-target="subnav-key2" href="/?artikelliste&praesgrp=GUTSCH&praessub=GUTSCH">Gutscheine</a>
                                        </li>
                                    
                                        <li>
                                            <a class="dropdown-item" data-target="subnav-key2" href="/?artikelliste&praesgrp=AUSFLUG&praessub=AUSFLUG">Ausflüge</a>
                                        </li>
                                    
                                        <li>
                                            <a class="dropdown-item" data-target="subnav-key2" href="/?artikelliste&praesgrp=STM&praessub=STM">Online Stellenmarktplatz</a>
                                        </li>
                                    
                                </ul>
                            </li>
                        
                            <li class="nav-item dropdown">
                                <a class="nav-link dropdown-toggle text-light" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                                    <span>Aus-/Weiterbildung</span>
                                </a>
                                <ul class="dropdown-menu">
                                    
                                        <li>
                                            <a class="dropdown-item" data-target="subnav-key2" href="/?artikelliste&praesgrp=KURS&praessub=KURS">Kurse</a>
                                        </li>
                                    
                                        <li>
                                            <a class="dropdown-item" data-target="subnav-key2" href="/?artikelliste&praesgrp=WB&praessub=WB">Weiterbildung</a>
                                        </li>
                                    
                                </ul>
                            </li>
                        
                    </ul>
                    <div class="ms-auto me-1 mb-1 d-none d-lg-flex">
                        <a href="https://demo-inserat.faros.ch/default?createnew=true" target="_blank" class="border rounded p-1 text-decoration-none text-white">Inserat aufgeben</a>
                    </div>
                </div>
            </div>
        </div>
    </nav>

    <div class="justify-content-center align-items-center d-none" id="loading_artikelseite" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 99999999; display: flex;">
        <div class="card" style="z-index: 9999; display: flex;">
            <div class="card-body text-center">
                <div class="justify-content-center align-items-center" style="position: fixed; left: 0; right: 0; z-index: 999; display: flex;">
                    <div class="spinner-border text-primary" role="status">
                        <span class="visually-hidden">Loading...</span>
                    </div>
                </div>
                <br><br>Daten werden geladen…<br>Wir bereiten alles für Sie vor.<br>
            </div>
        </div>
    </div>

    <!-- include-Content -->
    <main class="mb-5 pt-lg-5">
        <div class="mt-5 pt-5 mb-5 container">
            <div>

    <script>
        window.location =
            "/?home&error=Um diese Seite aufzurufen müssen Sie sich anmelden. Sie wurden auf die Startseite umgeleitet."
    </script>




<script>
    document.addEventListener("DOMContentLoaded", function() {

        $('.btn-firma').addClass("account-active");

        // --- 1. Domain Check Setup ---
        const domainStrEl = document.getElementById("maildomainchecker");
        let domainStr = domainStrEl ? domainStrEl.value : "";
        if (!domainStr) {
            const fallback = document.getElementById("maildomainchecker_fallback");
            domainStr = fallback ? fallback.value : "";
        }

        // Allowed Domain extrahieren (alles nach @)
        // Falls leer, ist allowedDomain "" und der Check ist inaktiv
        const allowedDomain = domainStr.includes("@") ? domainStr.split("@")[1].toLowerCase() : "";

        // UI Anpassung: Platzhalter aktualisieren, wenn Domain Check aktiv ist
        const localPartInput = document.getElementById("localPartInput");
        if (allowedDomain && localPartInput) {
            localPartInput.placeholder = "name@" + allowedDomain;
            // Optional: Info Text anpassen
            const modalIntro = document.getElementById("modalIntroText");
            if (modalIntro) modalIntro.innerHTML = `Sie können nur E-Mail-Adressen der Domain <strong>@${allowedDomain}</strong> hinzufügen.`;
        }

        // --- Elements ---
        const btnAdd = document.getElementById("btnAdd");
        const stagingTable = document.getElementById("stagingTable");
        const stagingContainer = document.getElementById("stagingContainer");
        const tableBody = stagingTable ? stagingTable.querySelector("tbody") : null;
        const countBadge = document.getElementById("countBadge");
        const formAlert = document.getElementById("formAlert");
        const hiddenInput = document.getElementById("hiddenEmails");
        const form = document.getElementById("regForm");

        // --- Import Elements ---
        const dropZone = document.getElementById("dropZone");
        const fileInput = document.getElementById("csvFileInput");
        const btnProcessFile = document.getElementById("btnProcessFile");
        const importFeedback = document.getElementById("importFeedback");
        const importActions = document.getElementById("importActions");
        const importFeedbackAlert = document.getElementById("importFeedbackAlert");

        // --- Free Slots ---
        const spFreeEl = document.getElementById("SPFreeSlots");
        let freeSlots = 0;
        if (spFreeEl && spFreeEl.textContent) {
            freeSlots = parseInt(spFreeEl.textContent.trim(), 10) || 0;
        }

        // --- Functions ---

        function isValidEmail(val) {
            const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            return val && re.test(val);
        }

        function updateTableVisibilityAndCount() {
            const count = tableBody.children.length;
            if (count > 0) {
                stagingContainer.style.display = "block";
            } else {
                stagingContainer.style.display = "none";
            }
            if (countBadge) countBadge.textContent = count;
        }

        // Rückgabe ist nun ein Objekt { success: bool, error: string }
        function processEmailEntry(emailInput) {
            let email = emailInput.trim();

            // 1. Domain anhängen (Auto-Complete) falls keine vorhanden
            if (!email.includes("@") && allowedDomain) {
                email = email + "@" + allowedDomain;
            }

            // 2. Format Validierung
            if (!isValidEmail(email)) {
                return {
                    success: false,
                    error: 'FORMAT'
                };
            }

            // 3. Domain Check (Strict Enforcement)
            if (allowedDomain) {
                const parts = email.split('@');
                const domainPart = parts[parts.length - 1].toLowerCase();

                if (domainPart !== allowedDomain) {
                    return {
                        success: false,
                        error: 'WRONG_DOMAIN'
                    };
                }
            }

            // 4. Duplikate prüfen (in Staging Liste)
            const currentRows = Array.from(tableBody.querySelectorAll("td:first-child"));
            if (currentRows.some(td => td.textContent.trim().toLowerCase() === email.toLowerCase())) {
                return {
                    success: false,
                    error: 'DUPLICATE'
                };
            }

            // Eintrag hinzufügen
            const tr = document.createElement("tr");
            tr.innerHTML = `
                <td class="ps-2 text-dark fw-bold py-1 small">${email}</td>
                <td class="text-end py-1">
                    <button type="button" class="btn btn-sm text-danger delete-row p-0" title="Entfernen">
                        <i class="bi bi-x-lg"></i>
                    </button>
                </td>
            `;

            tr.querySelector(".delete-row").addEventListener("click", function() {
                tr.remove();
                updateTableVisibilityAndCount();
            });

            tableBody.prepend(tr);
            updateTableVisibilityAndCount();

            return {
                success: true,
                error: null
            };
        }

        // --- Event Listeners: Manuell ---

        btnAdd.addEventListener("click", function() {
            const val = localPartInput.value;
            formAlert.innerHTML = "";
            localPartInput.classList.remove("is-invalid");

            if (!val) return;

            const result = processEmailEntry(val);

            if (result.success) {
                localPartInput.value = "";
                localPartInput.focus();
            } else {
                // Fehlerbehandlung
                if (result.error === 'FORMAT') {
                    localPartInput.classList.add("is-invalid");
                    formAlert.innerHTML = '<span class="text-danger">Ungültiges E-Mail Format.</span>';
                } else if (result.error === 'WRONG_DOMAIN') {
                    localPartInput.classList.add("is-invalid");
                    formAlert.innerHTML = `<span class="text-danger">Nur E-Mails der Domain <strong>@${allowedDomain}</strong> erlaubt.</span>`;
                } else if (result.error === 'DUPLICATE') {
                    formAlert.innerHTML = '<span class="text-warning">Eintrag existiert bereits in der Liste.</span>';
                }
            }
        });

        localPartInput.addEventListener("keydown", function(e) {
            if (e.key === "Enter") {
                e.preventDefault();
                btnAdd.click();
            }
        });

        localPartInput.addEventListener("input", function() {
            this.classList.remove("is-invalid");
        });

        // --- Event Listeners: Import ---

        if (dropZone) {
            dropZone.addEventListener("dragover", (e) => {
                e.preventDefault();
                dropZone.classList.remove("bg-light");
                dropZone.classList.add("bg-white", "border-primary");
            });
            dropZone.addEventListener("dragleave", () => {
                dropZone.classList.add("bg-light");
                dropZone.classList.remove("bg-white", "border-primary");
            });
            dropZone.addEventListener("drop", (e) => {
                e.preventDefault();
                dropZone.classList.add("bg-light");
                dropZone.classList.remove("bg-white", "border-primary");
                if (e.dataTransfer.files.length && fileInput) {
                    fileInput.files = e.dataTransfer.files;
                    handleFileSelect();
                }
            });
        }

        if (fileInput) fileInput.addEventListener("change", handleFileSelect);

        function handleFileSelect() {
            if (!fileInput) return;
            importFeedbackAlert.innerHTML = "";
            if (fileInput.files.length > 0) {
                importFeedback.textContent = fileInput.files[0].name;
                importActions.classList.remove("d-none");
                dropZone.classList.add("d-none");
            } else {
                importActions.classList.add("d-none");
                dropZone.classList.remove("d-none");
            }
        }

        if (btnProcessFile) btnProcessFile.addEventListener("click", function() {
            const file = fileInput ? fileInput.files[0] : null;
            if (!file) return;

            const reader = new FileReader();
            reader.onload = function(e) {
                const text = e.target.result;
                const lines = text.split(/[\r\n,;]+/);
                let successCount = 0;
                let domainErrors = 0;

                lines.forEach(line => {
                    let clean = line.trim().replace(/[\uFEFF\u00A0\u200B]/g, '');
                    if (!clean) return;

                    const result = processEmailEntry(clean);
                    if (result.success) {
                        successCount++;
                    } else if (result.error === 'WRONG_DOMAIN') {
                        domainErrors++;
                    }
                });

                if (successCount > 0) {
                    let msg = `<span class="text-success fw-bold"><i class="bi bi-check-circle"></i> ${successCount} hinzugefügt!</span>`;
                    if (domainErrors > 0) {
                        msg += `<br><span class="text-warning small">${domainErrors} übersprungen (Falsche Domain).</span>`;
                    }
                    importFeedbackAlert.innerHTML = msg;

                    setTimeout(() => {
                        fileInput.value = "";
                        importActions.classList.add("d-none");
                        dropZone.classList.remove("d-none");
                        importFeedbackAlert.innerHTML = "";
                    }, 3000); // Etwas länger anzeigen falls Warnungen da sind

                } else {
                    if (domainErrors > 0) {
                        importFeedbackAlert.innerHTML = `<span class="text-danger">Alle Einträge hatten die falsche Domain (@${allowedDomain} erforderlich).</span>`;
                    } else {
                        importFeedbackAlert.innerHTML = `<span class="text-danger">Keine neuen gültigen Einträge gefunden.</span>`;
                    }
                }
            };
            reader.readAsText(file, 'ISO-8859-1');
        });


        // --- Submit ---
        form.addEventListener("submit", function(e) {
            formAlert.innerHTML = "";
            let finalEmails = [];

            tableBody.querySelectorAll("td:first-child").forEach(td => {
                finalEmails.push(td.textContent.trim());
            });

            // Input Feld Check (Leftovers)
            const leftover = localPartInput.value.trim();
            if (leftover !== "") {
                const result = processEmailEntry(leftover);

                if (result.success) {
                    // Wenn erfolgreich validiert, zur Liste hinzufügen, bevor wir senden
                    // (processEmailEntry hat es bereits zur Tabelle hinzugefügt, also holen wir es via selector oder fügen manuell hinzu)
                    // Da processEmailEntry die Tabelle manipuliert, ist es bereits drin!
                    // Wir müssen nur finalEmails updaten
                    // ABER: finalEmails wurde oben schon befüllt. Wir müssen es neu befüllen oder pushen.

                    // Da processEmailEntry die Tabelle DOM ändert, lesen wir am besten am Ende nochmal neu aus oder fügen hier direkt hinzu.
                    // Aber processEmailEntry hat die Row schon ge-prepended. 
                    // Das heißt, beim nächsten Durchlauf wäre es drin. 
                    // Einfacher: Wir schauen ob es geklappt hat, wenn ja, fügen wir es finalEmails array hinzu.

                    // Da wir oben in processEmailEntry die Domain-Logic schon haben, müssen wir nur das "validierte" Ergebnis (mit angehängter Domain) wissen.
                    // Das ist etwas tricky, da processEmailEntry void return macht (bzw nur status).
                    // Workaround: Wir sammeln die Emails einfach neu:
                    finalEmails = [];
                    tableBody.querySelectorAll("td:first-child").forEach(td => {
                        finalEmails.push(td.textContent.trim());
                    });

                } else {
                    e.preventDefault();
                    // Tab Wechsel wenn nötig
                    const manualTab = new bootstrap.Tab(document.querySelector('#manual-tab'));
                    manualTab.show();

                    if (result.error === 'WRONG_DOMAIN') {
                        localPartInput.classList.add("is-invalid");
                        formAlert.innerHTML = `<span class="text-danger">Bitte korrigieren: Nur @${allowedDomain} erlaubt.</span>`;
                    } else {
                        localPartInput.classList.add("is-invalid");
                        formAlert.innerHTML = '<span class="text-danger">Bitte korrigieren Sie das Eingabefeld.</span>';
                    }
                    return;
                }
            }

            if (finalEmails.length === 0) {
                e.preventDefault();
                formAlert.innerHTML = '<span class="text-danger">Bitte fügen Sie mindestens ein Mitglied hinzu.</span>';
                return;
            }

            if (finalEmails.length > freeSlots) {
                e.preventDefault();
                formAlert.innerHTML = `<span class="text-danger">Sie haben ${finalEmails.length} Einträge, aber nur ${freeSlots} freie Lizenzen.</span>`;
                return;
            }

            hiddenInput.value = finalEmails.join("\n");
        });

        // Reset beim Schließen
        const myModalEl = document.getElementById('addUserModal');
        myModalEl.addEventListener('hidden.bs.modal', function(event) {
            formAlert.innerHTML = "";
            localPartInput.value = "";
            localPartInput.classList.remove("is-invalid");
            fileInput.value = "";
            importActions.classList.add("d-none");
            dropZone.classList.remove("d-none");
            const firstTab = new bootstrap.Tab(document.querySelector('#manual-tab'));
            firstTab.show();
        });
    });
</script></div>
        </div>
    </main>

    <!-- Footer -->
    <footer class="text-lg-start bg-header-footer text-light p-1">
        <div class="d-sm-flex d-block column footer_icons container my-4">
            <div class="me-auto">
                <div>
                    <p class="py-2 h5">
                        <b>Versand</b>
                    </p>
                </div>
                <div>
                    <img src="images/post/Schweizerische_Post_Logo.svg" alt="ch-post" class="pe-3">
                </div>
            </div>
            <div class="my-auto ms-auto">
                <div>
                    <p class="py-2 h5">
                        <b>Bezahlungsmöglichkeiten</b>
                    </p>
                </div>
                <div class="payment_img">
                    <img src="images/payment_options/card_twint.svg" alt="twint">
                    <img src="images/payment_options/card_postfinance.svg" alt="postfinance">
                    <img src="images/payment_options/card_efinance.svg" alt="post_efinance">
                    <img src="images/payment_options/card_visa.svg" alt="visa">
                    <img src="images/payment_options/card_mastercard.svg" alt="mastercard">
                    <img src="images/payment_options/card_paypal.svg" alt="paypal">
                    <img src="images/payment_options/card_dinersclub.svg" alt="dinersclub">
                    <img src="images/payment_options/card_amex.svg" alt="amex">
                    <img src="images/payment_options/card_rechnung.png" alt="rechnung">
                </div>
            </div>
        </div>
        <hr>
        <div>
            <div class="container text-start mt-5">
                <div class="d-flex flex-wrap mt-3">
                    <div class="col-2 mx-auto mb-4 d-none d-md-block">
                        <img src="/images/Edi_Maskottchen_rgb.png" alt="EDP-Logo" height="100">
                    </div>

                    <div class="col-12 col-sm-2 mx-auto mb-4 pb-4 pb-sm-0 text-light text-decoration-none">
                        <p class="h5 text-uppercase fw-bold mb-4">
                            Links
                        </p>
                        <div class="d-block">
                            <a href="/?home" class="text-light">Home</a><br>
                            <a href="/?hilfe" class="text-light">Hilfe</a><br>
                            <a href="/?Kontakt" class="text-light">Kontakt</a><br>
                            <span class="text-light text-decoration-none d-block d-md-none">
                                <a href="http://www.edp.swiss" target="_blank" class="text-light">Web</a><br>
                                <a href="/images/agb_de-CH.pdf" target="_blank" class="text-light">AGB</a><br>
                                <a href="/jobsportal/" class="text-light">Stellenmarkt</a>
                            </span>
                        </div>
                    </div>

                    <div class="col-12 col-sm-2 mx-auto mb-4 d-none d-md-block text-light text-decoration-none">
                        <br><br>
                        <a href="http://www.edp.swiss" target="_blank" class="text-light">Web</a><br>
                        <a href="/images/agb_de-CH.pdf" target="_blank" class="text-light">AGB</a><br>
                        <a href="/jobsportal/" class="text-light">Stellenmarkt</a>
                    </div>

                    <div class="col-5 col-sm-5 col-md-2 mx-auto mb-4 text-light text-decoration-none">
                        <p class="text-uppercase fw-bold mb-4 h5">
                            Adresse
                        </p>
                        <div>
                            <a class="text-light" target="_blank" href="https://www.google.ch/maps/place/Horwerstrasse+62,+6010+Kriens/@47.0288651,8.2904096,17z/data=!3m1!4b1!4m5!3m4!1s0x478ffaffaa1baca5:0x48e9d958fcf4!8m2!3d47.0288651!4d8.2925983">
                                edp-services ag<br>Horwerstrasse 62<br>CH-6010 Kriens
                            </a>
                        </div>
                    </div>

                    <div class="col-7 col-sm-5 col-md-2 mx-auto mb-md-0 mb-4 text-decoration-none">
                        <p class="h5 text-uppercase fw-bold mb-4">
                            Kontakt
                        </p>
                        <div>
                            <a class="text-light" href="tel:+41 41 349 17 17">Telefon: +41 41 349 17 17<br></a>
                            <a class="text-light" href="tel:+41 41 349 17 17">Hotline: +41 41 349 17 17<br></a>
                            <a class="text-light" href="mailto:info@edp.ch">Mail: info@edp.ch</a>
                        </div>
                    </div>

                </div>
            </div>
        </div>
        <div class="text-center pt-4">
            <hr>
            <small>Dies ist eine interaktive Demo-Anwendung zur Veranschaulichung von Design und Funktionalität. Alle Daten und Profile sind fiktiv.</small>
            <hr>
            <p>© edp-services ag <span id="aktuellesJahr">aktuelles Jahr</span> alle Rechte vorbehalten</p>
        </div>
    </footer>

    <!-- Navigtaion -->
    <div class="offcanvas offcanvas-end text-dark" tabindex="-1" id="navigation_canvas">
        <div class="offcanvas-header">
            <div>
                
                    <a class="offcanvas-title text-black text-decoration-none" href="/?login" aria-label="Profile/Login" data-bs-toggle="offcanvas" data-bs-target="#login_register"><i class="bi bi-person-fill"></i> Cockpit</a>
                
                
                <a href="#" class="text-black text-decoration-none ms-3" aria-label="Warenkorb" data-bs-toggle="offcanvas" data-bs-target="#basket">
                    
                        <span rel="tooltip" title="0 Artikel im Warenkorb">
                            <i class="bi bi-cart4 mb-3"></i>
                            <span>Warenkorb</span>
                            
                            
                            
                        </span>
                    
                </a>
            </div>
            <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
        </div>
        <div class="offcanvas-body p-0 mobile-navigation">
            <a href="https://demo-inserat.faros.ch/default" target="_blank" class="dropdown-item pb-4">Inserat aufgeben <i class="bi bi-arrow-right"></i></a>
            <a class="dropdown-item" href="/?home">Abos</a>
            
                <div>
                    <a class="dropdown-item d-flex" data-bs-toggle="collapse" href="#BUCH_collapse" role="button" aria-expanded="false" aria-controls="BUCH_collapse">
                        <span>Bücher</span>
                        <i class="bi bi-chevron-down ms-auto"></i>
                    </a>
                    <div class="collapse" id="BUCH_collapse">
                        
                            <a class="dropdown-item ps-5" data-target="subnav-key2" href="/?artikelliste&praesgrp=BUCH&praessub=BUCH">Publikationen</a>
                        
                    </div>
                </div>
            
                <div>
                    <a class="dropdown-item d-flex" data-bs-toggle="collapse" href="#ARTN_collapse" role="button" aria-expanded="false" aria-controls="ARTN_collapse">
                        <span>Merchandise</span>
                        <i class="bi bi-chevron-down ms-auto"></i>
                    </a>
                    <div class="collapse" id="ARTN_collapse">
                        
                            <a class="dropdown-item ps-5" data-target="subnav-key2" href="/?artikelliste&praesgrp=VERSCH&praessub=VERSCH">EDP-Artikel</a>
                        
                    </div>
                </div>
            
                <div>
                    <a class="dropdown-item d-flex" data-bs-toggle="collapse" href="#SPEZ_collapse" role="button" aria-expanded="false" aria-controls="SPEZ_collapse">
                        <span>Spezial</span>
                        <i class="bi bi-chevron-down ms-auto"></i>
                    </a>
                    <div class="collapse" id="SPEZ_collapse">
                        
                            <a class="dropdown-item ps-5" data-target="subnav-key2" href="/?artikelliste&praesgrp=GUTSCH&praessub=GUTSCH">Gutscheine</a>
                        
                            <a class="dropdown-item ps-5" data-target="subnav-key2" href="/?artikelliste&praesgrp=AUSFLUG&praessub=AUSFLUG">Ausflüge</a>
                        
                            <a class="dropdown-item ps-5" data-target="subnav-key2" href="/?artikelliste&praesgrp=STM&praessub=STM">Online Stellenmarktplatz</a>
                        
                    </div>
                </div>
            
                <div>
                    <a class="dropdown-item d-flex" data-bs-toggle="collapse" href="#KURS_collapse" role="button" aria-expanded="false" aria-controls="KURS_collapse">
                        <span>Aus-/Weiterbildung</span>
                        <i class="bi bi-chevron-down ms-auto"></i>
                    </a>
                    <div class="collapse" id="KURS_collapse">
                        
                            <a class="dropdown-item ps-5" data-target="subnav-key2" href="/?artikelliste&praesgrp=KURS&praessub=KURS">Kurse</a>
                        
                            <a class="dropdown-item ps-5" data-target="subnav-key2" href="/?artikelliste&praesgrp=WB&praessub=WB">Weiterbildung</a>
                        
                    </div>
                </div>
            
        </div>
    </div>

    <!-- Login -->
    <div class="offcanvas offcanvas-end text-dark" tabindex="-1" id="login_register">
        <div class="offcanvas-header pb-2">
            <h3 class="offcanvas-title d-none d-lg-block">Cockpit</h3>
            <p class="offcanvas-title d-lg-none d-block"><b><i class="bi bi-cart4"></i></b><a href="/?home" class="text-decoration-none text-black"> Shop</a></p>
            <button type="button" class="btn-close text-reset text-light" data-bs-dismiss="offcanvas" aria-label="Close"></button>
        </div>
        <div class="offcanvas-body">
            
                <div>

                    <form id="authForm" action="https://demo-api.faros.ch/japiform" method="POST" novalidate="">
                        <div class="form-group mb-1">
                            <p>Bitte geben Sie Ihre E-Mail-Adresse ein, um einen einmaligen Anmeldelink zu erhalten.</p>
                            <label for="login_user">E-Mail:</label>
                            <input type="email" class="form-control" id="login_user" name="login_user" required="">
                            <div id="emailError" style="color: red; display: none; font-size: 0.9em; margin-top: 4px;">
                                Bitte geben Sie eine gültige E-Mail-Adresse ein.
                            </div>
                        </div>
                        <!-- Verstecktes Feld für JSON Payload -->
                        <input type="hidden" name="payload" id="payload">

                        <div class="form-group">
                            <input type="submit" class="form-control btn btn-primary mb-2 mt-2 fw-bold" value="Anmeldelink anfordern">

                        </div>
                    </form>

                    <script>
                        document.getElementById('authForm').addEventListener('submit', function(event) {
                            event.preventDefault();

                            const emailInput = document.getElementById('login_user');
                            const email = emailInput.value.trim();
                            const errorBox = document.getElementById('emailError');

                            // E-Mail-Validierung mit regulärem Ausdruck
                            const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/;

                            if (!emailRegex.test(email)) {
                                errorBox.style.display = 'block';
                                emailInput.classList.add('is-invalid');
                                return; // stoppe Formularversand
                            } else {
                                errorBox.style.display = 'none';
                                emailInput.classList.remove('is-invalid');
                            }

                            const payload = {
                                action: "authlink",
                                email: email,
                                targetKey_return: "ReturnLoginUrl",
                                targetKey_success: "SuccessLoginUrl",
                                targetKey_error: "ErrorUrl",
                                targetKey_landingpage: "LandingPageUrl",
                                mailTemplateKey_AuthConfirm: "auth_de"
                            };

                            document.getElementById('payload').value = JSON.stringify(payload);

                            event.target.submit();
                        });
                    </script>

                </div>
            

            
                <div class="d-none d-lg-block">
                    <button onclick="location.href='/?benutzerkonto/adresse'" type="button" class="btn btn-primary w-100 mb-2">Mein Cockpit</button>
                    <button onclick="location.href='/shop/logOffUser?startUrl=/?home'" type="button" class="btn w-100 border">Abmelden</button>
                    <br>
                    <br>
                </div>
                <div class="d-lg-none d-block navifation mobile-navigation">
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Benutzerdaten</h5>
                        <a class="btn btn-account btn-adressen" aria-current="page" href="/?benutzerkonto/adresse">
                            <i class="bi bi-house-door-fill me-3"></i> Meine Adresse
                        </a>
                        <a class="btn btn-account btn-email" href="/?benutzerkonto/email">
                            <i class="bi bi-envelope me-3"></i> E-Mail
                        </a>
                        <a class="btn btn-account btn-kreditkarten" href="/?benutzerkonto/kreditkarten">
                            <i class="bi bi-credit-card me-3"></i> Kreditkarte
                        </a>
                    </div>
                    <br>
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Bestellungen</h5>
                        <a class="btn btn-account btn-bestellungen" href="/?benutzerkonto/bestellungen">
                            <i class="bi bi-cart4 me-3"></i> Meine Bestellungen
                        </a>
                        <a class="btn btn-account btn-rechnungen" href="/?benutzerkonto/rechnungen">
                            <i class="bi bi-envelope-paper me-3"></i> Meine Rechnungen
                        </a>
                    </div>
                    <br>
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Dienstleistungen</h5>
                        <a class="btn btn-account btn-abos" href="/?benutzerkonto/abo/uebersicht">
                            <i class="bi bi-newspaper me-3"></i> Meine Abos
                        </a>
                        <a class="btn btn-account btn-newsletter" href="/?benutzerkonto/newsletter">
                            <i class="bi bi-postcard me-3"></i> Newsletter
                        </a>
                        <a class="btn btn-account btn-mitgliedschaft d-none" href="/?benutzerkonto/mitgliedschaft">
                            <i class="bi bi-person me-3"></i> Mitgliedschaft
                        </a>
                    </div>
                    <br>
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Anlässe und Reisen</h5>
                        <a class="btn btn-account btn-reisen" href="/?benutzerkonto/reisen">
                            <i class="bi bi-briefcase me-3"></i> Meine Anlässe und Reisen
                        </a>
                    </div>
                    <br>
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Aus- und Weiterbildungen</h5>
                        <a class="btn btn-account btn-bildung" href="/?benutzerkonto/bildung">
                            <i class="bi bi-briefcase me-3"></i> Meine Weiterbildungen
                        </a>
                    </div>
                    <br>
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Werbeaufträge</h5>
                        <span><!-- Ungültiges Tag. Fehler: System.NullReferenceException: Object reference not set to an instance of an object.
   at CMSParser.ParseHTML(String inputHTML, String arguments) in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\CMSParser.cs:line 1537--></span>
                        <a class="btn btn-account btn-inserate" href="/?benutzerkonto/inserat/uebersicht">
                            <i class="bi bi-file-earmark-image me-3"></i> Meine Werbeaufträge
                        </a>
                        <a class="btn btn-account d-flex" href="https://entw-inserat.faros.ch/default?createnew=true">
                            <i class="bi bi-window  me-3"></i> Inserat aufgeben<i class="bi bi-arrow-right ms-auto"></i>
                        </a>
                    </div>
                    <br>
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Stellenmarktplatz</h5>
                        <span><!-- Ungültiges Tag. Fehler: System.NullReferenceException: Object reference not set to an instance of an object.
   at CMSParser.ParseHTML(String inputHTML, String arguments) in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\CMSParser.cs:line 449--></span>
                    </div>
                    <br>
                    <div class="w-100 d-flex flex-column">
                        <h5 class="border-bottom border-dark">Häufige Fragen</h5>
                        <a class="btn btn-account btn-help" href="/?hilfe&benutzerkonto=true">
                            <i class="bi bi-question-circle-fill me-3"></i> FAQ
                        </a>
                    </div>
                </div>
            
        </div>
        
    </div>

    <!-- Warenkorb -->
    <div class="offcanvas offcanvas-end text-dark" tabindex="-1" id="basket">
        <div class="offcanvas-header">
            <h3 class="offcanvas-title d-none d-sm-block">Warenkorb</h3>
            <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
        </div>
        <div class="offcanvas-body">
            
                
                    <div class="text-center">
                        <div id="basketInner">
                            <div class="alert alert-danger">
                                <h5>
                                    <i class="bi bi-cart4 h4 me-2"></i>
                                    <span>Keine Artikel im Warenkorb</span>
                                </h5>
                            </div>
                        </div>
                        <button class="btn btn-primary w-100 mb-3" data-bs-dismiss="offcanvas">Weiter einkaufen</button>
                        
                            <hr class="mb-3">
                            <b>Sie haben bereits ein Konto?</b>
                            <p>Dann <a class="btn-link" href="#" data-bs-toggle="offcanvas" data-bs-target="#login_register">melden Sie sich hier an</a>, um die Bestellung später schneller abzuschliessen.</p>
                        
                    </div>
                
                
            
        </div>
    </div>

    <div id="benutzer_navigation_inner" class="col-lg-3 mb-5">
        <span><!-- Ungültiges Tag. Fehler: System.NullReferenceException: Object reference not set to an instance of an object.
   at Shop_Lib.GetEditRechnungsadresses() in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\Shop_Lib.cs:line 1084
   at CMSParser.ParseHTML(String inputHTML, String arguments) in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\CMSParser.cs:line 890--></span>
        <br>
        <h5 class="border-bottom border-dark">Benutzerdaten</h5>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <a class="btn btn-account btn-adressen" aria-current="page" href="/?benutzerkonto/adresse">
                <i class="bi bi-house-door-fill me-3"></i> Meine Adresse
            </a>
            <a class="btn btn-account btn-email" href="/?benutzerkonto/email">
                <i class="bi bi-envelope me-3"></i> E-Mail
            </a>
            <a class="btn btn-account btn-kreditkarten" href="/?benutzerkonto/kreditkarten">
                <i class="bi bi-credit-card me-3"></i> Kreditkarte
            </a>
        </div>
        <br>
        <div class="firmanav">
            <div class="border-bottom border-dark d-flex">
                <h5 class="m-0">Organisation</h5>
                <span class="badge rounded-pill text-bg-secondary my-1 ms-2">Beta</span>
            </div>
            <div class="w-100 d-flex flex-column card-light fw-bold">
                <a class="btn btn-account btn-firma" href="/?benutzerkonto/organisation">
                    <i class="bi bi-building me-3"></i> Verwaltung
                </a>
            </div>
            <br>
        </div>
        <h5 class="border-bottom border-dark">Bestellungen</h5>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <a class="btn btn-account btn-bestellungen" href="/?benutzerkonto/bestellungen">
                <i class="bi bi-cart4 me-3"></i> Meine Bestellungen
            </a>
            <a class="btn btn-account btn-rechnungen" href="/?benutzerkonto/rechnungen">
                <i class="bi bi-envelope-paper me-3"></i> Meine Rechnungen
            </a>
        </div>
        <br>
        <h5 class="border-bottom border-dark">Dienstleistungen</h5>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <a class="btn btn-account btn-abos" href="/?benutzerkonto/abo/uebersicht">
                <i class="bi bi-newspaper me-3"></i> Meine Abos
            </a>
            <a class="btn btn-account btn-newsletter" href="/?benutzerkonto/newsletter">
                <i class="bi bi-postcard me-3"></i> Newsletter
            </a>
            <a class="btn btn-account btn-mitgliedschaft d-none" href="/?benutzerkonto/mitgliedschaft">
                <i class="bi bi-person me-3"></i> Mitgliedschaft
            </a>
        </div>
        <br>
        <div class="border-bottom border-dark d-flex align-items-center">
            <h5 class="m-0">Anlässe und Reisen</h5>
        </div>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <a class="btn btn-account btn-reisen" href="/?benutzerkonto/reisen">
                <i class="bi bi-briefcase me-3"></i> Anlässe und Reisen
            </a>
        </div>
        <br>
        <div class="border-bottom border-dark d-flex align-items-center">
            <h5 class="m-0">Aus- und Weiterbildungen</h5>
        </div>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <a class="btn btn-account btn-bildung" href="/?benutzerkonto/bildung">
                <i class="bi bi-briefcase me-3"></i> Meine Weiterbildungen
            </a>
        </div>
        <br>
        <h5 class="border-bottom border-dark">Medien</h5>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <a class="btn btn-account btn-medien" href="/?benutzerkonto/medien">
                <i class="bi bi-file-image me-3"></i> Meine Medien
            </a>
        </div>
        <br>
        <h5 class="border-bottom border-dark">Werbeaufträge</h5>
        <div class="w-100 d-flex flex-column card-light fw-bold p-0">
            <span><!-- Ungültiges Tag. Fehler: System.NullReferenceException: Object reference not set to an instance of an object.
   at CMSParser.ParseHTML(String inputHTML, String arguments) in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\CMSParser.cs:line 1537--></span>
            <a class="btn btn-account btn-inserate px-3 pt-3" href="/?benutzerkonto/inserat/uebersicht">
                <i class="bi bi-file-earmark-image me-3"></i> Meine Werbeaufträge
            </a>
            <a class="btn btn-account d-flex px-3 pb-3" href="https://entw-inserat.faros.ch/default?createnew=true">
                <i class="bi bi-window  me-3"></i> Inserat aufgeben<i class="bi bi-arrow-right ms-auto"></i>
            </a>
        </div>
        <br>
        <h5 class="border-bottom border-dark">Stellenmarktplatz</h5>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <span><!-- Ungültiges Tag. Fehler: System.NullReferenceException: Object reference not set to an instance of an object.
   at CMSParser.ParseHTML(String inputHTML, String arguments) in c:\inetpub\demoshop.faros.ch\App_Code\Libraries\CMSParser.cs:line 449--></span>
        </div>
        <br>
        <h5 class="border-bottom border-dark">Häufige Fragen</h5>
        <div class="w-100 d-flex flex-column card-light fw-bold">
            <a class="btn btn-account btn-help" href="/?hilfe">
                <i class="bi bi-question-circle-fill me-3"></i> FAQ
            </a>
        </div>
        <br>
        <a href="/shop/logOffUser?startUrl=/?home" class="w-100 btn text-start m-0 p-0">Abmelden <i class="bi bi-box-arrow-right"></i></a>
    </div>

    <!-- allgemeiner Fehler Modal -->
    <div class="modal fade" id="errorModal" role="dialog" tabindex="-1" aria-labelledby="errorModal" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <div class="alert alert-danger">
                        <div id="errorModalContent"></div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Schliessen</button>
                </div>
            </div>
        </div>
    </div>

    <!-- allgemeiner Info Modal -->
    <div class="modal fade" id="infoModal" tabindex="-1" aria-labelledby="infoModal" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <div class="alert alert-success">
                        <div id="infoModalContent"></div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Schliessen</button>
                </div>
            </div>
        </div>
    </div>

    <!-- Modal Warenkorb loeschen -->
    <div class="modal fade" id="confirmModalWarenkorb" tabindex="-1" aria-labelledby="confirmModalWarenkorb" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body confirmModalWarenkorbText">
                    <div class="alert alert-danger">
                        Alle Artikel im Warenkorb löschen?
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Nein</button>
                    <a href="/shop/killWarenkorb" class="btn btn-primary">Ja</a>
                </div>
            </div>
        </div>
    </div>

    <!-- Modal Login verifikation -->
    <div class="modal fade" id="resendActivation" tabindex="-1" aria-labelledby="resendActivation" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body resendActivationText">
                    <div class="alert alert-info">
                        Die E-Mail Adresse ist noch nicht verifiziert. Sollen wir dir eine neue Verifikation-E-Mail senden?
                    </div>
                </div>
                <div class="modal-footer">
                    <form action="/shop/resendActivation">
                        <input type="hidden" id="verifyEmail" name="verifyEmail" value="">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Nein</button>
                        <input class="btn btn-primary" type="submit" value="ja">
                    </form>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="position: fixed; top: 0px; left: 0px; z-index: 30000000; 
    height: 100%; width: 100%; background-color: #FFFFFF">
            <p style="margin-left: 10px">Bitte aktivieren Sie Javascript, um den Webshop nutzen zu können.</p>
        </div>
    </noscript>

    <script>
        window.onpagehide = (event) => {
            $("#loading_artikelseite").hide();
        };

        $("#loading_artikelseite").addClass("d-none");

        document.querySelectorAll(".btn-account").forEach(a => {
            a.addEventListener("click", () => {
                setTimeout(() => {
                    $("#loading_artikelseite").removeClass("d-none");
                }, 250);
            });
        });

        document.addEventListener("DOMContentLoaded", function() {
            bodyResize();
        });

        // Select Startdatum
        function startdate(element, itemID) {
            saveStartDate($(element).datepicker('getFormattedDate'), itemID);
            console.log(element);
        }

        function saveStartDate(date, itemID) {
            console.log(date, itemID);
            $.get("/shop/removeItem?itemid=" + itemID, function() {
                if (itemID != "") {
                    $.get("/shop/addItem?itemID=" + itemID + "&startDate=" + date, function() {
                        document.location.href = window.location.href;
                    });
                }
            });
        }

        //fügt navigation dynamisch ein
        if (document.getElementById("benutzer_navigation")) {
            if ($(".firmaname").length > 0) {
                $('.firmanav').show();
            } else {
                $('.firmanav').hide();
            }
            $('#benutzer_navigation_inner').addClass('d-none d-lg-block pe-0');
            const node = document.getElementById("benutzer_navigation_inner");
            document.getElementById("benutzer_navigation").replaceWith(node);
        } else {
            $('#benutzer_navigation_inner').hide();
        }

        //fügt basket dynamisch ein
        if (document.getElementById("offertBasket")) {
            const basket = document.getElementById("basketInner");
            const firstChildDiv = basketInner.firstElementChild;
            const clone = firstChildDiv.cloneNode(true)
            document.getElementById("offertBasket").appendChild(clone);
        }

        function StartPageFunction() {
            // für collapsible
            var coll = document.getElementsByClassName("collapsible");
            var i;

            for (i = 0; i < coll.length; i++) {
                coll[i].addEventListener("click", function() {
                    this.classList.toggle("active");
                    var content = this.nextElementSibling;
                    try {
                        if (content.style.display === "block") {
                            content.style.display = "none";
                        } else {
                            content.style.display = "block";
                        }
                    } catch (e) {}
                });
            }
        }

        // start function
        try {
            StartPageFunction();
        } catch (e) {}

        const mengenangabeMaster = document.querySelectorAll('.mengenangabeMaster');
        const mengenangabeMasterID = document.querySelectorAll('.mengenangabeMasterID');

        for (let i = 0; i < mengenangabeMaster.length; i++) {
            const element = mengenangabeMaster[i];
            element.addEventListener('blur', (event) => handleFormSubmitMaster(event, i));
            element.addEventListener('keypress', (event) => handleFormSubmitMaster(event, i));
        }

        function handleFormSubmitMaster(event, count) {
            if (event.type === "keypress" && event.key !== "Enter") {
                return;
            }
            event.preventDefault();
            window.location.href = "/shop/addItemMenge?itemID=" + mengenangabeMasterID[count].value +
                "&showCard=true&menge=" + mengenangabeMaster[count].value;
        }

        $('.navbar .dropdown').hover(function() {
            $(this).find('.dropdown-menu').first().stop(true, true).delay(250).slideDown();
        }, function() {
            $(this).find('.dropdown-menu').first().stop(true, true).delay(100).slideUp();
        });

        $(function() {
            $('.mengenangabeMaster').each(function() {
                var $input = $(this);
                // find the nearest container that holds the hidden max field for this item
                var $container = $input.closest('.card, .card-body, .row');
                var maxVal = $container.find('input[name="maxBasketMenge"]').val();

                if (!maxVal) {
                    // fallback: look in a slightly larger scope
                    maxVal = $input.closest('div').find('input[name="maxBasketMenge"]').val();
                }

                if (maxVal && $.isNumeric(maxVal) && maxVal > 0) {
                    var max = parseInt(maxVal, 10);
                    // prevent manual editing
                    $input.prop('readonly', true);

                    // find plus button for this item (title or class)
                    var $plus = $container.find('a[title="Menge erhöhen"], a.MengePlus');

                    var qty = parseInt($input.val(), 10) || 0;
                    if (qty >= max) {
                        // disable plus
                        $plus.addClass('disabled').attr('aria-disabled', 'true').removeAttr('href').css('pointer-events', 'none').css('opacity', '0.2').off('click');
                    } else {
                        // ensure plus is enabled (in case of re-run)
                        $plus.removeClass('disabled').removeAttr('aria-disabled').css('pointer-events', 'auto');
                    }
                }
            });
        });
    </script>

    <script>
        const checkoutForm = document.getElementById("checkoutForm");
        if (checkoutForm) {
            checkoutForm.addEventListener("submit", function(e) {
                const emailCheckout = document.getElementById("emailInput").value.trim();
                if (!emailCheckout) {
                    alert("Bitte gib eine gültige E-Mail-Adresse ein.");
                    e.preventDefault();
                    return;
                }

                const hiddenInputs = document.querySelectorAll("#myHiddenBasket input[type=hidden]");
                const basket = [];

                hiddenInputs.forEach(input => {
                    const valueParts = input.value.split("|");
                    const itemid = valueParts[0] || "";
                    const qty = parseInt(valueParts[1]) || 1;
                    const startdate = valueParts[2] || "";

                    basket.push({
                        itemid,
                        qty,
                        startdate
                    });
                });

                const payloadCheckout = {
                    action: "createcheckout",
                    email: emailCheckout,
                    targetKey_landingpage: "LandingPageUrl",
                    targetKey_return: "CheckoutConfirmPage",
                    targetKey_offer: "OfferUrl",
                    targetKey_error: "ErrorUrl",
                    mailTemplateKey_BuyConfirm: "buyconfirm_de",
                    basket: basket
                };

                document.getElementById("payloadInput").value = JSON.stringify(payloadCheckout);
            });
        }

    </script>

</body></html>