Prenota il tuo appuntamento alla Spiaggia di Choengmon

Approfitta della comodità di programmare senza problemi.

Prova la facilità e l'efficienza di pianificare la tua giornata spa perfetta!

Choengmon Beach Branch

Spiaggia di Choengmon Filiale

Stai prenotando per la filiale Spiaggia di Choengmon.

Apri la mappa di Google Scegli un'altra Filiale

Massaggio presso il nostro salone

Goditi la tua sessione completa al salone Nakee.

Massaggio presso la tua sede

Fatti coccolare a casa tua, in hotel o in villa.

La prenotazione è disponibile

da 10:00 AM a 10:00 PM

Scegli il tuo servizio:
Aggiungi il servizio.
    Scegli il tuo terapeuta:
    Seleziona il terapista o lascia che ti assegniamo il terapista giusto in base al servizio che hai richiesto.
      OPPURE
      ⚠️ Assicurati di inviarci la richiesta di prenotazione tramite l'app che hai scelto. Confermeremo la tua prenotazione solo tramite WhatsApp o Line.
      ℹ️ Un messaggio formattato sarà generato in base alla tua selezione dell'appuntamento. Puoi inviarlo tramite l'app di messaggistica preferita elencata sopra.
      '; $( window ).on( "resize", function() { on_resize(); }); on_resize(); attentionBoxShift(); $("#view_products,.choosed_products,#open_service-menu").on('click',function(){ $("#products_list_pop").show(300); $(".choosed_products").addClass('error'); setTimeout(function(){ $("body").addClass("product_chooser"); },300); }); $("#products_list_pop_close").on('click',function(){ $("#products_list_pop").hide(300); setTimeout(function(){ $("body").removeClass("product_chooser"); },20); }); $("#view_theropist,.choosed_theropist,#open_therapists,#open_therapists_br").on('click',function(){ $("#theropist_list_pop").show(300); setTimeout(function(){ $("body").addClass("product_chooser"); },300); }); $("#theropist_list_pop_close").on('click',function(){ $("#theropist_list_pop").hide(300); setTimeout(function(){ $("body").removeClass("product_chooser"); },20); }); $(".service").each(function(){ var t = $(this); t.find("table tr").each(function(){ var tr = $(this); tr.append(""); }); }); $(".add_prod.btn").on('click',function(){ var t = $(this), p = t.parents('.service'), tr = t.parents('tr'); tr.addClass('active'); var tile = p.find(".prod-title h2").text(); if (lang != 'th') tile += ' ( '+p.data('en')+' )'; var pr = 0; if ( massage_type == 1 ) pr = tr.data('price'); else pr = tr.data('outside-price'); $(".choosed_products ul").append('
    • '+checkmark+tile+'
      '+' - '+tr.find('td:eq(0)').text() + ' ['+formatPrice(pr)+' ฿]' +'
    • '); if ($(".choosed_products ul li").length == 0 ) { $(".choosed_products .no-prod").show(); $("#products_list_pop_close").removeClass("selected"); } else { $(".choosed_products .no-prod").hide(); $("#products_list_pop_close").addClass("selected"); } calculate_totals_html(); attentionBoxShift(); }); $(".remove_prod.btn").on('click',function(){ var t = $(this), p = t.parents('.service'), tr = t.parents('tr'); tr.removeClass('active'); $(".choosed_products ul ."+p.attr('id')+".pid-"+tr.data('prod_id')).remove(); if ($(".choosed_products ul li").length == 0 ) { $(".choosed_products .no-prod").show(); $("#products_list_pop_close").removeClass("selected"); } else { $(".choosed_products .no-prod").hide(); $("#products_list_pop_close").addClass("selected"); } calculate_totals_html(); attentionBoxShift(); }); $(".theropists .theropist").on('click',function(){ var t = $(this); if (t.hasClass('vacation')) return; if (!t.hasClass('active')){ t.addClass('active'); $(".choosed_theropist ul").append('
    • '+checkmark+t.data('en')+'
    • '); } else { t.removeClass('active'); $('.prod-item.therop-'+t.attr('id')).remove(); } if ($(".choosed_theropist ul li").length == 0 ) $(".choosed_theropist .no-prod").show(); else $(".choosed_theropist .no-prod").hide(); attentionBoxShift(); }); var ga4EventSent = false; $("#customername,#customerphone,#visitqty,#visit-date,#visit-time").on('keyup',function(){ $(this).removeClass('error'); if (ga4EventSent) return; ga4EventSent = true; gtag("event", "waBookingFormStart", { menu_item_name: "Start WhatsApp Booking Form", menu_item_url: "https://www.nakee.spa/it/prenota-un-appuntamento/", }); }); $("#customername,#customerphone,#visitqty,#visit-date,#visit-time").on('change',function(){ attentionBoxShift(); }); $("#submit_req").on('click', function(){ var m = validate_message('whatsapp'); if (m == false) return; $("#submit_req_action").attr('href', 'https://api.whatsapp.com/send?phone=66990655880&&text='+m); document.getElementById("submit_req_action").click(); success_action(m); }); $("#submit_req_line").on('click', function(){ var m = validate_message('line'); if (m == false) return; $("#submit_req_action_line").attr('href', 'https://line.me/R/oaMessage/%40355kcqpj/?'+m); document.getElementById("submit_req_action_line").click(); success_action(m); }); $(".massage-type-selector .type-option").on('click', function(){ var t = $(this); $(".massage-type-selector .type-option").removeClass("selected"); $(this).addClass("selected"); if (massage_type == $(this).data('massagetype')) return; massage_type = $(this).data('massagetype'); if (massage_type == 2) { $(".home-massage").slideDown(400); $(".book_apointment .visitinfo").hide(); $(".top-booking-bar-menu,.book_apointment,.shop_massage_hours").slideUp(400); if (map_loaded == 0) { initMap(); map_loaded = 1; } } else { $(".home-massage").slideUp(400); $(".book_apointment .visitinfo").show(); $(".top-booking-bar-menu,.book_apointment,.shop_massage_hours").slideDown(400); } outside_price_update(); attentionBoxShift(); }); $(".massage-beds label").on('click', function(){ var t = $(this); $(".massage-beds label").removeClass('selected'); t.addClass('selected'); calculate_totals_html(); }); function success_action(m){ var params = "n=" + $("#customername").val(); if ($("#customerphone").length != 0) params += "&p=" + $("#customerphone").val(); $(".book_apointment").empty().append("
      Loading ...
      Hai creato con successo la tua richiesta di appuntamento!
      "); window.location.href="https://www.nakee.spa/it/ringraziamenti-per-la-prenotazione/?"+params+"&msg="+m; } function validate_message(t){ var geusts = parseInt($("#visitqty").val()); if ($("#customername").val() == ''){ $("#customername").addClass('error'); $('html, body').animate({ scrollTop: $('#customername').offset().top-70 }, 200); setTimeout( () => { alert("Il nome è obbligatorio!"); },201); return false; } /* if ($("#customerphone").val() == ''){ $("#customerphone").addClass('error'); $('html, body').animate({ scrollTop: $('#customerphone').offset().top-70 }, 200); setTimeout( () => { alert("Il numero di telefono è obbligatorio!"); },201); return false; } */ if ($("#visitqty").val() == '' || geusts < 1){ $("#visitqty").addClass('error'); $('html, body').animate({ scrollTop: $('#visitqty').offset().top-70 }, 200); setTimeout( () => { alert("Seleziona il numero di ospiti!"); },201); return false; } if ($("#visit-date").val() == ''){ $("#visit-date").addClass('error'); $('html, body').animate({ scrollTop: $('#visit-date').offset().top-70 }, 200); setTimeout( () => { alert("Scegli i dati del tuo appuntamento!"); },201); return false; } if ($("#visit-time").val() == ''){ $("#visit-time").addClass('error'); $('html, body').animate({ scrollTop: $('#visit-time').offset().top-70 }, 200); setTimeout( () => { alert("Scegli l'orario dell'appuntamento!"); },201); return false; } if (!timeValid) { setTimeout( () => { alert("Assicurati che l'orario dell'appuntamento sia valido!"); },201); return false; } if ($(".choosed_products li.prod-item").length == 0){ $(".choosed_products").addClass('error'); $('html, body').animate({ scrollTop: $('.products_choice').offset().top-70 }, 200); setTimeout( () => { alert("Scegli il tuo servizio!"); },201); return false; } var u = '',brek = '%0A'; switch (t){ case 'whatsapp': brek = '%0A'; break; case 'line': brek = '%0D%0A'; break; } u += encodeURIComponent('Booking Information:')+brek; u += encodeURIComponent('Massage '+(massage_type == 1 ? "AT OUR SHOP ("+$(".branch_indicator").data('name')+")" : "OUTSIDE AT YOUR LOCATION"))+brek; if (massage_type == 2) u += encodeURIComponent(($('input[name="massage-bed"]:checked').val() == '1' ? "Portable Massage Bed: Included" : "Portable Massage Bed: NOT Included"))+brek; u += brek+encodeURIComponent('Name: '+$("#customername").val())+brek; //u += encodeURIComponent('phone number: '+$("#customerphone").val())+brek; u += encodeURIComponent('Number of guests: '+$("#visitqty").val()+' '+(geusts <= 1 ? 'person' : 'persons'))+brek; u += encodeURIComponent('Preferred visit time: '+ $("#visit-date").val() + ' ' + $("#visit-time").val() )+brek; u += brek+encodeURIComponent('Required Service: ')+brek; /* $(".choosed_products li.prod-item").each(function(){ u += encodeURIComponent(' > '+$(this).text()+' ('++' ฿)')+brek; }); */ var tot = 0; $(".services tr.active").each(function(){ var tr=$(this), sp = $(this).parents('.service'), h2=sp.find('.prod-title h2'), pr = 0; if ( massage_type == 1 ) pr = $(this).data('price'); else pr = $(this).data('outside-price'); tot += parseInt(pr); var tile = h2.text(); if (lang != 'th') tile += ' ( '+sp.data('en')+' )'; u += encodeURIComponent('> '+tile)+brek; u += encodeURIComponent(' - '+tr.find('td:eq(0)').text() + ' ['+formatPrice(pr)+' ฿]')+brek; }); if (tot != 0) { if ($('input[name="massage-bed"]:checked').val() == '1') { u += brek+encodeURIComponent('Taxi Transport For Massage Bed: '+taxi+' ฿')+brek; tot += parseInt(taxi); } /* u += encodeURIComponent('------')+brek; u += encodeURIComponent('Total Price: '+formatPrice(tot)+' ฿')+brek; */ } if ($(".choosed_theropist li.prod-item").length > 0) { u += brek+encodeURIComponent('Required Therapist: ')+brek; $(".choosed_theropist li.prod-item").each(function(){ u += encodeURIComponent(' > '+$(this).text())+brek; }); } else { u += brek+encodeURIComponent('Chosen Therapist: You can choose for ')+(geusts <= 1 ? 'me' : 'us')+'.%0A'+brek; } if ($("#clientnote").val() != '') u += brek+encodeURIComponent('Additional Request: ')+brek+encodeURIComponent($("#clientnote").val())+brek; if (massage_type == 1) { u += brek+encodeURIComponent('📍 Branch Location: ')+brek+encodeURIComponent($(".branch_indicator").data('name')); u += brek+encodeURIComponent('🗺️ Google Maps: ')+encodeURIComponent($(".branch_indicator").data('maplink')); } else { u += brek+encodeURIComponent('📍 Your Location Map: '+$("#address_url").val())+brek; u += encodeURIComponent('Your Address: '+$("#visit-address").val())+brek; u += encodeURIComponent('Your Room/Flat Number: '+$("#visit-flat").val()); } return u; } $("#visit-address, #visit-flat").on('change click keyup', function(){ outside_service_validation(); attentionBoxShift(); }); $("#visit-date,#visit-date-o").on('change', function(){ const selectedDate = $(this).val(); const today = new Date(); const todayStr = today.toISOString().split('T')[0]; let targetTime; if (selectedDate === todayStr) { const nowPlus1Hr = new Date(today.getTime() + 60 * 60 * 1000); const hh = nowPlus1Hr.getHours().toString().padStart(2, '0'); const mm = nowPlus1Hr.getMinutes().toString().padStart(2, '0'); targetTime = `${hh}:${mm}`; } else { targetTime = '10:00'; } $('#'+$(this).attr('id').replace('date','time')).val(targetTime).attr('min', targetTime).attr('placeholder', targetTime); }); ['', '-o'].forEach(suffix => { $(`#visit-date${suffix}, #visit-time${suffix}`).on('change', function () { timeValid = 0; const date = $(`#visit-date${suffix}`).val(); const time = $(`#visit-time${suffix}`).val(); if (!date || !time) return; validateEnteredTime(suffix); if (suffix == '-o') { outside_service_validation(); attentionBoxShift(); } }); }); // Icon click triggers focus on sibling input $(".caln-icon, .time-icon").on('click', function () { $(this).parent().find('input').trigger('focus'); }); // Validate entered time function validateEnteredTime(suffix) { timeValid = 1; const timeField = $(`#visit-time${suffix}`); if (!isTimeInAllowedRange(suffix)) { timeField.addClass('error'); timeValid = 0; alert(suffix === '' ? "L'orario dell'appuntamento deve essere compreso tra le 10:00 e le 22:00." : "L'orario dell'appuntamento deve essere compreso tra le 10:00 e le 18:00."); } else if (!isVisitTimeValid(suffix)) { timeField.addClass('error'); timeValid = 0; alert("L “orario dell” appuntamento deve essere di almeno +30 minuti da adesso."); } if (timeValid) timeField.removeClass('error'); } // Check if time is +30 min from now (in Bangkok) function isVisitTimeValid(suffix) { const date = $(`#visit-date${suffix}`).val(); const time = $(`#visit-time${suffix}`).val(); if (!date || !time) return false; const selected = new Date(`${date}T${time}`); const now = new Date(); const nowBangkok = new Date(now.toLocaleString("en-US", { timeZone: "Asia/Bangkok" })); const nowPlus30 = new Date(nowBangkok.getTime() + 30 * 60 * 1000); return selected >= nowPlus30; } // Check if time is in range (10:00 to 22:00 or 18:00) function isTimeInAllowedRange(suffix) { const time = $(`#visit-time${suffix}`).val(); if (!time) return false; const [hh, mm] = time.split(':').map(Number); if (isNaN(hh) || isNaN(mm)) return false; const maxHour = suffix === '' ? 22 : 18; return hh >= 10 && (hh < maxHour || (hh === maxHour && mm === 0)); } // Set initial values based on Bangkok time and cutoffs function getKohSamuiBookingTime(suffix) { const now = new Date(); const nowBangkok = new Date(now.toLocaleString("en-US", { timeZone: "Asia/Bangkok" })); const nowPlus30 = new Date(nowBangkok.getTime() + 30 * 60 * 1000); const cutoff = new Date(nowBangkok); cutoff.setHours(suffix === '' ? 22 : 18, 0, 0, 0); let dateStr, timeStr; if (nowPlus30 > cutoff) { const tomorrow = new Date(nowBangkok); tomorrow.setDate(tomorrow.getDate() + 1); dateStr = tomorrow.toISOString().split('T')[0]; timeStr = '10:00'; } else { dateStr = nowBangkok.toISOString().split('T')[0]; const hh = nowPlus30.getHours().toString().padStart(2, '0'); const mm = nowPlus30.getMinutes().toString().padStart(2, '0'); timeStr = `${hh}:${mm}`; } $(`#visit-date${suffix}`).val(dateStr).attr('min', dateStr); $(`#visit-time${suffix}`).attr('min', timeStr); } // Initialize both sets getKohSamuiBookingTime(''); getKohSamuiBookingTime('-o'); setInterval(function(){ clock_nakee(); },1000); clock_nakee(); lightbox.option({ fadeDuration: 200, resizeDuration: 200, wrapAround: true }); });-->