Files
labs/labWeb/kt_3/script.js
2026-05-02 20:27:02 +05:00

118 lines
4.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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>";
});
}
});