{"id":39920,"date":"2025-08-21T17:03:00","date_gmt":"2025-08-21T15:03:00","guid":{"rendered":"https:\/\/adremlimburg.nl\/?page_id=39920"},"modified":"2025-12-02T17:59:32","modified_gmt":"2025-12-02T15:59:32","slug":"reserve","status":"publish","type":"page","link":"https:\/\/adremlimburg.nl\/en\/reserveren\/","title":{"rendered":"Booking"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"39920\" class=\"elementor elementor-39920\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b79551c e-con-full e-flex e-con e-parent\" data-id=\"b79551c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a8bcbb8 elementor-widget elementor-widget-shortcode\" data-id=\"a8bcbb8\" 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\"><div class=\"reservation-section\">\n\n    <div class=\"reservation-image-block\" style=\"background-image: url('https:\/\/adremlimburg.nl\/wp-content\/uploads\/2025\/02\/hero.png');\">\n            <\/div>\n\n    <div class=\"container\">\n\n        <div class=\"reservation-block\">\n            <div class=\"hero-top-bar\">\n                Wij maken dat je wegkomt!            <\/div>\n\n            <div class=\"reservation-form\">\n                <form method=\"post\" name=\"reservation-form\" action=\"\">\n                    <div class=\"row\">\n                        <div class=\"col-12\">\n                            <h2>Bekijk tarieven, beschikbaarheid en reserveer direct<\/h2>\n                            <p class=\"step-label\">\n                                <span class=\"step-number\">1<\/span>\n                                Selecteer een voertuig categorie                            <\/p>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"row mt-3\">\n                        <div class=\"col-8\">\n                            <div class=\"vehicle-type-wrapper\">\n                                <input type=\"radio\" id=\"vehicle_type_personenauto\" name=\"vehicle_type[]\" value=\"Personenauto\" checked>\n                                <input type=\"radio\" id=\"vehicle_type_bestelbus\" name=\"vehicle_type[]\" value=\"Bestelbus\" >\n                                <input type=\"radio\" id=\"vehicle_type_personenbus\" name=\"vehicle_type[]\" value=\"Personenbus\" >\n                            <\/div>\n\n                            <div class=\"verhicle-type\">\n                                                                <div class=\"vehicle-selector is-active\" data-value=\"Personenauto\">\n                                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/2025\/03\/personenauto.png\" alt=\"\">\n                                    Personenauto\n                                <\/div>\n                                <div class=\"vehicle-selector \" data-value=\"Bestelbus\">\n                                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/2025\/03\/bestelbus.png\" alt=\"\">\n                                    Bestelbus\n                                <\/div>\n                                <div class=\"vehicle-selector \" data-value=\"Personenbus\">\n                                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/2025\/03\/personenbus.png\" alt=\"\">\n                                    Personenbus\n                                <\/div>\n                            <\/div>\n\n                            <script>\n                                document.addEventListener('DOMContentLoaded', function () {\n                                    const selectors = document.querySelectorAll('.vehicle-selector');\n                                    const radios = document.querySelectorAll('input[name=\"vehicle_type[]\"]');\n\n                                    selectors.forEach(selector => {\n                                        selector.addEventListener('click', () => {\n                                            const value = selector.getAttribute('data-value');\n\n                                            \/\/ Update radio input\n                                            radios.forEach(radio => {\n                                                if (radio.value === value) {\n                                                    radio.checked = true;\n                                                }\n                                            });\n\n                                            \/\/ Update active class\n                                            selectors.forEach(s => s.classList.remove('is-active'));\n                                            selector.classList.add('is-active');\n                                        });\n                                    });\n                                });\n                            <\/script>\n\n                            <div class=\"pickup-location\">\n                                <label for=\"pickup_location\" class=\"step-label\">\n                                    <span class=\"step-number\">2<\/span>\n                                    Ophalen en inleveren (verplicht)                                <\/label>\n                                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                    <path d=\"M12 12.6L15.9 8.69999C16.0833 8.51665 16.3167 8.42499 16.6 8.42499C16.8833 8.42499 17.1167 8.51665 17.3 8.69999C17.4833 8.88332 17.575 9.11665 17.575 9.39999C17.575 9.68332 17.4833 9.91665 17.3 10.1L12.7 14.7C12.6 14.8 12.4917 14.8708 12.375 14.9125C12.2583 14.9542 12.1333 14.975 12 14.975C11.8667 14.975 11.7417 14.9542 11.625 14.9125C11.5083 14.8708 11.4 14.8 11.3 14.7L6.70001 10.1C6.51668 9.91665 6.42501 9.68332 6.42501 9.39999C6.42501 9.11665 6.51668 8.88332 6.70001 8.69999C6.88335 8.51665 7.11668 8.42499 7.40001 8.42499C7.68335 8.42499 7.91668 8.51665 8.10001 8.69999L12 12.6Z\" fill=\"#ED2F89\"\/>\n                                <\/svg>\n\n                                <select name=\"pickup_location\" id=\"pickup_location\" required>\n                                    <option value=\"\" selected disabled hidden>Kies een vestiging...<\/option>\n                                                                                    <option value=\"2\">\n                                                    Heerlen, Wijngaardsweg 60                                                <\/option>\n                                                                                                <option value=\"1\">\n                                                    Maastricht, Akersteenweg 10                                                <\/option>\n                                                                                                <option value=\"4\">\n                                                    Roermond, Jacob Romenweg 3                                                <\/option>\n                                                                                                <option value=\"3\">\n                                                    Sittard, Economiestraat 2                                                <\/option>\n                                                                                <\/select>\n                            <\/div>\n\n                            <div class=\"d-flex gap-5 mt-3 custom-date-row\">\n                                <div class=\"pickup-date-and-time w-100\">\n                                    <label for=\"pickup_date_and_time\" class=\"step-label\">\n                                        <span class=\"step-number\">3<\/span>\n                                        Ophaaldatum-en tijdstip                                    <\/label>\n                                    <div class=\"d-flex\">\n                                        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                            <path d=\"M12 12.6L15.9 8.69999C16.0833 8.51665 16.3167 8.42499 16.6 8.42499C16.8833 8.42499 17.1167 8.51665 17.3 8.69999C17.4833 8.88332 17.575 9.11665 17.575 9.39999C17.575 9.68332 17.4833 9.91665 17.3 10.1L12.7 14.7C12.6 14.8 12.4917 14.8708 12.375 14.9125C12.2583 14.9542 12.1333 14.975 12 14.975C11.8667 14.975 11.7417 14.9542 11.625 14.9125C11.5083 14.8708 11.4 14.8 11.3 14.7L6.70001 10.1C6.51668 9.91665 6.42501 9.68332 6.42501 9.39999C6.42501 9.11665 6.51668 8.88332 6.70001 8.69999C6.88335 8.51665 7.11668 8.42499 7.40001 8.42499C7.68335 8.42499 7.91668 8.51665 8.10001 8.69999L12 12.6Z\" fill=\"#ED2F89\"\/>\n                                        <\/svg>\n\n                                        <input type=\"date\" name=\"pickup_date\" id=\"pickup_date\" required min=\"2026-05-14\" placeholder=\"Kies datum\">\n                                        <select name=\"pickup_time\" id=\"pickup_time\">\n                                            <option value=\"08:00\">08:00<\/option>\n                                            <option value=\"09:00\" selected>09:00<\/option>\n                                            <option value=\"10:00\">10:00<\/option>\n                                            <option value=\"11:00\">11:00<\/option>\n                                            <option value=\"12:00\">12:00<\/option>\n                                            <option value=\"13:00\">13:00<\/option>\n                                            <option value=\"13:30\">13:30<\/option>\n                                            <option value=\"14:00\">14:00<\/option>\n                                            <option value=\"15:00\">15:00<\/option>\n                                            <option value=\"16:00\">16:00<\/option>\n                                            <option value=\"16:30\">16:30<\/option>\n                                            <option value=\"17:00\">17:00<\/option>\n                                        <\/select>\n                                    <\/div>\n                                <\/div>\n\n                                <div class=\"return-date-and-time w-100\">\n                                    <label class=\"step-label\" style=\"margin-top:14px;\">\n                                        Inleverdatum-en tijdstip                                        <span class=\"info-tooltip\">\n                                            <span class=\"info-icon\">i<\/span>\n                                            <span class=\"tooltip-text\">Je kunt je voertuig 24\/7 inleveren, mits dit voor de geselecteerde inleverdatum en -tijd is.<\/span>\n                                        <\/span>\n                                    <\/label>\n                                    <div class=\"d-flex\">\n                                        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                            <path d=\"M12 12.6L15.9 8.69999C16.0833 8.51665 16.3167 8.42499 16.6 8.42499C16.8833 8.42499 17.1167 8.51665 17.3 8.69999C17.4833 8.88332 17.575 9.11665 17.575 9.39999C17.575 9.68332 17.4833 9.91665 17.3 10.1L12.7 14.7C12.6 14.8 12.4917 14.8708 12.375 14.9125C12.2583 14.9542 12.1333 14.975 12 14.975C11.8667 14.975 11.7417 14.9542 11.625 14.9125C11.5083 14.8708 11.4 14.8 11.3 14.7L6.70001 10.1C6.51668 9.91665 6.42501 9.68332 6.42501 9.39999C6.42501 9.11665 6.51668 8.88332 6.70001 8.69999C6.88335 8.51665 7.11668 8.42499 7.40001 8.42499C7.68335 8.42499 7.91668 8.51665 8.10001 8.69999L12 12.6Z\" fill=\"#ED2F89\"\/>\n                                        <\/svg>\n\n                                        <input type=\"date\" name=\"drop_off_date\" id=\"return_date\" required min=\"2026-05-14\" placeholder=\"Kies datum\">\n                                        <select name=\"drop_off_time\" id=\"return_time\">\n                                            <option value=\"08:00\">08:00<\/option>\n                                            <option value=\"09:00\">09:00<\/option>\n                                            <option value=\"10:00\">10:00<\/option>\n                                            <option value=\"11:00\">11:00<\/option>\n                                            <option value=\"12:00\">12:00<\/option>\n                                            <option value=\"13:00\">13:00<\/option>\n                                            <option value=\"13:30\">13:30<\/option>\n                                            <option value=\"14:00\">14:00<\/option>\n                                            <option value=\"15:00\">15:00<\/option>\n                                            <option value=\"16:00\">16:00<\/option>\n                                            <option value=\"16:30\" selected>16:30<\/option>\n                                        <\/select>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n\n                        <\/div>\n                        <div class=\"col-4\">\n                            <div class=\"usps-wrapper\">\n                                                                    <div class=\"usp\">\n                                        <div class=\"image\">\n                                            <span class=\"vinkje-wrapper\">\n                                            <svg width=\"16\" height=\"16\" fill=\"#ed2f88\" aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-check\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"><\/path><\/svg>\n                                        <\/span>\n                                        <\/div>\n                                        <div class=\"text\">\n                                            <h3>Geen onverwachte kosten<\/h3>\n                                            <p>Je betaalt alleen wat vooraf afgesproken is.<\/p>\n                                        <\/div>\n                                    <\/div>\n                                                                    <div class=\"usp\">\n                                        <div class=\"image\">\n                                            <span class=\"vinkje-wrapper\">\n                                            <svg width=\"16\" height=\"16\" fill=\"#ed2f88\" aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-check\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"><\/path><\/svg>\n                                        <\/span>\n                                        <\/div>\n                                        <div class=\"text\">\n                                            <h3>Wij scoren een 9,3<\/h3>\n                                            <p>Op basis van onafhankelijke beoordelingen van onze klanten<\/p>\n                                        <\/div>\n                                    <\/div>\n                                                                    <div class=\"usp\">\n                                        <div class=\"image\">\n                                            <span class=\"vinkje-wrapper\">\n                                            <svg width=\"16\" height=\"16\" fill=\"#ed2f88\" aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-check\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"><\/path><\/svg>\n                                        <\/span>\n                                        <\/div>\n                                        <div class=\"text\">\n                                            <h3>Gratis annuleren<\/h3>\n                                            <p>Komt het toch niet uit, elke reservering kan je gratis annuleren.<\/p>\n                                        <\/div>\n                                    <\/div>\n                                                            <\/div>\n\n                            <div class=\"next-step-button\">\n                                <h3>Volgende stap<\/h3>\n                                <button\n                                        type=\"submit\"\n                                        class=\"w-100 button button--primary\"\n                                        name=\"submit_pre_form\">\n                                    Bekijk beschikbare voertuigen                                    <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                        <path d=\"M12.6 12L8.70005 8.1C8.51672 7.91667 8.42505 7.68334 8.42505 7.4C8.42505 7.11667 8.51672 6.88334 8.70005 6.7C8.88338 6.51667 9.11672 6.425 9.40005 6.425C9.68338 6.425 9.91672 6.51667 10.1 6.7L14.7 11.3C14.8 11.4 14.8709 11.5083 14.9125 11.625C14.9542 11.7417 14.975 11.8667 14.975 12C14.975 12.1333 14.9542 12.2583 14.9125 12.375C14.8709 12.4917 14.8 12.6 14.7 12.7L10.1 17.3C9.91672 17.4833 9.68338 17.575 9.40005 17.575C9.11672 17.575 8.88338 17.4833 8.70005 17.3C8.51672 17.1167 8.42505 16.8833 8.42505 16.6C8.42505 16.3167 8.51672 16.0833 8.70005 15.9L12.6 12Z\" fill=\"white\"><\/path>\n                                    <\/svg>\n                                <\/button>\n\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <style>\n                        .button--disabled[disabled] {\n                            opacity:.5;\n                            cursor:not-allowed;\n                            pointer-events:none;\n                        }\n\n                        \/* Step number styling *\/\n                        .step-label {\n                            display: flex;\n                            align-items: center;\n                            gap: 10px;\n                            font-weight: 600;\n                        }\n\n                        .step-number {\n                            display: inline-flex;\n                            align-items: center;\n                            justify-content: center;\n                            width: 30px;\n                            height: 30px;\n                            background-color: #ED2F89;\n                            color: white;\n                            border-radius: 50%;\n                            font-weight: 700;\n                            font-size: 20px;\n                            flex-shrink: 0;\n                        }\n\n                        \/* Info tooltip styling *\/\n                        .info-tooltip {\n                            position: relative;\n                            display: inline-flex;\n                            align-items: center;\n                            margin-left: 5px;\n                        }\n\n                        .info-icon {\n                            display: inline-flex;\n                            align-items: center;\n                            justify-content: center;\n                            width: 18px;\n                            height: 18px;\n                            background-color: #ED2F89;\n                            color: white;\n                            border-radius: 50%;\n                            font-size: 12px;\n                            font-weight: 700;\n                            font-style: italic;\n                            cursor: pointer;\n                        }\n\n                        .tooltip-text {\n                            visibility: hidden;\n                            opacity: 0;\n                            position: absolute;\n                            bottom: 130%;\n                            left: 50%;\n                            transform: translateX(-50%);\n                            background-color: #333;\n                            color: #fff;\n                            padding: 10px 12px;\n                            border-radius: 6px;\n                            font-size: 13px;\n                            font-weight: 400;\n                            width: 250px;\n                            text-align: center;\n                            z-index: 100;\n                            transition: opacity 0.2s ease;\n                            line-height: 1.4;\n                        }\n\n                        .tooltip-text::after {\n                            content: '';\n                            position: absolute;\n                            top: 100%;\n                            left: 50%;\n                            transform: translateX(-50%);\n                            border-width: 6px;\n                            border-style: solid;\n                            border-color: #333 transparent transparent transparent;\n                        }\n\n                        .info-tooltip:hover .tooltip-text {\n                            visibility: visible;\n                            opacity: 1;\n                        }\n\n                    <\/style>\n\n                    <script>\n                        document.addEventListener('DOMContentLoaded', function () {\n                            const pickupDateInput = document.getElementById('pickup_date');\n                            const dropoffDateInput = document.getElementById('return_date');\n                            const pickupLocationSelect = document.getElementById('pickup_location');\n                            const pickupTimeSelect = document.getElementById('pickup_time');\n                            const returnTimeSelect = document.getElementById('return_time');\n                            const form = document.forms['reservation-form'];\n\n                            \/\/ === Cross-browser date placeholder ===\n                            document.querySelectorAll('.reservation-form input[type=\"date\"]').forEach(function(input) {\n                                \/\/ Wrap input in container\n                                const wrapper = document.createElement('div');\n                                wrapper.className = 'date-input-wrapper';\n                                input.parentNode.insertBefore(wrapper, input);\n                                wrapper.appendChild(input);\n\n                                const span = document.createElement('span');\n                                span.className = 'date-placeholder-text';\n                                span.textContent = 'dd-mm-yyyy';\n                                wrapper.appendChild(span);\n\n                                function updatePlaceholder() {\n                                    span.style.display = input.value ? 'none' : '';\n                                }\n\n                                input.addEventListener('focus', function() { span.style.display = 'none'; });\n                                input.addEventListener('blur', updatePlaceholder);\n                                input.addEventListener('change', updatePlaceholder);\n                                updatePlaceholder();\n                            });\n\n                            \/\/ === Vestiging verplicht ===\n                            function hasValidPickupLocation() {\n                                return !!pickupLocationSelect.value;\n                            }\n                            function applyPickupValidity() {\n                                if (!hasValidPickupLocation()) {\n                                    pickupLocationSelect.setCustomValidity('Kies een vestiging.');\n                                } else {\n                                    pickupLocationSelect.setCustomValidity('');\n                                }\n                            }\n\n                            \/\/ initial state\n                            applyPickupValidity();\n\n                            \/\/ change: clear error\n                            pickupLocationSelect.addEventListener('change', () => {\n                                applyPickupValidity();\n                            });\n\n\n                            \/\/ Opening hours configuration based on location address\n                            const openingHours = {\n                                'venlo': {\n                                    weekday: { start: '09:00', end: '17:00' },\n                                    saturday: null, \/\/ op afspraak = disabled\n                                    sunday: null\n                                },\n                                'default': { \/\/ Maastricht, Heerlen, Sittard, Roermond\n                                    weekday: { start: '09:00', end: '17:00' },\n                                    saturday: { start: '08:00', end: '17:00' },\n                                    sunday: null\n                                }\n                            };\n\n                            const allTimeOptions = [\n                                '08:00', '08:30', '09:00', '10:00', '11:00', '12:00',\n                                '13:00', '13:30', '14:00', '15:00', '16:00', '16:30', '17:00'\n                            ];\n\n                            function getLocationKey() {\n                                const selectedOption = pickupLocationSelect.options[pickupLocationSelect.selectedIndex];\n                                if (!selectedOption || !selectedOption.text) return 'default';\n\n                                const address = selectedOption.text.toLowerCase();\n                                if (address.includes('venlo')) return 'venlo';\n                                return 'default';\n                            }\n\n                            function filterTimeOptions(selectElement, dateInput, isDropoff = false) {\n                                if (!dateInput.value || !pickupLocationSelect.value) return;\n\n                                const date = parseLocalDate(dateInput.value);\n                                const dayOfWeek = date.getDay(); \/\/ 0 = Sunday, 6 = Saturday\n                                const locationKey = getLocationKey();\n                                const hours = openingHours[locationKey];\n\n                                let allowedHours;\n\n                                \/\/ Voor inleveren: altijd alle tijden beschikbaar\n                                if (isDropoff) {\n                                    allowedHours = { start: '08:00', end: '16:30' };\n                                } else if (dayOfWeek === 0) {\n                                    allowedHours = hours.sunday; \/\/ null - pickup not allowed\n                                } else if (dayOfWeek === 6) {\n                                    allowedHours = hours.saturday;\n                                } else {\n                                    allowedHours = hours.weekday;\n                                }\n\n                                const currentValue = selectElement.value;\n                                selectElement.innerHTML = '';\n\n                                if (!allowedHours) {\n                                    const option = document.createElement('option');\n                                    option.value = '';\n                                    option.disabled = true;\n                                    option.selected = true;\n                                    if (dayOfWeek === 0) {\n                                        option.textContent = 'Gesloten op zondag';\n                                    } else if (locationKey === 'venlo' && dayOfWeek === 6) {\n                                        option.textContent = 'Alleen op afspraak';\n                                    } else {\n                                        option.textContent = 'Gesloten';\n                                    }\n                                    selectElement.appendChild(option);\n                                    return;\n                                }\n\n                                allTimeOptions.forEach(time => {\n                                    if (time >= allowedHours.start && time <= allowedHours.end) {\n                                        const option = document.createElement('option');\n                                        option.value = time;\n                                        option.textContent = time;\n                                        if (time === currentValue) option.selected = true;\n                                        selectElement.appendChild(option);\n                                    }\n                                });\n\n                                if (!selectElement.value && selectElement.options.length > 0) {\n                                    selectElement.selectedIndex = 0;\n                                }\n                            }\n\n                            function getNextValidPickupDate(locationKey) {\n                                const today = startOfToday();\n                                const disableSaturday = locationKey === 'venlo';\n                                let candidate = new Date(today);\n\n                                \/\/ Schuif door tot we een geldige ophaaldag vinden\n                                for (let i = 0; i < 7; i++) {\n                                    const day = candidate.getDay();\n                                    if (day === 0) { \/\/ zondag - altijd overslaan\n                                        candidate = addDays(candidate, 1);\n                                    } else if (day === 6 && disableSaturday) { \/\/ zaterdag + Venlo\n                                        candidate = addDays(candidate, 2); \/\/ skip naar maandag\n                                    } else {\n                                        break;\n                                    }\n                                }\n                                return candidate;\n                            }\n\n                            function updatePickupMinDate() {\n                                const locationKey = getLocationKey();\n\n                                \/\/ Update min attribuut zodat ongeldige dagen (vandaag) niet selecteerbaar zijn\n                                const nextValid = getNextValidPickupDate(locationKey);\n                                pickupDateInput.min = formatDate(nextValid);\n\n                                \/\/ Als huidige pickup waarde nu ongeldig is, wis het\n                                if (pickupDateInput.value) {\n                                    const currentPickup = parseLocalDate(pickupDateInput.value);\n                                    if (currentPickup && currentPickup < nextValid) {\n                                        pickupDateInput.value = '';\n                                    }\n                                }\n                            }\n\n                            \/\/ Eenmalig: event listeners voor datum-validatie\n                            \/\/ Verschuif ongeldige pickup-datum automatisch naar eerstvolgende geldige dag\n                            pickupDateInput.addEventListener('input', function(e) {\n                                const selectedDate = parseLocalDate(this.value);\n                                if (!selectedDate) return;\n\n                                const dayOfWeek = selectedDate.getDay();\n                                const locationKey = getLocationKey();\n                                let corrected = null;\n\n                                if (dayOfWeek === 0) { \/\/ zondag \u2192 maandag\n                                    corrected = addDays(selectedDate, 1);\n                                } else if (dayOfWeek === 6 && locationKey === 'venlo') { \/\/ zaterdag Venlo \u2192 maandag\n                                    corrected = addDays(selectedDate, 2);\n                                }\n\n                                if (corrected) {\n                                    this.value = formatDate(corrected);\n                                    \/\/ Trigger change event zodat tijden etc. bijwerken\n                                    this.dispatchEvent(new Event('change'));\n                                }\n                            });\n\n                            \/\/ Zondag-markering: rood tonen als inleverdatum op zondag valt\n                            function updateSundayClass(input) {\n                                const d = parseLocalDate(input.value);\n                                input.classList.toggle('is-sunday', d !== null && d.getDay() === 0);\n                            }\n\n                            dropoffDateInput.addEventListener('input', function(e) {\n                                const selectedDate = parseLocalDate(this.value);\n                                if (!selectedDate) return;\n\n                                updateSundayClass(this);\n                                const dayOfWeek = selectedDate.getDay();\n                                const locationKey = getLocationKey();\n\n                                if (dayOfWeek === 6 && locationKey === 'venlo') {\n                                    this.value = '';\n                                    alert('Venlo is op zaterdag alleen open op afspraak. Kies een andere dag.');\n                                    return;\n                                }\n                            });\n\n                            function parseLocalDate(str) {\n                                if (!str) return null;\n                                const [y, m, d] = str.split('-').map(Number);\n                                return new Date(y, m - 1, d);\n                            }\n                            function formatDate(date) {\n                                const y = date.getFullYear();\n                                const m = String(date.getMonth() + 1).padStart(2, '0');\n                                const d = String(date.getDate()).padStart(2, '0');\n                                return `${y}-${m}-${d}`;\n                            }\n                            function addDays(date, days) {\n                                const copy = new Date(date);\n                                copy.setDate(copy.getDate() + days);\n                                return copy;\n                            }\n                            function startOfToday() {\n                                const now = new Date();\n                                return new Date(now.getFullYear(), now.getMonth(), now.getDate());\n                            }\n\n                            function updateReturnMin() {\n                                const today = startOfToday();\n                                const pickup = parseLocalDate(pickupDateInput.value);\n                                let minReturn = today;\n                                if (pickup) {\n                                    \/\/ Dezelfde dag mag (dagdeel verhuur)\n                                    if (pickup > minReturn) minReturn = pickup;\n                                }\n                                dropoffDateInput.min = formatDate(minReturn);\n                                const currentReturn = parseLocalDate(dropoffDateInput.value);\n                                if (currentReturn && currentReturn < minReturn) {\n                                    dropoffDateInput.value = formatDate(minReturn);\n                                }\n                                \/\/ Update return time options als dezelfde dag\n                                updateReturnTimeForSameDay();\n                            }\n\n                            \/\/ Dagdeel configuratie\n                            const dagdelen = {\n                                weekday: [\n                                    { pickup: '09:00', dropoff: '13:00' },\n                                    { pickup: '09:00', dropoff: '17:00' },\n                                    { pickup: '13:00', dropoff: '17:00' }\n                                ],\n                                saturday: [\n                                    { pickup: '08:00', dropoff: '12:00' },\n                                    { pickup: '08:00', dropoff: '16:30' },\n                                    { pickup: '12:30', dropoff: '16:30' }\n                                ]\n                            };\n\n                            function updatePickupTimesForSameDay() {\n                                const pickupDate = pickupDateInput.value;\n                                const returnDate = dropoffDateInput.value;\n\n                                if (!pickupDate || !returnDate) return;\n\n                                const isSameDay = pickupDate === returnDate;\n                                const date = parseLocalDate(pickupDate);\n                                if (!date) return;\n\n                                const dayOfWeek = date.getDay();\n                                const isSaturday = dayOfWeek === 6;\n\n                                if (isSameDay) {\n                                    \/\/ Dagdeel verhuur: toon alleen unieke dagdeel-starttijden\n                                    const slots = isSaturday ? dagdelen.saturday : dagdelen.weekday;\n                                    const currentValue = pickupTimeSelect.value;\n                                    pickupTimeSelect.innerHTML = '';\n\n                                    \/\/ Haal unieke ophaaltijden op\n                                    const uniquePickupTimes = [...new Set(slots.map(slot => slot.pickup))];\n\n                                    uniquePickupTimes.forEach(time => {\n                                        const option = document.createElement('option');\n                                        option.value = time;\n                                        option.textContent = time;\n                                        if (time === currentValue) option.selected = true;\n                                        pickupTimeSelect.appendChild(option);\n                                    });\n\n                                    if (!pickupTimeSelect.value && pickupTimeSelect.options.length > 0) {\n                                        pickupTimeSelect.selectedIndex = 0;\n                                    }\n                                } else {\n                                    \/\/ Niet dezelfde dag - herstel normale tijden\n                                    if (pickupDateInput.value && pickupLocationSelect.value) {\n                                        filterTimeOptions(pickupTimeSelect, pickupDateInput);\n                                    }\n                                }\n                            }\n\n                            function updateReturnTimeForSameDay() {\n                                const pickupDate = pickupDateInput.value;\n                                const returnDate = dropoffDateInput.value;\n\n                                if (!pickupDate || !returnDate) return;\n\n                                \/\/ Altijd alle tijden tonen voor inleveren\n                                if (dropoffDateInput.value && pickupLocationSelect.value) {\n                                    filterTimeOptions(returnTimeSelect, dropoffDateInput, true);\n                                }\n                            }\n\n                            \/\/ Event listeners\n                            pickupLocationSelect.addEventListener('change', function() {\n                                updatePickupMinDate();\n                                if (pickupDateInput.value) filterTimeOptions(pickupTimeSelect, pickupDateInput);\n                                if (dropoffDateInput.value) filterTimeOptions(returnTimeSelect, dropoffDateInput, true);\n                                updatePickupTimesForSameDay();\n                                updateReturnTimeForSameDay();\n                            });\n\n                            pickupDateInput.addEventListener('change', function() {\n                                filterTimeOptions(pickupTimeSelect, pickupDateInput);\n                                updateReturnMin();\n                                updatePickupTimesForSameDay();\n                            });\n\n                            dropoffDateInput.addEventListener('change', function() {\n                                filterTimeOptions(returnTimeSelect, dropoffDateInput, true);\n                                updatePickupTimesForSameDay();\n                                updateReturnTimeForSameDay();\n                            });\n\n                            pickupTimeSelect.addEventListener('change', function() {\n                                updateReturnTimeForSameDay();\n                            });\n\n                            updateReturnMin();\n\n                            \/\/ Initi\u00eble filtering - filter tijden direct op page load als er al data is\n                            \/\/ Dit zorgt ervoor dat alleen geldige tijden getoond worden\n                            if (pickupLocationSelect.value && pickupDateInput.value) {\n                                filterTimeOptions(pickupTimeSelect, pickupDateInput);\n                            }\n                            if (pickupLocationSelect.value && dropoffDateInput.value) {\n                                filterTimeOptions(returnTimeSelect, dropoffDateInput, true);\n                            }\n                            updateReturnTimeForSameDay();\n\n                            form.addEventListener('submit', function (e) {\n                                \/\/ 1) Eerst vestiging valideren\n                                applyPickupValidity();\n                                if (!hasValidPickupLocation()) {\n                                    e.preventDefault();\n                                    pickupLocationSelect.reportValidity();\n                                    return;\n                                }\n\n                                \/\/ 2) Dan datum\/tijd-validaties\n                                const today = startOfToday();\n                                const pickup = parseLocalDate(pickupDateInput.value);\n                                const dropoff = parseLocalDate(dropoffDateInput.value);\n\n                                if (!dropoff) return;\n\n                                if (dropoff < today) {\n                                    e.preventDefault();\n                                    alert('De inleverdatum mag niet in het verleden liggen.');\n                                    return;\n                                }\n\n                                if (pickup && dropoff < pickup) {\n                                    e.preventDefault();\n                                    alert('De inleverdatum mag niet voor de ophaaldatum liggen.');\n                                    return;\n                                }\n\n                                \/\/ Als dezelfde dag: check dat inlevertijd NA ophaaltijd is\n                                if (pickup && dropoff.getTime() === pickup.getTime()) {\n                                    const pickupTime = pickupTimeSelect.value;\n                                    const returnTime = returnTimeSelect.value;\n\n                                    if (returnTime <= pickupTime) {\n                                        e.preventDefault();\n                                        alert('Bij dagdeel verhuur moet de inlevertijd later zijn dan de ophaaltijd.');\n                                        return;\n                                    }\n                                }\n                            });\n                        });\n                    <\/script>\n                <\/form>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n<\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-39920","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/pages\/39920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/comments?post=39920"}],"version-history":[{"count":2,"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/pages\/39920\/revisions"}],"predecessor-version":[{"id":40826,"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/pages\/39920\/revisions\/40826"}],"wp:attachment":[{"href":"https:\/\/adremlimburg.nl\/en\/wp-json\/wp\/v2\/media?parent=39920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}