{"id":772,"date":"2024-11-11T13:02:01","date_gmt":"2024-11-11T12:02:01","guid":{"rendered":"http:\/\/wordpress.p681107.webspaceconfig.de\/online-reservieren\/"},"modified":"2025-01-27T12:45:14","modified_gmt":"2025-01-27T11:45:14","slug":"online-reservation","status":"publish","type":"page","link":"https:\/\/skiverleih-wahle.de\/en\/online-reservation\/","title":{"rendered":"Online reservation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"772\" class=\"elementor elementor-772 elementor-81\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-349495d e-flex e-con-boxed e-con e-parent\" data-id=\"349495d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aaf4b56 elementor-widget elementor-widget-spacer\" data-id=\"aaf4b56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3cc2162 elementor-widget elementor-widget-heading\" data-id=\"3cc2162\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Reserve equipment<br> at location <span>1<\/span><\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa881e5 elementor-widget elementor-widget-spacer\" data-id=\"fa881e5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c4dff5f e-con-full e-flex e-con e-child\" data-id=\"c4dff5f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c75f829 icon-green elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"c75f829\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"126.273\" height=\"110.386\" viewBox=\"0 0 126.273 110.386\"><defs><style>.a{fill:#c2e812;}<\/style><\/defs><path class=\"a\" d=\"M115.617-684.264a5.545,5.545,0,0,1-2.977-.822,5.864,5.864,0,0,1-2.063-2.123,5.623,5.623,0,0,1-.851-2.8,5.558,5.558,0,0,1,.841-3.035l57.287-98.709a5.515,5.515,0,0,1,2.189-2.193,5.954,5.954,0,0,1,2.817-.7,5.954,5.954,0,0,1,2.817.7,5.726,5.726,0,0,1,2.222,2.193l57.287,98.709a5.7,5.7,0,0,1,.808,3.035,5.813,5.813,0,0,1-.818,2.8,6.137,6.137,0,0,1-2.1,2.123,5.545,5.545,0,0,1-2.977.822Zm6.437-9.542H223.665l-50.806-87.565Zm50.806-8.27a5.065,5.065,0,0,0,3.734-1.5,5.069,5.069,0,0,0,1.5-3.734,5.069,5.069,0,0,0-1.5-3.736,5.067,5.067,0,0,0-3.734-1.5,5.067,5.067,0,0,0-3.734,1.5,5.069,5.069,0,0,0-1.5,3.736,5.069,5.069,0,0,0,1.5,3.734A5.065,5.065,0,0,0,172.859-702.076Zm.087-17.15a4.572,4.572,0,0,0,3.352-1.4,4.615,4.615,0,0,0,1.4-3.385V-748.16a4.574,4.574,0,0,0-1.4-3.352,4.58,4.58,0,0,0-3.354-1.4,4.608,4.608,0,0,0-3.385,1.4,4.574,4.574,0,0,0-1.4,3.352v24.148a4.609,4.609,0,0,0,1.4,3.385A4.615,4.615,0,0,0,172.946-719.226ZM172.859-737.588Z\" transform=\"translate(-109.723 794.65)\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc3b503 elementor-widget elementor-widget-text-editor\" data-id=\"fc3b503\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>The online reservation is only available for location 1 &#8211; Remmeswiese 15.<\/li>\n<li>We do not offer reservations for our location 2 &#8211; Remmeswiese 8.<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-424b7f3 e-flex e-con-boxed e-con e-parent\" data-id=\"424b7f3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-7fda48c e-flex e-con-boxed e-con e-child\" data-id=\"7fda48c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9a23e71 elementor-widget elementor-widget-text-editor\" data-id=\"9a23e71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Get your equipment without waiting times! Simply reserve your ski or snowboard set online. Reservations must be made at least one day before collection. Your equipment will be reserved for you until 11 a.m. on the day of collection.   <\/p>\n<p><strong class=\"poppyred\">Please note: Collection only at the Remmeswiese 15 location<\/strong><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8430cd1 elementor-widget elementor-widget-spacer\" data-id=\"8430cd1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-865e3ca elementor-widget elementor-widget-shortcode\" data-id=\"865e3ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n        .honeypot { display: none; }\n    <\/style>\n    <form id=\"ski-rental-form\" action=\"\" method=\"post\" class=\"people-1\">\n        <h3>General information<\/h3>\n        <label for=\"first-name\">First name *<\/label>\n        <input type=\"text\" id=\"first-name\" name=\"first_name\" required>\n        \n        <label for=\"last-name\">Surname *<\/label>\n        <input type=\"text\" id=\"last-name\" name=\"last_name\" required>\n        \n        <div class=\"wrap-row\">\n            <label class=\"row-100\" for=\"address\">Address<\/label>\n            <input class=\"row-33\" type=\"text\" id=\"address-street\" name=\"address_street\" placeholder=\"Street\">\n            <input class=\"row-66\" type=\"number\" id=\"address-number\" name=\"address_number\" placeholder=\"House number\">\n            <input class=\"row-66\" type=\"text\" id=\"address-zip\" name=\"address_zip\" placeholder=\"ZIP CODE\">\n            <input class=\"row-33\" type=\"text\" id=\"address-city\" name=\"address_city\" placeholder=\"Location\">\n        <\/div>\n        \n        <label for=\"phone\">Telephone<\/label>\n        <input type=\"text\" id=\"phone\" name=\"phone\">\n        \n        <label for=\"email\">e-mail *<\/label>\n        <input type=\"email\" id=\"email\" name=\"email\" placeholder=\"-\" required>\n        \n        <div class=\"wrap-row\">\n            <h3>Rental information<\/h3>\n            <div class=\"row-50\">\n                <label for=\"date-from\">Date from *<\/label>\n                <input type=\"date\" id=\"date-from\" name=\"date_from\" value=\"2026-08-15\" min=\"2026-08-15\" required>\n            <\/div>\n\n            <div class=\"row-50\">\n                <label for=\"date-to\">Date until *<\/label>\n                <input type=\"date\" id=\"date-to\" name=\"date_to\" value=\"2026-08-15\" min=\"2026-08-15\" required>\n            <\/div>\n        <\/div>\n    \n        <label><input type=\"checkbox\" name=\"abholung_am_vortag[]\" value=\"abholung_am_vortag\"><span class=\"checkbox_input\"><\/span> Pick up the day before<\/label>\n\n        <label for=\"pickup-time\">Select pick-up time the day before<\/label>\n        <select id=\"pickup-time\" name=\"pickup_time\">\n            <option value=\"\" disabled selected>Please select<\/option>\n            <option value=\"15:00-16:00\">3:00 pm - 4:00 pm<\/option>\n            <option value=\"16:00-17:00\">4:00 pm - 5:00 pm<\/option>\n        <\/select>\n\n        \n        <div class=\"form-container\">\n            <label for=\"number-of-people\">Anzahl der Personen *<\/label>\n            <input type=\"number\" id=\"number-of-people\" name=\"number_of_people\" min=\"1\" max=\"10\" value=\"1\" required>\n\n            <div id=\"person-fields-container\">\n                <\/div>\n        <\/div>\n\n        <div class=\"ma-to-50\">\n            <b>* A ski set includes skis, boots, poles<\/b> <span class=\"green\">NO HELM<\/span><\/p>\n        <\/div>\n        \n        <label for=\"privacy\" class=\"label-privacy\"><input type=\"checkbox\" name=\"privacy\" value=\"top-ski-set-adult\"><span class=\"checkbox_input\"><\/span><span class=\"privacy-text small\">I agree that my details from the contact form will be collected and processed to answer my request. The data will be deleted upon request after your request has been processed. Note: You can revoke your consent at any time for the future by sending an email to info@skiverleih-wahle.de. Detailed information on the handling of user data can be found in our privacy policy.   <\/span><\/label>\n\n        \n        <div class=\"wrap small\">\n            <span class=\"\">*<\/span>\n            <span class=\"\">Mandatory fields<\/span>\n        <\/div>\n\n        <div class=\"wrap-row center\">\n            <button type=\"button\" id=\"add-person\">+ Add another person<\/button>\n        <\/div>\n\n        <input type=\"text\" name=\"website\" class=\"honeypot\">\n\n        <button type=\"submit\" class=\"reservieren\">Reserve<\/button>\n    <\/form>\n    \n    <script>\n        \/\/ Logik f\u00fcr Abholzeit (Vortag)\n        document.addEventListener('DOMContentLoaded', function() {\n            const vortag_checkbox = document.querySelector('input[name=\"abholung_am_vortag[]\"]');\n            const pickup_time_label = document.querySelector('label[for=\"pickup-time\"]');\n            const pickup_time_select = document.getElementById('pickup-time');\n            \n            \/\/ Initial verstecken\n            if(pickup_time_label) pickup_time_label.style.display = 'none';\n            if(pickup_time_select) {\n                pickup_time_select.style.display = 'none';\n                pickup_time_select.required = false;\n            }\n            \n            if(vortag_checkbox) {\n                vortag_checkbox.addEventListener('change', function() {\n                    if (this.checked) {\n                        if(pickup_time_label) pickup_time_label.style.display = 'block';\n                        if(pickup_time_select) {\n                            pickup_time_select.style.display = 'block';\n                            pickup_time_select.required = true;\n                        }\n                    } else {\n                        if(pickup_time_label) pickup_time_label.style.display = 'none';\n                        if(pickup_time_select) {\n                            pickup_time_select.style.display = 'none';\n                            pickup_time_select.value = ''; \n                            pickup_time_select.required = false; \n                        }\n                    }\n                });\n            }\n        });\n\n        \/\/ Zentrale Datums-Validierungs-Logik (Behebt iOS\/Browser Probleme)\n        document.addEventListener('DOMContentLoaded', function() {\n            const dateFromInput = document.getElementById('date-from');\n            const dateToInput = document.getElementById('date-to');\n            const form = document.getElementById('ski-rental-form');\n\n            \/\/ 1. Datum \"Morgen\" berechnen f\u00fcr das min-Attribut\n            const today = new Date();\n            const tomorrow = new Date(today);\n            tomorrow.setDate(tomorrow.getDate() + 1);\n            \n            \/\/ Formatiere zu YYYY-MM-DD (ISO String split ist sicherer als manuelle String-Bastellei)\n            const minDateString = tomorrow.toISOString().split('T')[0];\n            \n            \/\/ 2. Min-Attribute setzen (HTML5 Validierung \u00fcbernimmt den Gro\u00dfteil der Arbeit)\n            if(dateFromInput) dateFromInput.setAttribute('min', minDateString);\n            if(dateToInput) dateToInput.setAttribute('min', minDateString);\n\n            \/\/ 3. Fallback Validierung (Vermeidung von String-Vergleichs-Fehlern)\n            function validateFutureDate(inputElement) {\n                if (!inputElement.value) return true; \/\/ Leeres Feld ignorieren (User tippt noch)\n\n                const selectedDate = new Date(inputElement.value);\n                const checkDate = new Date(); \/\/ Heute\n                \n                \/\/ Uhrzeiten auf 00:00:00 setzen f\u00fcr reinen Datumsvergleich\n                selectedDate.setHours(0,0,0,0);\n                checkDate.setHours(0,0,0,0);\n\n                \/\/ Wenn ausgew\u00e4hltes Datum kleiner oder gleich heute ist -> Fehler\n                if (selectedDate <= checkDate) {\n                    alert('Buchungen k\u00f6nnen nur f\u00fcr zuk\u00fcnftige Termine vorgenommen werden.');\n                    inputElement.value = ''; \/\/ Reset\n                    return false;\n                }\n                return true;\n            }\n\n            \/\/ Event Listener hinzuf\u00fcgen\n            if(dateFromInput) {\n                dateFromInput.addEventListener('change', function() { validateFutureDate(this); });\n            }\n            \n            if(dateToInput) {\n                dateToInput.addEventListener('change', function() { validateFutureDate(this); });\n            }\n            \n            \/\/ Letzte Pr\u00fcfung beim Absenden\n            if(form) {\n                form.addEventListener('submit', function(e) {\n                    let validFrom = true;\n                    let validTo = true;\n\n                    if(dateFromInput) validFrom = validateFutureDate(dateFromInput);\n                    if(dateToInput) validTo = validateFutureDate(dateToInput);\n\n                    if (!validFrom || !validTo) {\n                        e.preventDefault();\n                    }\n                });\n            }\n        });\n\n        \/\/ Personenfelder Logik\n        const php_texts = {\n            person: 'Person',\n            firstname: 'First name',\n            lastname: 'Surname',\n            driver_type: 'Driver type',\n            beginner: 'Beginners',\n            advanced: 'Advanced',\n            expert: 'Expert',\n            gender: 'Gender',\n            please_select: 'Please select',\n            male: 'Man',\n            female: 'Woman',\n            height: 'Body size',\n            in_cm: '(in centimeters)',\n            shoe_size: 'Shoe size',\n            eu_size: '(EU size)',\n            weight: 'Weight',\n            in_kg: '(in kilograms)',\n            sport_type: 'Sporting goods',\n            cross_country: 'Cross-country skiing',\n            sledding: 'Tobogganing',\n            set_ski_boots_poles: 'Ski-Set',\n            ski_poles: 'Skis &amp; poles',\n            set_snowboard_boots: 'Snowboard-Set',\n            sled: 'Toboggan',\n            sled_baby_shell: 'Toboggan + baby bowl',\n            helmet_adult: 'Helmet - Adult',\n            helmet_youth: 'Helmet - Children\/Youth',\n            langlauf: 'Cross-country skiing set',\n            age: 'Age',\n            helm_text: 'Helmet',\n            ja: 'Yes'\n        };\n\n        function createPersonFields(index) {\n            const personHtml = `\n                <div class=\"p-${index}\">\n                    <h4>${php_texts.person} ${index}<\/h4>\n                    <label for=\"person${index}-first-name\">${php_texts.firstname} *<\/label>\n                    <input type=\"text\" id=\"person${index}-first-name\" name=\"person${index}_first_name\" required>\n                    \n                    <label for=\"person${index}-last-name\">${php_texts.lastname} *<\/label>\n                    <input type=\"text\" id=\"person${index}-last-name\" name=\"person${index}_last_name\" required>\n                    \n                    <label for=\"person${index}-driver-type\">${php_texts.driver_type} *<\/label>\n                    <select id=\"person${index}-driver-type\" name=\"person${index}_driver_type[]\" multiple required>\n                        <option value=\"${php_texts.beginner}\">${php_texts.beginner}<\/option>\n                        <option value=\"${php_texts.advanced}\">${php_texts.advanced}<\/option>\n                        <option value=\"${php_texts.expert}\">${php_texts.expert}<\/option>\n                    <\/select>\n\n                    <div class=\"wrap-row row-label-height\">\n                        <div class=\"row-25\">\n                            <label for=\"person${index}-height\">${php_texts.height}<br>${php_texts.in_cm}<\/label>\n                            <input type=\"text\" id=\"person${index}-height\" name=\"person${index}_height\">\n                        <\/div>\n                        <div class=\"row-25\">\n                            <label for=\"person${index}-shoe-size\">${php_texts.shoe_size}<br>${php_texts.eu_size}<\/label>\n                            <input type=\"text\" id=\"person${index}-shoe-size\" name=\"person${index}_shoe_size\">\n                        <\/div>\n                        <div class=\"row-25\">\n                            <label for=\"person${index}-weight\">${php_texts.weight}<br>${php_texts.in_kg}<\/label>\n                            <input type=\"text\" id=\"person${index}-weight\" name=\"person${index}_weight\">\n                        <\/div>\n                        <div class=\"row-25\">\n                            <label for=\"person${index}-age\">${php_texts.age}<\/label>\n                            <input type=\"text\" id=\"person${index}-age\" name=\"person${index}_age\">\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"wrap-row\">\n                        <div class=\"row-100\">\n                            <label for=\"person${index}-sport-type\">${php_texts.sport_type} *<\/label>\n                            <select id=\"person${index}-sport-type\" name=\"person${index}_sport_type\" required>\n                                <option value=\"\" disabled selected>${php_texts.please_select}<\/option>\n                                <option value=\"ski\">Ski<\/option>\n                                <option value=\"snowboard\">Snowboard<\/option>\n                                <option value=\"langlauf\">${php_texts.cross_country}<\/option>\n                                <option value=\"rodeln\">${php_texts.sledding}<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"wrap-column checkboxes\">\n                        <label for=\"equipment-${index}-ski-set\" class=\"checkbox-option ski-option\" style=\"display: none;\">\n                            <input type=\"radio\" id=\"equipment-${index}-ski-set\" name=\"equipment-${index}\" value=\"set-ski-schuhe-stoecke\">\n                            <span class=\"checkbox_input\"><\/span> ${php_texts.set_ski_boots_poles}\n                        <\/label>\n                        <label for=\"equipment-${index}-ski-poles\" class=\"checkbox-option ski-option\" style=\"display: none;\">\n                            <input type=\"radio\" id=\"equipment-${index}-ski-poles\" name=\"equipment-${index}\" value=\"ski-stoecke\">\n                            <span class=\"checkbox_input\"><\/span> ${php_texts.ski_poles}\n                        <\/label>\n                        <label for=\"equipment-${index}-snowboard-set\" class=\"checkbox-option snowboard-option\" style=\"display: none;\">\n                            <input type=\"radio\" id=\"equipment-${index}-snowboard-set\" name=\"equipment-${index}\" value=\"set-snowboard-schuhe\">\n                            <span class=\"checkbox_input\"><\/span> ${php_texts.set_snowboard_boots}\n                        <\/label>\n                        <label for=\"equipment-${index}-sled\" class=\"checkbox-option rodeln-option\" style=\"display: none;\">\n                            <input type=\"radio\" id=\"equipment-${index}-sled\" name=\"equipment-${index}\" value=\"rodeln\">\n                            <span class=\"checkbox_input\"><\/span> ${php_texts.sled}\n                        <\/label>\n                        <label for=\"equipment-${index}-sled-baby\" class=\"checkbox-option rodeln-option\" style=\"display: none;\">\n                            <input type=\"radio\" id=\"equipment-${index}-sled-baby\" name=\"equipment-${index}\" value=\"rodeln-baby-schale\">\n                            <span class=\"checkbox_input\"><\/span> ${php_texts.sled_baby_shell}\n                        <\/label>\n                        <label for=\"equipment-${index}-langlauf-set\" class=\"checkbox-option langlauf-option\" style=\"display: none;\">\n                            <input type=\"radio\" id=\"equipment-${index}-langlauf-set\" name=\"equipment-${index}\" value=\"set-langlauf\">\n                            <span class=\"checkbox_input\"><\/span> ${php_texts.langlauf}\n                        <\/label>\n                    <\/div>\n\n                    <label for=\"person${index}-helm\"><input type=\"checkbox\" id=\"person${index}-helm\" name=\"person${index}_helm\" value=\"${php_texts.ja}\"><span class=\"checkbox_input\"><\/span><span>${php_texts.helm_text}<\/span><\/label>\n                <\/div>\n            `;\n            return personHtml;\n        }\n\n        function initializeSportTypeListener(index) {\n            const sportSelect = document.getElementById(`person${index}-sport-type`);\n            if(sportSelect) {\n                sportSelect.addEventListener('change', function() {\n                    const checkboxContainer = this.closest('.p-' + index).querySelector('.checkboxes');\n                    const checkboxes = checkboxContainer.querySelectorAll('.checkbox-option');\n                    checkboxes.forEach(checkbox => {\n                        checkbox.style.display = 'none';\n                        \/\/ Reset radio selection wenn Sportart gewechselt wird\n                        const radio = checkbox.querySelector('input[type=\"radio\"]');\n                        if(radio) radio.checked = false; \n                    });\n                    \n                    const selectedSport = this.value;\n                    const relevantCheckboxes = checkboxContainer.querySelectorAll('.' + selectedSport + '-option');\n                    relevantCheckboxes.forEach(checkbox => {\n                        checkbox.style.display = 'flex';\n                    });\n                });\n            }\n        }\n\n        function updatePersonFields() {\n            const container = document.getElementById('person-fields-container');\n            const numberOfPeopleInput = document.getElementById('number-of-people');\n            \n            if(container && numberOfPeopleInput) {\n                const numberOfPeople = parseInt(numberOfPeopleInput.value);\n                container.innerHTML = '';\n                \n                for (let i = 1; i <= numberOfPeople; i++) {\n                    container.innerHTML += createPersonFields(i);\n                    setTimeout(() => initializeSportTypeListener(i), 0);\n                }\n            }\n        }\n\n        document.addEventListener('DOMContentLoaded', function() {\n            const numberOfPeopleInput = document.getElementById('number-of-people');\n            const addPersonButton = document.getElementById('add-person');\n            const form = document.getElementById('ski-rental-form');\n\n            if(numberOfPeopleInput) {\n                numberOfPeopleInput.addEventListener('change', updatePersonFields);\n                \/\/ Initialer Aufruf\n                updatePersonFields();\n            }\n\n            if(addPersonButton && numberOfPeopleInput) {\n                addPersonButton.addEventListener('click', function() {\n                    const currentValue = parseInt(numberOfPeopleInput.value);\n                    const maxValue = parseInt(numberOfPeopleInput.getAttribute('max'));\n                    \n                    if (currentValue < maxValue) {\n                        numberOfPeopleInput.value = currentValue + 1;\n                        \/\/ Manuell change feuern\n                        const event = new Event('change');\n                        numberOfPeopleInput.dispatchEvent(event);\n                    } else {\n                        alert(`Maximale Anzahl von ${maxValue} Personen erreicht`);\n                    }\n                });\n            }\n            \n            \/\/ Klassen-Update f\u00fcr Styling\n            function updateFormClass() {\n                if(form && numberOfPeopleInput) {\n                    const numberOfPeople = parseInt(numberOfPeopleInput.value, 10);\n                    form.className = form.className.replace(\/people-\\d+\/, '').trim();\n                    form.classList.add(`people-${numberOfPeople}`);\n                }\n            }\n\n            if(numberOfPeopleInput) {\n                numberOfPeopleInput.addEventListener('input', updateFormClass);\n                numberOfPeopleInput.addEventListener('change', updateFormClass);\n            }\n            \/\/ Initiale Klasse\n            updateFormClass();\n        });\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Reserve equipment at location 1 The online reservation is only available for location 1 &#8211; Remmeswiese 15. We do not offer reservations for our location 2 &#8211; Remmeswiese 8. Get your equipment without waiting times! Simply reserve your ski or snowboard set online. Reservations must be made at least one day before collection. Your equipment [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-772","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Online reservation - Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/skiverleih-wahle.de\/online-reservieren\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Online reservation - Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen\" \/>\n<meta property=\"og:description\" content=\"Reserve equipment at location 1 The online reservation is only available for location 1 &#8211; Remmeswiese 15. We do not offer reservations for our location 2 &#8211; Remmeswiese 8. Get your equipment without waiting times! Simply reserve your ski or snowboard set online. Reservations must be made at least one day before collection. Your equipment [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skiverleih-wahle.de\/online-reservieren\/\" \/>\n<meta property=\"og:site_name\" content=\"Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-27T11:45:14+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/skiverleih-wahle.de\\\/online-reservieren\\\/\",\"url\":\"https:\\\/\\\/skiverleih-wahle.de\\\/online-reservieren\\\/\",\"name\":\"Online reservation - Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/skiverleih-wahle.de\\\/#website\"},\"datePublished\":\"2024-11-11T12:02:01+00:00\",\"dateModified\":\"2025-01-27T11:45:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/skiverleih-wahle.de\\\/online-reservieren\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/skiverleih-wahle.de\\\/online-reservieren\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/skiverleih-wahle.de\\\/online-reservieren\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/skiverleih-wahle.de\\\/en\\\/home-page\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Online reservation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/skiverleih-wahle.de\\\/#website\",\"url\":\"https:\\\/\\\/skiverleih-wahle.de\\\/\",\"name\":\"Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen\",\"description\":\"Herzlich willkommen beim Skiverleih Wahle Winterberg! Unser freundliches Team bietet Ihnen top Ski-Equipment zu tollen Preisen.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/skiverleih-wahle.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Online reservation - Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/skiverleih-wahle.de\/online-reservieren\/","og_locale":"en_US","og_type":"article","og_title":"Online reservation - Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen","og_description":"Reserve equipment at location 1 The online reservation is only available for location 1 &#8211; Remmeswiese 15. We do not offer reservations for our location 2 &#8211; Remmeswiese 8. Get your equipment without waiting times! Simply reserve your ski or snowboard set online. Reservations must be made at least one day before collection. Your equipment [&hellip;]","og_url":"https:\/\/skiverleih-wahle.de\/online-reservieren\/","og_site_name":"Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen","article_modified_time":"2025-01-27T11:45:14+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/skiverleih-wahle.de\/online-reservieren\/","url":"https:\/\/skiverleih-wahle.de\/online-reservieren\/","name":"Online reservation - Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen","isPartOf":{"@id":"https:\/\/skiverleih-wahle.de\/#website"},"datePublished":"2024-11-11T12:02:01+00:00","dateModified":"2025-01-27T11:45:14+00:00","breadcrumb":{"@id":"https:\/\/skiverleih-wahle.de\/online-reservieren\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skiverleih-wahle.de\/online-reservieren\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/skiverleih-wahle.de\/online-reservieren\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/skiverleih-wahle.de\/en\/home-page\/"},{"@type":"ListItem","position":2,"name":"Online reservation"}]},{"@type":"WebSite","@id":"https:\/\/skiverleih-wahle.de\/#website","url":"https:\/\/skiverleih-wahle.de\/","name":"Skiverleih Wahle Winterberg - Ski leihen zu Top-Preisen","description":"Herzlich willkommen beim Skiverleih Wahle Winterberg! Unser freundliches Team bietet Ihnen top Ski-Equipment zu tollen Preisen.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skiverleih-wahle.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/pages\/772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/comments?post=772"}],"version-history":[{"count":5,"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/pages\/772\/revisions"}],"predecessor-version":[{"id":2532,"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/pages\/772\/revisions\/2532"}],"wp:attachment":[{"href":"https:\/\/skiverleih-wahle.de\/en\/wp-json\/wp\/v2\/media?parent=772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}