{"id":46839,"date":"2026-03-17T09:37:29","date_gmt":"2026-03-17T08:37:29","guid":{"rendered":"https:\/\/eh.si\/?page_id=46839"},"modified":"2026-05-08T09:20:14","modified_gmt":"2026-05-08T08:20:14","slug":"prenotazione-cabana","status":"publish","type":"page","link":"https:\/\/eh.si\/it\/prenotazione-cabana\/","title":{"rendered":"Prenotazione cabana"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"46839\" class=\"elementor elementor-46839 elementor-43087\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f16d6fe elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"f16d6fe\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\r\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\r\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\"><div class=\"elementor-row\">\r\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b0d7466\" data-id=\"b0d7466\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-b6c76ba elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b6c76ba\" data-element_type=\"section\" data-e-type=\"section\">\r\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-thegem\"><div class=\"elementor-row\">\r\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-d9b89c1\" data-id=\"d9b89c1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d1720d5 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"d1720d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInDown&quot;}\" 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\">Prenotazione Cabana<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e002a5 elementor-widget-divider--view-line flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-invisible elementor-widget elementor-widget-divider\" data-id=\"7e002a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\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<\/div>\n\t\t\t\t\t<\/div><\/div>\r\n\t\t<\/section>\r\n\t\t\t\t<div class=\"elementor-element elementor-element-e5a35a3 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-spacer\" data-id=\"e5a35a3\" 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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div><\/div>\r\n\t\t<\/section>\r\n\t\t<div class=\"elementor-element elementor-element-dbee019 thegem-e-con-layout-thegem e-flex e-con-boxed e-con e-parent\" data-id=\"dbee019\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;thegem_container_layout&quot;:&quot;thegem&quot;}\">\r\n\t\t\t\t\t<div class=\"e-con-inner\">\r\n\t\t\t\t<div class=\"elementor-element elementor-element-b3ab5ca flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-text-editor\" data-id=\"b3ab5ca\" 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\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\r\n\t\t\t\t\t\t<p style=\"text-align: center;\"><strong>Scegli la tua cabana e goditi una perfetta giornata al mare<\/strong><\/p><p style=\"text-align: center;\">Concediti un momento di relax in una cabana privata sul mare.<br \/>Goditi tranquillit\u00e0, comfort e l\u2019atmosfera estiva per tutta la giornata.<\/p><p style=\"text-align: center;\"><strong>Informazioni sul noleggio<\/strong><br \/>30 \u20ac \/ giorno<br \/>fino a 2 persone<br \/>09:00 \u2013 20:00<\/p><p style=\"text-align: center;\"><strong>Il noleggio include<\/strong><br \/>2 teli mare<br \/>braccialetto per l\u2019utilizzo della doccia<br \/>utilizzo della cabana per l\u2019intera giornata<\/p><p style=\"text-align: center;\"><strong>Prenotazione<\/strong><br \/>Puoi prenotare la tua cabana qui sotto tramite l\u2019applicazione online oppure telefonicamente:<\/p><p style=\"text-align: center;\">+386 5 617 90 00<\/p><p style=\"text-align: center;\">Il pagamento viene effettuato presso la reception all\u2019arrivo.<br \/>La prenotazione \u00e8 valida fino alle ore 12:00 del giorno di arrivo.<\/p><p style=\"text-align: center;\"><strong>Informazioni importanti<\/strong><br \/>Il parcheggio \u00e8 disponibile presso il vicino parcheggio pubblico.<br \/>Il parcheggio dell\u2019hotel \u00e8 riservato esclusivamente agli ospiti che pernottano.<br \/>In caso di maltempo, l\u2019hotel si riserva il diritto di cancellare la prenotazione.<br \/>Gli ospiti sono responsabili dell\u2019utilizzo corretto della cabana e delle attrezzature.<br \/>L\u2019hotel non \u00e8 responsabile per smarrimento o furto di effetti personali.<br \/>L\u2019utilizzo della cabana e delle strutture balneari \u00e8 a proprio rischio.<\/p><p style=\"text-align: center;\"><strong>Extra disponibili<\/strong><br \/>Spumante della casa 0,75 l \u2014 32 \u20ac<br \/>Piatto di frutta fresca tagliata \u2014 15 \u20ac<\/p>\t\t\t\t\t\t\t<\/div>\r\n\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-7e6f3dd thegem-e-con-layout-thegem e-flex e-con-boxed e-con e-parent\" data-id=\"7e6f3dd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;thegem_container_layout&quot;:&quot;thegem&quot;}\">\r\n\t\t\t\t\t<div class=\"e-con-inner\">\r\n\t\t\t\t<div class=\"elementor-element elementor-element-24fcf39 flex-horizontal-align-default flex-horizontal-align-tablet-default flex-horizontal-align-mobile-default flex-vertical-align-default flex-vertical-align-tablet-default flex-vertical-align-mobile-default elementor-widget elementor-widget-html\" data-id=\"24fcf39\" 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<div id=\"beach-booking-widget\">\n\n<style>\n\n#beach-booking-widget,\n#beach-booking-widget *{\nfont-family:Roboto, Arial, sans-serif;\n}\n\n#beach-booking-widget{\nmax-width:1400px;\nmargin:0 auto;\n}\n\n#beach-booking-widget .beach-booking{\nposition:relative;\nwidth:100%;\noverflow:hidden;\nborder-radius:18px;\nbox-shadow:0 4px 14px rgba(0,0,0,.28);\n}\n\n#beach-booking-widget .beach-booking img{\ndisplay:block;\nwidth:100%;\nheight:auto;\nborder-radius:18px;\n}\n\n#beach-booking-widget .cabana{\nposition:absolute;\nwidth:2.8%;\nmin-width:32px;\naspect-ratio:1\/1;\ntransform:translate(-50%,-50%);\nborder:2px solid #fff;\nborder-radius:999px;\ncolor:#fff;\nfont-weight:700;\nfont-size:14px;\ndisplay:flex;\nalign-items:center;\njustify-content:center;\ncursor:pointer;\nz-index:3;\nbox-shadow:0 4px 14px rgba(0,0,0,.28);\nbackground:#9b0d0d;\ntransition:.2s;\n}\n\n#beach-booking-widget .cabana:hover{\ntransform:translate(-50%,-50%) scale(1.08);\n}\n\n#beach-booking-widget .cabana.is-free{\nbackground:#14833b;\n}\n\n#beach-booking-widget .cabana.is-full{\nbackground:#9b0d0d;\n}\n\n#beach-booking-widget .cabana.is-loading{\nbackground:#c98a00;\n}\n\n#beach-booking-widget .cabana.is-error{\nbackground:#6b7280;\ncursor:not-allowed;\n}\n\n#beach-booking-widget .legend{\ndisplay:flex;\nflex-wrap:wrap;\ngap:18px;\nalign-items:center;\nmargin-top:14px;\nfont-size:14px;\ncolor:#1f2937;\n}\n\n#beach-booking-widget .legend-item{\ndisplay:flex;\nalign-items:center;\ngap:8px;\n}\n\n#beach-booking-widget .legend-dot{\nwidth:14px;\nheight:14px;\nborder-radius:50%;\ndisplay:inline-block;\n}\n\n.legend-free{background:#14833b;}\n.legend-full{background:#9b0d0d;}\n\n#beach-booking-widget .status-message{\nmargin-top:10px;\nfont-size:13px;\ncolor:#4b5563;\n}\n\n\/* DATE PICKER *\/\n#beach-booking-widget .cabana-date-picker{\nmargin-top:16px;\nmargin-bottom:12px;\nmax-width:280px;\ntext-align:left;\n}\n\n#beach-booking-widget .cabana-date-picker label{\ndisplay:block;\nmargin-bottom:8px;\nfont-size:14px;\nfont-weight:500;\ncolor:#1f2937;\n}\n\n#beach-booking-widget .cabana-date-picker input[type=\"date\"]{\nwidth:100%;\nmax-width:280px;\nheight:48px;\npadding:0 14px;\nfont-size:16px;\nfont-weight:400;\nborder:1px solid #d1d5db;\nborder-radius:12px;\nbackground:#fff;\ncolor:#111827;\nbox-sizing:border-box;\noutline:none;\n}\n\n\/* CUSTOM MESSAGE *\/\n#beach-booking-widget .cabana-overlay{\ndisplay:none;\nposition:fixed;\ninset:0;\nbackground:rgba(0,0,0,.45);\nz-index:99998;\nopacity:0;\npointer-events:none;\ntransition:opacity .2s ease;\n}\n\n#beach-booking-widget .cabana-overlay.is-visible{\ndisplay:block;\nopacity:1;\npointer-events:auto;\n}\n\n#beach-booking-widget .cabana-message{\ndisplay:none;\nposition:fixed;\ntop:50%;\nleft:50%;\ntransform:translate(-50%,-50%) scale(.96);\nbackground:#ffffff;\ncolor:#111827;\npadding:22px 22px;\nborder-radius:18px;\nbox-shadow:0 25px 70px rgba(0,0,0,.35);\nz-index:99999;\nwidth:420px;\nmax-width:calc(100vw - 32px);\nalign-items:flex-start;\njustify-content:space-between;\ngap:16px;\nopacity:0;\npointer-events:none;\ntransition:opacity .2s ease, transform .2s ease;\nborder-left:6px solid #9b0d0d;\nfont-size:16px;\nfont-weight:500;\nline-height:1.45;\n}\n\n#beach-booking-widget .cabana-message.is-visible{\nopacity:1;\npointer-events:auto;\ntransform:translate(-50%,-50%) scale(1);\n}\n\n#beach-booking-widget .cabana-message:before{\ncontent:\"!\";\ndisplay:flex;\nalign-items:center;\njustify-content:center;\nflex:0 0 30px;\nwidth:30px;\nheight:30px;\nborder-radius:999px;\nbackground:#9b0d0d;\ncolor:#fff;\nfont-weight:800;\nfont-size:19px;\nline-height:1;\n}\n\n#beach-booking-widget .cabana-message-close{\nborder:none;\nbackground:#f3f4f6;\ncolor:#374151;\nfont-size:22px;\nline-height:1;\ncursor:pointer;\npadding:0;\nwidth:30px;\nheight:30px;\nborder-radius:999px;\nflex:0 0 30px;\n}\n\n#beach-booking-widget .cabana-message-close:hover{\nbackground:#e5e7eb;\n}\n\n\/* DESKTOP POZICIJE KABAN *\/\n.s1{left:76%;top:37%;}\n.s2{left:70.5%;top:37%;}\n.s3{left:65.5%;top:37.3%;}\n.s4{left:60%;top:37.5%;}\n.s5{left:54%;top:37.6%;}\n.s6{left:49%;top:37.6%;}\n.s7{left:42.5%;top:37.5%;}\n.s8{left:37.5%;top:37.4%;}\n.s9{left:31%;top:39%;}\n.s10{left:27%;top:41%;}\n.s11{left:25%;top:45%;}\n.s12{left:20%;top:44%;}\n.s13{left:13%;top:44%;}\n.s14{left:7%;top:45%;}\n.s15{left:45%;top:48%;}\n.s16{left:55%;top:46%;}\n.s17{left:82%;top:46%;}\n.s18{left:32%;top:53%;}\n.s19{left:39%;top:54%;}\n\n\/* MOBILE SELECT PRIVZETO SKRIT *\/\n#beach-booking-widget .cabana-mobile-select{\ndisplay:none;\nmargin-top:16px;\n}\n\n#beach-booking-widget .cabana-mobile-select select{\nwidth:100%;\nheight:48px;\npadding:0 14px;\nfont-size:16px;\nfont-weight:400;\nborder:1px solid #d1d5db;\nborder-radius:12px;\nbackground:#fff;\ncolor:#111827;\nbox-sizing:border-box;\nmargin-bottom:10px;\noutline:none;\n}\n\n#beach-booking-widget #cabana-confirm{\nwidth:100%;\nheight:48px;\npadding:0 14px;\nborder:none;\nborder-radius:12px;\nbackground:#14833b;\ncolor:#fff;\nfont-size:16px;\nfont-weight:700;\ncursor:pointer;\n}\n\n#beach-booking-widget #cabana-confirm:disabled{\nbackground:#9ca3af;\ncursor:not-allowed;\n}\n\n\/* MOBILE *\/\n@media (max-width:640px){\n\n#beach-booking-widget .cabana{\nbackground:none !important;\nborder:none !important;\nbox-shadow:none !important;\nwidth:auto;\nheight:auto;\nmin-width:auto;\naspect-ratio:auto;\nfont-size:12px;\nfont-weight:700;\ncolor:#fff;\npadding:0;\ntext-shadow:\n0 0 4px rgba(0,0,0,.95),\n0 0 8px rgba(0,0,0,.95);\n}\n\n#beach-booking-widget .cabana.is-free{\ncolor:#22c55e !important;\n}\n\n#beach-booking-widget .cabana.is-full{\ncolor:#ef4444 !important;\n}\n\n#beach-booking-widget .cabana.is-loading{\ncolor:#f59e0b !important;\n}\n\n#beach-booking-widget .cabana.is-error{\ncolor:#9ca3af !important;\n}\n\n#beach-booking-widget .cabana:hover{\ntransform:translate(-50%,-50%);\n}\n\n#beach-booking-widget .cabana-mobile-select{\ndisplay:block;\nwidth:100%;\n}\n\n#beach-booking-widget .legend{\ngap:10px;\nfont-size:12px;\n}\n\n#beach-booking-widget .status-message{\nfont-size:12px;\n}\n\n#beach-booking-widget .cabana-date-picker{\nmax-width:100%;\ndisplay:flex;\nflex-direction:column;\nalign-items:center;\n}\n\n#beach-booking-widget .cabana-date-picker label{\nwidth:100%;\nmax-width:100%;\nfont-size:13px;\ntext-align:left;\n}\n\n#beach-booking-widget .cabana-date-picker input[type=\"date\"]{\nwidth:100%;\nmax-width:100%;\nheight:48px;\nfont-size:16px;\n}\n\n#beach-booking-widget .cabana-mobile-select select{\nwidth:100%;\nmax-width:100%;\nheight:48px;\n}\n\n#beach-booking-widget .cabana-message{\nwidth:calc(100vw - 32px);\npadding:18px 16px;\nfont-size:15px;\nborder-radius:16px;\n}\n\n}\n\n<\/style>\n\n\n<div class=\"beach-booking\">\n\n<img src=\"https:\/\/eh.si\/wp-content\/uploads\/2026\/04\/HBF_kabane-2.jpg\" alt=\"Cabane\">\n\n<button class=\"cabana s1\" data-seat=\"1\" type=\"button\">1<\/button>\n<button class=\"cabana s2\" data-seat=\"2\" type=\"button\">2<\/button>\n<button class=\"cabana s3\" data-seat=\"3\" type=\"button\">3<\/button>\n<button class=\"cabana s4\" data-seat=\"4\" type=\"button\">4<\/button>\n<button class=\"cabana s5\" data-seat=\"5\" type=\"button\">5<\/button>\n<button class=\"cabana s6\" data-seat=\"6\" type=\"button\">6<\/button>\n<button class=\"cabana s7\" data-seat=\"7\" type=\"button\">7<\/button>\n<button class=\"cabana s8\" data-seat=\"8\" type=\"button\">8<\/button>\n<button class=\"cabana s9\" data-seat=\"9\" type=\"button\">9<\/button>\n<button class=\"cabana s10\" data-seat=\"10\" type=\"button\">10<\/button>\n<button class=\"cabana s11\" data-seat=\"11\" type=\"button\">11<\/button>\n<button class=\"cabana s12\" data-seat=\"12\" type=\"button\">12<\/button>\n<button class=\"cabana s13\" data-seat=\"13\" type=\"button\">13<\/button>\n<button class=\"cabana s14\" data-seat=\"14\" type=\"button\">14<\/button>\n<button class=\"cabana s15\" data-seat=\"15\" type=\"button\">15<\/button>\n<button class=\"cabana s16\" data-seat=\"16\" type=\"button\">16<\/button>\n<button class=\"cabana s17\" data-seat=\"17\" type=\"button\">17<\/button>\n<button class=\"cabana s18\" data-seat=\"18\" type=\"button\">18<\/button>\n<button class=\"cabana s19\" data-seat=\"19\" type=\"button\">19<\/button>\n\n<\/div>\n\n<div class=\"cabana-date-picker\">\n<label for=\"cabana-date\">Seleziona la data<\/label>\n<input type=\"date\" id=\"cabana-date\">\n<\/div>\n\n<div class=\"cabana-mobile-select\">\n<select id=\"cabana-select\">\n<option value=\"\">Seleziona cabana<\/option>\n<option value=\"1\">Cabana 1<\/option>\n<option value=\"2\">Cabana 2<\/option>\n<option value=\"3\">Cabana 3<\/option>\n<option value=\"4\">Cabana 4<\/option>\n<option value=\"5\">Cabana 5<\/option>\n<option value=\"6\">Cabana 6<\/option>\n<option value=\"7\">Cabana 7<\/option>\n<option value=\"8\">Cabana 8<\/option>\n<option value=\"9\">Cabana 9<\/option>\n<option value=\"10\">Cabana 10<\/option>\n<option value=\"11\">Cabana 11<\/option>\n<option value=\"12\">Cabana 12<\/option>\n<option value=\"13\">Cabana 13<\/option>\n<option value=\"14\">Cabana 14<\/option>\n<option value=\"15\">Cabana 15<\/option>\n<option value=\"16\">Cabana 16<\/option>\n<option value=\"17\">Cabana 17<\/option>\n<option value=\"18\">Cabana 18<\/option>\n<option value=\"19\">Cabana 19<\/option>\n<\/select>\n\n<button id=\"cabana-confirm\" type=\"button\" disabled>Prenota cabana<\/button>\n<\/div>\n\n<div class=\"legend\">\n<span class=\"legend-item\"><span class=\"legend-dot legend-free\"><\/span>Disponibile<\/span>\n<span class=\"legend-item\"><span class=\"legend-dot legend-full\"><\/span>Occupata<\/span>\n<\/div>\n\n<div class=\"status-message\" id=\"beach-booking-status\">\nPronto.\n<\/div>\n\n<div id=\"cabana-message\" class=\"cabana-message\">\n  <span id=\"cabana-message-text\"><\/span>\n  <button type=\"button\" id=\"cabana-message-close\">\u00d7<\/button>\n<\/div>\n\n<div id=\"cabana-overlay\" class=\"cabana-overlay\"><\/div>\n\n\n<script>\n\n\/* ApiUrl *\/\nconst API_BASE=\"https:\/\/www.studionaut.com\";\n\/* StudioApiKey *\/\nconst STUDIO_API_KEY=\"1917dca6-764f-4c70-92b5-5d8795e73ae5\";\n\/* venueId *\/\nconst VENUE_ID=\"1095\";\n\nconst buttons=document.querySelectorAll(\"#beach-booking-widget .cabana\");\nconst status=document.getElementById(\"beach-booking-status\");\nconst select=document.getElementById(\"cabana-select\");\nconst confirmButton=document.getElementById(\"cabana-confirm\");\nconst dateInput=document.getElementById(\"cabana-date\");\nconst messageBox=document.getElementById(\"cabana-message\");\nconst messageText=document.getElementById(\"cabana-message-text\");\nconst messageClose=document.getElementById(\"cabana-message-close\");\nconst overlay=document.getElementById(\"cabana-overlay\");\n\nlet bookingMap={};\nlet selectedDayShift=0;\nlet activeRequestId=0;\nlet messageTimer=null;\n\nfunction formatDateLocal(date){\nconst y=date.getFullYear();\nconst m=String(date.getMonth()+1).padStart(2,\"0\");\nconst d=String(date.getDate()).padStart(2,\"0\");\nreturn y+\"-\"+m+\"-\"+d;\n}\n\nfunction calculateDayShiftFromInput(value){\nif(!value){\nreturn 0;\n}\n\nconst today=new Date();\nconst selected=new Date(value+\"T00:00:00\");\n\nconst todayMidnight=new Date(today.getFullYear(), today.getMonth(), today.getDate());\nconst selectedMidnight=new Date(selected.getFullYear(), selected.getMonth(), selected.getDate());\n\nconst diffMs=selectedMidnight - todayMidnight;\nconst diffDays=Math.round(diffMs \/ 86400000);\n\nreturn diffDays < 0 ? 0 : diffDays;\n}\n\nfunction showCabanaMessage(text){\nif(!messageBox || !messageText){\nreturn;\n}\n\nmessageText.textContent=text;\nmessageBox.style.display=\"flex\";\n\nif(overlay){\noverlay.style.display=\"block\";\nrequestAnimationFrame(()=>{\noverlay.classList.add(\"is-visible\");\n});\n}\n\nrequestAnimationFrame(()=>{\nmessageBox.classList.add(\"is-visible\");\n});\n\nif(messageTimer){\nclearTimeout(messageTimer);\n}\n\nmessageTimer=setTimeout(()=>{\nhideCabanaMessage();\n},5000);\n}\n\nfunction hideCabanaMessage(){\nif(!messageBox){\nreturn;\n}\n\nmessageBox.classList.remove(\"is-visible\");\n\nif(overlay){\noverlay.classList.remove(\"is-visible\");\n}\n\nsetTimeout(()=>{\nif(!messageBox.classList.contains(\"is-visible\")){\nmessageBox.style.display=\"none\";\n}\nif(overlay && !overlay.classList.contains(\"is-visible\")){\noverlay.style.display=\"none\";\n}\n},200);\n}\n\nfunction goToReservation(id){\nconst url=bookingMap[Number(id)];\n\nif(url){\nwindow.location.href=url;\n}else{\nshowCabanaMessage(\"Questa cabana non \u00e8 disponibile. Seleziona un\u2019altra cabana o un\u2019altra data.\");\n}\n}\n\nasync function loadAvailability(){\n\nconst requestId=++activeRequestId;\n\nbuttons.forEach(b=>{\nb.classList.add(\"is-loading\");\nb.classList.remove(\"is-free\",\"is-full\",\"is-error\");\n});\n\nif(confirmButton){\nconfirmButton.disabled=!(select && select.value);\n}\n\ntry{\n\nconst url=API_BASE+\"\/api\/calendar\/events\/day?dayShift=\"+encodeURIComponent(selectedDayShift)+\"&venueId=\"+encodeURIComponent(VENUE_ID);\n\nconst res=await fetch(url,{\nheaders:{\n\"StudioApiKey\":STUDIO_API_KEY,\n\"Language\":\"sl\"\n}\n});\n\nif(!res.ok){\nthrow new Error(\"API error \"+res.status);\n}\n\nconst events=await res.json();\n\nif(requestId !== activeRequestId){\nreturn;\n}\n\nconst selectedDateValue = dateInput && dateInput.value\n  ? dateInput.value\n  : formatDateLocal(new Date());\n\nconst booked=new Set();\nconst free=new Set();\nbookingMap={};\n\nif(Array.isArray(events)){\nevents.forEach(event=>{\n\nconst eventDate = String(event.start || \"\").slice(0,10);\n\nif(eventDate !== selectedDateValue){\nreturn;\n}\n\nif(Array.isArray(event.venueSections)){\nevent.venueSections.forEach(section=>{\nconst id=Number(section.sectionNo);\n\nif(!id || id<1 || id>19){\nreturn;\n}\n\nif(section.bookingUrl){\nbookingMap[id]=section.bookingUrl;\n}\n\nconst availableNo=section.availableNo;\nconst studentsCount=Number(section.studentsCount);\nconst hasAvailableNo=availableNo !== null && availableNo !== undefined;\nconst hasSchedule=\nsection.startMinuteOfDay !== null ||\nsection.endMinuteOfDay !== null ||\nsection.startTime !== null ||\nsection.endTime !== null;\n\nconst isFull =\nhasSchedule &&\n(\nsection.isEventFull === true ||\n(!Number.isNaN(studentsCount) && studentsCount > 0) ||\n(hasAvailableNo && availableNo === 0)\n);\n\nconst isFree =\nhasSchedule &&\n!isFull &&\n(\n(hasAvailableNo && availableNo > 0) ||\n!!section.bookingUrl\n);\n\nif(isFull){\nbooked.add(id);\nfree.delete(id);\n}else if(isFree && !booked.has(id)){\nfree.add(id);\n}\n});\n}\n});\n}\n\nbuttons.forEach(btn=>{\nconst id=Number(btn.dataset.seat);\n\nbtn.classList.remove(\"is-loading\",\"is-free\",\"is-full\",\"is-error\");\n\nif(booked.has(id)){\nbtn.classList.add(\"is-full\");\n}else if(free.has(id)){\nbtn.classList.add(\"is-free\");\n}else{\nbtn.classList.add(\"is-error\");\n}\n});\n\nif(select){\nconst options=select.querySelectorAll(\"option\");\noptions.forEach(option=>{\nconst value=Number(option.value);\nif(value>=1 && value<=19){\nif(booked.has(value)){\noption.textContent=\"Cabana \"+value+\" \u2013 Occupata\";\n}else if(free.has(value)){\noption.textContent=\"Cabana \"+value+\" \u2013 Disponibile\";\n}else{\noption.textContent=\"Cabana \"+value+\" \u2013 Nessun dato\";\n}\n}\n});\n}\n\nif(confirmButton && select){\nconst selectedId=Number(select.value);\nconfirmButton.disabled=!selectedId;\n}\n\nstatus.innerText=\"Disponibilit\u00e0 caricata con successo.\";\n\n}catch(err){\n\nif(requestId !== activeRequestId){\nreturn;\n}\n\nconsole.error(err);\nstatus.innerText=\"Errore nel caricamento delle prenotazioni.\";\n\nbuttons.forEach(b=>{\nb.classList.remove(\"is-loading\",\"is-free\",\"is-full\");\nb.classList.add(\"is-error\");\n});\n\nif(select){\nconst options=select.querySelectorAll(\"option\");\noptions.forEach(option=>{\nconst value=Number(option.value);\nif(value>=1 && value<=19){\noption.textContent=\"Cabana \"+value+\" \u2013 Errore\";\n}\n});\n}\n\nif(confirmButton){\nconfirmButton.disabled=true;\n}\n\n}\n\n}\n\nbuttons.forEach(btn=>{\nbtn.onclick=function(){\nconst id=this.dataset.seat;\ngoToReservation(id);\n};\n});\n\nif(select){\nselect.onchange=function(){\nconst selectedId=Number(this.value);\nif(confirmButton){\nconfirmButton.disabled=!selectedId;\n}\n};\n}\n\nif(confirmButton){\nconfirmButton.onclick=function(){\nif(select && select.value){\ngoToReservation(select.value);\n}\n};\n}\n\nif(messageClose){\nmessageClose.onclick=function(){\nhideCabanaMessage();\n};\n}\n\nif(overlay){\noverlay.onclick=function(){\nhideCabanaMessage();\n};\n}\n\nif(dateInput){\nconst today=new Date();\ndateInput.value=formatDateLocal(today);\ndateInput.min=formatDateLocal(today);\n\ndateInput.addEventListener(\"change\", function(){\nselectedDayShift=calculateDayShiftFromInput(this.value);\nloadAvailability();\n});\n}\n\nloadAvailability();\n\n\/* AUTO REFRESH *\/\nsetInterval(loadAvailability,10000);\n\n<\/script>\n\n<\/div>\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-abccd51 thegem-e-con-layout-thegem e-flex e-con-boxed e-con e-parent\" data-id=\"abccd51\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;thegem_container_layout&quot;:&quot;thegem&quot;}\">\r\n\t\t\t\t\t<div class=\"e-con-inner\">\r\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>Prenotazione Cabana Scegli la tua cabana e goditi una perfetta giornata al mare Concediti un momento di relax in una&#8230;<\/p>\n","protected":false},"author":4,"featured_media":43100,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-fullwidth.php","meta":{"footnotes":""},"class_list":["post-46839","page","type-page","status-publish","has-post-thumbnail"],"_links":{"self":[{"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/pages\/46839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/comments?post=46839"}],"version-history":[{"count":22,"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/pages\/46839\/revisions"}],"predecessor-version":[{"id":47346,"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/pages\/46839\/revisions\/47346"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/media\/43100"}],"wp:attachment":[{"href":"https:\/\/eh.si\/it\/wp-json\/wp\/v2\/media?parent=46839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}