const menuHamburger=document.getElementById("menu-hamburger");
const botaoFecharMenu=document.getElementById("botao-fechar-menu");
const menuPrincipal=document.getElementById("menu-principal");
const elementosComSubmenu=document.querySelectorAll(".tem-submenu");
menuHamburger.addEventListener("click", ()=> {
menuPrincipal.classList.add("mostrar");
document.body.style.overflow="hidden";
});
botaoFecharMenu.addEventListener("click", ()=> {
menuPrincipal.classList.remove("mostrar");
document.body.style.overflow="unset";
});
elementosComSubmenu.forEach(function (elemento){
elemento.addEventListener("click", function (event){
if(event.target.classList.contains("tem-submenu")){
var submenu=event.target.querySelector(".submenu");
submenu.classList.toggle("abrir");
}});
});
document.addEventListener("DOMContentLoaded", function (){
var links=document.querySelectorAll("a");
links.forEach(function (link){
if(link.href===window.location.href){
link.classList.add("active");
}});
});
const formulario=document.getElementById("formulario-reserva");
const campoCheckIn=document.getElementById("startDate");
const campoCheckOut=document.getElementById("endDate");
const campoNumeroAdultos=document.getElementById("adults");
const campoNumeroCriancas=document.getElementById("children");
const campoIdadeCriancas=document.getElementById("idadeCriancas");
const adicionarAdulto=document.getElementById("adicionar-adulto");
const subtrairAdulto=document.getElementById("subtrair-adulto");
const adicionarCrianca=document.getElementById("adicionar-crianca");
const subtrairCrianca=document.getElementById("subtrair-crianca");
const motorDataCheckIn=document.getElementById("data-checkin");
const motorDataCheckOut=document.getElementById("data-checkout");
const motorNumeroAdultos=document.getElementById("numero-adultos");
const motorNumeroCriancas=document.getElementById("numero-criancas");
const resumoInformacoesDiarias=document.querySelector(".informacoes-motor.diarias .resumo-informacoes");
const resumoInformacoesHospedes=document.querySelector(".informacoes-motor.hospedes .resumo-informacoes");
const seletoresDiarias=document.querySelector(".seletores-motor.datas");
const seletoresHospedes=document.querySelector(".seletores-motor.hospedes");
const dataDeHoje=new Date();
const MAX_ADULTOS_QUARTO=4;
const MIN_ADULTOS_QUARTO=1;
const MAX_CRIANCAS_QUARTO=3;
const MIN_CRIANCAS_QUARTO=0;
const MAX_IDADE_CRIANCA=17;
const formatarData=(data)=> data.toISOString().split("T")[0];
const obterDataPadraoBrasileiro=(data)=> {
const d=new Date(data);
return d.toLocaleDateString("pt-BR");
};
const configurarDataMinimaCheckIn=()=> campoCheckIn.min=formatarData(dataDeHoje);
const configurarDataPadraoCheckIn=()=> campoCheckIn.value=formatarData(dataDeHoje);
const configurarDataMinimaCheckOut=()=> {
const dataCheckIn=new Date(campoCheckIn.value);
dataCheckIn.setDate(dataCheckIn.getDate() + 1);
campoCheckOut.min=formatarData(dataCheckIn);
};
const configurarDataPadraoCheckOut=()=> {
const dataCheckIn=new Date(campoCheckIn.value);
dataCheckIn.setDate(dataCheckIn.getDate() + 3);
campoCheckOut.value=formatarData(dataCheckIn);
};
const atualizarTextoDataCheckIn=()=> motorDataCheckIn.innerText=obterDataPadraoBrasileiro(campoCheckIn.value);
const atualizarTextoDataCheckOut=()=> motorDataCheckOut.innerText=obterDataPadraoBrasileiro(campoCheckOut.value);
campoNumeroCriancas.addEventListener("change", ()=> {
const numeroCriancas=campoNumeroCriancas.value;
campoIdadeCriancas.innerHTML="";
if(numeroCriancas > 0){
const label=document.createElement("label");
label.classList.add("seletor");
label.textContent="Idade das crianças:";
campoIdadeCriancas.appendChild(label);
const div=document.createElement("div");
div.classList.add("seletores", "flex");
campoIdadeCriancas.appendChild(div);
for (let i=0; i < numeroCriancas; i++){
const container=document.createElement("div");
container.classList.add("seletor");
const select=document.createElement("select");
select.name="childrenAges[]";
for (let age=0; age <=MAX_IDADE_CRIANCA; age++){
const opt=document.createElement("option");
opt.value=age;
opt.textContent=age;
select.appendChild(opt);
}
container.appendChild(select);
div.appendChild(container);
}
campoIdadeCriancas.classList.remove("hidden");
}else{
campoIdadeCriancas.classList.add("hidden");
}});
const atualizarTextoAdultos=(n)=> motorNumeroAdultos.innerText=n + (n==1 ? " Adulto":" Adultos");
const atualizarTextoCriancas=(n)=> motorNumeroCriancas.innerText=n + (n==1 ? " Criança":" Crianças");
document.addEventListener("DOMContentLoaded", ()=> {
configurarDataMinimaCheckIn();
configurarDataPadraoCheckIn();
configurarDataMinimaCheckOut();
configurarDataPadraoCheckOut();
atualizarTextoDataCheckIn();
atualizarTextoDataCheckOut();
});
campoCheckIn.addEventListener("change", ()=> {
configurarDataMinimaCheckOut();
configurarDataPadraoCheckOut();
atualizarTextoDataCheckIn();
atualizarTextoDataCheckOut();
});
campoCheckOut.addEventListener("change", atualizarTextoDataCheckOut);
adicionarAdulto.addEventListener("click", ()=> {
if(campoNumeroAdultos.value < MAX_ADULTOS_QUARTO){
campoNumeroAdultos.value++;
atualizarTextoAdultos(campoNumeroAdultos.value);
}});
subtrairAdulto.addEventListener("click", ()=> {
if(campoNumeroAdultos.value > MIN_ADULTOS_QUARTO){
campoNumeroAdultos.value--;
atualizarTextoAdultos(campoNumeroAdultos.value);
}});
adicionarCrianca.addEventListener("click", ()=> {
if(campoNumeroCriancas.value < MAX_CRIANCAS_QUARTO){
campoNumeroCriancas.value++;
campoNumeroCriancas.dispatchEvent(new Event("change"));
atualizarTextoCriancas(campoNumeroCriancas.value);
}});
subtrairCrianca.addEventListener("click", ()=> {
if(campoNumeroCriancas.value > MIN_CRIANCAS_QUARTO){
campoNumeroCriancas.value--;
campoNumeroCriancas.dispatchEvent(new Event("change"));
atualizarTextoCriancas(campoNumeroCriancas.value);
}});
resumoInformacoesDiarias.addEventListener("click", ()=> seletoresDiarias.classList.toggle("hide-all"));
resumoInformacoesHospedes.addEventListener("click", ()=> seletoresHospedes.classList.toggle("hide-all"));
formulario.addEventListener("submit", (e)=> {
e.preventDefault();
const params=new URLSearchParams({
adults: campoNumeroAdultos.value,
children: campoNumeroCriancas.value,
startDate: campoCheckIn.value,
endDate: campoCheckOut.value,
clientId: "22319dce-d724-4b9e-a305-4363a9262d29",
propertyId: "f3269f9d-d9cd-4401-98e6-d127432cfe48",
destinationName: "Cana Brava All Inclusive Resort",
enablePromoCode: "true",
contentType: "property"
});
document.querySelectorAll("select[name=\'childrenAges[]\']").forEach(sel=> params.append("childrenAges[]", sel.value));
params.append("hotelIds[]", "HOTEL_OMNI_2281");
const url="https://resort.canabravaresort.com.br/hotels/HOTEL_OMNI_2281?" + params.toString();
window.open(url, "_blank");
});