// ===============================
// HOTEL BOOKING WEBSITE
// JavaScript
// ===============================
// Room Booking Popup
function showRoom(room, price) {
document.getElementById("popup").style.display = "flex";
document.getElementById("roomName").innerHTML =
room;
document.getElementById("roomPrice").innerHTML =
"Price: " + price + " / Night";
}
// Close Popup
function closePopup() {
document.getElementById("popup").style.display = "none";
}
// Close popup by clicking outside
window.onclick = function(event){
let popup = document.getElementById("popup");
if(event.target == popup){
popup.style.display = "none";
}
}
// ===============================
// Booking Form Validation
// ===============================
const bookingForm =
document.getElementById("bookingForm");
bookingForm.addEventListener("submit",function(e){
e.preventDefault();
alert(
"🎉 Congratulations!\n\nYour hotel reservation has been received successfully.\n\nOur customer service team will contact you shortly."
);
bookingForm.reset();
});
// ===============================
// Contact Form
// ===============================
const contactForm =
document.querySelector(".contact form");
contactForm.addEventListener("submit",function(e){
e.preventDefault();
alert(
"Thank you for contacting us.\nWe will reply to your message soon."
);
contactForm.reset();
});
// ===============================
// Hero Button Scroll
// ===============================
document.querySelector(".hero button")
.addEventListener("click",()=>{
document.querySelector(".booking")
.scrollIntoView({
behavior:"smooth"
});
});
// ===============================
// Navigation Smooth Scroll
// ===============================
document.querySelectorAll("nav a")
.forEach(anchor=>{
anchor.addEventListener("click",
function(e){
e.preventDefault();
let target =
document.querySelector(
this.getAttribute("href")
);
if(target){
target.scrollIntoView({
behavior:"smooth"
});
}
});
});
// ===============================
// Sticky Navbar Effect
// ===============================
window.addEventListener("scroll",()=>{
let nav = document.querySelector("nav");
if(window.scrollY > 100){
nav.style.background="#111";
nav.style.padding="15px 8%";
}
else{
nav.style.background="rgba(0,0,0,.55)";
nav.style.padding="20px 8%";
}
});
// ===============================
// Fade In Animation
// ===============================
const observer =
new IntersectionObserver(entries=>{
entries.forEach(entry=>{
if(entry.isIntersecting){
entry.target.classList.add("show");
}
});
});
document.querySelectorAll(
".card,.service-box div,.review"
).forEach(el=>{
observer.observe(el);
});
// ===============================
// Back To Top Button
// ===============================
const topBtn =
document.createElement("button");
topBtn.innerHTML="↑";
topBtn.id="topBtn";
document.body.appendChild(topBtn);
topBtn.style.position="fixed";
topBtn.style.bottom="30px";
topBtn.style.right="30px";
topBtn.style.padding="12px 18px";
topBtn.style.border="none";
topBtn.style.borderRadius="50%";
topBtn.style.cursor="pointer";
topBtn.style.display="none";
topBtn.style.background="#0d6efd";
topBtn.style.color="#fff";
topBtn.style.fontSize="20px";
window.addEventListener("scroll",()=>{
if(window.scrollY > 300){
topBtn.style.display="block";
}
else{
topBtn.style.display="none";
}
});
topBtn.onclick=function(){
window.scrollTo({
top:0,
behavior:"smooth"
});
};
// ===============================
// Dark Mode
// ===============================
const darkBtn =
document.createElement("button");
darkBtn.innerHTML="🌙";
darkBtn.id="darkMode";
document.body.appendChild(darkBtn);
darkBtn.style.position="fixed";
darkBtn.style.bottom="95px";
darkBtn.style.right="30px";
darkBtn.style.padding="12px";
darkBtn.style.border="none";
darkBtn.style.borderRadius="50%";
darkBtn.style.cursor="pointer";
darkBtn.style.fontSize="20px";
darkBtn.style.background="#111";
darkBtn.style.color="#fff";
darkBtn.onclick=function(){
document.body.classList.toggle("dark");
};
// ===============================
// Auto Image Slider
// ===============================
let gallery =
document.querySelectorAll(
".gallery-grid img"
);
let current = 0;
setInterval(()=>{
gallery.forEach(img=>{
img.style.opacity=".5";
});
gallery[current].style.opacity="1";
current++;
if(current>=gallery.length){
current=0;
}
},2000);
// ===============================
// Current Year
// ===============================
document.querySelector("footer p").innerHTML =
"© " +
new Date().getFullYear() +
" Luxury Hotel. All Rights Reserved.";