118 lines
4.3 KiB
JavaScript
118 lines
4.3 KiB
JavaScript
document.addEventListener("DOMContentLoaded", function () {
|
||
const burger = document.getElementById("burger");
|
||
const nav = document.getElementById("siteNav");
|
||
if (burger && nav) {
|
||
burger.addEventListener("click", function () {
|
||
nav.classList.toggle("open");
|
||
});
|
||
}
|
||
|
||
const dateBox = document.getElementById("todayDate");
|
||
if (dateBox) {
|
||
const now = new Date();
|
||
dateBox.textContent = now.toLocaleDateString("ru-RU", {
|
||
year: "numeric",
|
||
month: "long",
|
||
day: "numeric",
|
||
weekday: "long"
|
||
});
|
||
}
|
||
|
||
const slides = Array.from(document.querySelectorAll(".slide"));
|
||
if (slides.length > 0) {
|
||
let slideIndex = 0;
|
||
setInterval(function () {
|
||
slides[slideIndex].classList.remove("active");
|
||
slideIndex = (slideIndex + 1) % slides.length;
|
||
slides[slideIndex].classList.add("active");
|
||
}, 3000);
|
||
}
|
||
|
||
const newsModal = document.getElementById("newsModal");
|
||
const modalTitle = document.getElementById("modalTitle");
|
||
const modalText = document.getElementById("modalText");
|
||
const closeModalBtn = document.getElementById("closeModal");
|
||
const newsButtons = document.querySelectorAll(".open-news");
|
||
|
||
if (newsModal && modalTitle && modalText && closeModalBtn && newsButtons.length) {
|
||
newsButtons.forEach(function (btn) {
|
||
btn.addEventListener("click", function () {
|
||
modalTitle.textContent = btn.dataset.title || "Новость";
|
||
modalText.textContent = btn.dataset.full || "";
|
||
newsModal.classList.add("open");
|
||
});
|
||
});
|
||
|
||
closeModalBtn.addEventListener("click", function () {
|
||
newsModal.classList.remove("open");
|
||
});
|
||
|
||
newsModal.addEventListener("click", function (event) {
|
||
if (event.target === newsModal) {
|
||
newsModal.classList.remove("open");
|
||
}
|
||
});
|
||
}
|
||
|
||
const geoBtn = document.getElementById("geoBtn");
|
||
const geoResult = document.getElementById("geoResult");
|
||
if (geoBtn && geoResult) {
|
||
geoBtn.addEventListener("click", function () {
|
||
if (!navigator.geolocation) {
|
||
geoResult.textContent = "Геолокация не поддерживается.";
|
||
return;
|
||
}
|
||
geoResult.textContent = "Определяем координаты...";
|
||
navigator.geolocation.getCurrentPosition(
|
||
function (position) {
|
||
const lat = position.coords.latitude.toFixed(5);
|
||
const lon = position.coords.longitude.toFixed(5);
|
||
geoResult.textContent = "Ваши координаты: " + lat + ", " + lon;
|
||
},
|
||
function () {
|
||
geoResult.textContent = "Не удалось получить геолокацию.";
|
||
}
|
||
);
|
||
});
|
||
}
|
||
|
||
const bookingForm = document.getElementById("bookingForm");
|
||
const formResult = document.getElementById("formResult");
|
||
if (bookingForm && formResult) {
|
||
const saved = localStorage.getItem("bookingData");
|
||
if (saved) {
|
||
const parsed = JSON.parse(saved);
|
||
for (const key in parsed) {
|
||
const el = bookingForm.elements[key];
|
||
if (el) {
|
||
el.value = parsed[key];
|
||
}
|
||
}
|
||
}
|
||
|
||
bookingForm.addEventListener("submit", function (event) {
|
||
event.preventDefault();
|
||
const formData = new FormData(bookingForm);
|
||
const dataObj = {};
|
||
formData.forEach(function (value, key) {
|
||
dataObj[key] = value;
|
||
});
|
||
|
||
localStorage.setItem("bookingData", JSON.stringify(dataObj));
|
||
formResult.innerHTML =
|
||
"<h3>Результат обработки формы</h3>" +
|
||
"<p><b>Имя:</b> " + (dataObj.firstName || "") + "</p>" +
|
||
"<p><b>Фамилия:</b> " + (dataObj.lastName || "") + "</p>" +
|
||
"<p><b>Email:</b> " + (dataObj.email || "") + "</p>" +
|
||
"<p><b>Телефон:</b> " + (dataObj.phone || "") + "</p>" +
|
||
"<p><b>Город вылета:</b> " + (dataObj.city || "") + "</p>" +
|
||
"<p><b>Направление:</b> " + (dataObj.direction || "") + "</p>" +
|
||
"<p><b>Дата старта:</b> " + (dataObj.startDate || "") + "</p>" +
|
||
"<p><b>Дата возврата:</b> " + (dataObj.endDate || "") + "</p>" +
|
||
"<p><b>Количество человек:</b> " + (dataObj.people || "") + "</p>" +
|
||
"<p><b>Бюджет:</b> " + (dataObj.budget || "") + " руб.</p>" +
|
||
"<p><b>Комментарий:</b> " + (dataObj.comment || "") + "</p>";
|
||
});
|
||
}
|
||
});
|