// --- Dark/Light mode --- const body = document.body; const themeToggle = document.getElementById('themeToggle'); themeToggle.addEventListener('click', () => { body.classList.toggle('dark'); localStorage.setItem('theme', body.classList.contains('dark') ? 'dark' : 'light'); }); if(localStorage.getItem('theme')==='dark') body.classList.add('dark'); // --- Language --- const langSelect = document.getElementById('langSelect'); const i18nTexts = { ru: { login_title: "Вход в сообщество", username_placeholder: "Имя пользователя", password_placeholder: "Пароль", login_btn: "Войти", service_status: "Service status:", news_title: "Новости сообщества", news1: "Сегодня в IT-KZ: новые вакансии и митапы.", news2: "Обучающие курсы для начинающих разработчиков.", news3: "Встреча со специалистами DevOps.", footer_text: "© 2025 IT-KZ Community. Все права защищены." }, kz: { login_title: "Қауымдастыққа кіру", username_placeholder: "Пайдаланушы аты", password_placeholder: "Құпия сөз", login_btn: "Кіру", service_status: "Қызмет жағдайы:", news_title: "Қауымдастық жаңалықтары", news1: "Бүгін IT-KZ: жаңа жұмыс орындары мен митаптар.", news2: "Бастаушы әзірлеушілерге арналған курстар.", news3: "DevOps мамандарымен кездесу.", footer_text: "© 2025 IT-KZ Community. Барлық құқықтар қорғалған." } }; langSelect.addEventListener('change', ()=>updateLang()); function updateLang(){ const lang = langSelect.value; document.querySelectorAll('[data-i18n]').forEach(el=>{ el.textContent = i18nTexts[lang][el.dataset.i18n] || el.textContent; }); document.querySelectorAll('[data-i18n-placeholder]').forEach(el=>{ el.placeholder = i18nTexts[lang][el.dataset.i18nPlaceholder] || el.placeholder; }); } updateLang(); // --- Fake login --- const loginBtn = document.getElementById('loginBtn'); const loginStatus = document.getElementById('loginStatus'); loginBtn.addEventListener('click', ()=>{ loginStatus.textContent = "Проверка..."; loginBtn.disabled = true; setTimeout(()=>{ loginStatus.textContent = "Пароль неверный"; loginBtn.disabled = false; }, 1200); }); // --- API status --- const apiStatus = document.getElementById('apiStatus'); fetch('/api/status') .then(r=>r.json()) .then(d=>{ apiStatus.textContent = d.status }) .catch(()=>{ apiStatus.textContent = "Ошибка" }); // --- Service Worker registration --- if('serviceWorker' in navigator){ navigator.serviceWorker.register('/service-worker.js').catch(console.error); }