{"id":542,"date":"2025-09-14T06:47:15","date_gmt":"2025-09-14T06:47:15","guid":{"rendered":"https:\/\/rafty.dk\/book-a-boat-copy"},"modified":"2026-05-28T05:39:17","modified_gmt":"2026-05-28T05:39:17","slug":"book-test","status":"publish","type":"page","link":"https:\/\/rafty.dk\/da\/book-test\/","title":{"rendered":"Book en b\u00e5d (test)"},"content":{"rendered":"\n\n<script  src=\"https:\/\/www.google.com\/recaptcha\/enterprise.js?render=6LfZNh8sAAAAAJqcjhJVz3GavnDhZFpprhe6w5l2\">\n<\/script>\n\n\n<script>\n\nconst debug = true;\nlet intervalRef = null; \/\/setInterval(calMinPicupTime, 60*60000);\nlet timeRef = null; \/\/setInterval(calMinPicupTime, 60*60000);\nconst currency = \"kr.\";\nconst currencyCode = \"DDK\";\nconst currencyNumber = \"208\";\nlet system_error = false;\n\nlet boatBookingClass = null;\n\n\/\/Message\/status Language Map: en and da\nclass CBoatBookingMessageMap {\n\tmessageMap;\n\tlanguage;\n\tconstructor() {\n\t\tif (window.location.href.indexOf(\"\/en\/\") > 0){\t\t\t\t\n\t\t\tthis.messageMap = new Map([\n\t\t\t  [\"empty\", \"required\"],\n\t\t\t  [\"invalid\", \"invalid\"],\n\t\t\t  [\"Booking is received. Thanh you!\", \"Booking is received. Thanh you!\"],\n\t\t\t  [\"Booking is received, but a confirmation can not be sent\", \"Booking is received, but a confirmation can not be sent. Please, contact us for info.\"],\n\t\t\t  [\"Error\", \"Error\"],\n\t\t\t  [\"Booking is not received\", \"Booking is not received\"],\n\t\t\t  [\"Internet disconnected\", \"Internet disconnected\"],\n\t\t\t  [\"Booked\", \"Booked\"],\n\t\t\t  [\"Your booking\", \"Your booking\"],\n\t\t\t  [\"Booking\/Id\", \"Booking\/Id\"],\n\t\t\t  [\"BookDate\", \"BookDate\"],\t  \n\t\t\t  [\"PayStatus\", \"PayStatus\"],\n\t\t\t  [\"First name\", \"First name\"],[\"Last name\", \"Last name\"],[\"Street address\", \"Street address\"],[\"Postal code\", \"Postal code\"],[\"City\", \"City\"],[\"Phone number\", \"Phone number\"],[\"Email\", \"Email\"],[\"Tour duration\", \"Tour duration\"],[\"Date\", \"Date\"],[\"Time\", \"Time\"],[\"DateTime\", \"DateTime\"],[\"Pickup location\", \"Pickup location\"],[\"Drop-off location\", \"Drop-off location\"],[\"Message if necessary\", \"Message if necessary\"],[\"Price\", \"Price\"],\t\n\t\t\t  [\"Best regards\", \"Best regards\"],\n\t\t\t  [\"You must accept our terms of trade\", \"You must accept our terms of trade\"],\n\t\t\t  [\"numbers only\", \"numbers only\"],\n\t\t\t  [\"Pickup location\", \"Pickup location\"],\n\t\t\t  [\"Drop-off location\", \"Drop-off location\"],\n\t\t\t  [\"Please, reload this page\", \"Please, reload this page\"],\n\t\t\t  [\"minimum length of 9 and a maximum length of 15\", \"minimum length of 9 and a maximum length of 15\"]\n\t\t\t]);\n\t\t\tthis.language = \"en\";\t\n\t\t}else{\n\t\t\tthis.language = \"da\";\n\t\t\tthis.messageMap = new Map([\n\t\t\t[\"empty\", \"p\u00e5kr\u00e6vet\"],\n\t\t\t[\"invalid\", \"ugyldig\"],\n\t\t\t[\"Booking is received. Thanh you!\", \"Booking er modtaget. Tak!\"],\n\t\t\t[\"Booking is received, but a confirmation can not be sent\", \"Booking er modtaget, men en bekr\u00e6ftelse kan ikke v\u00e6re sendt. Kontakt us for info.\"],\n\t\t\t[\"Error\", \"Fejl\"],\n\t\t\t[\"Booking is not received\", \"Booking er ikke modtaget\"],\n\t\t\t[\"Internet disconnected\", \"Internet afbrudt\"],\n\t\t\t[\"Booked\", \"Booket\"],\n\t\t\t[\"Your booking\", \"Din booking\"],\n\t\t\t[\"Booking\/Id\", \"Booking\/Id\"],\n\t\t\t[\"BookDate\", \"BookDato\"],\t\t\t  \n\t\t\t[\"PayStatus\", \"BetalStatus\"],\n\t\t\t[\"First name\", \"Fornavn\"],[\"Last name\", \"Efternavn\"],[\"Street address\", \"Adresse\"],[\"Postal code\", \"Postnr.\"],[\"City\", \"By\"],[\"Phone number\", \"Telefonnr.\"],[\"Email\", \"E-mail\"],[\"Tour duration\", \"Turvarighed\"],[\"Date\", \"Dato\"],[\"Time\", \"Tid\"],[\"DateTime\", \"DatoTid\"],[\"Pickup location\", \"Startdestination\"],[\"Drop-off location\", \"Slutdestination\"],[\"Evt. besked\", \"\"],[\"Pris\", \"\"],\n\t\t\t[\"Best regards\", \"Med venlig hilsen\"],\n\t\t\t[\"You must accept our terms of trade\", \"Du skal acceptere vores handelsbetingelser\"],\n\t\t\t[\"numbers only\", \"kun tal\"],\n\t\t\t[\"Pickup location\", \"Startdestination\"],\n\t\t\t[\"Drop-off location\", \"Slutdestination\"],\n\t\t\t[\"Please, reload this page\", \"Genindl\u00e6s venligst dette side\"],\n\t\t\t[\"minimum length of 9 and a maximum length of 15\", \"minimumsl\u00e6ngde p\u00e5 9 og en maksimumsl\u00e6ngde p\u00e5 15\"]\n\t\t]);\t\n\t\t}\n\t}\n\t\n\tgetMessage(msg) {if (this.messageMap.has(msg)) {return this.messageMap.get(msg);} else return msg; }\n\tgetLanguage() { return this.language; }\n}\n\n\/\/Booking a boat\nclass CBoatBookingClass {\n\tdebug;\n\tlanguage;\n\tlocationMap;\n\tconstructor(msgMap) {\n\t\tthis.debug = true;\n\t\tthis.msgMap = msgMap;\n\t\tthis.language = msgMap.getLanguage();\n\t\tthis.locationMap = new Map();\n\t}\n\t\n\tgetMessage(msg) {return this.msgMap.getMessage(msg);}\n\n\tvalidateEmail(email) \n\t{\n\t if (\/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$\/.test(email) && email.indexOf(\".\") > 0)\n\t  {\n\t\treturn true;\n\t  }\n\t   return false;\n\t}\n\n\taccept_our_terms_of_trade_Onchanged(){\n\tif (document.getElementById(\"rafty_booking_accept_terms_of_trade_input\").checked == false){\n\t\tdocument.getElementById(\"accept_our_terms_of_trade_error_msg\").innerHTML = this.msgMap.getMessage(\"You must accept our terms of trade\");\n\t\tdocument.getElementById(\"accept_our_terms_of_trade_error_msg\").style.display = \"block\";\n\t}else document.getElementById(\"accept_our_terms_of_trade_error_msg\").style.display = \"none\";\t\n\t}\n\tinputOnchanged(element, label, error_msg_id){\n\t\tif (element.value.trim() == \"\"){\n\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"empty\");\n\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\treturn;\n\t\t}\t\n\t\tif (element.id  == \"rafty_booking_email_input\"){\n\t\t\tif (!this.validateEmail(element.value.trim())){\n\t\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\t\treturn;\n\t\t\t}\t\t\t\t\n\t\t}\n\t\tif (element.id  == \"rafty_booking_street_address_input\"){\n\t\t\tlet value = element.value.trim();\n\t\t\tif (value.indexOf(\" \") < 0 || value.length < 3){\n\t\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\t\treturn;\n\t\t\t}\t\t\t\t\n\t\t}\n\t\t\n\t\tif (element.id  == \"rafty_booking_postal_code_input\"){\n\t\t\tif (boatBookingClass.debug) console.log(\"20\");\n\t\t\tlet value = element.value.trim();\n\t\t\tif (boatBookingClass.debug) console.log(\"30\");\n\t\t\t\n\t\t\tif (sessionStorage.getItem(\"twoLertersCountryCode\") == \"DK\"){\n\t\t\t\tif (boatBookingClass.debug) console.log(\"40\");\n\t\t\t\tlet regex = \/^\\d+$\/;\n\t\t\t\tif (!regex.test(value) || value.length != 4){\n\t\t\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}else\t\t\t\t\n\t\t\tif (element.value.trim().indexOf(\" \") < 0 || element.value.trim().length < 3){\n\t\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\t\treturn;\n\t\t\t}\t\t\t\t\n\t\t}\t\t\n\t\tif (element.id  == \"rafty_booking_phone_number_input\"){\n\t\t\tlet value = element.value.trim();\n\t\t\tlet phone_number_country_code = sessionStorage.getItem(\"phoneNumberCountryCode\");\n\t\t\tlet phone_number_country_code_len = phone_number_country_code.length - 1;\t\n\t\t\tlet regex = \/^\\d+$\/;\n\t\t\tif (!regex.test(value)){\n\t\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"numbers only\");\n\t\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\t\treturn;\n\t\t\t};\n\t\t\tif (sessionStorage.getItem(\"twoLertersCountryCode\") == \"DK\"){ \n\t\t\t\tif (value.length != 8){ \n\t\t\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\t\t\treturn;\t\n\t\t\t\t}\n\t\t\t}else\t\n\t\t\tif (value.length > (15 - phone_number_country_code_len) || value.length < (9 - phone_number_country_code_len)) \n\t\t\t{\n\t\t\t\tdocument.getElementById(error_msg_id).innerHTML = this.getMessage(label) + \": \" + this.msgMap.getMessage(\"minimum length of 9 and a maximum length of 15\");\n\t\t\t\tdocument.getElementById(error_msg_id).style.display = \"block\";\n\t\t\t\treturn;\n\t\t\t}\t\t\t\n\t\t}\n\t\tdocument.getElementById(error_msg_id).style.display = \"none\";\n\t}\n\t\n\tclearLocations(){\n\t\tlet select = document.getElementById(\"rafty_booking_pickup_location_input\");\n\t\tlet length = select.options.length;\n\t\tfor (let i = length-1; i >= 0; i--) {\n\t\t  select.options[i] = null;\n\t\t}\t\n\t\tselect.disabled = false;\n\t\t\n\t\tselect = document.getElementById(\"rafty_booking_dropoff_location_input\");\n\t\tlength = select.options.length;\n\t\tfor (let i = length-1; i >= 0; i--) {\n\t\t  select.options[i] = null;\n\t\t}\n\t\tselect.disabled = false;\t\t\n\t}\n\t\n\tget_locations(boatBookingClass){\n\tif (this.debug) console.log(\"get_locations: Start\");\t\n\tlet params = 'id=*'; \n\tlet http = new XMLHttpRequest();\/\/Using XMLHttpRequest to call the server and get the data\n\tlet url = '\/wp-content\/plugins\/rafty-booking-test\/location_get_data.php';\n\thttp.open('POST', url, true);\t\n\t\/\/Send the proper header information along with the request\n\t\/\/this.clearLocations();\n\thttp.setRequestHeader('Content-type', 'application\/x-www-form-urlencoded');\n\thttp.onreadystatechange = function() {\/\/Call a function when the state changes.\n\t\tif(http.readyState == 4 && http.status == 508) {\n\t\t\tsetTimeout(function(){boatBookingClass.get_locations(boatBookingClass)}, 300);\n\t\t}\t\t\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tlet datarows = JSON.parse(http.responseText);\n\t\t\tlet okrow = datarows[0];\n\t\t\tif (okrow.result == 'ok'){\n\t\t\t\tfor (let i = 1; i < datarows.length; i++){\n\t\t\t\t\tboatBookingClass.locationMap.set(datarows[i].id, datarows[i].name);\n\t\t\t\t}\n\t\t\t\tlet pickup_location_select = document.getElementById(\"rafty_booking_pickup_location_input\");\n\t\t\t\tlet dropoff_location_select = document.getElementById(\"rafty_booking_dropoff_location_input\");\n\t\t\t\tboatBookingClass.locationMap.forEach (function(name, id) {\n\t\t\t\t  let pickup_option = document.createElement(\"option\");\n\t\t\t\t  pickup_option.value = id;\n\t\t\t\t  pickup_option.text = name;\n\t\t\t\t  pickup_location_select.add(pickup_option);\n\t\t\t\t  let dropoff_option = document.createElement(\"option\");\n\t\t\t\t  dropoff_option.value = id;\n\t\t\t\t  dropoff_option.text = name;\n\t\t\t\t  dropoff_location_select.add(dropoff_option);\t\n\t\t\t\t})\t\t\t\t\t\t\n\t\t\t\t\/\/setTimeout(boatBookingClass.getSessionData(boatBookingClass), 100);\n\t\t\t\tpickup_location_select.disabled = false;\n\t\t\t\tdropoff_location_select.disabled = false;\t\n\t\t\t\tif (boatBookingClass.debug) console.log(\"get_locations: end OK\");\n\t\t\t}else{\n\t\t\t\tif (boatBookingClass.debug) console.log(\"get_locations: end Error: \" +  okrow.error);\n\t\t\t\tsystem_error = true;\n\t\t\t\tdocument.getElementById(\"system_error_msg_id\").style.display = \"block\";\n\t\t\t\tdocument.getElementById(\"submit_button\").disabled = true;\t\n\t\t\t\t\/\/alert(boatBookingClass.getMessage(\"Error\") + \": \" +  okrow.error);\n\t\t\t}\t\t\t\t\t\n\t\t}\n\t}\n\thttp.onerror = function() {\n\t\tsystem_error = true;\n\t\tdocument.getElementById(\"system_error_msg_id\").style.display = \"block\";\n\t\tdocument.getElementById(\"submit_button\").disabled = true;\t\t\t\t\t\n\t\tif (boatBookingClass.debug == true) console.log(\"get_locations: server is not available\");\n\t}\t\t\n\thttp.send(params);\t\n\t}\n\t\n\n\t\/\/Init\n\tasync init(){\n\t\tsetTimeout(this.get_locations(this), 100);\n\t\tlet d = new Date();\n\t\tUtilities.current_day = d.getDate();\n\t\tUtilities.current_hours = d.getHours();\n\t\tUtilities.tomorrowDate = Utilities.dateTomorrow();\n\t\tUtilities.min_pickup_time = Utilities.dateTimeTomorrow();\n\t\tdocument.getElementById('rafty_booking_pickup_date_input').min = Utilities.dateTomorrow();\n\t\tdocument.getElementById('rafty_booking_pickup_date_input').value = Utilities.dateTomorrow();\n\t\tdocument.getElementById(\"rafty_booking_pickup_location_input\").disabled = false;\n\t\tdocument.getElementById(\"rafty_booking_dropoff_location_input\").disabled = false;\n\t\tlet waitPromise = new Promise(function(resolve) {\n\t\t\tsetTimeout(boatBookingClass.get_date_schedule(Utilities.tomorrowDate, boatBookingClass, resolve), 50);\n\t\t});\n\t\tlet finish = await waitPromise;\n\t\tif (debug) console.log(\"get_times_for_date: \" + finish);\n\t\tlet minutes = 60000*d.getMinutes();\n\t\tlet seconds = 1000*d.getSeconds();\n\t\tlet milliseconds = d.getMilliseconds();\n\t\t\/\/change first hour\t\n\t\ttimeRef = setTimeout(firstHourChanged, 60*60000 - minutes - seconds - milliseconds);\n\t\tthis.getSessionData();\n\t}\t\n\t\n\t\/\/Cancel schedule time for a date   \n\tasync getSessionData(){\n\t\tif (debug) console.log(sessionStorage.getItem(\"fullName\"));\n\t\tif (sessionStorage.getItem(\"bookingId\") != null){\n\t\t\tconst rawResponse = await fetch('\/wp-content\/plugins\/rafty-booking-test\/schedule_cancel_data.php', {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t'Accept': 'application\/json',\n\t\t\t\t'Content-Type': 'application\/json'\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({pickup_date: sessionStorage.getItem(\"Date\"), pickup_time_index: sessionStorage.getItem(\"pickupTimeIndex\"), event_length: sessionStorage.getItem(\"eventLength\")})\n\t\t\t});\n\t\t\tconst content = await rawResponse.text();\n\t\t\tdocument.getElementById(\"rafty_booking_first_name_input\").value = sessionStorage.getItem(\"fullName\");\n\t\t\tdocument.getElementById(\"rafty_booking_phone_number_input\").value = sessionStorage.getItem(\"phoneNumberNoCountry\");\n\t\t\tdocument.getElementById(\"rafty_booking_country_select_input\").value = sessionStorage.getItem(\"phoneNumberCountry\");\n\t\t\tdocument.getElementById(\"rafty_booking_email_input\").value = sessionStorage.getItem(\"email\");\n\t\t\tdocument.getElementById(\"rafty_booking_event_length_input\").value = sessionStorage.getItem(\"eventLengthPrice\");\n\t\t\tdocument.getElementById(\"rafty_booking_pickup_date_input\").value = sessionStorage.getItem(\"Date\");\n\t\t\tdocument.getElementById(\"rafty_booking_pickup_location_input\").selectedIndex = parseInt(sessionStorage.getItem(\"pickupLocationId\"));\n\t\t\tdocument.getElementById(\"rafty_booking_dropoff_location_input\").selectedIndex = parseInt(sessionStorage.getItem(\"dropoffLocationId\"));\t\t\n\t\t\tdocument.getElementById(\"rafty_booking_message_input\").value = sessionStorage.getItem(\"message\");\t\n\t\t\tupdatePrice();\t\t\n\t\t\tlet waitPromise = new Promise(function(resolve) {\n\t\t\t\tsetTimeout(boatBookingClass.get_date_schedule(sessionStorage.getItem(\"Date\"), boatBookingClass, resolve), 10);\n\t\t\t});\n\t\t\tlet finish = await waitPromise;\n\t\t\tif (debug) console.log(\"get_times_for_date: \" + finish);\n\t\t\tdocument.getElementById(\"time_\" + sessionStorage.getItem(\"pickupTimeIndex\")).checked = true;\t\t\t\n\t\t}\n\t}\n\tonCountrySelected(){\n\t\tlet value = document.getElementById(\"rafty_booking_country_select_input\").value.split(\",\");\n\t\tlet phoneNumberCountryCode = value[0];\n\t\tlet twoLertersCountryCode = value[1];\n\t\tlet country = document.getElementById(\"rafty_booking_country_select_input\").options[document.getElementById(\"rafty_booking_country_select_input\").selectedIndex].text;\n\t\tdocument.getElementById(\"rafty_booking_phone_number_country_code_input\").value = phoneNumberCountryCode;\n\t\tsessionStorage.setItem(\"country\", country);\n\t\tsessionStorage.setItem(\"phoneNumberCountryCode\", phoneNumberCountryCode);\n\t\tsessionStorage.setItem(\"twoLertersCountryCode\", twoLertersCountryCode);\n\t}\n\tsetSessionData(){\n\t\tsessionStorage.setItem(\"fullName\", document.getElementById(\"rafty_booking_first_name_input\").value);\n\t\tsessionStorage.setItem(\"phoneNumber\", sessionStorage.getItem(\"phoneNumberCountryCode\") + document.getElementById(\"rafty_booking_phone_number_input\").value.trim());\n\t\tsessionStorage.setItem(\"phoneNumberCountry\", document.getElementById(\"rafty_booking_country_select_input\").value);\n\t\tsessionStorage.setItem(\"phoneNumberNoCountry\", document.getElementById(\"rafty_booking_phone_number_input\").value.trim());\n\t\tsessionStorage.setItem(\"email\", document.getElementById(\"rafty_booking_email_input\").value);\n\t\tlet eventLengthElement = document.getElementById(\"rafty_booking_event_length_input\");\n\t\tsessionStorage.setItem(\"eventLengthPrice\", eventLengthElement.value);\n\t\tsessionStorage.setItem(\"eventLength\", eventLengthElement.options[eventLengthElement.selectedIndex].text);\n\t\tsessionStorage.setItem(\"Date\", document.getElementById('rafty_booking_pickup_date_input').value);\n\t\t\n\t\tsessionStorage.setItem(\"pickupTimeIndex\", Utilities.getPickupTimeIndex());\n\t\tsessionStorage.setItem(\"pickupTime\", Utilities.getPickupTime());\n\t\tlet pickupLocationElement = document.getElementById(\"rafty_booking_pickup_location_input\");\n\t\tsessionStorage.setItem(\"pickupLocationId\", pickupLocationElement.value);\n\t\tsessionStorage.setItem(\"pickupLocation\", pickupLocationElement.options[pickupLocationElement.selectedIndex].text);\n\t\t\n\t\tlet dropoffLocationElement = document.getElementById(\"rafty_booking_dropoff_location_input\");\n\t\tsessionStorage.setItem(\"dropoffLocationId\", dropoffLocationElement.value);\n\t\tsessionStorage.setItem(\"dropoffLocation\", dropoffLocationElement.options[dropoffLocationElement.selectedIndex].text);\n\t\tsessionStorage.setItem(\"message\", document.getElementById(\"rafty_booking_message_input\").value);\t\n\t}\t\n\t\n\t\n\t\/\/Get schedule time for a date and assign into array Utilities.pickupTimeIndexArray (0: available, 1: occupied)    \n\tget_date_schedule(date, boatBookingClass, resolve = null){\n\t\tif (debug) console.log(\"get_times_for_date: Start\");\t\n\t\tlet params = 'pickup_date=' + date; \n\t\tlet http = new XMLHttpRequest();\/\/Using XMLHttpRequest to call the server and get the data\n\t\tlet url = '\/wp-content\/plugins\/rafty-booking-test\/schedule_get_data.php';\n\t\thttp.open('POST', url, true);\t\n\t\thttp.setRequestHeader('Content-type', 'application\/x-www-form-urlencoded');\n\t\thttp.onreadystatechange = function() {\/\/Call a function when the state changes.\n\t\t\tif(http.readyState == 4 && http.status == 508) {\n\t\t\t\tsetTimeout(function(){boatBookingClass.get_date_schedule(date, boatBookingClass, resolve)}, 300);\n\t\t\t}\t\t\n\t\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\t\tif (debug) console.log(\"get_times_for_date: \" + http.responseText);\t\n\t\t\t\tlet datarows = JSON.parse(http.responseText);\n\t\t\t\tlet okrow = datarows[0];\n\t\t\t\tif (okrow.result == 'ok'){\t\n\t\t\t\t\tif (datarows.length == 2){\n\t\t\t\t\t\tUtilities.pickupTimeIndexArray[0] = parseInt(datarows[1].time_0);\n\t\t\t\t\t\tUtilities.pickupTimeIndexArray[1] = parseInt(datarows[1].time_1);\n\t\t\t\t\t\tUtilities.pickupTimeIndexArray[2] = parseInt(datarows[1].time_2);\n\t\t\t\t\t\tUtilities.pickupTimeIndexArray[3] = parseInt(datarows[1].time_3);\n\t\t\t\t\t\tUtilities.pickupTimeIndexArray[4] = parseInt(datarows[1].time_4);\n\t\t\t\t\t\tUtilities.pickupTimeIndexArray[5] = parseInt(datarows[1].time_5);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tfor (let i = 0; i < Utilities.pickupTimeIndexArray.length; i++) Utilities.pickupTimeIndexArray[i] = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (system_error){\n\t\t\t\t\t\tsystem_error = false;\n\t\t\t\t\t\tdocument.getElementById(\"system_error_msg_id\").style.display = \"none\";\n\t\t\t\t\t\tdocument.getElementById(\"submit_button\").disabled = false;\n\t\t\t\t\t}\n\t\t\t\t\tboatBookingClass.dateTimeScheduled(date);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t}else{\n\t\t\t\t\tsystem_error = true;\n\t\t\t\t\tdocument.getElementById(\"system_error_msg_id\").style.display = \"block\";\n\t\t\t\t\tdocument.getElementById(\"submit_button\").disabled = true;\n\t\t\t\t}\n\t\t\t\t\/\/Ogs\u00e5 disable datetime that are less than min_pickup time.\n\t\t\t\tif (debug) console.log(\"get_times_for_date: End\");\n\t\t\t\tif (resolve != null) resolve(\"Finish1\");\n\t\t\t}\n\t\t}\n\t\thttp.onerror = function() {\n\t\t\tsystem_error = true;\n\t\t\tdocument.getElementById(\"system_error_msg_id\").style.display = \"block\";\n\t\t\tdocument.getElementById(\"submit_button\").disabled = true;\t\t\n\t\t\tif (debug) console.log(\"get_times_for_date: server is not available\");\n\t\t\tif (resolve != null) resolve(\"Finish\");\t\n\t\t}\t\t\n\t\thttp.send(params);\t\n\t}\t\t\n\t\n\t\/\/Show available time schedule for a date can be booked\n\tdateTimeScheduled(date){\n\t\tif (system_error) return;\n\t\t\/\/Disabled dateTime that is less than min_pickup_time\n\t\tif (debug) console.log(\"Utilities.min_pickup_time: \" + Utilities.min_pickup_time);\n\t\tlet date_time = [date + \" 10:00\", date + \" 12:00\", date + \" 14:00\", date + \" 16:00\", date + \" 18:00\", date + \" 20:00\"];\n\t\tfor (let i = 0; i < date_time.length; i++){\n\t\t\tif (date_time[i] <= Utilities.min_pickup_time) Utilities.pickupTimeIndexArray[i] = 1;\n\t\t}\n\t\t\n\t\tif (document.getElementById(\"rafty_booking_event_length_input\").value == \"5300.00\"){\n\t\t\tfor (let i = 0; i < Utilities.pickupTimeIndexArray.length - 1; i++)\n\t\t\t\t\tif (Utilities.pickupTimeIndexArray[i] == 0 && Utilities.pickupTimeIndexArray[i + 1] == 1) Utilities.pickupTimeIndexArray[i] = 1;\n\t\t}\n\t\t\t\n\t\t\/\/At least one datetime available: false\n\t\tlet at_least_one_available_datetime = false;\n\t\tfor (let i = 0; i < Utilities.pickupTimeIndexArray.length; i++){\n\t\t\tif (Utilities.pickupTimeIndexArray[i] == 0){\n\t\t\t\tif (debug) console.log(\"at_least_one_available_datetime = true\");\n\t\t\t\tat_least_one_available_datetime = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (at_least_one_available_datetime == false){\n\t\t\tdocument.getElementById(\"real_pickup_time_holder\").style.display = \"none\";\n\t\t\tdocument.getElementById(\"not_used_pickup_time_holder\").style.display = \"block\";\n\t\t\tdocument.getElementById(\"submit_button\").disabled = true;\t\n\t\t}else{\n\t\t\t\/\/check if a available datetime is already checked\n\t\t\tlet is_available_datetime_checked = false;\n\t\t\tfor (let i = 0; i < Utilities.pickupTimeIndexArray.length; i++){\n\t\t\t\tif (Utilities.pickupTimeIndexArray[i] == 0){\n\t\t\t\t\tif (document.getElementById(\"time_\" + i).checked == true){\n\t\t\t\t\t\tis_available_datetime_checked = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\/\/if no available datetime already checked, check the first available datetime \t\n\t\t\tif (is_available_datetime_checked == false){\n\t\t\t\tfor (let i = 0; i < Utilities.pickupTimeIndexArray.length; i++){\n\t\t\t\t\tif (Utilities.pickupTimeIndexArray[i] == 0){\n\t\t\t\t\t\tdocument.getElementById(\"time_\" + i).checked = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor (let i = 0; i < Utilities.pickupTimeIndexArray.length; i++){\n\t\t\t\tif (Utilities.pickupTimeIndexArray[i] == 0){\n\t\t\t\t\tdocument.getElementById(\"time_\" + i).disabled = false;\n\t\t\t\t}else document.getElementById(\"time_\" + i).disabled = true;\t\t\t\n\t\t\t}\n\t\t\tdocument.getElementById(\"real_pickup_time_holder\").style.display = \"block\";\n\t\t\tdocument.getElementById(\"not_used_pickup_time_holder\").style.display = \"none\";\n\t\t\tdocument.getElementById(\"submit_button\").disabled = false;\t\n\t\t\tfor (let i = 0; i < 6; i++) if (document.getElementById(\"time_\" + i).disabled == true) {document.getElementById(\"time_label_id_\" + i).style.fontWeight = \"normal\";} else document.getElementById(\"time_label_id_\" + i).style.fontWeight = \"bold\";\t\n\t\t}\n\t}\n\t\t\n\t\/\/Update datetime schedule every hour or when the screen becomes ontime after offtime\n\tupdateDateTimeScheduleEveryHour() {\n\t\tlet d = new Date();\n\t\tif (debug) console.log(\"updateEveryHour: \" + d);\n\t\tlet current_day = d.getDate();\n\t\tlet current_hours = d.getHours();\n\t\tif (current_day != Utilities.current_day){\n\t\t\tif (debug) console.log(\"Day Changed\");\n\t\t\tUtilities.current_day = current_day;\n\t\t\tUtilities.current_hours = current_hours;\n\t\t\tUtilities.tomorrowDate = Utilities.dateTomorrow();\n\t\t\tUtilities.min_pickup_time = Utilities.dateTimeTomorrow();\n\t\t\tdocument.getElementById('rafty_booking_pickup_date_input').min = Utilities.dateTomorrow();\/\/Pick up must at least be a day after booking time \n\t\t\tdocument.getElementById('rafty_booking_pickup_date_input').value = Utilities.dateTomorrow();\n\t\t\tboatBookingClass.get_date_schedule(Utilities.tomorrowDate, boatBookingClass);\n\t\t}else{\n\t\t\tif (current_hours != Utilities.current_hours){\n\t\t\t\tif (debug) console.log(\"Hours Changed\");\n\t\t\t\tUtilities.current_hours = current_hours;\n\t\t\t\tUtilities.min_pickup_time = Utilities.dateTimeTomorrow();\n\t\t\t\tif (debug) console.log(\"New hours: \" + Utilities.current_hours);\n\t\t\t\tif (debug) console.log(\"tomorrowDate: \" + Utilities.tomorrowDate);\n\t\t\t\tif (Utilities.tomorrowDate == document.getElementById('rafty_booking_pickup_date_input').value){\n\t\t\t\t\tboatBookingClass.dateTimeScheduled(Utilities.tomorrowDate);\n\t\t\t\t}else if (Utilities.current_hours > 19) {if (debug) console.log(\"Call showDateTimeSchedule()\"); showDateTimeSchedule();}\n\t\t\t}\n\t\t}\n\t\t\/\/document.getElementById(\"rafty_booking_first_name_input\").focus();\n\t}\n\t\n\tbookBoat(){\n\tlet first_name = document.getElementById(\"rafty_booking_first_name_input\").value.trim();\n\tlet last_name = document.getElementById(\"rafty_booking_first_name_input\").value.trim();\n\tlet street_address = document.getElementById(\"rafty_booking_street_address_input\").value.trim();\n\tlet postal_code = document.getElementById(\"rafty_booking_postal_code_input\").value.trim();\n\tlet city = document.getElementById(\"rafty_booking_city_input\").value.trim();\n\tlet phone_number_country_code = sessionStorage.getItem(\"phoneNumberCountryCode\");\n\tlet phone_number_country_code_len = phone_number_country_code.length - 1;\n\tlet phone_number = document.getElementById(\"rafty_booking_phone_number_input\").value.trim();\n\tlet email = document.getElementById(\"rafty_booking_email_input\").value.trim();\n\tlet message = document.getElementById(\"rafty_booking_message_input\").value.trim();\n\t\n\tlet first_name_label = this.getMessage(\"First name\");\n\tlet phone_number_label = this.getMessage(\"Phone number\");\n\tlet email_label = this.getMessage(\"Email\");\n\tlet last_name_label = this.getMessage(\"Last name\");\n\tlet street_address_label = this.getMessage(\"Street address\");\n\tlet postal_code_label = this.getMessage(\"Postal code\");\n\tlet city_label = this.getMessage(\"City\");\n\n\tlet form_invalid = false;\n\t\n\tif (document.getElementById(\"rafty_booking_pickup_location_input\").length == 1){\n\t\tdocument.getElementById(\"pickup_location_error_msg\").innerHTML = this.msgMap.getMessage(\"Pickup location\") + \": \" + this.msgMap.getMessage(\"Please, reload this page\");\n\t\tdocument.getElementById(\"pickup_location_error_msg\").style.display = \"block\";\n\t\tdocument.getElementById(\"dropoff_location_error_msg\").innerHTML = this.msgMap.getMessage(\"Drop-off location\") + \": \" + this.msgMap.getMessage(\"Please, reload this page\");\n\t\tdocument.getElementById(\"dropoff_location_error_msg\").style.display = \"block\";\t\t\n\t\tform_invalid = true;\n\t}else{\n\t\tlet pickupLocationElement = document.getElementById(\"rafty_booking_pickup_location_input\");\n\t\tif (pickupLocationElement.value == \"0\"){\n\t\t\tdocument.getElementById(\"pickup_location_error_msg\").innerHTML = this.msgMap.getMessage(\"Pickup location\") + \": \" + this.msgMap.getMessage(\"empty\");\n\t\t\tdocument.getElementById(\"pickup_location_error_msg\").style.display = \"block\";\t\t\n\t\t\tform_invalid = true;\n\t\t}\n\t\t\t\n\t\tlet dropoffLocationElement = document.getElementById(\"rafty_booking_dropoff_location_input\");\n\t\tif (dropoffLocationElement.value == \"0\"){\n\t\t\tdocument.getElementById(\"dropoff_location_error_msg\").innerHTML = this.msgMap.getMessage(\"Drop-off location\") + \": \" + this.msgMap.getMessage(\"empty\");\n\t\t\tdocument.getElementById(\"dropoff_location_error_msg\").style.display = \"block\";\t\t\n\t\t\tform_invalid = true;\n\t\t}\n\t}\n\n\tif (first_name == \"\"){\n\t\tdocument.getElementById(\"first_name_error_msg\").innerHTML = first_name_label + \": \" + this.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"first_name_error_msg\").style.display = \"block\";\n\t\tform_invalid = true;\n\t}else document.getElementById(\"first_name_error_msg\").style.display = \"none\";\n\tif (boatBookingClass.debug) console.log(\"0\");\n\tif (last_name == \"\"){\n\t\tdocument.getElementById(\"last_name_error_msg\").innerHTML = last_name_label + \": \" + this.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"last_name_error_msg\").style.display = \"block\";\n\t\tform_invalid = true;\n\t}else document.getElementById(\"last_name_error_msg\").style.display = \"none\";\n\n\t\n\tif (boatBookingClass.debug) console.log(\"1\");\n\t\n\tif (street_address == \"\"){\n\t\tdocument.getElementById(\"street_address_error_msg\").innerHTML = street_address_label + \": \" + this.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"street_address_error_msg\").style.display = \"block\";\n\t\tform_invalid = true;\n\t}else{\n\t\tif (street_address.indexOf(\" \") < 0 || street_address.length < 3) \n\t\t{\n\t\t\tdocument.getElementById(\"street_address_error_msg\").innerHTML = street_address_label + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\tdocument.getElementById(\"street_address_error_msg\").style.display = \"block\";\n\t\t\tform_invalid = true;\n\t\t}else{\n\t\t\tdocument.getElementById(\"street_address_error_msg\").style.display = \"none\";\n\t\t}\n\t}\n\tif (boatBookingClass.debug) console.log(\"2\");\n\tif (postal_code == \"\"){\n\t\tdocument.getElementById(\"postal_code_error_msg\").innerHTML = postal_code_label + \": \" + this.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"postal_code_error_msg\").style.display = \"block\";\n\t\tform_invalid = true;\n\t}else{\n\t\tif (sessionStorage.getItem(\"twoLertersCountryCode\") == \"DK\"){\n\t\t\tlet regex = \/^\\d+$\/;\n\t\t\tif (!regex.test(postal_code) || postal_code.length != 4){\n\t\t\t\tdocument.getElementById(postal_code_error_msg).innerHTML = postal_code_label + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\t\tdocument.getElementById(postal_code_error_msg).style.display = \"block\";\t\t\t\t\n\t\t\t\tform_invalid = true;\n\t\t\t}else document.getElementById(\"postal_code_error_msg\").style.display = \"none\";\n\t\t}else\t\t\t\n\t\tif (postal_code.length > 10 || postal_code.length < 4){\n\t\t\tdocument.getElementById(postal_code_error_msg).innerHTML = postal_code_label + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\tdocument.getElementById(postal_code_error_msg).style.display = \"block\";\t\t\t\n\t\t\tform_invalid = true;\n\t\t}else{\n\t\t\tdocument.getElementById(\"postal_code_error_msg\").style.display = \"none\";\n\t\t}\n\t}\n\tif (boatBookingClass.debug) console.log(\"3\");\n\tif (city == \"\"){\n\t\tdocument.getElementById(\"city_error_msg\").innerHTML = city_label + \": \" + this.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"city_error_msg\").style.display = \"block\";\n\t\tform_invalid = true;\n\t}else document.getElementById(\"city_error_msg\").style.display = \"none\";\n\tif (boatBookingClass.debug) console.log(\"4\");\n\tif (phone_number == \"\"){\n\t\tdocument.getElementById(\"phone_number_error_msg\").innerHTML = phone_number_label + \": \" + this.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"phone_number_error_msg\").style.display = \"block\";\n\t\tform_invalid = true;\n\t}else{\n\t\tlet regex = \/^\\d+$\/;\n\t\tif (!regex.test(phone_number)) \n\t\t{\t\n\t\t\tdocument.getElementById(\"phone_number_error_msg\").innerHTML = phone_number_label + \": \" + this.msgMap.getMessage(\"numbers only\");\n\t\t\tdocument.getElementById(\"phone_number_error_msg\").style.display = \"block\";\n\t\t\tform_invalid = true;\n\t\t}else\t\t\n\t\tif (sessionStorage.getItem(\"twoLertersCountryCode\") == \"DK\"){ \n\t\t\tif (boatBookingClass.debug) console.log(\"41\");\n\t\t\tif (phone_number.length != 8){ \n\t\t\tif (boatBookingClass.debug) console.log(\"42\");\n\t\t\tdocument.getElementById(phone_number_error_msg).innerHTML = phone_number_label + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\t\tdocument.getElementById(phone_number_error_msg).style.display = \"block\";\t\n\t\t\tif (boatBookingClass.debug) console.log(\"43\");\nif (boatBookingClass.debug) console.log(\"44\");\t\t\t\n\t\t\tform_invalid = true;} else document.getElementById(\"phone_number_error_msg\").style.display = \"none\";\n\t\t}else\n\t\tif (phone_number.length > (15 - phone_number_country_code_len) || phone_number.length < (9 - phone_number_country_code_len)){\n\t\t\tdocument.getElementById(phone_number_error_msg).innerHTML = phone_number_label + \": \" + this.msgMap.getMessage(\"minimum length of 9 and a maximum length of 15\");\n\t\t\tdocument.getElementById(phone_number_error_msg).style.display = \"block\";\t\t\t\n\t\t\tform_invalid = true;\n\t\t}else{\n\t\t\tdocument.getElementById(\"phone_number_error_msg\").style.display = \"none\";\n\t\t}\n\t}\n\t\n\tif (boatBookingClass.debug) console.log(\"5\");\n\tif (email == \"\"){\n\t\tdocument.getElementById(\"email_error_msg\").innerHTML = email_label + \": \" + this.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"email_error_msg\").style.display = \"block\";\n\t\t\/\/document.getElementById(\"rafty_booking_email_input\").focus();\n\t\tform_invalid = true;\n\t}else\t\n\tif (!this.validateEmail(email)){\n\t\tdocument.getElementById(\"email_error_msg\").innerHTML = email_label + \": \" + this.msgMap.getMessage(\"invalid\");\n\t\tdocument.getElementById(\"email_error_msg\").style.display = \"block\";\n\t\t\/\/document.getElementById(\"rafty_booking_email_input\").focus();\n\t\tform_invalid = true;\n\t}else document.getElementById(\"email_error_msg\").style.display = \"none\";\n\tif (boatBookingClass.debug) console.log(\"7\");\n\tif (document.getElementById(\"rafty_booking_accept_terms_of_trade_input\").checked == false){\n\t\tdocument.getElementById(\"accept_our_terms_of_trade_error_msg\").innerHTML = this.msgMap.getMessage(\"You must accept our terms of trade\");\n\t\tdocument.getElementById(\"accept_our_terms_of_trade_error_msg\").style.display = \"block\";\n\t\tform_invalid = true;\n\t}\n\t\n\tif (form_invalid){\n\t\treturn;\n\t}else{\n\t\tthis.setSessionData();\n\t\twindow.location.href = \"\/rafty-booking-summary-test\";\t\t\n\t}\n\t}\t\n}\n\n\/\/Handling for screen visibility events \n\n\/\/ Set the name of the hidden property and the change event for visibility\nlet hidden, visibilityChange; \nif (typeof document.hidden !== \"undefined\") { \/\/ Opera 12.10 and Firefox 18 and later support \n  hidden = \"hidden\";\n  visibilityChange = \"visibilitychange\";\n} else if (typeof document.mozHidden !== \"undefined\") {\n  hidden = \"mozHidden\";\n  visibilityChange = \"mozvisibilitychange\";\n} else if (typeof document.msHidden !== \"undefined\") {\n  hidden = \"msHidden\";\n  visibilityChange = \"msvisibilitychange\";\n} else if (typeof document.webkitHidden !== \"undefined\") {\n  hidden = \"webkitHidden\";\n  visibilityChange = \"webkitvisibilitychange\";\n}\n\n\/\/ Warn if the browser doesn't support addEventListener or the Page Visibility API\nif (typeof document.addEventListener === \"undefined\" || \n  typeof document[hidden] === \"undefined\") {\n  \/\/alert(\"This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API.\");\n} else {\n  \/\/ Handle page visibility change   \n  \/\/alert(\"This browser supports the Page Visibility API.\");\n  document.addEventListener(visibilityChange, handleVisibilityChange, false);\n}\n\n\/\/Ontime and offtime handler\nfunction handleVisibilityChange() {\n  if (document[hidden]) {\n    if (debug) console.log(\"Screen hidden\");\n\ttry{\n\t\tclearInterval(intervalRef);\n\t}catch(err){\n\t}\n\ttry{\n\t\tclearTimeout(timeRef);\n\t}catch(err){\n\t}\t\t\t\n  } else {\n\tif (debug) console.log(\"Screen visible\");\n\tboatBookingClass.updateDateTimeScheduleEveryHour();\n\tlet d = new Date();\n\tlet minutes = 60000*d.getMinutes();\n\tlet seconds = 1000*d.getSeconds();\n\tlet milliseconds = d.getMilliseconds();\n\t\/\/change first hour\t\n\ttimeRef = setTimeout(firstHourChanged, 60*60000 - minutes - seconds - milliseconds);\t  \n  }\n}\n\n\/\/End Handling for screen visibility events \n\n\t\/\/Called when first hour changed, call updateDateTimeScheduleEveryHour()\nfunction firstHourChanged(){\n\tlet d = new Date();\n\tboatBookingClass.updateDateTimeScheduleEveryHour();\n\tintervalRef = setInterval(boatBookingClass.updateDateTimeScheduleEveryHour, 60*60000);\n}\t\n\t\nfunction inputOnchanged(element, label, error_msg_id){\n\tboatBookingClass.inputOnchanged(element, label, error_msg_id);\n}\n\nfunction accept_our_terms_of_trade_Onchanged(){\n\tboatBookingClass.accept_our_terms_of_trade_Onchanged();\n}\n\n\/\/Parameters and functions to handle datetime schedule\nconst Utilities = {\n\tcurrent_day: 1, current_hours: 1, tomorrowDate: \"\", min_pickup_time: \"\",\n\tdateTomorrow: function() {\n\t\tlet d = new Date();\n\t\td.setDate(d.getDate() + 1);\t\n\t\tlet month = '' + (d.getMonth() + 1);\n\t\tlet day = '' + d.getDate();\n\t\tlet year = '' + d.getFullYear();\n\t\tif (month.length < 2) \n\t\t\tmonth = '0' + month;\n\t\tif (day.length < 2) \n\t\t\tday = '0' + day;\n\t\treturn [year, month, day].join('-');\n\t},\n\tdateTimeTomorrow: function() {\n\t\tlet d = new Date();\n\t\td.setDate(d.getDate() + 1);\n\t\tlet month = '' + (d.getMonth() + 1);\n\t\tlet day = '' + d.getDate();\n\t\tlet year = '' + d.getFullYear();\n\t\tlet hours = '' + d.getHours();\n\t\tlet minutes = '' + d.getMinutes();\n\t\tif (month.length < 2) \n\t\t\tmonth = '0' + month;\n\t\tif (day.length < 2) \n\t\t\tday = '0' + day;\n\t\tif (hours.length < 2) \n\t\t\thours = '0' + hours;\n\t\tif (minutes.length < 2) \n\t\t\tminutes = '0' + minutes;\n\t\treturn [year, month, day].join('-') + \" \" + [hours, minutes].join(':');\n\t},\n\tpickupTimeIndexArray: [0, 0, 0, 0, 0, 0], \/\/stand for [\"10:00\", \"12:00\", \"14:00\", \"16:00\", \"18:00\", \"20:00\"] and (0: available, 1: occupied)\n\tpickupTimeArray: [\"10:00\", \"12:00\", \"14:00\", \"16:00\", \"18:00\", \"20:00\"],\n\tgetPickupTimeIndex: function() {\n\t\tfor (let i = 0; i < 6; i++){\n\t\t\tif (document.getElementById(\"time_\" + i).checked == true){\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t},\n\tgetPickupTime: function() {\n\t\treturn this.pickupTimeArray[this.getPickupTimeIndex()];\n\t}\t\n}\n\n\/\/Book a boat\nfunction onBookSubmit(token) {\n     boatBookingClass.bookBoat();\n}\n\n\/\/Get and show exist time schedule for a date. Called when a date in the calendar changed\nfunction showDateTimeSchedule(){\n\tboatBookingClass.get_date_schedule(document.getElementById('rafty_booking_pickup_date_input').value, boatBookingClass);\n}\n\n\nfunction updatePrice(){\n\tdocument.getElementById('rafty_booking_price_input').value =  document.getElementById('rafty_booking_event_length_input').value + \" \" + currency;\n\tshowDateTimeSchedule();\n}\n\nfunction on_pickup_location_changed(){\n\tlet pickupLocationElement = document.getElementById(\"rafty_booking_pickup_location_input\");\n\tif (pickupLocationElement.value == \"0\"){\n\t\tdocument.getElementById(\"pickup_location_error_msg\").innerHTML = boatBookingClass.msgMap.getMessage(\"Pickup location\") + \": \" + boatBookingClass.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"pickup_location_error_msg\").style.display = \"block\";\t\t\n\t}else document.getElementById(\"pickup_location_error_msg\").style.display = \"none\";\n}\n\nfunction on_dropoff_location_changed(){\n\tlet dropoffLocationElement = document.getElementById(\"rafty_booking_dropoff_location_input\");\n\tif (dropoffLocationElement.value == \"0\"){\n\t\tdocument.getElementById(\"dropoff_location_error_msg\").innerHTML = boatBookingClass.msgMap.getMessage(\"Drop-off location\") + \": \" + boatBookingClass.msgMap.getMessage(\"empty\");\n\t\tdocument.getElementById(\"dropoff_location_error_msg\").style.display = \"block\";\t\t\n\t}else document.getElementById(\"dropoff_location_error_msg\").style.display = \"none\";\n}\n\nwindow.addEventListener(\n  \"pagehide\",\n  (event) => {\n\t\tif (debug) console.log(\"Pagehide\");\n\t\ttry{\n\t\t\tclearInterval(intervalRef);\n\t\t}catch(err){\n\t\t}\n\t\ttry{\n\t\t\tclearTimeout(timeRef);\n\t\t}catch(err){\n\t\t}\t\t\t\n  },\n  false,\n);\n\nwindow.addEventListener(\n  \"pageshow\",\n  (event) => {\n\tif (debug) console.log(\"Pageshow Start\");\n\t\n  },\n  false,\n);\n\ndocument.addEventListener(\"DOMContentLoaded\", function(e) {\t\n\tsessionStorage.setItem(\"rafty_init\", \"rafty_booking\");\n\tboatBookingClass = new CBoatBookingClass(new CBoatBookingMessageMap());  \n\tboatBookingClass.init(); \n\tboatBookingClass.onCountrySelected();\n\tif (window.location.href.indexOf(\"\/en\/\") > 0) document.getElementById(\"rafty_booking_postal_code_panel\").style.width = \"160px\";\n});\n\n<\/script>\n<!--Booking form in html-->\n<h3 style=\"text-align:center;font-weight:bold;\">Start your boat trip<\/h3>\n<form style=\"margin-bottom:5px;margin-top:10px;\" class=\"container card\" onsubmit=\"event.preventDefault();\">\n<label style=\"color:#A0522D;\"><b>Tour duration<\/b><\/label><br>\n<select id=\"rafty_booking_event_length_input\" style=\"padding:4px 0 4px 16px;height:40px;width:100%;font-weight: bold;\" onchange=\"updatePrice()\" name=\"option\">\n <option value=\"2750.00\">1h 30m<\/option>\n <option value=\"5300.00\">3h 00m<\/option>\n<\/select><br>\n<label style=\"color:#A0522D;\"><b>Tour price<\/b><\/label>\n<input id=\"rafty_booking_price_input\" style=\"height:40px;width:100%;font-weight: bold;pointer-events: none;\" type=\"text\" value=\"2750.00 kr.\"> \n\n<label style=\"color:#A0522D;\"><b>Date<\/b><\/label><br>\n<input id=\"rafty_booking_pickup_date_input\" style=\"height:40px;width:100%;font-weight: bold;\" type=\"date\"  max=\"\" onchange=\"showDateTimeSchedule()\" min=\"\" name=\"rafty_booking_pickup_date_input\" value=\"\">\n\n\n\n<div id=\"real_pickup_time_holder\">\n<label style=\"color:#A0522D;\"><b>Time<\/b><\/label><br>\n<div class=\"flexcontainer\">\n<div>\n<input id=\"time_0\" type=\"radio\" name=\"schdule_time\" value=\"0\" checked>\n<label id=\"time_label_id_0\">10:00<\/label><\/div>\n<div>\n<input id=\"time_1\" type=\"radio\" name=\"schdule_time\" value=\"1\">\n<label id=\"time_label_id_1\">12:00<\/label><\/div>\n<div>\n<input id=\"time_2\" type=\"radio\" name=\"schdule_time\" value=\"2\">\n<label id=\"time_label_id_2\">14:00<\/label><\/div>\n<div>\n<input id=\"time_3\" type=\"radio\" name=\"schdule_time\" value=\"3\">\n<label id=\"time_label_id_3\">16:00<\/label><\/div>\n<div>\n<input id=\"time_4\" type=\"radio\" name=\"schdule_time\" value=\"4\">\n<label id=\"time_label_id_4\">18:00<\/label><\/div>\n<div>\n<input id=\"time_5\" type=\"radio\" name=\"schdule_time\" value=\"5\">\n<label id=\"time_label_id_5\">20:00<\/label><\/div><\/div>\n<\/div>\n<div id=\"not_used_pickup_time_holder\" style=\"display:none;\">\n<label id=\"rafty_booking_pickup_time_label_disabled\" style=\"color:#A0522D;\"><b>Time<\/b><\/label>\n<div class=\"flexcontainer\">\n<div>\n<input type=\"radio\" name=\"schdule_time_disabled\" value=\"0\" disabled>\n<label>10:00<\/label><\/div>\n<div>\n<input type=\"radio\" name=\"schdule_time_disabled\" value=\"1\"disabled>\n<label>12:00<\/label><\/div>\n<div>\n<input type=\"radio\" name=\"schdule_time_disabled\" value=\"2\" disabled>\n<label>14:00<\/label><\/div>\n<div>\n<input type=\"radio\" name=\"schdule_time_disabled\" value=\"3\"disabled>\n<label>16:00<\/label><\/div>\n<div>\n<input type=\"radio\" name=\"schdule_time_disabled\" value=\"4\"disabled>\n<label>18:00<\/label><\/div>\n<div>\n<input type=\"radio\" name=\"schdule_time_disabled\" value=\"5\"disabled>\n<label>20:00<\/label><\/div><\/div>\n<span style=\"color:red;\">No more available times<\/span>\n<\/div>\n\n\n<label style=\"color:#A0522D;\"><b>Pickup location<\/b><\/label><br>\n<select id=\"rafty_booking_pickup_location_input\" style=\"padding:4px 0 4px 16px;height:40px;width:100%;\" onchange=\"on_pickup_location_changed()\" name=\"option\" disabled>\n <option value=\"0\">Choose<\/option>\n<\/select><br><span id = \"pickup_location_error_msg\" style=\"display:none;color:red;\"><\/span>\n\n<label style=\"color:#A0522D;\"><b>Drop-off location<\/b><\/label><br>\n<select id=\"rafty_booking_dropoff_location_input\" style=\"padding:4px 0 4px 16px;height:40px;width:100%;\" onchange=\"on_dropoff_location_changed()\" name=\"option\" disabled>\n<option value=\"0\">Choose<\/option>\n<\/select><br><span id = \"dropoff_location_error_msg\" style=\"display:none;color:red;\"><\/span>\n\n<h3 style=\"font-weight:bold;\">Your information<\/h3>\n<div class=\"select_container\">\n<div style=\"width: 50%;\">\n<label style=\"color:#A0522D;\"><b>First name<\/b><\/label>\n<input id=\"rafty_booking_first_name_input\" style=\"height:40px;width:100%;\" name=\"first_name\" onchange=\"inputOnchanged(this, 'First name', 'first_name_error_msg')\" type=\"text\" value=\"\" placeholder=\"First name\"><span id = \"first_name_error_msg\" style=\"display:none;color:red;\"><\/span>   \n<\/diV>\n<div style=\"width: 50%;\">\n<label style=\"color:#A0522D;\"><b>Last name<\/b><\/label>\n<input id=\"rafty_booking_last_name_input\" style=\"height:40px;width:100%;\" name=\"last_name\" onchange=\"inputOnchanged(this, 'Last name', 'last_name_error_msg')\" type=\"text\" value=\"\" placeholder=\"Last name\"><span id = \"last_name_error_msg\" style=\"display:none;color:red;\"><\/span>   \n<\/div>\n<\/div>\n<label style=\"color:#A0522D;\"><b>Street address<\/b><\/label>\n<input id=\"rafty_booking_street_address_input\" style=\"height:40px;width:100%;\" name=\"street_address\" onchange=\"inputOnchanged(this, 'Street address', 'street_address_error_msg')\" type=\"text\" value=\"\" placeholder=\"Street address\"><span id = \"street_address_error_msg\" style=\"display:none;color:red;\"><\/span>   \n<div class=\"select_container\">\n<div id=\"rafty_booking_postal_code_panel\" style=\"width: 130px;\">\n<label style=\"color:#A0522D;\"><b>Postal code<\/b><\/label>\n<input id=\"rafty_booking_postal_code_input\" style=\"height:40px;width:100%;\" name=\"postal_code\" onchange=\"inputOnchanged(this, 'Postal code', 'postal_code_error_msg')\" type=\"text\" value=\"\" placeholder=\"Postal code\"><span id = \"postal_code_error_msg\" style=\"display:none;color:red;\"><\/span>   \n<\/div>\n<div style=\"flex-grow:6;\">\n<label style=\"color:#A0522D;\"><b>City<\/b><\/label>\n<input id=\"rafty_booking_city_input\" style=\"height:40px;width:100%;\" name=\"city\" onchange=\"inputOnchanged(this, 'City', 'city_error_msg')\" type=\"text\" value=\"Taastrup\" placeholder=\"City\"><span id = \"city_error_msg\" style=\"display:none;color:red;\"><\/span>   \n<\/div>\n<\/div>\n\n<label style=\"color:#A0522D;\"><b>Region (optional)<\/b><\/label>\n<input id=\"rafty_booking_region_input\" style=\"height:40px;width:100%;\" name=\"region\" onchange=\"inputOnchanged(this, 'Region', 'region_error_msg')\" type=\"text\" value=\"\" placeholder=\"State or Region\"><span id = \"region_error_msg\" style=\"display:none;color:red;\"><\/span>   \n\n\n<label style=\"color:#A0522D;\"><b>Country<\/b><\/label>\n\n<select style=\"height:43px;width:100%;\" class=\"form-select\" id=\"rafty_booking_country_select_input\"  onchange=\"boatBookingClass.onCountrySelected()\" name=\"rafty_booking_country_select_input\">\n    <option value=\"+45,DK\">Denmark<\/option>\n\t<option value=\"+46,SE\">Sweden<\/option>\n\t<option value=\"+47,NO\">Norway<\/option>\n\t<option value=\"+358,FI\">Finland<\/option>\n    <option value=\"+93,AF\">Afghanistan<\/option>\n    <option value=\"+358,AX\">Aland Islands<\/option>\n    <option value=\"+355,AL\">Albania<\/option>\n    <option value=\"+213,DZ\">Algeria<\/option>\n    <option value=\"+1684,AS\">American Samoa<\/option>\n    <option value=\"+376,AD\">Andorra<\/option>\n    <option value=\"+244,AO\">Angola<\/option>\n    <option value=\"+1264,AI\">Anguilla<\/option>\n    <option value=\"+672,AQ\">Antarctica<\/option>\n    <option value=\"+1268,AG\">Antigua and Barbuda<\/option>\n    <option value=\"+54,AR\">Argentina<\/option>\n    <option value=\"+374,AM\">Armenia<\/option>\n    <option value=\"+297,AW\">Aruba<\/option>\n    <option value=\"+61,AU\">Australia<\/option>\n    <option value=\"+43,AT\">Austria<\/option>\n    <option value=\"+994,AZ\">Azerbaijan<\/option>\n    <option value=\"+1242,BS\">Bahamas<\/option>\n    <option value=\"+973,BH\">Bahrain<\/option>\n    <option value=\"+880,BD\">Bangladesh<\/option>\n    <option value=\"+1246,BB\">Barbados<\/option>\n    <option value=\"+375,BY\">Belarus<\/option>\n    <option value=\"+32,BE\">Belgium<\/option>\n    <option value=\"+501,BZ\">Belize<\/option>\n    <option value=\"+229,BJ\">Benin<\/option>\n    <option value=\"+1441,BM\">Bermuda<\/option>\n    <option value=\"+975,BT\">Bhutan<\/option>\n    <option value=\"+591,BO\">Bolivia<\/option>\n    <option value=\"+599,BQ\">Bonaire, Sint Eustatius and Saba<\/option>\n    <option value=\"+387,BA\">Bosnia and Herzegovina<\/option>\n    <option value=\"+267,BW\">Botswana<\/option>\n    <option value=\"+55,BV\">Bouvet Island<\/option>\n    <option value=\"+55,BR\">Brazil<\/option>\n    <option value=\"+246,IO\">British Indian Ocean Territory<\/option>\n    <option value=\"+673,BN\">Brunei Darussalam<\/option>\n    <option value=\"+359,BG\">Bulgaria<\/option>\n    <option value=\"+226,BF\">Burkina Faso<\/option>\n    <option value=\"+257,BI\">Burundi<\/option>\n    <option value=\"+855,KH\">Cambodia<\/option>\n    <option value=\"+237,CM\">Cameroon<\/option>\n    <option value=\"+1,CA\">Canada<\/option>\n    <option value=\"+238,CV\">Cape Verde<\/option>\n    <option value=\"+1345,KY\">Cayman Islands<\/option>\n    <option value=\"+236,CF\">Central African Republic<\/option>\n    <option value=\"+235,TD\">Chad<\/option>\n    <option value=\"+56,CL\">Chile<\/option>\n    <option value=\"+86,CN\">China<\/option>\n    <option value=\"+61,CX\">Christmas Island<\/option>\n    <option value=\"+672,CC\">Cocos (Keeling) Islands<\/option>\n    <option value=\"+57,CO\">Colombia<\/option>\n    <option value=\"+269,KM\">Comoros<\/option>\n    <option value=\"+242,CG\">Congo<\/option>\n    <option value=\"+242,CD\">Congo, Democratic Republic of the Congo<\/option>\n    <option value=\"+682,CK\">Cook Islands<\/option>\n    <option value=\"+506,CR\">Costa Rica<\/option>\n    <option value=\"+225,CI\">Cote D'Ivoire<\/option>\n    <option value=\"+385,HR\">Croatia<\/option>\n    <option value=\"+53,CU\">Cuba<\/option>\n    <option value=\"+599,CW\">Curacao<\/option>\n    <option value=\"+357,CY\">Cyprus<\/option>\n    <option value=\"+420,CZ\">Czech Republic<\/option>\n    <option value=\"+253,DJ\">Djibouti<\/option>\n    <option value=\"+1767,DM\">Dominica<\/option>\n    <option value=\"+1809,DO\">Dominican Republic<\/option>\n    <option value=\"+593,EC\">Ecuador<\/option>\n    <option value=\"+20,EG\">Egypt<\/option>\n    <option value=\"+503,SV\">El Salvador<\/option>\n    <option value=\"+240,GQ\">Equatorial Guinea<\/option>\n    <option value=\"+291,ER\">Eritrea<\/option>\n    <option value=\"+372,EE\">Estonia<\/option>\n    <option value=\"+251,ET\">Ethiopia<\/option>\n    <option value=\"+500,FK\">Falkland Islands (Malvinas)<\/option>\n    <option value=\"+298,FO\">Faroe Islands<\/option>\n    <option value=\"+679,FJ\">Fiji<\/option>\n    <option value=\"+33,FR\">France<\/option>\n    <option value=\"+594,GF\">French Guiana<\/option>\n    <option value=\"+689,PF\">French Polynesia<\/option>\n    <option value=\"+262,TF\">French Southern Territories<\/option>\n    <option value=\"+241,GA\">Gabon<\/option>\n    <option value=\"+220,GM\">Gambia<\/option>\n    <option value=\"+995,GE\">Georgia<\/option>\n    <option value=\"+49,DE\">Germany<\/option>\n    <option value=\"+233,GH\">Ghana<\/option>\n    <option value=\"+350,GI\">Gibraltar<\/option>\n    <option value=\"+30,GR\">Greece<\/option>\n    <option value=\"+299,GL\">Greenland<\/option>\n    <option value=\"+1473,GD\">Grenada<\/option>\n    <option value=\"+590,GP\">Guadeloupe<\/option>\n    <option value=\"+1671,GU\">Guam<\/option>\n    <option value=\"+502,GT\">Guatemala<\/option>\n    <option value=\"+44,GG\">Guernsey<\/option>\n    <option value=\"+224,GN\">Guinea<\/option>\n    <option value=\"+245,GW\">Guinea-Bissau<\/option>\n    <option value=\"+592,GY\">Guyana<\/option>\n    <option value=\"+509,HT\">Haiti<\/option>\n    <option value=\"+39,VA\">Holy See (Vatican City State)<\/option>\n    <option value=\"+504,HN\">Honduras<\/option>\n    <option value=\"+852,HK\">Hong Kong<\/option>\n    <option value=\"+36,HU\">Hungary<\/option>\n    <option value=\"+354,IS\">Iceland<\/option>\n    <option value=\"+91,IN\">India<\/option>\n    <option value=\"+62,ID\">Indonesia<\/option>\n    <option value=\"+98,IR\">Iran, Islamic Republic of<\/option>\n    <option value=\"+964,IQ\">Iraq<\/option>\n    <option value=\"+353,IE\">Ireland<\/option>\n    <option value=\"+44,IM\">Isle of Man<\/option>\n    <option value=\"+972,IL\">Israel<\/option>\n    <option value=\"+39,IT\">Italy<\/option>\n    <option value=\"+1876,JM\">Jamaica<\/option>\n    <option value=\"+81,JP\">Japan<\/option>\n    <option value=\"+44,JE\">Jersey<\/option>\n    <option value=\"+962,JO\">Jordan<\/option>\n    <option value=\"+7,KZ\">Kazakhstan<\/option>\n    <option value=\"+254,KE\">Kenya<\/option>\n    <option value=\"+686,KI\">Kiribati<\/option>\n    <option value=\"+850,KP\">Korea, Democratic People's Republic of<\/option>\n    <option value=\"+82,KR\">Korea, Republic of<\/option>\n    <option value=\"+383,XK\">Kosovo<\/option>\n    <option value=\"+965,KW\">Kuwait<\/option>\n    <option value=\"+996,KG\">Kyrgyzstan<\/option>\n    <option value=\"+856,LA\">Lao People's Democratic Republic<\/option>\n    <option value=\"+371,LV\">Latvia<\/option>\n    <option value=\"+961,LB\">Lebanon<\/option>\n    <option value=\"+266,LS\">Lesotho<\/option>\n    <option value=\"+231,LR\">Liberia<\/option>\n    <option value=\"+218,LY\">Libya<\/option>\n    <option value=\"+423,LI\">Liechtenstein<\/option>\n    <option value=\"+370,LT\">Lithuania<\/option>\n    <option value=\"+352,LU\">Luxembourg<\/option>\n    <option value=\"+853,MO\">Macao<\/option>\n    <option value=\"+389,MK\">Macedonia<\/option>\n    <option value=\"+261,MG\">Madagascar<\/option>\n    <option value=\"+265,MW\">Malawi<\/option>\n    <option value=\"+60,MY\">Malaysia<\/option>\n    <option value=\"+960,MV\">Maldives<\/option>\n    <option value=\"+223,ML\">Mali<\/option>\n    <option value=\"+356,MT\">Malta<\/option>\n    <option value=\"+692,MH\">Marshall Islands<\/option>\n    <option value=\"+596,MQ\">Martinique<\/option>\n    <option value=\"+222,MR\">Mauritania<\/option>\n    <option value=\"+230,MU\">Mauritius<\/option>\n    <option value=\"+262,YT\">Mayotte<\/option>\n    <option value=\"+52,MX\">Mexico<\/option>\n    <option value=\"+691,FM\">Micronesia, Federated States of<\/option>\n    <option value=\"+373,MD\">Moldova, Republic of<\/option>\n    <option value=\"+377,MC\">Monaco<\/option>\n    <option value=\"+976,MN\">Mongolia<\/option>\n    <option value=\"+382,ME\">Montenegro<\/option>\n    <option value=\"+1664,MS\">Montserrat<\/option>\n    <option value=\"+212,MA\">Morocco<\/option>\n    <option value=\"+258,MZ\">Mozambique<\/option>\n    <option value=\"+95,MM\">Myanmar<\/option>\n    <option value=\"+264,NA\">Namibia<\/option>\n    <option value=\"+674,NR\">Nauru<\/option>\n    <option value=\"+977,NP\">Nepal<\/option>\n    <option value=\"+31,NL\">Netherlands<\/option>\n    <option value=\"+599,AN\">Netherlands Antilles<\/option>\n    <option value=\"+687,NC\">New Caledonia<\/option>\n    <option value=\"+64,NZ\">New Zealand<\/option>\n    <option value=\"+505,NI\">Nicaragua<\/option>\n    <option value=\"+227,NE\">Niger<\/option>\n    <option value=\"+234,NG\">Nigeria<\/option>\n    <option value=\"+683,NU\">Niue<\/option>\n    <option value=\"+672,NF\">Norfolk Island<\/option>\n    <option value=\"+1670,MP\">Northern Mariana Islands<\/option>\n    <option value=\"+968,OM\">Oman<\/option>\n    <option value=\"+92,PK\">Pakistan<\/option>\n    <option value=\"+680,PW\">Palau<\/option>\n    <option value=\"+970,PS\">Palestinian Territory, Occupied<\/option>\n    <option value=\"+507,PA\">Panama<\/option>\n    <option value=\"+675,PG\">Papua New Guinea<\/option>\n    <option value=\"+595,PY\">Paraguay<\/option>\n    <option value=\"+51,PE\">Peru<\/option>\n    <option value=\"+63,PH\">Philippines<\/option>\n    <option value=\"+64,PN\">Pitcairn<\/option>\n    <option value=\"+48,PL\">Poland<\/option>\n    <option value=\"+351,PT\">Portugal<\/option>\n    <option value=\"+1787,PR\">Puerto Rico<\/option>\n    <option value=\"+974,QA\">Qatar<\/option>\n    <option value=\"+262,RE\">Reunion<\/option>\n    <option value=\"+40,RO\">Romania<\/option>\n    <option value=\"+7,RU\">Russian Federation<\/option>\n    <option value=\"+250,RW\">Rwanda<\/option>\n    <option value=\"+590,BL\">Saint Barthelemy<\/option>\n    <option value=\"+290,SH\">Saint Helena<\/option>\n    <option value=\"+1869,KN\">Saint Kitts and Nevis<\/option>\n    <option value=\"+1758,LC\">Saint Lucia<\/option>\n    <option value=\"+590,SM\">Saint Martin<\/option>\n    <option value=\"+508,PM\">Saint Pierre and Miquelon<\/option>\n    <option value=\"+1784,VC\">Saint Vincent and the Grenadines<\/option>\n    <option value=\"+684,WS\">Samoa<\/option>\n    <option value=\"+378,SM\">San Marino<\/option>\n    <option value=\"+239,ST\">Sao Tome and Principe<\/option>\n    <option value=\"+966,SA\">Saudi Arabia<\/option>\n    <option value=\"+221,SN\">Senegal<\/option>\n    <option value=\"+381,RS\">Serbia<\/option>\n    <option value=\"+382,ME\">Montenegro<\/option>\n    <option value=\"+248,SC\">Seychelles<\/option>\n    <option value=\"+232,SL\">Sierra Leone<\/option>\n    <option value=\"+65,SG\">Singapore<\/option>\n    <option value=\"+599,SX\">Sint Maarten<\/option>\n    <option value=\"+421,SK\">Slovakia<\/option>\n    <option value=\"+386,SI\">Slovenia<\/option>\n    <option value=\"+677,SB\">Solomon Islands<\/option>\n    <option value=\"+252,SO\">Somalia<\/option>\n    <option value=\"+27,ZA\">South Africa<\/option>\n    <option value=\"+500,GS\">South Georgia and the South Sandwich Islands<\/option>\n    <option value=\"+211,SS\">South Sudan<\/option>\n    <option value=\"+34,ES\">Spain<\/option>\n    <option value=\"+94,LK\">Sri Lanka<\/option>\n    <option value=\"+249,SD\">Sudan<\/option>\n    <option value=\"+597,SR\">Suriname<\/option>\n    <option value=\"+47,SJ\">Svalbard and Jan Mayen<\/option>\n    <option value=\"+268,SZ\">Swaziland<\/option>\n    <option value=\"+41,CH\">Switzerland<\/option>\n    <option value=\"+963,SY\">Syria<\/option>\n    <option value=\"+886,TW\">Taiwan<\/option>\n    <option value=\"+992,TJ\">Tajikistan<\/option>\n    <option value=\"+255,TZ\">Tanzania<\/option>\n    <option value=\"+66,TH\">Thailand<\/option>\n    <option value=\"+670,TL\">Timor-Leste<\/option>\n    <option value=\"+228,TG\">Togo<\/option>\n    <option value=\"+690,TK\">Tokelau<\/option>\n    <option value=\"+676,TO\">Tonga<\/option>\n    <option value=\"+1868,TT\">Trinidad and Tobago<\/option>\n    <option value=\"+216,TN\">Tunisia<\/option>\n    <option value=\"+90,TR\">Turkey<\/option>\n    <option value=\"+7370,TM\">Turkmenistan<\/option>\n    <option value=\"+1649,TC\">Turks and Caicos Islands<\/option>\n    <option value=\"+688,TV\">Tuvalu<\/option>\n    <option value=\"+256,UG\">Uganda<\/option>\n    <option value=\"+380,UA\">Ukraine<\/option>\n    <option value=\"+971,AE\">United Arab Emirates<\/option>\n    <option value=\"+44,GB\">United Kingdom<\/option>\n    <option value=\"+1,US\">United States +1<\/option>\n    <option value=\"+1,UM\">United States Minor Outlying Islands<\/option>\n    <option value=\"+598,UY\">Uruguay<\/option>\n    <option value=\"+998,UZ\">Uzbekistan<\/option>\n    <option value=\"+678,VU\">Vanuatu<\/option>\n    <option value=\"+58,VE\">Venezuela<\/option>\n    <option value=\"+84,VN\">Viet Nam<\/option>\n    <option value=\"+1284,VG\">Virgin Islands, British<\/option>\n    <option value=\"+1340,VI\">Virgin Islands, U.S.<\/option>\n    <option value=\"+681,WF\">Wallis and Futuna<\/option>\n    <option value=\"+212,EH\">Western Sahara<\/option>\n    <option value=\"+967,YE\">Yemen<\/option>\n    <option value=\"+260,ZM\">Zambia<\/option>\n    <option value=\"+263,ZW\">Zimbabwe<\/option>\n<\/select>\n\n\n\n<label style=\"color:#A0522D;\"><b>Phone number<\/b><\/label>\n<div class=\"select_container\">\n<div style=\"width: 60px;\">\n<input id=\"rafty_booking_phone_number_country_code_input\" style=\"height:40px;width:100%;pointer-events: none;\" type=\"text\" value=\"+45\"> \n<!--\n<select style=\"height:43px;width:100%;\" class=\"form-select\" id=\"rafty_booking_country_select_input\" name=\"rafty_booking_country_select_input\">\n    <option value=\"45\">Denmark +45<\/option>\n\t<option value=\"46\">Sweden +46<\/option>\n\t<option value=\"47\">Norway +47<\/option>\n\t<option value=\"358\">Finland +358<\/option>\n    <option value=\"93\">Afghanistan +93<\/option>\n    <option value=\"358\">Aland Islands +358<\/option>\n    <option value=\"355\">Albania +355<\/option>\n    <option value=\"213\">Algeria +213<\/option>\n    <option value=\"1684\">American Samoa +1684<\/option>\n    <option value=\"376\">Andorra +376<\/option>\n    <option value=\"244\">Angola +244<\/option>\n    <option value=\"1264\">Anguilla +1264<\/option>\n    <option value=\"672\">Antarctica +672<\/option>\n    <option value=\"1268\">Antigua and Barbuda +1268<\/option>\n    <option value=\"54\">Argentina +54<\/option>\n    <option value=\"374\">Armenia +374<\/option>\n    <option value=\"297\">Aruba +297<\/option>\n    <option value=\"61\">Australia +61<\/option>\n    <option value=\"43\">Austria +43<\/option>\n    <option value=\"994\">Azerbaijan +994<\/option>\n    <option value=\"1242\">Bahamas +1242<\/option>\n    <option value=\"973\">Bahrain +973<\/option>\n    <option value=\"880\">Bangladesh +880<\/option>\n    <option value=\"1246\">Barbados +1246<\/option>\n    <option value=\"375\">Belarus +375<\/option>\n    <option value=\"32\">Belgium +32<\/option>\n    <option value=\"501\">Belize +501<\/option>\n    <option value=\"229\">Benin +229<\/option>\n    <option value=\"1441\">Bermuda +1441<\/option>\n    <option value=\"975\">Bhutan +975<\/option>\n    <option value=\"591\">Bolivia +591<\/option>\n    <option value=\"599\">Bonaire, Sint Eustatius and Saba +599<\/option>\n    <option value=\"387\">Bosnia and Herzegovina +387<\/option>\n    <option value=\"267\">Botswana +267<\/option>\n    <option value=\"55\">Bouvet Island +55<\/option>\n    <option value=\"55\">Brazil +55<\/option>\n    <option value=\"246\">British Indian Ocean Territory +246<\/option>\n    <option value=\"673\">Brunei Darussalam +673<\/option>\n    <option value=\"359\">Bulgaria +359<\/option>\n    <option value=\"226\">Burkina Faso +226<\/option>\n    <option value=\"257\">Burundi +257<\/option>\n    <option value=\"855\">Cambodia +855<\/option>\n    <option value=\"237\">Cameroon +237<\/option>\n    <option value=\"1\">Canada +1<\/option>\n    <option value=\"238\">Cape Verde +238<\/option>\n    <option value=\"1345\">Cayman Islands +1345<\/option>\n    <option value=\"236\">Central African Republic +236<\/option>\n    <option value=\"235\">Chad +235<\/option>\n    <option value=\"56\">Chile +56<\/option>\n    <option value=\"86\">China +86<\/option>\n    <option value=\"61\">Christmas Island +61<\/option>\n    <option value=\"672\">Cocos (Keeling) Islands +672<\/option>\n    <option value=\"57\">Colombia +57<\/option>\n    <option value=\"269\">Comoros +269<\/option>\n    <option value=\"242\">Congo +242<\/option>\n    <option value=\"242\">Congo, Democratic Republic of the Congo +242<\/option>\n    <option value=\"682\">Cook Islands +682<\/option>\n    <option value=\"506\">Costa Rica +506<\/option>\n    <option value=\"225\">Cote D'Ivoire +225<\/option>\n    <option value=\"385\">Croatia +385<\/option>\n    <option value=\"53\">Cuba +53<\/option>\n    <option value=\"599\">Curacao +599<\/option>\n    <option value=\"357\">Cyprus +357<\/option>\n    <option value=\"420\">Czech Republic +420<\/option>\n    <option value=\"253\">Djibouti +253<\/option>\n    <option value=\"1767\">Dominica +1767<\/option>\n    <option value=\"1809\">Dominican Republic +1809<\/option>\n    <option value=\"593\">Ecuador +593<\/option>\n    <option value=\"20\">Egypt +20<\/option>\n    <option value=\"503\">El Salvador +503<\/option>\n    <option value=\"240\">Equatorial Guinea +240<\/option>\n    <option value=\"291\">Eritrea +291<\/option>\n    <option value=\"372\">Estonia +372<\/option>\n    <option value=\"251\">Ethiopia +251<\/option>\n    <option value=\"500\">Falkland Islands (Malvinas) +500<\/option>\n    <option value=\"298\">Faroe Islands +298<\/option>\n    <option value=\"679\">Fiji +679<\/option>\n    <option value=\"33\">France +33<\/option>\n    <option value=\"594\">French Guiana +594<\/option>\n    <option value=\"689\">French Polynesia +689<\/option>\n    <option value=\"262\">French Southern Territories +262<\/option>\n    <option value=\"241\">Gabon +241<\/option>\n    <option value=\"220\">Gambia +220<\/option>\n    <option value=\"995\">Georgia +995<\/option>\n    <option value=\"49\">Germany +49<\/option>\n    <option value=\"233\">Ghana +233<\/option>\n    <option value=\"350\">Gibraltar +350<\/option>\n    <option value=\"30\">Greece +30<\/option>\n    <option value=\"299\">Greenland +299<\/option>\n    <option value=\"1473\">Grenada +1473<\/option>\n    <option value=\"590\">Guadeloupe +590<\/option>\n    <option value=\"1671\">Guam +1671<\/option>\n    <option value=\"502\">Guatemala +502<\/option>\n    <option value=\"44\">Guernsey +44<\/option>\n    <option value=\"224\">Guinea +224<\/option>\n    <option value=\"245\">Guinea-Bissau +245<\/option>\n    <option value=\"592\">Guyana +592<\/option>\n    <option value=\"509\">Haiti +509<\/option>\n    <option value=\"39\">Holy See (Vatican City State) +39<\/option>\n    <option value=\"504\">Honduras +504<\/option>\n    <option value=\"852\">Hong Kong +852<\/option>\n    <option value=\"36\">Hungary +36<\/option>\n    <option value=\"354\">Iceland +354<\/option>\n    <option value=\"91\">India +91<\/option>\n    <option value=\"62\">Indonesia +62<\/option>\n    <option value=\"98\">Iran, Islamic Republic of +98<\/option>\n    <option value=\"964\">Iraq +964<\/option>\n    <option value=\"353\">Ireland +353<\/option>\n    <option value=\"44\">Isle of Man +44<\/option>\n    <option value=\"972\">Israel +972<\/option>\n    <option value=\"39\">Italy +39<\/option>\n    <option value=\"1876\">Jamaica +1876<\/option>\n    <option value=\"81\">Japan +81<\/option>\n    <option value=\"44\">Jersey +44<\/option>\n    <option value=\"962\">Jordan +962<\/option>\n    <option value=\"7\">Kazakhstan +7<\/option>\n    <option value=\"254\">Kenya +254<\/option>\n    <option value=\"686\">Kiribati +686<\/option>\n    <option value=\"850\">Korea, Democratic People's Republic of +850<\/option>\n    <option value=\"82\">Korea, Republic of +82<\/option>\n    <option value=\"381\">Kosovo +381<\/option>\n    <option value=\"965\">Kuwait +965<\/option>\n    <option value=\"996\">Kyrgyzstan +996<\/option>\n    <option value=\"856\">Lao People's Democratic Republic +856<\/option>\n    <option value=\"371\">Latvia +371<\/option>\n    <option value=\"961\">Lebanon +961<\/option>\n    <option value=\"266\">Lesotho +266<\/option>\n    <option value=\"231\">Liberia +231<\/option>\n    <option value=\"218\">Libyan Arab Jamahiriya +218<\/option>\n    <option value=\"423\">Liechtenstein +423<\/option>\n    <option value=\"370\">Lithuania +370<\/option>\n    <option value=\"352\">Luxembourg +352<\/option>\n    <option value=\"853\">Macao +853<\/option>\n    <option value=\"389\">Macedonia, the Former Yugoslav Republic of +389<\/option>\n    <option value=\"261\">Madagascar +261<\/option>\n    <option value=\"265\">Malawi +265<\/option>\n    <option value=\"60\">Malaysia +60<\/option>\n    <option value=\"960\">Maldives +960<\/option>\n    <option value=\"223\">Mali +223<\/option>\n    <option value=\"356\">Malta +356<\/option>\n    <option value=\"692\">Marshall Islands +692<\/option>\n    <option value=\"596\">Martinique +596<\/option>\n    <option value=\"222\">Mauritania +222<\/option>\n    <option value=\"230\">Mauritius +230<\/option>\n    <option value=\"262\">Mayotte +262<\/option>\n    <option value=\"52\">Mexico +52<\/option>\n    <option value=\"691\">Micronesia, Federated States of +691<\/option>\n    <option value=\"373\">Moldova, Republic of +373<\/option>\n    <option value=\"377\">Monaco +377<\/option>\n    <option value=\"976\">Mongolia +976<\/option>\n    <option value=\"382\">Montenegro +382<\/option>\n    <option value=\"1664\">Montserrat +1664<\/option>\n    <option value=\"212\">Morocco +212<\/option>\n    <option value=\"258\">Mozambique +258<\/option>\n    <option value=\"95\">Myanmar +95<\/option>\n    <option value=\"264\">Namibia +264<\/option>\n    <option value=\"674\">Nauru +674<\/option>\n    <option value=\"977\">Nepal +977<\/option>\n    <option value=\"31\">Netherlands +31<\/option>\n    <option value=\"599\">Netherlands Antilles +599<\/option>\n    <option value=\"687\">New Caledonia +687<\/option>\n    <option value=\"64\">New Zealand +64<\/option>\n    <option value=\"505\">Nicaragua +505<\/option>\n    <option value=\"227\">Niger +227<\/option>\n    <option value=\"234\">Nigeria +234<\/option>\n    <option value=\"683\">Niue +683<\/option>\n    <option value=\"672\">Norfolk Island +672<\/option>\n    <option value=\"1670\">Northern Mariana Islands +1670<\/option>\n    <option value=\"968\">Oman +968<\/option>\n    <option value=\"92\">Pakistan +92<\/option>\n    <option value=\"680\">Palau +680<\/option>\n    <option value=\"970\">Palestinian Territory, Occupied +970<\/option>\n    <option value=\"507\">Panama +507<\/option>\n    <option value=\"675\">Papua New Guinea +675<\/option>\n    <option value=\"595\">Paraguay +595<\/option>\n    <option value=\"51\">Peru +51<\/option>\n    <option value=\"63\">Philippines +63<\/option>\n    <option value=\"64\">Pitcairn +64<\/option>\n    <option value=\"48\">Poland +48<\/option>\n    <option value=\"351\">Portugal +351<\/option>\n    <option value=\"1787\">Puerto Rico +1787<\/option>\n    <option value=\"974\">Qatar +974<\/option>\n    <option value=\"262\">Reunion +262<\/option>\n    <option value=\"40\">Romania +40<\/option>\n    <option value=\"7\">Russian Federation +7<\/option>\n    <option value=\"250\">Rwanda +250<\/option>\n    <option value=\"590\">Saint Barthelemy +590<\/option>\n    <option value=\"290\">Saint Helena +290<\/option>\n    <option value=\"1869\">Saint Kitts and Nevis +1869<\/option>\n    <option value=\"1758\">Saint Lucia +1758<\/option>\n    <option value=\"590\">Saint Martin +590<\/option>\n    <option value=\"508\">Saint Pierre and Miquelon +508<\/option>\n    <option value=\"1784\">Saint Vincent and the Grenadines +1784<\/option>\n    <option value=\"684\">Samoa +684<\/option>\n    <option value=\"378\">San Marino +378<\/option>\n    <option value=\"239\">Sao Tome and Principe +239<\/option>\n    <option value=\"966\">Saudi Arabia +966<\/option>\n    <option value=\"221\">Senegal +221<\/option>\n    <option value=\"381\">Serbia +381<\/option>\n    <option value=\"381\">Serbia and Montenegro +381<\/option>\n    <option value=\"248\">Seychelles +248<\/option>\n    <option value=\"232\">Sierra Leone +232<\/option>\n    <option value=\"65\">Singapore +65<\/option>\n    <option value=\"721\">Sint Maarten +721<\/option>\n    <option value=\"421\">Slovakia +421<\/option>\n    <option value=\"386\">Slovenia +386<\/option>\n    <option value=\"677\">Solomon Islands +677<\/option>\n    <option value=\"252\">Somalia +252<\/option>\n    <option value=\"27\">South Africa +27<\/option>\n    <option value=\"500\">South Georgia and the South Sandwich Islands +500<\/option>\n    <option value=\"211\">South Sudan +211<\/option>\n    <option value=\"34\">Spain +34<\/option>\n    <option value=\"94\">Sri Lanka +94<\/option>\n    <option value=\"249\">Sudan +249<\/option>\n    <option value=\"597\">Suriname +597<\/option>\n    <option value=\"47\">Svalbard and Jan Mayen +47<\/option>\n    <option value=\"268\">Swaziland +268<\/option>\n    <option value=\"41\">Switzerland +41<\/option>\n    <option value=\"963\">Syrian Arab Republic +963<\/option>\n    <option value=\"886\">Taiwan, Province of China +886<\/option>\n    <option value=\"992\">Tajikistan +992<\/option>\n    <option value=\"255\">Tanzania, United Republic of +255<\/option>\n    <option value=\"66\">Thailand +66<\/option>\n    <option value=\"670\">Timor-Leste +670<\/option>\n    <option value=\"228\">Togo +228<\/option>\n    <option value=\"690\">Tokelau +690<\/option>\n    <option value=\"676\">Tonga +676<\/option>\n    <option value=\"1868\">Trinidad and Tobago +1868<\/option>\n    <option value=\"216\">Tunisia +216<\/option>\n    <option value=\"90\">Turkey +90<\/option>\n    <option value=\"7370\">Turkmenistan +7370<\/option>\n    <option value=\"1649\">Turks and Caicos Islands +1649<\/option>\n    <option value=\"688\">Tuvalu +688<\/option>\n    <option value=\"256\">Uganda +256<\/option>\n    <option value=\"380\">Ukraine +380<\/option>\n    <option value=\"971\">United Arab Emirates +971<\/option>\n    <option value=\"44\">United Kingdom +44<\/option>\n    <option value=\"1\">United States +1<\/option>\n    <option value=\"1\">United States Minor Outlying Islands +1<\/option>\n    <option value=\"598\">Uruguay +598<\/option>\n    <option value=\"998\">Uzbekistan +998<\/option>\n    <option value=\"678\">Vanuatu +678<\/option>\n    <option value=\"58\">Venezuela +58<\/option>\n    <option value=\"84\">Viet Nam +84<\/option>\n    <option value=\"1284\">Virgin Islands, British +1284<\/option>\n    <option value=\"1340\">Virgin Islands, U.s. +1340<\/option>\n    <option value=\"681\">Wallis and Futuna +681<\/option>\n    <option value=\"212\">Western Sahara +212<\/option>\n    <option value=\"967\">Yemen +967<\/option>\n    <option value=\"260\">Zambia +260<\/option>\n    <option value=\"263\">Zimbabwe +263<\/option>\n<\/select>-->\n<\/div>\n<div style=\"flex-grow:6;\">\n<input id=\"rafty_booking_phone_number_input\" style=\"height:40px;width:100%;\" name=\"rafty_booking_phone_number_input\" onchange=\"inputOnchanged(this, 'Phone number', 'phone_number_error_msg')\" type=\"text\" value=\"6177884\" placeholder=\"Phone number\"><span id = \"phone_number_error_msg\" style=\"display:none;color:red;\"><\/span>\n<\/div>\n<\/div>\n<label style=\"color:#A0522D;\"><b>Email<\/b><\/label>\n<input id=\"rafty_booking_email_input\" style=\"height:40px;width:100%;\" onchange=\"inputOnchanged(this, 'Email', 'email_error_msg')\" type=\"text\" value=\"lmdtnn@gmail.com\" placeholder=\"Email\"><span id = \"email_error_msg\" style=\"display:none;color:red;\"><\/span>\n\n\n\n<label style=\"color:#A0522D;\"><b>Message (optional)<\/b><\/label>\n<textarea id=\"rafty_booking_message_input\" style=\"resize:none;width:100%\"><\/textarea>\n<div><input  id=\"rafty_booking_accept_terms_of_trade_input\" onclick=\" accept_our_terms_of_trade_Onchanged()\" type=\"checkbox\">\n<label><strong>Accept our<\/strong><\/label><strong><a href=\"\/terms-of-trade\" target=\"_blank\" rel=\"noopener\"> Terms of trade<\/a><\/strong><span id = \"accept_our_terms_of_trade_error_msg\" style=\"display:none;color:red;\">You must accept our terms of trade<\/span><\/div>\n<p><button id=\"submit_button\" class=\"g-recaptcha\" data-sitekey=\"6LfZNh8sAAAAAJqcjhJVz3GavnDhZFpprhe6w5l2\" data-callback=\"onBookSubmit\" data-action=\"submit\">Book now<\/button><\/p>\n<\/form>\n\n\n<!-- wp:themify-builder\/canvas \/-->\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-542","page","type-page","status-publish","hentry","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"builder_content":"","_links":{"self":[{"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/pages\/542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/comments?post=542"}],"version-history":[{"count":18,"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/pages\/542\/revisions"}],"predecessor-version":[{"id":1631,"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/pages\/542\/revisions\/1631"}],"wp:attachment":[{"href":"https:\/\/rafty.dk\/da\/wp-json\/wp\/v2\/media?parent=542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}