Files
hotel777/public/scripts.js
2026-05-02 19:53:35 +05:00

149 lines
6.4 KiB
JavaScript
Raw 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.
const translations = {
ru: {
nav_about: "О нас ",
nav_food: "Кухня ",
nav_location: "Где мы ",
nav_booking: "Бронь ",
hero_title: "Добро пожаловать ",
hero_subtitle: "Ваш идеальный отдых на берегу Черного моря ",
hero_btn: "Забронировать номер ",
about_title: "Море в шаговой доступности ",
about_subtitle: "Бескрайние пляжи Гудауты ",
about_text: "Наш отель расположен в живописном селе Мгудзырхуа. Мы предлагаем комфортные номера и прямой выход к морю. ",
food_title: "Вкус Абхазии ",
food_subtitle: "Домашняя кухня из местных продуктов ",
food_text: "Почувствуйте гостеприимство! Свежайший сыр сулугуни, мамалыга, овощи с грядки и домашнее вино. ",
loc_title: "Удобное расположение ",
book_title: "Забронировать отдых ",
label_name: "Ваше имя ",
label_phone: "Номер телефона ",
ph_name: "Иван Иванов ",
fz152: "Согласие на обработку данных (152-ФЗ) ",
book_btn: "Отправить заявку ",
footer_text: "© 2026 Hotel 777. Абхазия, Мгудзырхуа. ",
cookie_text: "Мы используем файлы cookie для улучшения работы сайта. ",
cookie_btn: "Согласен ",
alert_msg: "Спасибо! Ваша заявка принята. "
},
en: {
nav_about: "About Us",
nav_food: "Cuisine",
nav_location: "Where We Are",
nav_booking: "Booking",
hero_title: "Welcome",
hero_subtitle: "Your perfect getaway on the Black Sea coast",
hero_btn: "Book a room",
about_title: "The sea within walking distance",
about_subtitle: "The endless beaches of Gudauta",
about_text: "Our hotel is located in the picturesque village of Mgudzyrkhua. We offer comfortable rooms and direct access to the sea.",
food_title: "The Taste of Abkhazia",
food_subtitle: "Homemade cuisine from local ingredients",
food_text: "Feel the hospitality! The freshest suluguni cheese, mamalyga, garden-fresh vegetables, and homemade wine.",
loc_title: "Convenient location",
book_title: "Book your holiday",
label_name: "Your name",
label_phone: "Phone number",
ph_name: "Ivan Ivanov",
fz152: "Consent to data processing (152-FZ RF)",
book_btn: "Send request",
footer_text: "© 2026 Hotel 777. Abkhazia, Mgudzyrkhua.",
cookie_text: "We use cookies to improve the website.",
cookie_btn: "Agree",
alert_msg: "Thank you! Your request has been accepted."
},
ab: {
nav_about: "Ҳара ҳхәыҷра",
nav_food: "Аџьа",
nav_location: "Ҳара иҟоу",
nav_booking: "Аҭагалара",
hero_title: "Бзиала шәаабеит",
hero_subtitle: "Амшын Еиқәа аԥшазы уара уидеалтә уахыҧсыра",
hero_btn: "Аҭаӡара аҭагалатә",
about_title: "Амшын ашьапыла ихьчо",
about_subtitle: "Гәдоуҭа иаҵәаку аҧшаҳәақәа",
about_text: "Ҳара ахәҭа ҳҟоуп агәаҟаратә ақыҭа Мгудзырхуа. Ҳара ҳааҭауеит комфорттә аҭаӡарақәа нас амшын аҟныҵла аҩаӡара.",
food_title: "Аԥсны аҵәа",
food_subtitle: "Аџьа ҭаацәарантәи аҭыԥтә афасаҟәақәа рыла",
food_text: "Ашьааҭра шәаазыр! Ибжьа асулугуни, абаста, аҵиаа ҵаҟатәи нас аҭаацәарантәи аҵаа.",
loc_title: "Каратә аҭыԥкаара",
book_title: "Ахыҧсыра аҭагалара",
label_name: "Шәхы",
label_phone: "Ателефон аномер",
ph_name: "Иван Иванов",
fz152: "Аинформациа аҟаҵаразы аиҭаҵра (152-ФЗ РФ)",
book_btn: "Азаявка аҭаҭатә",
footer_text: "© 2026 Hotel 777. Аԥсны, Мгудзырхуа.",
cookie_text: "Ҳара асаит аҟаҵара аҵәаҵәаразы cookie-файлқәа ҳхылаҩуеит.",
cookie_btn: "Аиҭаҵра",
alert_msg: "Иҭабуп! Шәзаявка алырҵеит."
}
};
document.addEventListener("DOMContentLoaded", () => {
// Циклическая смена фона (мимикрия)
const hero = document.querySelector('.hero');
const images = ['img/h777.webp', 'img/h777o.webp', 'img/h777l.webp', 'img/h777z.webp'];
let currentImg = 0;
const setHeroBackground = () => {
const img = new Image();
img.src = images[currentImg];
img.onload = () => {
hero.style.backgroundImage = `linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('${img.src}')`;
};
};
// Запуск первого изображения
setHeroBackground();
// Смена каждые 15 секунды
setInterval(() => {
currentImg = (currentImg + 1) % images.length;
setHeroBackground();
}, 15000);
// Локализация
const langSelect = document.getElementById('langSwitch');
let currentLang = localStorage.getItem('siteLang') || 'ru';
const updateText = (lang) => {
document.querySelectorAll('[data-i18n]').forEach(el => {
const key = el.getAttribute('data-i18n');
if (translations[lang][key]) el.innerHTML = translations[lang][key];
});
document.querySelectorAll('[data-i18n-ph]').forEach(el => {
const key = el.getAttribute('data-i18n-ph');
if (translations[lang][key]) el.placeholder = translations[lang][key];
});
localStorage.setItem('siteLang', lang);
};
langSelect.value = currentLang;
updateText(currentLang);
langSelect.onchange = (e) => updateText(e.target.value);
// Cookie
if (!localStorage.getItem('cookiesAccepted')) {
setTimeout(() => document.getElementById('cookieBanner').classList.add('show'), 2000);
}
// Форма
document.getElementById('bookingForm').onsubmit = (e) => {
e.preventDefault();
alert(translations[localStorage.getItem('siteLang') || 'ru'].alert_msg);
};
// Анимации при скролле
const obs = new IntersectionObserver(entries => {
entries.forEach(en => { if(en.isIntersecting) en.target.style.animationPlayState = 'running'; });
});
document.querySelectorAll('.animate').forEach(el => {
el.style.animationPlayState = 'paused';
obs.observe(el);
});
});
function acceptCookies() {
localStorage.setItem('cookiesAccepted', 'true');
document.getElementById('cookieBanner').classList.remove('show');
}