(function () { "use strict"; // --- АВТОМАТИЧЕСКОЕ ПЕРЕКЛЮЧЕНИЕ ТЕМЫ (Dark/Light) --- const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); function updateTheme(e) { const theme = e.matches ? 'dark' : 'light'; document.documentElement.setAttribute('data-bs-theme', theme); // При смене темы обновляем и логотип updateLogo(); } // --- ЛОГОТИП И СКРОЛЛ --- function updateLogo() { const logoImg = document.getElementById('logo-img'); const navbar = document.getElementById('main-navbar'); if (!logoImg || !navbar) return; const isDark = darkModeMediaQuery.matches; // Используем window.scrollY для определения прокрутки // Если прокрутили больше 50px, уменьшаем шапку const isScrolled = window.scrollY > 50; if (isScrolled) { navbar.classList.add('navbar-scrolled'); logoImg.src = isDark ? logoImg.dataset.srcDarkCompact : logoImg.dataset.srcLightCompact; } else { navbar.classList.remove('navbar-scrolled'); logoImg.src = isDark ? logoImg.dataset.srcDark : logoImg.dataset.srcLight; } } // Инициализация темы и логотипа updateTheme(darkModeMediaQuery); darkModeMediaQuery.addEventListener('change', updateTheme); // Инициализация логотипа при загрузке и скролле document.addEventListener('DOMContentLoaded', updateLogo); window.addEventListener('scroll', updateLogo); // --- КУКИ И СЧЕТЧИКИ --- const COOKIE_KEY = 'cookie_consent'; const TTL_MS = 90 * 24 * 60 * 60 * 1000; // 90 дней const MAILRU_ID = "3734603"; const YANDEX_ID = "106310834"; function loadCounters() { // console.log("Загрузка счетчиков..."); try { // Mail.ru var _tmr = window._tmr || (window._tmr = []); _tmr.push({id: MAILRU_ID, type: "pageView", start: (new Date()).getTime()}); (function (d, w, id) { if (d.getElementById(id)) return; var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id; ts.src = "https://top-fwz1.mail.ru/js/code.js"; var f = d.getElementsByTagName("script")[0]; f.parentNode.insertBefore(ts, f); })(document, window, "topmailru-code"); // Яндекс.Метрика (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); window.ym(YANDEX_ID, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); } catch (e) { console.error("Ошибка загрузки счетчиков:", e); } } function checkConsent() { try { const stored = localStorage.getItem(COOKIE_KEY); if (!stored) return false; const data = JSON.parse(stored); const now = Date.now(); if (now - data.timestamp > TTL_MS) { localStorage.removeItem(COOKIE_KEY); return false; } return true; } catch (e) { return false; } } // Инициализация куки-баннера document.addEventListener('DOMContentLoaded', function() { const banner = document.getElementById('cookie-banner'); const acceptButton = document.getElementById('cookie-accept'); if (banner && acceptButton) { if (checkConsent()) { loadCounters(); } else { banner.style.display = 'block'; } acceptButton.addEventListener('click', function () { const data = { value: true, timestamp: Date.now() }; localStorage.setItem(COOKIE_KEY, JSON.stringify(data)); banner.style.display = 'none'; loadCounters(); }); } }); // Глобальная функция для отправки целей window.sendGoal = function(goalName) { if (!checkConsent()) return; // console.log("Sending goal:", goalName); try { if (window._tmr) { window._tmr.push({ id: MAILRU_ID, type: "reachGoal", goal: goalName, value: 1 }); } if (typeof window.ym === 'function') { window.ym(YANDEX_ID, 'reachGoal', goalName); } } catch (e) { console.error("Ошибка отправки цели:", e); } }; })();