{"id":4572,"date":"2025-01-08T13:38:06","date_gmt":"2025-01-08T13:38:06","guid":{"rendered":"https:\/\/easytaxibelgium.be\/boekingvervoer\/"},"modified":"2026-04-30T11:58:45","modified_gmt":"2026-04-30T11:58:45","slug":"boekingvervoer","status":"publish","type":"page","link":"https:\/\/easytaxibelgium.be\/nl\/","title":{"rendered":"BookingTransport"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4572\" class=\"elementor elementor-4572 elementor-2634\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fef19b3 e-grid e-con-boxed e-con e-parent\" data-id=\"fef19b3\" 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-4515562 elementor-widget elementor-widget-spacer\" data-id=\"4515562\" 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-f9fc99e elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"f9fc99e\" 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\">Easy Taxi Belgium - Luchthavenvervoer Brussel<br>Reis met gemak, betrouwbaar &amp; betaalbaar in Belgi\u00eb<\/h1>\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-a27a4b4 e-flex e-con-boxed e-con e-parent\" data-id=\"a27a4b4\" 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-9fb97f7 elementor-widget elementor-widget-heading\" data-id=\"9fb97f7\" 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<h2 class=\"elementor-heading-title elementor-size-default\">Boek uw rit in 3 eenvoudige stappen naar alle luchthavens in Belgi\u00eb<\/h2>\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-220221b e-flex e-con-boxed e-con e-parent\" data-id=\"220221b\" 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 data-pafe-form-abandonment=\"\" class=\"elementor-element elementor-element-76099b2 elementor-widget__width-inherit elementor-widget elementor-widget-pafe-multi-step-form\" data-id=\"76099b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-multi-step-form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form\">\n\t\t\t\t<div class=\"pafe-multi-step-form__progressbar \">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item active\">\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-step-number\">\n\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-step\">1<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-title   \">Transfer<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item\">\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-step-number\">\n\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-step\">2<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-title   \">Vehicle<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item\">\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-step-number\">\n\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-step\">3<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__progressbar-item-title   \">Payment<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item active\" data-pafe-form-builder-step-item-id=\"6061\">\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-shortcode\">\n\t\t\t\t\t\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"6132\" class=\"elementor elementor-6132 elementor-6061 elementor-6061\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-fe603fa e-flex e-con-boxed e-con e-parent\" data-id=\"fe603fa\" 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-aa80bb3 e-grid e-con-full e-con e-child\" data-id=\"aa80bb3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4042556 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"4042556\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-date elementor-field-group elementor-column elementor-field-group-pickupdate elementor-col-100 elementor-field-required elementor-mark-required\">\r\n\t\t\t\t<label for=\"form-field-pickupdate\" class=\"elementor-field-label\">Ophaal Datum &amp; Tijd  <\/label><div data-pafe-form-builder-required><\/div><div class=\"pafe-field-container\"><input class=\"elementor-field elementor-size-  elementor-field-textual elementor-date-field elementor-use-native flatpickr-custom-options\" type=\"date\" name=\"form_fields[pickupdate]\" id=\"form-field-pickupdate\" placeholder=\"DD-MM-JJJJ - UU:MM\" autocomplete=\"on\" data-pafe-form-builder-default-value=\"\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-flatpickr-custom-options=\"{\n  allowInput: false,\n  enableTime: true,\n  dateFormat: &quot;d-m-Y - H:i K&quot;,\n  minDate: new Date(new Date().getTime() + 12 * 60 * 60 * 1000),\n  maxDate: new Date().fp_incr(60),\n  disableMobile: false,\n  minuteIncrement: 15,\n  time_24hr: true,\n  clickOpens: true,\n  enable: [\n    function(date) {\n      return (date.getDate() &lt; (new Date().getTime() + 12 * 60 * 60 * 1000));\n    }\n  ],\n  onReady: function(selectedDates, dateStr, instance) {\n    const input = instance.input;\n\n    \/\/ Set readonly attribute and property\n    input.setAttribute(&quot;readonly&quot;, &quot;readonly&quot;);\n    input.readOnly = true;\n\n    \/\/ Ensure that when the input is focused, the calendar opens and we prevent any key input\n    input.addEventListener(&#039;focus&#039;, function(e) {\n      instance.open();\n      e.preventDefault();\n    });\n\n    \/\/ Prevent all key events\n    input.addEventListener(&#039;keydown&#039;, function(e) {\n      e.preventDefault();\n      instance.open(); \/\/ Optionally open the calendar on keydown\n    });\n\n    input.addEventListener(&#039;keypress&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener(&#039;keyup&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Also prevent paste, cut, etc.\n    input.addEventListener(&#039;paste&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener(&#039;cut&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener(&#039;copy&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Make sure the input doesn&#039;t get focused by tab key without opening the calendar\n    input.addEventListener(&#039;mousedown&#039;, function(e) {\n      \/\/ We don&#039;t prevent default because we want the click to trigger the calendar\n      \/\/ But we can force the calendar to open on mousedown as well if needed\n      \/\/ instance.open();\n    });\n  },\n  onKeyDown: function(selectedDates, dateStr, instance) {\n    return false; \/\/ Prevent any keyboard input in the Flatpickr instance\n  }\n}\" data-pafe-form-builder-date-calculate=\"0\">\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\t(function ($) {\r\n\t\t\t\t\t\t\t\t\t\tvar WidgetPafeFormBuilderHandlerDatepickupdate = function ($scope, $) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t    var $elements = $scope.find('.elementor-date-field');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (!$elements.length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvar $elements = $scope.find('#form-field-pickupdate');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (!$elements.length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n                                            var options = {\n  allowInput: false,\n  enableTime: true,\n  dateFormat: \"d-m-Y - H:i K\",\n  minDate: new Date(new Date().getTime() + 12 * 60 * 60 * 1000),\n  maxDate: new Date().fp_incr(60),\n  disableMobile: false,\n  minuteIncrement: 15,\n  time_24hr: true,\n  clickOpens: true,\n  enable: [\n    function(date) {\n      return (date.getDate() < (new Date().getTime() + 12 * 60 * 60 * 1000));\n    }\n  ],\n  onReady: function(selectedDates, dateStr, instance) {\n    const input = instance.input;\n\n    \/\/ Set readonly attribute and property\n    input.setAttribute(\"readonly\", \"readonly\");\n    input.readOnly = true;\n\n    \/\/ Ensure that when the input is focused, the calendar opens and we prevent any key input\n    input.addEventListener('focus', function(e) {\n      instance.open();\n      e.preventDefault();\n    });\n\n    \/\/ Prevent all key events\n    input.addEventListener('keydown', function(e) {\n      e.preventDefault();\n      instance.open(); \/\/ Optionally open the calendar on keydown\n    });\n\n    input.addEventListener('keypress', function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener('keyup', function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Also prevent paste, cut, etc.\n    input.addEventListener('paste', function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener('cut', function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener('copy', function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Make sure the input doesn't get focused by tab key without opening the calendar\n    input.addEventListener('mousedown', function(e) {\n      \/\/ We don't prevent default because we want the click to trigger the calendar\n      \/\/ But we can force the calendar to open on mousedown as well if needed\n      \/\/ instance.open();\n    });\n  },\n  onKeyDown: function(selectedDates, dateStr, instance) {\n    return false; \/\/ Prevent any keyboard input in the Flatpickr instance\n  }\n};\r\n                                                                                            options['allowInput'] = true;\r\n                                            \t\t\t\t\t\t\t\t\t\t\t$.each($elements, function (i, $element) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$element.flatpickr(options);\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t$(window).on('elementor\/frontend\/init', function () {\r\n\t\t\t\t\t\t\t\t\t        elementorFrontend.hooks.addAction('frontend\/element_ready\/pafe-form-builder-field.default', WidgetPafeFormBuilderHandlerDatepickupdate);\r\n\t\t\t\t\t\t\t\t\t    });\r\n\r\n\t\t\t\t\t\t\t\t\t}(jQuery)); \r\n\t\t\t\t\t\t\t\t<\/script>\r\n\t\t\t\t\t\t<\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ae59f22 e-grid e-con-full e-con e-child\" data-id=\"ae59f22\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-14d5550 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"14d5550\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-address_autocomplete elementor-field-group elementor-column elementor-field-group-pickuplocation elementor-col-100 elementor-field-required elementor-mark-required\">\r\n\t\t\t\t<label for=\"form-field-pickuplocation\" class=\"elementor-field-label\">Ophaallocatie <\/label><div data-pafe-form-builder-required><\/div><div class=\"pafe-field-container\"><input size=\"1\" class=\"elementor-field elementor-size- \" type=\"text\" name=\"form_fields[pickuplocation]\" id=\"form-field-pickuplocation\" placeholder=\"begin met typen en selecteer een adres uit de lijst\" autocomplete=\"on\" data-pafe-form-builder-default-value=\"\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-form-builder-address-autocomplete=\"multistepbf\" data-pafe-form-builder-address-autocomplete-country=\"[&quot;BE&quot;]\" data-pafe-form-builder-google-maps-lat=\"\" data-pafe-form-builder-google-maps-lng=\"\" data-pafe-form-builder-google-maps-formatted-address=\"\" data-pafe-form-builder-google-maps-zoom=\"\"><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1c95eb elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"e1c95eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-address_autocomplete elementor-field-group elementor-column elementor-field-group-dropofflocation elementor-col-100 elementor-field-required elementor-mark-required\">\r\n\t\t\t\t<label for=\"form-field-dropofflocation\" class=\"elementor-field-label\">Bestemming <\/label><div data-pafe-form-builder-required><\/div><div class=\"pafe-field-container\"><input size=\"1\" class=\"elementor-field elementor-size- \" type=\"text\" name=\"form_fields[dropofflocation]\" id=\"form-field-dropofflocation\" placeholder=\" begin met typen en selecteer een adres uit de lijst\" autocomplete=\"on\" data-pafe-form-builder-default-value=\"\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-form-builder-address-autocomplete=\"multistepbf\" data-pafe-form-builder-address-autocomplete-country=\"[&quot;BE&quot;,&quot;FR&quot;,&quot;DE&quot;,&quot;LU&quot;,&quot;NL&quot;]\" data-pafe-form-builder-google-maps-lat=\"\" data-pafe-form-builder-google-maps-lng=\"\" data-pafe-form-builder-google-maps-formatted-address=\"\" data-pafe-form-builder-google-maps-zoom=\"\"><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9997c00 elementor-widget elementor-widget-text-editor\" data-id=\"9997c00\" 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><em>Selecteer de ophaal- en bestemmingslocatie uit de lijst voor de meest nauwkeurige en correcte berekening.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-46d0668 e-grid e-con-full e-con e-child\" data-id=\"46d0668\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div style=\"display:none\" class=\"elementor-element elementor-element-e8c1fe0 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"e8c1fe0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-flightnumber elementor-col-100\" data-pafe-form-builder-conditional-logic=\"[{&quot;_id&quot;:&quot;ed49852&quot;,&quot;pafe_conditional_logic_form_if&quot;:&quot;pickuplocation&quot;,&quot;pafe_conditional_logic_form_comparison_operators&quot;:&quot;contains&quot;,&quot;pafe_conditional_logic_form_type&quot;:null,&quot;pafe_conditional_logic_form_value&quot;:&quot;Airport&quot;,&quot;pafe_conditional_logic_form_action&quot;:[&quot;show&quot;],&quot;pafe_conditional_logic_form_set_value&quot;:null,&quot;pafe_conditional_logic_form_set_value_for&quot;:null,&quot;pafe_conditional_logic_form_and_or_operators&quot;:&quot;or&quot;},{&quot;pafe_conditional_logic_form_if&quot;:&quot;pickuplocation&quot;,&quot;pafe_conditional_logic_form_comparison_operators&quot;:&quot;contains&quot;,&quot;pafe_conditional_logic_form_type&quot;:null,&quot;pafe_conditional_logic_form_value&quot;:&quot;A\\u00e9roport&quot;,&quot;_id&quot;:&quot;f6559a2&quot;,&quot;pafe_conditional_logic_form_action&quot;:[&quot;show&quot;],&quot;pafe_conditional_logic_form_set_value&quot;:null,&quot;pafe_conditional_logic_form_set_value_for&quot;:null,&quot;pafe_conditional_logic_form_and_or_operators&quot;:&quot;or&quot;},{&quot;pafe_conditional_logic_form_if&quot;:&quot;pickuplocation&quot;,&quot;pafe_conditional_logic_form_comparison_operators&quot;:&quot;contains&quot;,&quot;pafe_conditional_logic_form_type&quot;:null,&quot;pafe_conditional_logic_form_value&quot;:&quot;Luchthaven&quot;,&quot;_id&quot;:&quot;b306e06&quot;,&quot;pafe_conditional_logic_form_action&quot;:[&quot;show&quot;],&quot;pafe_conditional_logic_form_set_value&quot;:null,&quot;pafe_conditional_logic_form_set_value_for&quot;:null,&quot;pafe_conditional_logic_form_and_or_operators&quot;:&quot;or&quot;}]\" data-pafe-form-builder-conditional-logic-speed=\"400\" data-pafe-form-builder-conditional-logic-easing=\"swing\">\r\n\t\t\t\t<label for=\"form-field-flightnumber\" class=\"elementor-field-label\">Vluchtnummer bij ophaal<\/label><div data-pafe-form-builder-required><\/div><div class=\"pafe-field-container\"><input size=\"1\" class=\"elementor-field elementor-size- \" type=\"text\" name=\"form_fields[flightnumber]\" id=\"form-field-flightnumber\" autocomplete=\"on\" data-pafe-form-builder-default-value=\"\" data-pafe-form-builder-form-id=\"multistepbf\"><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-abce399 e-grid e-con-boxed e-con e-child\" data-id=\"abce399\" 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-8237279 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"8237279\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-radio elementor-field-group elementor-column elementor-field-group-transferttype elementor-col-100 elementor-field-required elementor-mark-required\">\r\n\t\t\t\t<label for=\"form-field-transferttype\" class=\"elementor-field-label\">Type transfert<\/label><div data-pafe-form-builder-required><\/div><div class=\"pafe-field-container\"><script type=\"text\/javascript\">if(void 0===clearValidity){function clearValidity(i){console.log(jQuery(i)); jQuery(i).closest(\".elementor-field-subgroup\").find(\".elementor-field-option input\").each((function(){jQuery(this)[0].setCustomValidity(\"\")}))};}<\/script><form><div class=\"elementor-field-subgroup  \"><span class=\"elementor-field-option\"><input type=\"radio\" value=\"oneway\" data-value=\"oneway\" id=\"form-field-transferttype-0\" name=\"form_fields[transferttype]\" data-pafe-form-builder-default-value=\"oneway\" checked=\"checked checked\" data-checked=\"checked checked\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\"> <label for=\"form-field-transferttype-0\" class=\"pafe-checkbox-label\">Enkele reis<\/label><\/span><span class=\"elementor-field-option\"><input type=\"radio\" value=\"return\" data-value=\"return\" id=\"form-field-transferttype-1\" name=\"form_fields[transferttype]\" data-pafe-form-builder-default-value=\"oneway\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\"> <label for=\"form-field-transferttype-1\" class=\"pafe-checkbox-label\">Heen en terug<\/label><\/span><\/div><\/form><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div style=\"display:none\" class=\"elementor-element elementor-element-2f56ebd elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"2f56ebd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-date elementor-field-group elementor-column elementor-field-group-returndate elementor-col-100 elementor-field-required elementor-mark-required\" data-pafe-form-builder-conditional-logic=\"[{&quot;_id&quot;:&quot;50bcb41&quot;,&quot;pafe_conditional_logic_form_if&quot;:&quot;transferttype&quot;,&quot;pafe_conditional_logic_form_comparison_operators&quot;:&quot;contains&quot;,&quot;pafe_conditional_logic_form_value&quot;:&quot;return&quot;,&quot;pafe_conditional_logic_form_action&quot;:[&quot;show&quot;],&quot;pafe_conditional_logic_form_set_value&quot;:null,&quot;pafe_conditional_logic_form_set_value_for&quot;:null,&quot;pafe_conditional_logic_form_type&quot;:null,&quot;pafe_conditional_logic_form_and_or_operators&quot;:&quot;or&quot;}]\" data-pafe-form-builder-conditional-logic-speed=\"400\" data-pafe-form-builder-conditional-logic-easing=\"swing\">\r\n\t\t\t\t<label for=\"form-field-returndate\" class=\"elementor-field-label\">Retourdatum &amp; -tijd<\/label><div data-pafe-form-builder-required><\/div><div class=\"pafe-field-container\"><input class=\"elementor-field elementor-size-  elementor-field-textual elementor-date-field elementor-use-native flatpickr-custom-options\" type=\"date\" name=\"form_fields[returndate]\" id=\"form-field-returndate\" placeholder=\"DD-MM-JJJJ - UU:MM\" autocomplete=\"off\" data-pafe-form-builder-default-value=\"\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-flatpickr-custom-options=\"{\n  allowInput: false,\n  enableTime: true,\n  dateFormat: &quot;d-m-Y - H:i K&quot;,\n  minDate: new Date(new Date().getTime() + 48 * 60 * 60 * 1000),\n  maxDate: new Date().fp_incr(60),\n  disableMobile: false,\n  minuteIncrement: 15,\n  time_24hr: true,\n  clickOpens: true,\n  enable: [\n    function(date) {\n      return (date.getDate() &lt; (new Date().getTime() + 48 * 60 * 60 * 1000));\n    }\n  ],\n  onReady: function(selectedDates, dateStr, instance) {\n    const input = instance.input;\n\n    \/\/ Set readonly attribute and property\n    input.setAttribute(&quot;readonly&quot;, &quot;readonly&quot;);\n    input.readOnly = true;\n\n    \/\/ Ensure that when the input is focused, the calendar opens and we prevent any key input\n    input.addEventListener(&#039;focus&#039;, function(e) {\n      instance.open();\n      e.preventDefault();\n    });\n\n    \/\/ Prevent all key events\n    input.addEventListener(&#039;keydown&#039;, function(e) {\n      e.preventDefault();\n      instance.open(); \/\/ Optionally open the calendar on keydown\n    });\n\n    input.addEventListener(&#039;keypress&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener(&#039;keyup&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Also prevent paste, cut, etc.\n    input.addEventListener(&#039;paste&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener(&#039;cut&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener(&#039;copy&#039;, function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Make sure the input doesn&#039;t get focused by tab key without opening the calendar\n    input.addEventListener(&#039;mousedown&#039;, function(e) {\n      \/\/ We don&#039;t prevent default because we want the click to trigger the calendar\n      \/\/ But we can force the calendar to open on mousedown as well if needed\n      \/\/ instance.open();\n    });\n  },\n  onKeyDown: function(selectedDates, dateStr, instance) {\n    return false; \/\/ Prevent any keyboard input in the Flatpickr instance\n  }\n}\" data-pafe-form-builder-date-calculate=\"0\">\t\t\t\t\t\t\t\t<script>\r\n\t\t\t\t\t\t\t\t\t(function ($) {\r\n\t\t\t\t\t\t\t\t\t\tvar WidgetPafeFormBuilderHandlerDatereturndate = function ($scope, $) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t    var $elements = $scope.find('.elementor-date-field');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (!$elements.length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvar $elements = $scope.find('#form-field-returndate');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (!$elements.length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n                                            var options = {\n  allowInput: false,\n  enableTime: true,\n  dateFormat: \"d-m-Y - H:i K\",\n  minDate: new Date(new Date().getTime() + 48 * 60 * 60 * 1000),\n  maxDate: new Date().fp_incr(60),\n  disableMobile: false,\n  minuteIncrement: 15,\n  time_24hr: true,\n  clickOpens: true,\n  enable: [\n    function(date) {\n      return (date.getDate() < (new Date().getTime() + 48 * 60 * 60 * 1000));\n    }\n  ],\n  onReady: function(selectedDates, dateStr, instance) {\n    const input = instance.input;\n\n    \/\/ Set readonly attribute and property\n    input.setAttribute(\"readonly\", \"readonly\");\n    input.readOnly = true;\n\n    \/\/ Ensure that when the input is focused, the calendar opens and we prevent any key input\n    input.addEventListener('focus', function(e) {\n      instance.open();\n      e.preventDefault();\n    });\n\n    \/\/ Prevent all key events\n    input.addEventListener('keydown', function(e) {\n      e.preventDefault();\n      instance.open(); \/\/ Optionally open the calendar on keydown\n    });\n\n    input.addEventListener('keypress', function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener('keyup', function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Also prevent paste, cut, etc.\n    input.addEventListener('paste', function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener('cut', function(e) {\n      e.preventDefault();\n    });\n\n    input.addEventListener('copy', function(e) {\n      e.preventDefault();\n    });\n\n    \/\/ Make sure the input doesn't get focused by tab key without opening the calendar\n    input.addEventListener('mousedown', function(e) {\n      \/\/ We don't prevent default because we want the click to trigger the calendar\n      \/\/ But we can force the calendar to open on mousedown as well if needed\n      \/\/ instance.open();\n    });\n  },\n  onKeyDown: function(selectedDates, dateStr, instance) {\n    return false; \/\/ Prevent any keyboard input in the Flatpickr instance\n  }\n};\r\n                                                                                            options['allowInput'] = true;\r\n                                            \t\t\t\t\t\t\t\t\t\t\t$.each($elements, function (i, $element) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$element.flatpickr(options);\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t$(window).on('elementor\/frontend\/init', function () {\r\n\t\t\t\t\t\t\t\t\t        elementorFrontend.hooks.addAction('frontend\/element_ready\/pafe-form-builder-field.default', WidgetPafeFormBuilderHandlerDatereturndate);\r\n\t\t\t\t\t\t\t\t\t    });\r\n\r\n\t\t\t\t\t\t\t\t\t}(jQuery)); \r\n\t\t\t\t\t\t\t\t<\/script>\r\n\t\t\t\t\t\t<\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div style=\"display:none\" class=\"elementor-element elementor-element-187a2c1 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"187a2c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-returnflightnumber elementor-col-100\" data-pafe-form-builder-conditional-logic=\"[{&quot;pafe_conditional_logic_form_if&quot;:&quot;dropofflocation&quot;,&quot;pafe_conditional_logic_form_comparison_operators&quot;:&quot;contains&quot;,&quot;pafe_conditional_logic_form_type&quot;:null,&quot;pafe_conditional_logic_form_value&quot;:&quot;Airport&quot;,&quot;_id&quot;:&quot;c0b921b&quot;,&quot;pafe_conditional_logic_form_action&quot;:[&quot;show&quot;],&quot;pafe_conditional_logic_form_set_value&quot;:null,&quot;pafe_conditional_logic_form_set_value_for&quot;:null,&quot;pafe_conditional_logic_form_and_or_operators&quot;:&quot;or&quot;},{&quot;pafe_conditional_logic_form_if&quot;:&quot;dropofflocation&quot;,&quot;pafe_conditional_logic_form_comparison_operators&quot;:&quot;contains&quot;,&quot;pafe_conditional_logic_form_type&quot;:null,&quot;pafe_conditional_logic_form_value&quot;:&quot;A\\u00e9roport&quot;,&quot;_id&quot;:&quot;38d7073&quot;,&quot;pafe_conditional_logic_form_action&quot;:[&quot;show&quot;],&quot;pafe_conditional_logic_form_set_value&quot;:null,&quot;pafe_conditional_logic_form_set_value_for&quot;:null,&quot;pafe_conditional_logic_form_and_or_operators&quot;:&quot;or&quot;},{&quot;pafe_conditional_logic_form_if&quot;:&quot;dropofflocation&quot;,&quot;pafe_conditional_logic_form_comparison_operators&quot;:&quot;contains&quot;,&quot;pafe_conditional_logic_form_type&quot;:null,&quot;pafe_conditional_logic_form_value&quot;:&quot;Luchthaven&quot;,&quot;_id&quot;:&quot;64170d2&quot;,&quot;pafe_conditional_logic_form_action&quot;:[&quot;show&quot;],&quot;pafe_conditional_logic_form_set_value&quot;:null,&quot;pafe_conditional_logic_form_set_value_for&quot;:null,&quot;pafe_conditional_logic_form_and_or_operators&quot;:&quot;or&quot;}]\" data-pafe-form-builder-conditional-logic-speed=\"400\" data-pafe-form-builder-conditional-logic-easing=\"swing\">\r\n\t\t\t\t<label for=\"form-field-returnflightnumber\" class=\"elementor-field-label\">Vluchtnummer bij terugkeer <\/label><div data-pafe-form-builder-required><\/div><div class=\"pafe-field-container\"><input size=\"1\" class=\"elementor-field elementor-size- \" type=\"text\" name=\"form_fields[returnflightnumber]\" id=\"form-field-returnflightnumber\" autocomplete=\"on\" data-pafe-form-builder-default-value=\"\" data-pafe-form-builder-form-id=\"multistepbf\"><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7006707 elementor-hidden-tablet elementor-hidden-mobile elementor-hidden-desktop e-flex e-con-boxed e-con e-parent\" data-id=\"7006707\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-b0b0c51 e-grid e-con-boxed e-con e-child\" data-id=\"b0b0c51\" 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-cd3b561 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"cd3b561\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-calculated_fields elementor-field-group elementor-column elementor-field-group-distance1 elementor-col-100\">\r\n\t\t\t\t<label style=\"display:none\" for=\"form-field-distance1\" class=\"elementor-field-label pafe-label-inline\">distance1<\/label><div class=\"pafe-field-container pafe-field-inline\"><div class=\"pafe-calculated-fields-form\" style=\"width: 100%\"><span class=\"pafe-calculated-fields-form__value\"><\/span><\/div><input style=\"display:none!important;\" size=\"1\" type=\"text\" name=\"form_fields[distance1]\" id=\"form-field-distance1\" class=\"elementor-field elementor-size- \" data-pafe-form-builder-calculated-fields=\"\" data-pafe-form-builder-calculated-fields-before=\"\" data-pafe-form-builder-calculated-fields-after=\"\" data-pafe-form-builder-calculated-fields-rounding-decimals=\"0\" data-pafe-form-builder-calculated-fields-rounding-decimals-decimals-symbol=\".\" data-pafe-form-builder-calculated-fields-rounding-decimals-seperators-symbol=\",\" data-pafe-form-builder-calculated-fields-rounding-decimals-show=\"\" data-pafe-form-builder-remove-this-field-from-repeater=\"\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-form-builder-calculated-fields-distance-calculation=\"\" data-pafe-form-builder-calculated-fields-distance-calculation-from-field-shortcode=\"\" data-pafe-form-builder-calculated-fields-distance-calculation-to-field-shortcode=\"[field id=&quot;pickuplocation&quot;]\" data-pafe-form-builder-calculated-fields-distance-calculation-unit=\"km\" data-pafe-form-builder-calculated-fields-distance-calculation-from=\"Karel Rogierplein, 1210 Sint-Joost-ten-Node\"><\/div><div data-pafe-form-builder-required><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a6eba6 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"7a6eba6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-calculated_fields elementor-field-group elementor-column elementor-field-group-distance2 elementor-col-100\">\r\n\t\t\t\t<label style=\"display:none\" for=\"form-field-distance2\" class=\"elementor-field-label pafe-label-inline\">distance2<\/label><div class=\"pafe-field-container pafe-field-inline\"><div class=\"pafe-calculated-fields-form\" style=\"width: 100%\"><span class=\"pafe-calculated-fields-form__value\"><\/span><\/div><input style=\"display:none!important;\" size=\"1\" type=\"text\" name=\"form_fields[distance2]\" id=\"form-field-distance2\" class=\"elementor-field elementor-size- \" data-pafe-form-builder-calculated-fields=\"\" data-pafe-form-builder-calculated-fields-before=\"\" data-pafe-form-builder-calculated-fields-after=\"\" data-pafe-form-builder-calculated-fields-rounding-decimals=\"0\" data-pafe-form-builder-calculated-fields-rounding-decimals-decimals-symbol=\".\" data-pafe-form-builder-calculated-fields-rounding-decimals-seperators-symbol=\",\" data-pafe-form-builder-calculated-fields-rounding-decimals-show=\"\" data-pafe-form-builder-remove-this-field-from-repeater=\"\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-form-builder-calculated-fields-distance-calculation=\"\" data-pafe-form-builder-calculated-fields-distance-calculation-from-field-shortcode=\"[field id=&quot;pickuplocation&quot;]\" data-pafe-form-builder-calculated-fields-distance-calculation-to-field-shortcode=\"[field id=&quot;dropofflocation&quot;]\" data-pafe-form-builder-calculated-fields-distance-calculation-unit=\"km\"><\/div><div data-pafe-form-builder-required><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-830c966 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"830c966\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-calculated_fields elementor-field-group elementor-column elementor-field-group-distance3 elementor-col-100\">\r\n\t\t\t\t<label style=\"display:none\" for=\"form-field-distance3\" class=\"elementor-field-label pafe-label-inline\">distance3<\/label><div class=\"pafe-field-container pafe-field-inline\"><div class=\"pafe-calculated-fields-form\" style=\"width: 100%\"><span class=\"pafe-calculated-fields-form__value\"><\/span><\/div><input style=\"display:none!important;\" size=\"1\" type=\"text\" name=\"form_fields[distance3]\" id=\"form-field-distance3\" class=\"elementor-field elementor-size- \" data-pafe-form-builder-calculated-fields=\"\" data-pafe-form-builder-calculated-fields-before=\"\" data-pafe-form-builder-calculated-fields-after=\"\" data-pafe-form-builder-calculated-fields-rounding-decimals=\"0\" data-pafe-form-builder-calculated-fields-rounding-decimals-decimals-symbol=\".\" data-pafe-form-builder-calculated-fields-rounding-decimals-seperators-symbol=\",\" data-pafe-form-builder-calculated-fields-rounding-decimals-show=\"\" data-pafe-form-builder-remove-this-field-from-repeater=\"\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-form-builder-calculated-fields-distance-calculation=\"\" data-pafe-form-builder-calculated-fields-distance-calculation-from-field-shortcode=\"[field id=&quot;dropofflocation&quot;]\" data-pafe-form-builder-calculated-fields-distance-calculation-to-field-shortcode=\"\" data-pafe-form-builder-calculated-fields-distance-calculation-unit=\"km\" data-pafe-form-builder-calculated-fields-distance-calculation-to=\"Karel Rogierplein, 1210 Sint-Joost-ten-Node\"><\/div><div data-pafe-form-builder-required><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d6ef10 elementor-widget elementor-widget-html\" data-id=\"7d6ef10\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\n\/\/ Global Module for Pricing Calculator\r\nconst PricingCalculator = (function () {\r\n    \/\/ Private Variables\r\n    let prijskm_coef = 0.48;  \/\/ Default coefficient per km\r\n    let prijsmin_coef = 0.25;  \/\/ Default coefficient per minute\r\n    let isnight = 0;          \/\/ Default night status\r\n    let isnightreturn = 0;    \/\/ Default night return status\r\n    let totalKms = 0;         \/\/ Total distance\r\n    let transfert = 1;        \/\/ Default transfert type\r\n    let airportpickup = 0;    \/\/ Airport pickup status\r\n    let airportdropoff = 0;   \/\/ Airport dropoff status\r\n    let basicprice = 0;       \/\/ Basic price (totalKms * prijskm_coef)\r\n    let isInitialLoad = true; \/\/ Track initial page load state\r\n\r\n    \/\/ Time-Based Pricing Variables\r\n    let totaltime120 = 0;     \/\/ Total time for 120-minute rate\r\n    let pricetime120 = 0;     \/\/ Price for 120-minute rate\r\n    let totalprice120 = 0;    \/\/ Total price for 120-minute rate\r\n    let totaltime200 = 0;     \/\/ Total time for 200-minute rate\r\n    let pricetime200 = 0;     \/\/ Price for 200-minute rate\r\n    let totalprice200 = 0;    \/\/ Total price for 200-minute rate\r\n    let totaltime300 = 0;     \/\/ Total time for 300-minute rate\r\n    let pricetime300 = 0;     \/\/ Price for 300-minute rate\r\n    let totalprice300 = 0;    \/\/ Total price for 300-minute rate\r\n\r\n    \/\/ Final Prices\r\n    let priceberlinefinal = 0; \/\/ Final price for Berline\r\n    let pricevanfinal = 0;     \/\/ Final price for Van (priceberlinefinal + 50)\r\n\r\n    \/\/ Reference Address\r\n    const referenceAddress = \"Karel Rogierplein, 1210 Sint-Joost-ten-Node, Brussel, Belgi\u00eb\";\r\n    \r\n    \/\/ Distance and duration placeholders\r\n    const distance1 = 0;\r\n    const distance2 = 0;\r\n    const distance3 = 0;\r\n    const duration1 = 0;\r\n    const duration2 = 0;\r\n    const duration3 = 0;\r\n\r\n    \/\/ Caching mechanism for distance calculations\r\n    const distanceCache = new Map();\r\n    const CACHE_DURATION = 45 * 60 * 1000; \/\/ 30 minutes in milliseconds\r\n\r\n    \/\/ Validation flags\r\n    let isValidPickupLocation = false;\r\n    let isValidDropoffLocation = false;\r\n\r\n    \/\/ Price tiers configuration\r\n    const priceTiers = [\r\n        { max: 45, value: 45 }, { max: 50, value: 50 }, { max: 55, value: 55 },\r\n        { max: 60, value: 60 }, { max: 65, value: 65 }, { max: 70, value: 70 },\r\n        { max: 75, value: 75 }, { max: 80, value: 80 }, { max: 85, value: 85 },\r\n        { max: 90, value: 90 }, { max: 95, value: 95 }, { max: 100, value: 100 },\r\n        { max: 105, value: 105 }, { max: 110, value: 110 }, { max: 115, value: 115 },\r\n        { max: 120, value: 120 }, { max: 125, value: 125 }, { max: 130, value: 130 },\r\n        { max: 135, value: 135 }, { max: 140, value: 140 }, { max: 145, value: 145 },\r\n        { max: 150, value: 150 }, { max: 155, value: 155 }, { max: 160, value: 160 },\r\n        { max: 165, value: 165 }, { max: 170, value: 170 }, { max: 175, value: 175 },\r\n        { max: 180, value: 180 }, { max: 185, value: 185 }, { max: 190, value: 190 },\r\n        { max: 195, value: 195 }, { max: 200, value: 200 }, { max: 205, value: 205 },\r\n        { max: 210, value: 210 }, { max: 215, value: 215 }, { max: 220, value: 220 },\r\n        { max: 225, value: 225 }, { max: 230, value: 230 }, { max: 235, value: 235 },\r\n        { max: 240, value: 240 }, { max: 245, value: 245 }, { max: 250, value: 250 },\r\n        { max: 255, value: 255 }, { max: 260, value: 260 }, { max: 265, value: 265 },\r\n        { max: 270, value: 270 }, { max: 275, value: 275 }, { max: 280, value: 280 },\r\n        { max: 285, value: 285 }, { max: 290, value: 290 }\r\n    ];\r\n\t\r\n\t\/\/ Default reference pricingtable\r\n    const distancePriceRanges = [\r\n        { min: 1, max: 20, price: 45 },    \/\/ Default minimum price\r\n        { min: 20.01, max: 23, price: 50 },\r\n        { min: 23.01, max: 26, price: 55 },\r\n        { min: 26.01, max: 29, price: 60 },\r\n        { min: 29.01, max: 32, price: 65 },\r\n        { min: 32.01, max: 35, price: 70 },\r\n        { min: 35.01, max: 38, price: 75 },\r\n        { min: 38.01, max: 41, price: 80 },\r\n        { min: 41.01, max: 45, price: 85 },\r\n        { min: 45.01, max: 55, price: 90 },\r\n        { min: 55.01, max: 65, price: 95 },\r\n        { min: 65.01, max: 75, price: 110 },\r\n        { min: 75.01, max: 85, price: 130 },\r\n        { min: 85.01, max: 95, price: 150 },\r\n        { min: 95.01, max: 105, price: 170 },\r\n        { min: 105.01, max: 120, price: 190 }\r\n    ];\r\n\r\n    \/\/ Helper function to handle return date visibility\r\n    const toggleReturnDateVisibility = (show) => {\r\n        const returnDateField = document.getElementById(\"form-field-returndate\") || \r\n                              document.querySelector('[name=\"form_fields[returndate]\"]');\r\n        \r\n        if (returnDateField) {\r\n            let container = returnDateField.closest('.piotnet-form__field-wrapper') || \r\n                          returnDateField.closest('.elementor-field-group') ||\r\n                          returnDateField.closest('.piotnet-form-fields-wrapper') ||\r\n                          returnDateField.parentElement;\r\n            \r\n            if (container) {\r\n                container.style.display = show ? '' : 'none';\r\n                \r\n                if (typeof jQuery !== 'undefined') {\r\n                    jQuery(container).trigger('change');\r\n                    jQuery(returnDateField).trigger('input');\r\n                }\r\n            }\r\n        }\r\n    };\r\n\r\n    \/\/ Cache management functions\r\n    const generateCacheKey = (pickup, dropoff) => {\r\n        return `${pickup.trim().toLowerCase()}|${dropoff.trim().toLowerCase()}`;\r\n    };\r\n\r\n    const getCachedDistance = (pickup, dropoff) => {\r\n        const cacheKey = generateCacheKey(pickup, dropoff);\r\n        const cached = distanceCache.get(cacheKey);\r\n        \r\n        if (cached && (Date.now() - cached.timestamp < CACHE_DURATION)) {\r\n            console.log(\"Using cached distance for:\", cacheKey);\r\n            return cached.distance;\r\n        }\r\n        \r\n        if (cached) {\r\n            console.log(\"Cache expired for:\", cacheKey);\r\n            distanceCache.delete(cacheKey);\r\n        }\r\n        \r\n        return null;\r\n    };\r\n\r\n    const setCachedDistance = (pickup, dropoff, distance) => {\r\n        const cacheKey = generateCacheKey(pickup, dropoff);\r\n        distanceCache.set(cacheKey, {\r\n            distance: distance,\r\n            timestamp: Date.now()\r\n        });\r\n        console.log(\"Distance cached for:\", cacheKey, \"Value:\", distance);\r\n    };\r\n\r\n    \/\/ Debounce function to limit API calls\r\n    const debounce = (func, wait) => {\r\n        let timeout;\r\n        return function executedFunction(...args) {\r\n            const later = () => {\r\n                clearTimeout(timeout);\r\n                func(...args);\r\n            };\r\n            clearTimeout(timeout);\r\n            timeout = setTimeout(later, wait);\r\n        };\r\n    };\r\n\r\n    \/\/ Function to reset prices to 0\r\n    const resetPricesToZero = function() {\r\n        priceberlinefinal = 0;\r\n        pricevanfinal = 0;\r\n        \r\n        \/\/ Update form fields\r\n        const finalPriceField = document.getElementById(\"form-field-finalpriceberline\");\r\n        if (finalPriceField) {\r\n            finalPriceField.value = \"0.00\";\r\n        }\r\n        \r\n        console.log(\"Prices reset to 0: Berline - 0\u20ac, Van - 0\u20ac\");\r\n    };\r\n\r\n    \/\/ Function to set default distances to 150\r\n    const setDefaultDistances = function() {\r\n        const distance1Field = document.getElementById(\"form-field-distance1\");\r\n        const distance2Field = document.getElementById(\"form-field-distance2\");\r\n        const distance3Field = document.getElementById(\"form-field-distance3\");\r\n        \r\n        if (distance1Field) {\r\n            distance1Field.value = \"150\";\r\n            console.log(\"Set distance1 to default value: 150\");\r\n        }\r\n        if (distance2Field) {\r\n            distance2Field.value = \"150\";\r\n            console.log(\"Set distance2 to default value: 150\");\r\n        }\r\n        if (distance3Field) {\r\n            distance3Field.value = \"150\";\r\n            console.log(\"Set distance3 to default value: 150\");\r\n        }\r\n        \r\n        console.log(\"All distance fields set to default value: 150\");\r\n    };\r\n\r\n    \/\/ Function to check if distances are all 0\r\n    const areAllDistancesZero = function(distance1, distance2, distance3) {\r\n        return distance1 === 0 && distance2 === 0 && distance3 === 0;\r\n    };\r\n\r\n    \/\/ NEW: Function to validate address format\r\n    const validateAddressFormat = function(address) {\r\n        if (!address || address.trim() === '') {\r\n            return false;\r\n        }\r\n        \r\n        \/\/ Check for common address patterns (contains comma and numbers typically)\r\n        const addressPatterns = [\r\n            \/\/ Belgian address pattern: Street, Number, PostalCode City, Country\r\n            \/^[^,]+,\\s*\\d+[^,]*,\\s*\\d{4}\\s+[^,]+,\\s*[^,]+$\/,\r\n            \/\/ Generic address with comma separation\r\n            \/^[^,]+,[^,]+,[^,]+\/,\r\n            \/\/ Address with at least one comma (street, city)\r\n            \/^[^,]+,.+\/\r\n        ];\r\n        \r\n        \/\/ Check if address matches any pattern\r\n        for (const pattern of addressPatterns) {\r\n            if (pattern.test(address.trim())) {\r\n                return true;\r\n            }\r\n        }\r\n        \r\n        \/\/ Additional check: address should have at least one comma\r\n        const commaCount = (address.match(\/,\/g) || []).length;\r\n        if (commaCount >= 1) {\r\n            \/\/ Check if there's content after the comma\r\n            const parts = address.split(',');\r\n            if (parts.length >= 2 && parts[1].trim().length > 0) {\r\n                return true;\r\n            }\r\n        }\r\n        \r\n        return false;\r\n    };\r\n\r\n    \/\/ NEW: Function to show error message\r\n    const showAddressError = function(fieldId, message) {\r\n        const field = document.getElementById(fieldId);\r\n        if (!field) return;\r\n        \r\n        \/\/ Remove any existing error\r\n        const existingError = field.parentElement.querySelector('.address-error-message');\r\n        if (existingError) {\r\n            existingError.remove();\r\n        }\r\n        \r\n        \/\/ Remove error styling\r\n        field.classList.remove('address-error');\r\n        \r\n        \/\/ Create error message element\r\n        const errorElement = document.createElement('div');\r\n        errorElement.className = 'address-error-message';\r\n        errorElement.style.cssText = `\r\n            color: #dc2626;\r\n            font-size: 12px;\r\n            margin-top: 4px;\r\n            padding: 4px 8px;\r\n            background-color: #fef2f2;\r\n            border-radius: 4px;\r\n            border-left: 3px solid #dc2626;\r\n        `;\r\n        errorElement.textContent = message;\r\n        \r\n        \/\/ Add error styling to field\r\n        field.classList.add('address-error');\r\n        field.style.borderColor = '#dc2626';\r\n        field.style.boxShadow = '0 0 0 1px #dc2626';\r\n        \r\n        \/\/ Insert error message after the field\r\n        field.parentNode.insertBefore(errorElement, field.nextSibling);\r\n        \r\n        \/\/ Auto-remove error after 5 seconds\r\n        setTimeout(() => {\r\n            if (errorElement.parentNode) {\r\n                errorElement.remove();\r\n                field.classList.remove('address-error');\r\n                field.style.borderColor = '';\r\n                field.style.boxShadow = '';\r\n            }\r\n        }, 5000);\r\n    };\r\n\r\n    \/\/ NEW: Function to clear error\r\n    const clearAddressError = function(fieldId) {\r\n        const field = document.getElementById(fieldId);\r\n        if (!field) return;\r\n        \r\n        field.classList.remove('address-error');\r\n        field.style.borderColor = '';\r\n        field.style.boxShadow = '';\r\n        \r\n        const existingError = field.parentElement.querySelector('.address-error-message');\r\n        if (existingError) {\r\n            existingError.remove();\r\n        }\r\n    };\r\n\r\n    \/\/ NEW: Function to validate location field\r\n    const validateLocationField = function(fieldId, fieldName) {\r\n        const field = document.getElementById(fieldId);\r\n        if (!field) return false;\r\n        \r\n        const value = field.value.trim();\r\n        \r\n        \/\/ Check if field is empty\r\n        if (value === '') {\r\n            showAddressError(fieldId, `Please select a ${fieldName} from the address list`);\r\n            return false;\r\n        }\r\n        \r\n        \/\/ Check if address is properly formatted (selected from autocomplete)\r\n        if (!validateAddressFormat(value)) {\r\n            showAddressError(fieldId, `Please select a valid ${fieldName} from the address autocomplete list`);\r\n            return false;\r\n        }\r\n        \r\n        \/\/ Clear any existing error\r\n        clearAddressError(fieldId);\r\n        return true;\r\n    };\r\n\r\n    \/\/ NEW: Function to validate both locations\r\n    const validateBothLocations = function() {\r\n        const pickupValid = validateLocationField('form-field-pickuplocation', 'pickup location');\r\n        const dropoffValid = validateLocationField('form-field-dropofflocation', 'dropoff location');\r\n        \r\n        isValidPickupLocation = pickupValid;\r\n        isValidDropoffLocation = dropoffValid;\r\n        \r\n        return pickupValid && dropoffValid;\r\n    };\r\n\r\n    \/\/ NEW: Function to check extra fee zone\r\n    const checkExtraFeeZone = function(location) {\r\n        if (!location) return false;\r\n        const extraZones = ['kraainem', 'tervuren', 'overijse', 'woluwe', 'ukkel', 'uccle', 'oppem'];\r\n        const lowerLocation = location.toLowerCase();\r\n        return extraZones.some(zone => lowerLocation.includes(zone));\r\n    };\r\n\r\n    \/\/ Public API\r\n    return {\r\n        \/\/ Getter methods for all variables\r\n        getPrijskmCoef: () => prijskm_coef,\r\n        getPrijsminCoef: () => prijsmin_coef,\r\n        getIsNight: () => isnight,\r\n        getIsNightReturn: () => isnightreturn,\r\n        getTotalKms: () => totalKms,\r\n        getTransfert: () => transfert,\r\n        getAirportPickup: () => airportpickup,\r\n        getAirportDropoff: () => airportdropoff,\r\n        getBasicPrice: () => basicprice,\r\n        getTotalTime120: () => totaltime120,\r\n        getPriceTime120: () => pricetime120,\r\n        getTotalPrice120: () => totalprice120,\r\n        getTotalTime200: () => totaltime200,\r\n        getPriceTime200: () => pricetime200,\r\n        getTotalPrice200: () => totalprice200,\r\n        getTotalTime300: () => totaltime300,\r\n        getPriceTime300: () => pricetime300,\r\n        getTotalPrice300: () => totalprice300,\r\n        getPriceBerlineFinal: () => priceberlinefinal,\r\n        getPriceVanFinal: () => pricevanfinal,\r\n\r\n\r\n\/*** FUNCTION 1: CHECK NIGHT-TIME PRICING - MODIFIED FOR \"DD-MM-YYYY - HH:MM\" FORMAT ***\/\r\ncheckNightTime: function () {\r\n    console.log(\"Executing checkNightTime...\");\r\n\r\n    \/\/ Get datetime values from the new fields\r\n    const pickUpDateTime = document.getElementById(\"form-field-pickupdate\")?.value || \"\";\r\n    const returnDateTime = document.getElementById(\"form-field-returndate\")?.value || \"\";\r\n\r\n    \/\/ Debug: log raw field values\r\n    console.log(\"DEBUG - Pickup field value:\", pickUpDateTime);\r\n    console.log(\"DEBUG - Return field value:\", returnDateTime);\r\n\r\n    function parseDateTime(datetimeString) {\r\n        if (!datetimeString || datetimeString.trim() === '') {\r\n            console.log(\"parseDateTime: Empty datetime string\");\r\n            return null;\r\n        }\r\n        \r\n        console.log(\"parseDateTime: Raw input:\", datetimeString);\r\n        \r\n        \/\/ Try multiple formats\r\n        let match = null;\r\n        let hours = 0;\r\n        let minutes = 0;\r\n        \r\n        \/\/ Format 1: \"DD-MM-YYYY - HH:MM\" (24-hour format)\r\n        match = datetimeString.match(\/^(\\d{1,2})-(\\d{1,2})-(\\d{4})\\s*-\\s*(\\d{1,2}):(\\d{2})$\/);\r\n        if (match) {\r\n            hours = parseInt(match[4], 10);\r\n            minutes = parseInt(match[5], 10);\r\n            console.log(\"parseDateTime: Matched format DD-MM-YYYY - HH:MM\", hours + \":\" + minutes);\r\n        }\r\n        \r\n        \/\/ Format 2: \"DD-MM-YYYY - HH:MM AM\/PM\" (12-hour format with AM\/PM)\r\n        if (!match) {\r\n            match = datetimeString.match(\/^(\\d{1,2})-(\\d{1,2})-(\\d{4})\\s*-\\s*(\\d{1,2}):(\\d{2})\\s*(AM|PM|am|pm)$\/i);\r\n            if (match) {\r\n                hours = parseInt(match[4], 10);\r\n                minutes = parseInt(match[5], 10);\r\n                const period = match[6].toUpperCase();\r\n                \r\n                \/\/ Convert 12-hour format to 24-hour format\r\n                if (period === 'PM' && hours < 12) {\r\n                    hours += 12;\r\n                } else if (period === 'AM' && hours === 12) {\r\n                    hours = 0;\r\n                }\r\n                console.log(\"parseDateTime: Matched format DD-MM-YYYY - HH:MM AM\/PM\", match[4] + \":\" + match[5] + \" \" + period, \"->\", hours + \":\" + minutes);\r\n            }\r\n        }\r\n        \r\n        \/\/ Format 3: \"YYYY-MM-DD HH:MM\" (ISO-like format)\r\n        if (!match) {\r\n            match = datetimeString.match(\/^(\\d{4})-(\\d{1,2})-(\\d{1,2})\\s+(\\d{1,2}):(\\d{2})$\/);\r\n            if (match) {\r\n                hours = parseInt(match[4], 10);\r\n                minutes = parseInt(match[5], 10);\r\n                console.log(\"parseDateTime: Matched format YYYY-MM-DD HH:MM\", hours + \":\" + minutes);\r\n            }\r\n        }\r\n        \r\n        \/\/ Format 4: \"MM\/DD\/YYYY HH:MM AM\/PM\" (US format with AM\/PM)\r\n        if (!match) {\r\n            match = datetimeString.match(\/^(\\d{1,2})\\\/(\\d{1,2})\\\/(\\d{4})\\s+(\\d{1,2}):(\\d{2})\\s*(AM|PM|am|pm)$\/i);\r\n            if (match) {\r\n                hours = parseInt(match[4], 10);\r\n                minutes = parseInt(match[5], 10);\r\n                const period = match[6].toUpperCase();\r\n                \r\n                \/\/ Convert 12-hour format to 24-hour format\r\n                if (period === 'PM' && hours < 12) {\r\n                    hours += 12;\r\n                } else if (period === 'AM' && hours === 12) {\r\n                    hours = 0;\r\n                }\r\n                console.log(\"parseDateTime: Matched format MM\/DD\/YYYY HH:MM AM\/PM\", match[4] + \":\" + match[5] + \" \" + period, \"->\", hours + \":\" + minutes);\r\n            }\r\n        }\r\n        \r\n        \/\/ Format 5: Just time \"HH:MM\" or \"HH:MM AM\/PM\"\r\n        if (!match) {\r\n            match = datetimeString.match(\/^(\\d{1,2}):(\\d{2})\\s*(AM|PM|am|pm)?$\/i);\r\n            if (match) {\r\n                hours = parseInt(match[1], 10);\r\n                minutes = parseInt(match[2], 10);\r\n                if (match[3]) {\r\n                    const period = match[3].toUpperCase();\r\n                    \/\/ Convert 12-hour format to 24-hour format\r\n                    if (period === 'PM' && hours < 12) {\r\n                        hours += 12;\r\n                    } else if (period === 'AM' && hours === 12) {\r\n                        hours = 0;\r\n                    }\r\n                }\r\n                console.log(\"parseDateTime: Matched time-only format\", datetimeString, \"->\", hours + \":\" + minutes);\r\n            }\r\n        }\r\n        \r\n        if (!match) {\r\n            console.log(\"parseDateTime: No format matched for:\", datetimeString);\r\n            return null;\r\n        }\r\n        \r\n        \/\/ Validate the time components\r\n        if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {\r\n            console.log(\"parseDateTime: Invalid time values - hours:\", hours, \"minutes:\", minutes);\r\n            return null;\r\n        }\r\n        \r\n        console.log(\"parseDateTime: Successfully parsed - hours:\", hours, \"minutes:\", minutes);\r\n        return { hours, minutes };\r\n    }\r\n\r\n    function isNightTime(datetimeString) {\r\n        console.log(\"isNightTime: Checking datetime:\", datetimeString);\r\n        const parsedTime = parseDateTime(datetimeString);\r\n        if (!parsedTime) {\r\n            console.log(\"isNightTime: Failed to parse datetime\");\r\n            return false;\r\n        }\r\n        \r\n        const { hours, minutes } = parsedTime;\r\n        \r\n        \/\/ Night time defined as between 0:00 AM and 9:30 AM\r\n        const isNight = (hours >= 0 && hours < 10) || (hours === 9 && minutes <= 30);\r\n        console.log(\"isNightTime: Time\", hours + \":\" + (minutes < 10 ? '0' + minutes : minutes), \"- Is night?\", isNight);\r\n        return isNight;\r\n    }\r\n\r\n    \/\/ Always update night status, default to 0 if empty\r\n    const newIsNight = pickUpDateTime.trim() !== \"\" ? (isNightTime(pickUpDateTime) ? 1 : 0) : 0;\r\n    const newIsNightReturn = returnDateTime.trim() !== \"\" ? (isNightTime(returnDateTime) ? 1 : 0) : 0;\r\n\r\n    isnight = newIsNight;\r\n    isnightreturn = newIsNightReturn;\r\n    \r\n    console.log(\"Night status updated - pickup:\", isnight, \"return:\", isnightreturn);\r\n    console.log(\"Pickup datetime:\", pickUpDateTime, \"Return datetime:\", returnDateTime);\r\n    return true;\r\n},\r\n\r\n        \/*** FUNCTION 2: UPDATE TOTAL DISTANCE WITH CACHING - UPDATED WITH DEFAULT VALUES ***\/\r\n        updateTotalDistance: function (forceUpdate = false) {\r\n            if (isInitialLoad && !forceUpdate) {\r\n                console.log(\"Skipping distance calculation on initial page load\");\r\n                return;\r\n            }\r\n\r\n            console.log(\"updateTotalDistance() function triggered.\");\r\n            \r\n            let pickup = document.getElementById(\"form-field-pickuplocation\")?.value || \"\";\r\n            let dropoff = document.getElementById(\"form-field-dropofflocation\")?.value || \"\";\r\n\r\n            \/\/ NEW: Validate addresses before processing\r\n            const pickupValid = validateLocationField('form-field-pickuplocation', 'pickup location');\r\n            const dropoffValid = validateLocationField('form-field-dropofflocation', 'dropoff location');\r\n            \r\n            if (!pickupValid || !dropoffValid) {\r\n                console.log(\"Invalid addresses - setting default distances to 150\");\r\n                \r\n                \/\/ Set default distances to 150\r\n                setDefaultDistances();\r\n                totalKms = 450; \/\/ 150 + 150 + 150\r\n                \r\n                console.log(\"Set default distances: distance1=150, distance2=150, distance3=150, totalKms=450\");\r\n                console.log(\"Not caching default distances - invalid addresses\");\r\n                this.triggerRecalculation();\r\n                return;\r\n            }\r\n\r\n            \/\/ Check if locations are empty or invalid\r\n            if (pickup.trim() === \"\" || dropoff.trim() === \"\") {\r\n                console.log(\"Empty pickup or dropoff location - setting default distances to 150\");\r\n                \r\n                \/\/ Set default distances to 150\r\n                setDefaultDistances();\r\n                totalKms = 450; \/\/ 150 + 150 + 150\r\n                \r\n                console.log(\"Set default distances: distance1=150, distance2=150, distance3=150, totalKms=450\");\r\n                console.log(\"Not caching default distances - user didn't select from list\");\r\n                this.triggerRecalculation();\r\n                return;\r\n            }\r\n\r\n            \/\/ Check cache first only if we're not going to use defaults\r\n            console.log(\"No cache check - waiting for distance calculation...\");\r\n\r\n            setTimeout(() => {\r\n                let distance1 = parseFloat(document.getElementById(\"form-field-distance1\")?.value) || 0;\r\n                let distance2 = parseFloat(document.getElementById(\"form-field-distance2\")?.value) || 0;\r\n                let distance3 = parseFloat(document.getElementById(\"form-field-distance3\")?.value) || 0;\r\n                \r\n                \/\/ Check if all distance fields are 0 (location not selected from list)\r\n                if (areAllDistancesZero(distance1, distance2, distance3)) {\r\n                    console.log(\"All distance fields are 0 - location not selected from list, setting default distances to 150\");\r\n                    \r\n                    \/\/ Set default distances to 150\r\n                    setDefaultDistances();\r\n                    \r\n                    \/\/ Re-read the distances after setting defaults\r\n                    distance1 = 150;\r\n                    distance2 = 150;\r\n                    distance3 = 150;\r\n                    \r\n                    totalKms = distance1 + distance2 + distance3;\r\n                    console.log(\"Set default distances: distance1=150, distance2=150, distance3=150, totalKms=\" + totalKms);\r\n                    console.log(\"Not caching default distances - user didn't select from list\");\r\n                    \r\n                    this.triggerRecalculation();\r\n                } else if (distance1 > 0 || distance2 > 0 || distance3 > 0) {\r\n                    \/\/ Only check cache now if we have valid distances\r\n                    const cachedDistance = getCachedDistance(pickup, dropoff);\r\n                    if (cachedDistance !== null) {\r\n                        console.log(\"Using cached distance calculation\");\r\n                        totalKms = cachedDistance;\r\n                        this.triggerRecalculation();\r\n                        return;\r\n                    }\r\n                    \r\n                    totalKms = Math.round((distance1 + distance2 + distance3) * 100) \/ 100;\r\n                    \r\n                    \/\/ Cache the result since user selected from list\r\n                    setCachedDistance(pickup, dropoff, totalKms);\r\n                    \r\n                    this.triggerRecalculation();\r\n                } else {\r\n                    \/\/ If distances are negative or invalid, set defaults to 150\r\n                    console.log(\"Invalid distances found - setting default distances to 150\");\r\n                    \r\n                    setDefaultDistances();\r\n                    totalKms = 450;\r\n                    \r\n                    console.log(\"Set default distances due to invalid values\");\r\n                    console.log(\"Not caching default distances - invalid input\");\r\n                    this.triggerRecalculation();\r\n                }\r\n            }, 2000);\r\n        },\r\n\r\n        \/*** FUNCTION 3: HANDLE LOCATION CHANGES WITH DEBOUNCING ***\/\r\n        handleLocationChange: function() {\r\n            console.log(\"Location field changed - triggering distance calculation\");\r\n            isInitialLoad = false;\r\n            \r\n            \/\/ NEW: Validate the changed field\r\n            const eventTarget = event?.target;\r\n            if (eventTarget) {\r\n                const fieldId = eventTarget.id;\r\n                if (fieldId === 'form-field-pickuplocation') {\r\n                    validateLocationField('form-field-pickuplocation', 'pickup location');\r\n                } else if (fieldId === 'form-field-dropofflocation') {\r\n                    validateLocationField('form-field-dropofflocation', 'dropoff location');\r\n                }\r\n            }\r\n            \r\n            this.updateTotalDistance(true);\r\n        },\r\n\r\n        \/*** FUNCTION 4: UPDATE TRANSFERT TYPE ***\/\r\n        updateTransfertType: function () {\r\n            const radioButtons = document.querySelectorAll(\"input[name='form_fields[transferttype]']\");\r\n            const retourKmsField = document.getElementById(\"form-field-retour_kms\");\r\n\r\n            const previousTransfert = transfert;\r\n            transfert = 1;\r\n            \r\n            radioButtons.forEach(radio => {\r\n                if (radio.checked && radio.value.toLowerCase() === \"return\") {\r\n                    transfert = 2;\r\n                }\r\n            });\r\n\r\n            if (previousTransfert !== transfert) {\r\n                console.log(\"Transfert changed to:\", transfert);\r\n                toggleReturnDateVisibility(transfert === 2);\r\n\r\n                if (retourKmsField) {\r\n                    retourKmsField.value = transfert;\r\n                    [\"input\", \"change\"].forEach(eventType => {\r\n                        retourKmsField.dispatchEvent(new Event(eventType, { bubbles: true }));\r\n                    });\r\n                }\r\n\r\n                this.updateAirportStatus();\r\n                this.triggerRecalculation();\r\n            }\r\n        },\r\n\r\n        \/*** FUNCTION 5: UPDATE AIRPORT STATUS ***\/\r\n        updateAirportStatus: function () {\r\n            const pickupField = document.getElementById(\"form-field-pickuplocation\");\r\n            const dropoffField = document.getElementById(\"form-field-dropofflocation\");\r\n            const airportPickupField = document.getElementById(\"form-field-airport_pickup\");\r\n            const airportDropoffField = document.getElementById(\"form-field-airport_dropoff\");\r\n\r\n            airportpickup = 0;\r\n            airportdropoff = 0;\r\n\r\n            const airportKeywords = ['(BRU)', '(OST)', '(LGG)', '(ANR)', '(CRL)', 'Luchthaven', 'Airport', 'A\u00e9roport'];\r\n\r\n            if (pickupField && transfert === 1) {\r\n                const pickupValue = pickupField.value;\r\n                airportpickup = airportKeywords.some(keyword => \r\n                    pickupValue.includes(keyword)\r\n                ) ? 1 : 0;\r\n            }\r\n\r\n            if (dropoffField && transfert === 2) {\r\n                const dropoffValue = dropoffField.value;\r\n                airportdropoff = airportKeywords.some(keyword => \r\n                    dropoffValue.includes(keyword)\r\n                ) ? 1 : 0;\r\n            }\r\n\r\n            console.log(\"Airport Pickup:\", airportpickup, \"| Airport Dropoff:\", airportdropoff);\r\n\r\n            if (airportPickupField) {\r\n                airportPickupField.value = airportpickup;\r\n                [\"input\", \"change\"].forEach(eventType => {\r\n                    airportPickupField.dispatchEvent(new Event(eventType, { bubbles: true }));\r\n                });\r\n            }\r\n\r\n            if (airportDropoffField) {\r\n                airportDropoffField.value = airportdropoff;\r\n                [\"input\", \"change\"].forEach(eventType => {\r\n                    airportDropoffField.dispatchEvent(new Event(eventType, { bubbles: true }));\r\n                });\r\n            }\r\n        },\r\n\r\n        \/*** FUNCTION 6: CALCULATE BASIC PRICE ***\/\r\n        calculateBasicPrice: function () {\r\n            if (totalKms !== 0 && prijskm_coef !== 0) {\r\n                basicprice = Math.round((totalKms * prijskm_coef) * 100) \/ 100;\r\n                console.log(\"Basic Price Calculated:\", basicprice);\r\n            } else {\r\n                basicprice = 0;\r\n                console.log(\"Basic Price Reset: Total KMs or Prijs per KM is 0.\");\r\n            }\r\n        },\r\n\r\n        \/*** FUNCTION 7: CALCULATE TIME-BASED PRICES ***\/\r\n        calculateTimeBasedPrices: function () {\r\n            \/\/ If totalKms is 0, reset all prices to 0\r\n            if (totalKms === 0) {\r\n                console.log(\"Total KMs is 0 - resetting all prices to 0\");\r\n                priceberlinefinal = 0;\r\n                pricevanfinal = 0;\r\n                \r\n                \/\/ Update form fields\r\n                const finalPriceField = document.getElementById(\"form-field-finalpriceberline\");\r\n                if (finalPriceField) {\r\n                    finalPriceField.value = \"0.00\";\r\n                }\r\n                return;\r\n            }\r\n            \r\n\t\t\t\/\/ Get the direct distance between pickup and dropoff (distance2)\r\n            const directDistance = parseFloat(document.getElementById(\"form-field-distance2\")?.value) || 0;\r\n\r\n            \/\/ Get pickup and dropoff locations\r\n            const pickupLocation = document.getElementById(\"form-field-pickuplocation\")?.value || \"\";\r\n            const dropoffLocation = document.getElementById(\"form-field-dropofflocation\")?.value || \"\";\r\n    \r\n            \/\/ Check if locations contain Brussels Airport references\r\n            const isBrusselsAirport = \r\n                pickupLocation.includes(\"Brussels Airport (BRU)\") || \r\n                pickupLocation.includes(\"(BRU)\") ||\r\n                dropoffLocation.includes(\"Brussels Airport (BRU)\") || \r\n                dropoffLocation.includes(\"(BRU)\");\r\n\t\t\r\n\t\t\t\/\/ Calculate time-based prices\r\n            totaltime120 = Math.round(((totalKms \/ 32) \/ 100) * 6000 * 100) \/ 100;\r\n            pricetime120 = Math.round(totaltime120 * prijsmin_coef * 100) \/ 100;\r\n            totalprice120 = Math.ceil((basicprice + pricetime120));\r\n\r\n            totaltime200 = Math.round(((totalKms \/ 55) \/ 100) * 6000 * 100) \/ 100;\r\n            pricetime200 = Math.round(totaltime200 * prijsmin_coef * 100) \/ 100;\r\n            totalprice200 = Math.ceil((basicprice + pricetime200));\r\n\r\n            totaltime300 = Math.round(((totalKms \/ 65) \/ 100) * 6000 * 100) \/ 100;\r\n            pricetime300 = Math.round(totaltime300 * prijsmin_coef * 100) \/ 100;\r\n            totalprice300 = Math.ceil((basicprice + pricetime300));\r\n\r\n            \/\/ Determine calculated price (SINGLE TRIP price)\r\n\t\t\tlet calculatedPrice;\r\n\t\t\tif (totalKms <= 0) {\r\n\t\t\tcalculatedPrice = 0;  \r\n            } else if (totalKms < 120) {\r\n              calculatedPrice = totalprice120;\r\n            } else if (totalKms >= 120 && totalKms <= 200) {\r\n              calculatedPrice = totalprice200;\r\n            } else if (totalKms > 200) {\r\n              calculatedPrice = totalprice300;\r\n            }\r\n\r\n            \/\/ Apply minimum price\r\n            if (calculatedPrice < 45) {\r\n               calculatedPrice = 45;\r\n            }\r\n            if (calculatedPrice <= 0) {\r\n               calculatedPrice = 0;\r\n            }\r\n\t\r\n            \/\/ Apply price tiers if needed\r\n            if (calculatedPrice > 45 && calculatedPrice <= 290) {\r\n               for (const tier of priceTiers) {\r\n               if (calculatedPrice <= tier.max) {\r\n                  calculatedPrice = tier.value;\r\n                  break;\r\n                  }\r\n               }\r\n            }\r\n\r\n            \/\/ Initialize base price with calculated price as default\r\n            let basePrice = calculatedPrice;\r\n\t\t\t\r\n            \/\/ Only use reference price if:\r\n            \/\/ 1. directDistance is between 0-120 km, OR\r\n            \/\/ 2. location contains Brussels Airport reference\r\n            if ((directDistance > 0 && directDistance <= 120) && isBrusselsAirport) {\r\n               \/\/ Get reference price based on DIRECT distance\r\n               let referencePrice = 45; \/\/ Default minimum price\r\n               for (const range of distancePriceRanges) {\r\n                   if (directDistance > range.min && directDistance <= range.max) {\r\n                      referencePrice = range.price;\r\n                      break;\r\n                   }\r\n               }\r\n\t\t\t\r\n               \/\/ Use the lower price between reference and calculated\r\n               if (calculatedPrice > referencePrice) {\r\n                  basePrice = referencePrice;\r\n                  console.log(\"Using reference price for distance\", directDistance, \"km:\", referencePrice, \"\u20ac\");\r\n               }\r\n            }   \r\n\r\n            \/\/ Apply transfert multiplier          \r\n            priceberlinefinal = basePrice * transfert;\r\n            \r\n            \/\/ --- NEW: Extra fee for specific zones ---\r\n            let extraZoneFee = 0;\r\n            if (checkExtraFeeZone(pickupLocation) || checkExtraFeeZone(dropoffLocation)) {\r\n                extraZoneFee = 5;\r\n                console.log(\"Adding 5\u20ac for zone: Kraainem\/Tervuren\/Overijse\/Woluwe\/Ukkel\/Uccle\/Oppem\");\r\n            }\r\n            \r\n            \/\/ Apply additional charges\r\n            let additionalCharges = 0;\r\n            \r\n            if (airportpickup && transfert === 1) {\r\n                additionalCharges += 5;\r\n                console.log(\"Adding 5\u20ac for airport pickup\");\r\n            }\r\n            \r\n            if (airportdropoff && transfert === 2) {\r\n                additionalCharges += 5;\r\n                console.log(\"Adding 5\u20ac for airport dropoff\");\r\n            }\r\n\r\n            if (isnight) {\r\n                additionalCharges += 5;\r\n                console.log(\"Adding 5\u20ac for nighttime one-way trip\");\r\n            }\r\n            \r\n            if (isnightreturn && transfert === 2) {\r\n                additionalCharges += 5;\r\n                console.log(\"Adding 5\u20ac for nighttime return trip\");\r\n            }\r\n            \r\n            \/\/ Add zone fee to additional charges\r\n            if (extraZoneFee > 0) {\r\n                additionalCharges += extraZoneFee;\r\n            }\r\n            \r\n            priceberlinefinal = priceberlinefinal + additionalCharges;\r\n            pricevanfinal = priceberlinefinal + 50;\r\n            \r\n            console.log(\"--- Price Calculation ---\");\r\n            console.log(\"Direct distance (distance2):\", directDistance, \"km\");\r\n            console.log(\"Using reference table:\", \r\n               ((directDistance > 0 && directDistance <= 120) && isBrusselsAirport) ? \"Yes\" : \"No\");\r\n            console.log(\"Total route distance (totalKms):\", totalKms, \"km\");\r\n            console.log(\"Calculated Price (single trip):\", calculatedPrice, \"\u20ac\");\r\n            console.log(\"Selected Base Price (before transfert):\", basePrice, \"\u20ac\");\r\n            console.log(\"Transfert multiplier:\", transfert, \"x\");\r\n            console.log(\"Price after transfert:\", basePrice * transfert, \"\u20ac\");\r\n            console.log(\"Extra zone fee:\", extraZoneFee, \"\u20ac\");\r\n            console.log(\"Additional charges (airport, night, zone):\", additionalCharges, \"\u20ac\");\r\n            console.log(\"Final Berline Price:\", priceberlinefinal, \"\u20ac\");\r\n            console.log(\"Final Van Price:\", pricevanfinal, \"\u20ac\");            \r\n\t\r\n            \/\/ Update form fields\r\n            const finalPriceField = document.getElementById(\"form-field-finalpriceberline\");\r\n            if (finalPriceField) {\r\n                finalPriceField.value = priceberlinefinal.toFixed(2);\r\n            }\r\n        },\r\n\r\n        \/*** FUNCTION 8: TRIGGER FULL RECALCULATION ***\/\r\n        triggerRecalculation: function() {\r\n            this.calculateBasicPrice();\r\n            this.calculateTimeBasedPrices();\r\n        },\r\n\r\n        \/*** FUNCTION 9: ATTACH EVENT LISTENERS WITH DEBOUNCING ***\/\r\n        attachListeners: function () {\r\n            \/\/ Debounced version of handleLocationChange\r\n            const debouncedLocationChange = debounce(() => {\r\n                this.handleLocationChange();\r\n                this.updateAirportStatus();\r\n            }, 1000);\r\n\r\n            \/\/ Location fields - with debouncing and validation\r\n            const locationFields = [\r\n                \"form-field-pickuplocation\",\r\n                \"form-field-dropofflocation\"\r\n            ];\r\n            \r\n            locationFields.forEach(fieldId => {\r\n                const field = document.getElementById(fieldId);\r\n                if (field) {\r\n                    \/\/ Add input\/change events for distance calculation\r\n                    field.addEventListener(\"change\", debouncedLocationChange);\r\n                    field.addEventListener(\"input\", debouncedLocationChange);\r\n                    \r\n                    \/\/ NEW: Add blur event for validation\r\n                    field.addEventListener(\"blur\", (event) => {\r\n                        const fieldName = fieldId === 'form-field-pickuplocation' ? 'pickup location' : 'dropoff location';\r\n                        validateLocationField(fieldId, fieldName);\r\n                        this.updateTotalDistance(true);\r\n                    });\r\n                    \r\n                    \/\/ NEW: Add focus event to clear previous errors\r\n                    field.addEventListener(\"focus\", () => {\r\n                        clearAddressError(fieldId);\r\n                    });\r\n                }\r\n            });\r\n\r\n            \/\/ Distance fields - only update calculations\r\n            const distanceFields = [\r\n                \"form-field-distance1\",\r\n                \"form-field-distance2\",\r\n                \"form-field-distance3\"\r\n            ];\r\n            \r\n            distanceFields.forEach(fieldId => {\r\n                const field = document.getElementById(fieldId);\r\n                if (field) {\r\n                    field.addEventListener(\"change\", this.updateTotalDistance.bind(this));\r\n                }\r\n            });\r\n\r\n            \/\/ Time-related fields - UPDATED TO USE DATETIME FIELDS\r\n            const datetimeFields = [\r\n                \"form-field-pickupdate\",\r\n                \"form-field-returndate\"\r\n            ];\r\n            \r\n            datetimeFields.forEach(fieldId => {\r\n                const field = document.getElementById(fieldId);\r\n                if (field) {\r\n                    field.addEventListener(\"change\", () => {\r\n                        this.checkNightTime();\r\n                        this.triggerRecalculation();\r\n                    });\r\n                    \r\n                    \/\/ Also listen for input events for real-time updates\r\n                    field.addEventListener(\"input\", () => {\r\n                        this.checkNightTime();\r\n                        this.triggerRecalculation();\r\n                    });\r\n                }\r\n            });\r\n\r\n            \/\/ Transfer type radio buttons\r\n            document.querySelectorAll(\"input[name='form_fields[transferttype]']\").forEach(radio => {\r\n                radio.addEventListener(\"change\", this.updateTransfertType.bind(this));\r\n            });\r\n            \r\n            \/\/ NEW: Add form submission validation\r\n            const form = document.querySelector('form') || \r\n                        document.querySelector('.piotnet-form') ||\r\n                        document.querySelector('.elementor-form');\r\n            \r\n            if (form) {\r\n                form.addEventListener('submit', (event) => {\r\n                    if (!validateBothLocations()) {\r\n                        event.preventDefault();\r\n                        event.stopPropagation();\r\n                        alert('Please select valid addresses from the autocomplete list for both pickup and dropoff locations.');\r\n                        return false;\r\n                    }\r\n                });\r\n            }\r\n        },\r\n\r\n        \/*** FUNCTION 10: INITIALIZATION ***\/\r\n        init: function () {\r\n            setTimeout(() => {\r\n                isInitialLoad = false;\r\n                toggleReturnDateVisibility(false);\r\n            }, 500);\r\n\r\n            setTimeout(() => {\r\n                this.updateAirportStatus();\r\n                this.calculateBasicPrice();\r\n                this.calculateTimeBasedPrices();\r\n            }, 250);\r\n\r\n            this.attachListeners();\r\n            \r\n            \/\/ Additional debug: Check if datetime fields exist and log their values\r\n            setTimeout(() => {\r\n                const pickupField = document.getElementById(\"form-field-pickupdate\");\r\n                const returnField = document.getElementById(\"form-field-returndate\");\r\n                console.log(\"DEBUG - Pickup field exists:\", !!pickupField, \"Value:\", pickupField?.value);\r\n                console.log(\"DEBUG - Return field exists:\", !!returnField, \"Value:\", returnField?.value);\r\n                \r\n                \/\/ Force initial night time check\r\n                this.checkNightTime();\r\n            }, 1000);\r\n        },\r\n\r\n        \/*** CACHE MANAGEMENT FUNCTIONS ***\/\r\n        clearCache: function() {\r\n            distanceCache.clear();\r\n            console.log(\"Distance cache cleared\");\r\n        },\r\n\r\n        getCacheStats: function() {\r\n            return {\r\n                size: distanceCache.size,\r\n                entries: Array.from(distanceCache.entries())\r\n            };\r\n        },\r\n\r\n        \/*** NEW HELPER FUNCTIONS ***\/\r\n        setDefaultDistances: function() {\r\n            const distance1Field = document.getElementById(\"form-field-distance1\");\r\n            const distance2Field = document.getElementById(\"form-field-distance2\");\r\n            const distance3Field = document.getElementById(\"form-field-distance3\");\r\n            \r\n            if (distance1Field) {\r\n                distance1Field.value = \"150\";\r\n                console.log(\"Set distance1 to default value: 150\");\r\n            }\r\n            if (distance2Field) {\r\n                distance2Field.value = \"150\";\r\n                console.log(\"Set distance2 to default value: 150\");\r\n            }\r\n            if (distance3Field) {\r\n                distance3Field.value = \"150\";\r\n                console.log(\"Set distance3 to default value: 150\");\r\n            }\r\n            \r\n            console.log(\"All distance fields set to default value: 150\");\r\n        },\r\n\r\n        areAllDistancesZero: function(distance1, distance2, distance3) {\r\n            return distance1 === 0 && distance2 === 0 && distance3 === 0;\r\n        },\r\n        \r\n        \/*** NEW VALIDATION FUNCTIONS ***\/\r\n        validateAddressFormat: function(address) {\r\n            return validateAddressFormat(address);\r\n        },\r\n        \r\n        showAddressError: function(fieldId, message) {\r\n            showAddressError(fieldId, message);\r\n        },\r\n        \r\n        clearAddressError: function(fieldId) {\r\n            clearAddressError(fieldId);\r\n        },\r\n        \r\n        validateLocationField: function(fieldId, fieldName) {\r\n            return validateLocationField(fieldId, fieldName);\r\n        },\r\n        \r\n        validateBothLocations: function() {\r\n            return validateBothLocations();\r\n        },\r\n        \r\n        \/*** NEW ZONE FEE FUNCTION ***\/\r\n        checkExtraFeeZone: function(location) {\r\n            return checkExtraFeeZone(location);\r\n        }\r\n    };\r\n})();\r\n\r\n\/\/ Initialize with Elementor compatibility\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n    if (typeof jQuery !== 'undefined') {\r\n        jQuery(window).on('elementor\/frontend\/init', function() {\r\n            PricingCalculator.init();\r\n        });\r\n        if (window.elementorFrontend) {\r\n            PricingCalculator.init();\r\n        }\r\n    } else {\r\n        PricingCalculator.init();\r\n    }\r\n});\r\n<\/script>\r\n\r\n<style>\r\n\/* Additional CSS for address validation *\/\r\n.address-error {\r\n    border-color: #dc2626 !important;\r\n    box-shadow: 0 0 0 1px #dc2626 !important;\r\n}\r\n\r\n.address-error-message {\r\n    color: #dc2626;\r\n    font-size: 12px;\r\n    margin-top: 4px;\r\n    padding: 4px 8px;\r\n    background-color: #fef2f2;\r\n    border-radius: 4px;\r\n    border-left: 3px solid #dc2626;\r\n    animation: fadeIn 0.3s ease-in;\r\n}\r\n\r\n@keyframes fadeIn {\r\n    from { opacity: 0; transform: translateY(-5px); }\r\n    to { opacity: 1; transform: translateY(0); }\r\n}\r\n<\/style>\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\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-buttons\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-button\">\n\t\t\t\t\t\t\t\t\t\t<button class=\"elementor-button pafe-form-builder-button elementor-size-sm\" role=\"button\" data-pafe-form-builder-required-text=\"Dit veld is vereist.\" data-pafe-form-builder-nav-form-id=\"multistepbf\" data-pafe-form-builder-stripe-submit=\"\" data-pafe-form-builder-stripe-currency=\"EUR\" data-pafe-form-builder-stripe-amount-field=\"[field id=&quot;total&quot;]\" data-pafe-form-builder-nav=\"next\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Volgende<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"pafe-form-builder-trigger-success-multistepbf\" data-pafe-form-builder-trigger-success=\"multistepbf\" data-disable-clean-form=\"no\" style=\"display: none\"><\/div>\n\t\t\t\t\t\t\t<div id=\"pafe-form-builder-trigger-failed-multistepbf\" data-pafe-form-builder-trigger-failed=\"multistepbf\" style=\"display: none\"><\/div>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item\" data-pafe-form-builder-step-item-id=\"2808\">\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-shortcode\">\n\t\t\t\t\t\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"4497\" class=\"elementor elementor-4497 elementor-2808 elementor-2808\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-2e99db1 e-grid e-con-boxed e-con e-parent\" data-id=\"2e99db1\" 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-9a6d040 e-flex e-con-boxed e-con e-child\" data-id=\"9a6d040\" 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-4042556 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"4042556\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-number elementor-field-group elementor-column elementor-field-group-persons elementor-col-100 elementor-field-required elementor-mark-required\">\r\n\t\t\t\t<label for=\"form-field-persons\" class=\"elementor-field-label pafe-label-inline\">Aantal personen<\/label><div class=\"pafe-field-container pafe-field-inline\"><input class=\"elementor-field elementor-size-  elementor-field-textual\" type=\"number\" name=\"form_fields[persons]\" id=\"form-field-persons\" autocomplete=\"off\" data-pafe-form-builder-default-value=\"\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\" step=\"any\" data-pafe-remove-value=\"false\" min=\"1\" max=\"7\"><\/div><div data-pafe-form-builder-required><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\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<div class=\"elementor-element elementor-element-679c8c0 e-flex e-con-boxed e-con e-child\" data-id=\"679c8c0\" 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-c9f6efe elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"c9f6efe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-number elementor-field-group elementor-column elementor-field-group-bags elementor-col-100 elementor-field-required elementor-mark-required\">\r\n\t\t\t\t<label for=\"form-field-bags\" class=\"elementor-field-label pafe-label-inline\">Aantal stuks bagage<\/label><div class=\"pafe-field-container pafe-field-inline\"><input class=\"elementor-field elementor-size-  elementor-field-textual\" type=\"number\" name=\"form_fields[bags]\" id=\"form-field-bags\" autocomplete=\"off\" data-pafe-form-builder-default-value=\"\" required=\"required\" aria-required=\"true\" data-pafe-form-builder-form-id=\"multistepbf\" step=\"any\" data-pafe-remove-value=\"false\" min=\"0\" max=\"10\"><\/div><div data-pafe-form-builder-required><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6059a51 e-flex e-con-boxed e-con e-parent\" data-id=\"6059a51\" 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-b2096dd e-flex e-con-boxed e-con e-child\" data-id=\"b2096dd\" 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-081548e elementor-widget elementor-widget-html\" data-id=\"081548e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<head><meta charset=\"UTF-8\"><meta name=\"viewport_carselection\" content=\"width=device-width, initial-scale=1\"><title>Car Selection<\/title><style>.selection-container {\r\n            display: flex;\r\n            justify-content: space-around;\r\n            margin-top: 20px;\r\n        }\r\n\r\n        .car-option {\r\n            width: 150px;\r\n            height: 150px;\r\n            background-size: cover;\r\n            background-position: center;\r\n            border: 2px solid #EBC10D;\r\n            border-radius: 10px;\r\n            cursor: pointer;\r\n            transition: border 0.3s, background-color 0.3s;\r\n            position: relative;\r\n        }\r\n\r\n        .car-option.selected {\r\n            border: 2px solid #EBC10D;\r\n            background-color: #EBC10D;\r\n        }\r\n\r\n        .car-option.disabled {\r\n            opacity: 0.5;\r\n            pointer-events: none;\r\n            cursor: not-allowed;\r\n        }\r\n\r\n        #car-type {\r\n            display: none;\r\n        }\r\n\r\n        .price-label {\r\n            position: absolute;\r\n            bottom: 10px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            background-color: #EBC10D;\r\n            color: #fff;\r\n            padding: 10px;\r\n            border-radius: 10px;\r\n            font-size: 18px;\r\n            font-weight: bold;\r\n        }\r\n\r\n        #form-field-displayselectedcar {\r\n            display: none;\r\n        }\r\n    <\/style><\/head><body><h4>Your Transport Vehicle<\/h4><select id=\"car-type\" name=\"cartypeselection\"><option value=\"berline\" selected>Berline<\/option><option value=\"van\">Van<\/option><\/select><div class=\"selection-container\"><div id=\"berline\" class=\"car-option selected\" data-value=\"berline\" style=\"background-image: url('http:\/\/easytaxibelgium.be\/wp-content\/uploads\/2024\/11\/easytaxibelgium_voertuigvoorbeeld2.png');\"><div class=\"price-label\" id=\"priceberline_1\">Loading...<\/div><\/div><div id=\"van\" class=\"car-option\" data-value=\"van\" style=\"background-image: url('http:\/\/easytaxibelgium.be\/wp-content\/uploads\/2024\/11\/easytaxibelgium_voertuigvoorbeeld1.png');\"><div class=\"price-label\" id=\"pricevan_1\">Loading...<\/div><\/div><\/div><div style=\"display: none;\"><select id=\"form-field-displayselectedcar\" name=\"selectedcar\" disabled><option value=\"berline\">Berline<\/option><option value=\"van\">Van<\/option><\/select><label for=\"form-field-displayprice\">Price:<\/label><input type=\"text\" id=\"form-field-displayprice\" disabled value=\"N\/A\"><\/div><!-- Piotnet Hidden Input Fields --><input type=\"hidden\" id=\"form-field-priceberline_final\" value=\"100\"><input type=\"hidden\" id=\"form-field-pricevan_final\" value=\"150\"><\/body>\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<div class=\"elementor-element elementor-element-6f9b01b e-flex e-con-boxed e-con e-parent\" data-id=\"6f9b01b\" 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-8fdda4d elementor-widget elementor-widget-html\" data-id=\"8fdda4d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>document.addEventListener(\"DOMContentLoaded\", function () {\r\n        \r\n        \/\/ Function to get prices from PricingCalculator module\r\n        function getPrices() {\r\n            return {\r\n                berline: PricingCalculator.getPriceBerlineFinal() || 0,\r\n                van: PricingCalculator.getPriceVanFinal() || 0\r\n            };\r\n        }\r\n\r\n        \/\/ Function to update price labels\r\n        function updatePriceLabels() {\r\n            const prices = getPrices(); \r\n            document.getElementById(\"priceberline_1\").textContent = `${prices.berline} \\u20AC`;\r\n            document.getElementById(\"pricevan_1\").textContent = `${prices.van} \\u20AC`;\r\n            \r\n            displayPrice.value = `${prices[carTypeSelection.value]} \\u20AC`;\r\n\r\n            \/\/ Update total field when prices change\r\n            updateTotalField(carTypeSelection.value);\r\n        }\r\n\r\n        \/\/ Function to update total field\r\n        function updateTotalField(selectedCar) {\r\n            const prices = getPrices();\r\n            const totalField = document.getElementById(\"form-field-total\");\r\n            if (totalField) {\r\n                totalField.value = prices[selectedCar] || 0;\r\n                totalField.dispatchEvent(new Event(\"input\", { bubbles: true }));\r\n            }\r\n        }\r\n\r\n        const prices = { berline: 0, van: 0 };\r\n\r\n        const carTypeSelection = document.getElementById(\"car-type\");\r\n        const displaySelectedCar = document.getElementById(\"form-field-displayselectedcar\");\r\n        const displayPrice = document.getElementById(\"form-field-displayprice\");\r\n        const personsInput = document.getElementById(\"form-field-persons\");\r\n        const bagsInput = document.getElementById(\"form-field-bags\");\r\n        const berlineOption = document.getElementById(\"berline\");\r\n        const vanOption = document.getElementById(\"van\");\r\n        const options = document.querySelectorAll('.car-option');\r\n\r\n        function updateCarSelection(selectedCar) {\r\n            carTypeSelection.value = selectedCar;\r\n            displaySelectedCar.value = selectedCar;\r\n            displayPrice.value = `${prices[selectedCar]} \\u20AC`;\r\n\r\n            options.forEach(option => {\r\n                option.classList.toggle('selected', option.getAttribute('data-value') === selectedCar);\r\n            });\r\n\r\n            \/\/ Update total field on car selection\r\n            updateTotalField(selectedCar);\r\n        }\r\n\r\n        function checkPersonAndBagLimits() {\r\n            const persons = parseInt(personsInput.value, 10) || 1;\r\n            const bags = parseInt(bagsInput.value, 10) || 0;\r\n\r\n            if (persons > 4 || bags > 4) {\r\n                \/\/ If persons or bags exceed 4, disable Berline and select Van\r\n                berlineOption.classList.add(\"disabled\");\r\n                vanOption.classList.remove(\"disabled\");\r\n                updateCarSelection(\"van\");\r\n            } else {\r\n                \/\/ Enable both options and let the user select either\r\n                berlineOption.classList.remove(\"disabled\");\r\n                vanOption.classList.add(\"disabled\");\r\n                updateCarSelection(\"berline\");\r\n            }\r\n        }\r\n        \r\n        personsInput.addEventListener(\"input\", checkPersonAndBagLimits);\r\n        bagsInput.addEventListener(\"input\", checkPersonAndBagLimits);\r\n\r\n        options.forEach(option => {\r\n            option.addEventListener('click', function () {\r\n                if (!this.classList.contains(\"disabled\")) {\r\n                    updateCarSelection(this.getAttribute('data-value'));\r\n                }\r\n            });\r\n        });\r\n\r\n        const observer = new MutationObserver(updatePriceLabels);\r\n        observer.observe(document.getElementById(\"form-field-priceberline_final\"), { attributes: true, childList: true, subtree: true });\r\n        observer.observe(document.getElementById(\"form-field-pricevan_final\"), { attributes: true, childList: true, subtree: true });\r\n\r\n        setInterval(updatePriceLabels, 100);\r\n\r\n        updatePriceLabels();\r\n        checkPersonAndBagLimits();\r\n        \r\n        \/\/ Clear and hide distance fields\r\n    });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71eef22 elementor-widget elementor-widget-pafe-form-builder-field\" data-id=\"71eef22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-form-builder-field.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\r\n\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above pafe-form-builder-field\">\r\n\t\t\t<div class=\"elementor-field-type-hidden elementor-field-group elementor-column elementor-field-group-total elementor-col-100\">\r\n\t\t\t\t<label style=\"display:none\" for=\"form-field-total\" class=\"elementor-field-label pafe-label-inline\">totaal<\/label><div class=\"pafe-field-container pafe-field-inline\"><input size=\"1\" class=\"elementor-field elementor-size- \" type=\"hidden\" name=\"form_fields[total]\" id=\"form-field-total\" autocomplete=\"on\" data-pafe-form-builder-default-value=\"1\" value=\"1\" data-pafe-form-builder-value=\"1\" data-pafe-form-builder-remove-this-field-from-repeater=\"\" data-pafe-form-builder-form-id=\"multistepbf\" data-pafe-form-remove-value=\"\"><\/div><div data-pafe-form-builder-required><\/div>\t\t\t<\/div>\r\n\t\t<\/div>\r\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\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-buttons\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-button\">\n\t\t\t\t\t\t\t\t\t\t<button class=\"elementor-button pafe-form-builder-button elementor-size-sm\" role=\"button\" data-pafe-form-builder-required-text=\"Dit veld is vereist.\" data-pafe-form-builder-nav-form-id=\"multistepbf\" data-pafe-form-builder-stripe-submit=\"\" data-pafe-form-builder-stripe-currency=\"EUR\" data-pafe-form-builder-stripe-amount-field=\"[field id=&quot;total&quot;]\" data-pafe-form-builder-nav=\"prev\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Vorige<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-button\">\n\t\t\t\t\t\t\t\t\t\t<button class=\"elementor-button pafe-form-builder-button elementor-size-sm\" role=\"button\" data-pafe-form-builder-required-text=\"Dit veld is vereist.\" data-pafe-form-builder-nav-form-id=\"multistepbf\" data-pafe-form-builder-stripe-submit=\"\" data-pafe-form-builder-stripe-currency=\"EUR\" data-pafe-form-builder-stripe-amount-field=\"[field id=&quot;total&quot;]\" data-pafe-form-builder-nav=\"next\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Volgende<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"pafe-form-builder-trigger-success-multistepbf\" data-pafe-form-builder-trigger-success=\"multistepbf\" data-disable-clean-form=\"no\" style=\"display: none\"><\/div>\n\t\t\t\t\t\t\t<div id=\"pafe-form-builder-trigger-failed-multistepbf\" data-pafe-form-builder-trigger-failed=\"multistepbf\" style=\"display: none\"><\/div>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item\" data-pafe-form-builder-step-item-id=\"3313\">\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-shortcode\">\n\t\t\t\t\t\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"4491\" class=\"elementor elementor-4491 elementor-3313 elementor-3313\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-044c861 e-flex e-con-boxed e-con e-parent\" data-id=\"044c861\" 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-4c9114f e-grid e-con-full e-con e-child\" data-id=\"4c9114f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4f1fa8a elementor-widget elementor-widget-pafe-woocommerce-checkout\" data-id=\"4f1fa8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"pafe-woocommerce-checkout.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div data-pafe-woocommerce-checkout-form-id=\"multistepbf\" data-pafe-woocommerce-checkout-custom-message=\"This field is required.\" data-pafe-woocommerce-checkout-product-id=\"2810\" data-pafe-woocommerce-checkout-post-id=\"4572\" data-pafe-woocommerce-checkout-id=\"4f1fa8a\" >\n\t\t\t<div class=\"woocommerce\"><\/div>\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\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b65291b e-flex e-con-boxed e-con e-parent\" data-id=\"b65291b\" 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-73f1863 elementor-widget elementor-widget-html\" data-id=\"73f1863\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>document.addEventListener(\"DOMContentLoaded\", function () {\n    \/\/ Debounce utility to prevent excessive executions\n    function debounce(func, delay) {\n        let timeout;\n        return function () {\n            clearTimeout(timeout);\n            timeout = setTimeout(() => func.apply(this, arguments), delay);\n        };\n    }\n\n    \/\/ Hide a dt\/dd pair by class\n    function hideDefinitionItem(selector) {\n        const dt = document.querySelector(`dt.${selector}`);\n        if (dt) {\n            dt.style.display = 'none';\n            const dd = Array.from(dt.parentNode.children).find(\n                el => el.tagName === 'DD' && el.previousElementSibling === dt\n            );\n            if (dd) dd.style.display = 'none';\n        }\n    }\n\n    \/\/ Change billing fields title to \"Client Details\"\n    function changeBillingTitle() {\n        const billingTitle = document.querySelector('.woocommerce-billing-fields > h3');\n        if (billingTitle) {\n            billingTitle.textContent = 'Client Details';\n        }\n    }\n\n    \/\/ Hide form-field-total elements\n    function hideFormFieldTotal() {\n        document.querySelectorAll('.form-field-total').forEach(element => {\n            element.style.display = 'none';\n        });\n    }\n\n    \/\/ Main logic to adjust the checkout table\n    function modifyCheckoutTable() {\n        const reviewTable = document.querySelector(\".shop_table.woocommerce-checkout-review-order-table\");\n\n        if (reviewTable) {\n            \/\/ Remove the table header row\n            const thead = reviewTable.querySelector('thead');\n            if (thead) {\n                thead.remove();\n            }\n\n            \/\/ Remove the cart-subtotal row in the footer\n            const subtotalRow = reviewTable.querySelector('tfoot .cart-subtotal');\n            if (subtotalRow) {\n                subtotalRow.remove();\n            }\n        }\n\n        \/\/ Clear quantity fields\n        document.querySelectorAll('.product-quantity').forEach(qty => {\n            qty.textContent = '';\n        });\n        document.querySelectorAll('.product-total').forEach(qty => {\n            qty.textContent = '';\n        });\n\n        \/\/ Hide specific fields\n        ['variation-totaal', 'variation-total', 'variation-distance1', 'variation-distance2', 'variation-distance3']\n            .forEach(hideDefinitionItem);\n        \n        \/\/ Update billing title\n        changeBillingTitle();\n        \n        \/\/ Hide form-field-total\n        hideFormFieldTotal();\n    }\n\n    const debouncedModify = debounce(modifyCheckoutTable, 200);\n\n    \/\/ Initial execution\n    modifyCheckoutTable();\n    changeBillingTitle(); \/\/ Initial title change\n    hideFormFieldTotal(); \/\/ Initial hide form-field-total\n\n    \/\/ Observe the WooCommerce checkout table\n    const reviewTable = document.querySelector(\".shop_table.woocommerce-checkout-review-order-table\");\n    if (reviewTable) {\n        new MutationObserver(debouncedModify)\n            .observe(reviewTable, { childList: true, subtree: true });\n    }\n\n    \/\/ React to WooCommerce updates\n    if (typeof jQuery !== \"undefined\") {\n        jQuery(document.body).on(\"updated_checkout\", function () {\n            modifyCheckoutTable(); \/\/ Reapply all modifications\n            changeBillingTitle(); \/\/ Ensure title stays updated\n            hideFormFieldTotal(); \/\/ Re-hide form-field-total\n        });\n    }\n\n    \/\/ Fallback: run every 1 second in case nothing else catches it\n    const intervalId = setInterval(modifyCheckoutTable, 1000);\n    window.addEventListener('beforeunload', () => clearInterval(intervalId));\n});\n<\/script>\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\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-buttons\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-multi-step-form__content-item-button\">\n\t\t\t\t\t\t\t\t\t\t<button class=\"elementor-button pafe-form-builder-button elementor-size-sm\" role=\"button\" data-pafe-form-builder-required-text=\"Dit veld is vereist.\" data-pafe-form-builder-nav-form-id=\"multistepbf\" data-pafe-form-builder-stripe-submit=\"\" data-pafe-form-builder-stripe-currency=\"EUR\" data-pafe-form-builder-stripe-amount-field=\"[field id=&quot;total&quot;]\" data-pafe-form-builder-nav=\"prev\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Vorige<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-form-builder-alert pafe-form-builder-alert--stripe\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-message elementor-message-success\" role=\"alert\" data-pafe-form-builder-message>Payment success<\/div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-message elementor-message-danger\" role=\"alert\">Payment failed<\/div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-message elementor-help-inline\" role=\"alert\">Payment pending<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"pafe-form-builder-alert pafe-form-builder-alert--mail\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-message elementor-message-success\" role=\"alert\" data-pafe-form-builder-message>Het formulier is succesvol verzonden.<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-message elementor-message-danger\" role=\"alert\">Er is een fout opgetreden.<\/div>\n\t\t\t\t\t\t\t\t\t<!-- <div class=\"elementor-message elementor-help-inline\" role=\"alert\">Server error. Form not sent.<\/div> -->\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"pafe-form-builder-trigger-success-multistepbf\" data-pafe-form-builder-trigger-success=\"multistepbf\" data-disable-clean-form=\"no\" style=\"display: none\"><\/div>\n\t\t\t\t\t\t\t<div id=\"pafe-form-builder-trigger-failed-multistepbf\" data-pafe-form-builder-trigger-failed=\"multistepbf\" style=\"display: none\"><\/div>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/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<div class=\"elementor-element elementor-element-7acbe31 e-grid e-con-boxed e-con e-parent\" data-id=\"7acbe31\" 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-fbfb500 elementor-widget elementor-widget-image\" data-id=\"fbfb500\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1498\" height=\"260\" src=\"https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment3.png\" class=\"attachment-full size-full wp-image-5985\" alt=\"EasytaxiBelgium - Brussels Airport taxi services\" srcset=\"https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment3.png 1498w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment3-300x52.png 300w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment3-1024x178.png 1024w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment3-768x133.png 768w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment3-600x104.png 600w\" sizes=\"(max-width: 1498px) 100vw, 1498px\" \/>\t\t\t\t\t\t\t\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-6858057 elementor-widget elementor-widget-image\" data-id=\"6858057\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1536\" height=\"723\" src=\"https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment4.png\" class=\"attachment-full size-full wp-image-5989\" alt=\"EasytaxiBelgium - Brussels Airport taxi services\" srcset=\"https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment4.png 1536w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment4-300x141.png 300w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment4-1024x482.png 1024w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment4-768x362.png 768w, https:\/\/easytaxibelgium.be\/wp-content\/uploads\/2025\/08\/securepayment4-600x282.png 600w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\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<div class=\"elementor-element elementor-element-f3e9500 e-flex e-con-boxed e-con e-parent\" data-id=\"f3e9500\" 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-d847d85 elementor-widget elementor-widget-spacer\" data-id=\"d847d85\" 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-9d14ec2 elementor-widget elementor-widget-html\" data-id=\"9d14ec2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script defer async src='https:\/\/cdn.trustindex.io\/loader.js?82b6d1561e8a37684f36d2de102'><\/script>\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-c78ac94 e-flex e-con-boxed e-con e-parent\" data-id=\"c78ac94\" 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-1249492 elementor-widget elementor-widget-spacer\" data-id=\"1249492\" 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-f97a638 elementor-widget elementor-widget-heading\" data-id=\"f97a638\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Professionele luchthaventransfers in Belgi\u00eb en daarbuiten<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-04d8391 elementor-widget elementor-widget-text-editor\" data-id=\"04d8391\" 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><strong>Easy Taxi Belgium<\/strong> is gespecialiseerd in het leveren van betrouwbaar vervoer van hoge kwaliteit voor zowel zakenreizigers als particulieren. Of je nu reist van of naar een luchthaven in Belgi\u00eb of een buurland, wij zorgen voor een vlotte, punctuele en comfortabele reis op maat van jouw behoeften. <\/p><p>Met onze uitgebreide ervaring en diepgaande kennis van het regionale zakenlandschap zijn wij de eerste keuze voor luchthaventransfers. Onze diensten zijn ontworpen om te voldoen aan de verwachtingen van professionals die waarde hechten aan effici\u00ebntie en discretie, maar ook van particuliere klanten die op zoek zijn naar een stressvrije reiservaring. <\/p>\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-862b711 elementor-widget elementor-widget-heading\" data-id=\"862b711\" 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<h3 class=\"elementor-heading-title elementor-size-default\"><strong>Transparante prijzen - direct online beschikbaar<\/strong><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4707316 elementor-widget elementor-widget-text-editor\" data-id=\"4707316\" 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>Benieuwd naar de kosten van je luchthaventransfer? Op onze gebruiksvriendelijke website kun je in een paar klikken je prijs berekenen. Voer gewoon je ophaallocatie en luchthaven van bestemming in om een onmiddellijke prijsschatting te ontvangen, geen verborgen kosten, geen verrassingen.  <\/p><p>We bieden concurrerende tarieven voor transfers van elke locatie in Belgi\u00eb naar alle grote luchthavens, inclusief die in buurlanden zoals Nederland, Frankrijk, Duitsland en Luxemburg.<\/p>\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-a9700e3 elementor-widget elementor-widget-heading\" data-id=\"a9700e3\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Eenvoudig en snel veilig online boeken<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4b18fe elementor-widget elementor-widget-text-editor\" data-id=\"d4b18fe\" 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>Je luchthaventransfer boeken was nog nooit zo eenvoudig. <\/p><ul><li>Bekijk direct de kosten van je reis<\/li><li>Voer uw reisgegevens en contactgegevens in<\/li><li>Bevestig je reservering in slechts een paar stappen<\/li><\/ul><p>Zodra je boeking voltooid is, ontvang je snel een bevestiging per e-mail. Ons team zorgt ervoor dat elke rit professioneel, punctueel en zorgvuldig wordt afgehandeld. <\/p>\t\t\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<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Boek uw luchthavenvervoer online en veilig voor alle Belgische luchthavens. Easy Taxi Belgium &#8211; Luchthavenvervoer Brussel. Reis met gemak, betrouwbaar &amp; betaalbaar in Belgi\u00eb.  <\/p>\n","protected":false},"author":1,"featured_media":4458,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"slim_seo":{"title":"Luchthaventaxi-transfers","description":"Reis met gemak, betrouwbaar en betaalbaar naar de Brusselse luchthavens Zaventem en Charleroi. Boek online en betaal veilig. Onze professionele chauffeurs brengen u tijdig naar uw bestemming."},"footnotes":""},"class_list":["post-4572","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/pages\/4572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/comments?post=4572"}],"version-history":[{"count":121,"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/pages\/4572\/revisions"}],"predecessor-version":[{"id":6760,"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/pages\/4572\/revisions\/6760"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/media\/4458"}],"wp:attachment":[{"href":"https:\/\/easytaxibelgium.be\/nl\/wp-json\/wp\/v2\/media?parent=4572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}