Подтвердите email

Введите email, чтобы получить доступ к форме регистрации

Согласие на обработку персональных данных
(function() { 'use strict'; let captchaSolved = false; let activeForm = null; let activeButton = null; // SVG иконки (эндокринология) const icons = { 'thyroid': ``, 'insulin': ``, 'glucose': ``, 'hormones': `` }; const figures = [ { id: 'thyroid', svg: icons.thyroid, name: 'Щитовидная железа' }, { id: 'insulin', svg: icons.insulin, name: 'Инсулин' }, { id: 'glucose', svg: icons.glucose, name: 'Глюкометр' }, { id: 'hormones', svg: icons.hormones, name: 'Гормоны' } ]; // Создаём HTML капчи (скрытой) const captchaHTML = ` `; // Добавляем HTML на страницу document.body.insertAdjacentHTML('beforeend', captchaHTML); const captchaDiv = document.getElementById('endocaptcha'); const optionsDiv = document.getElementById('captchaOptions'); const messageDiv = document.getElementById('captchaMessage'); let currentForm = null; let currentButton = null; let currentTargetId = null; function shuffleArray(arr) { for (let i = arr.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [arr[i], arr[j]] = [arr[j], arr[i]]; } return arr; } function showCaptcha(form, button) { currentForm = form; currentButton = button; // Выбираем случайную целевую фигуру const shuffled = shuffleArray([...figures]); const target = shuffled[0]; const options = shuffled.slice(0, 3); currentTargetId = target.id; // Создаём кнопки optionsDiv.innerHTML = ''; options.forEach(opt => { const btn = document.createElement('button'); btn.innerHTML = opt.svg; btn.style.cssText = ` background: #f0f0f0; border: 2px solid #ddd; border-radius: 12px; padding: 20px; cursor: pointer; transition: all 0.2s; color: #666; `; btn.onmouseenter = () => { btn.style.background = '#e0e0e0'; btn.style.transform = 'scale(1.02)'; }; btn.onmouseleave = () => { btn.style.background = '#f0f0f0'; btn.style.transform = 'scale(1)'; }; btn.onclick = () => checkAnswer(opt.id, btn); optionsDiv.appendChild(btn); }); captchaDiv.style.display = 'flex'; } function checkAnswer(selectedId, btnElement) { if (selectedId === currentTargetId) { // Правильно messageDiv.innerHTML = '✓ Правильно! Отправляем форму...'; captchaSolved = true; // Сохраняем в sessionStorage try { sessionStorage.setItem('endocaptcha_solved', 'true'); } catch(e) {} setTimeout(() => { captchaDiv.style.display = 'none'; messageDiv.innerHTML = ''; // Отправляем форму if (currentButton) { currentButton.click(); } }, 1000); } else { // Неправильно messageDiv.innerHTML = '✗ Неправильно. Попробуйте ещё раз.'; btnElement.style.background = '#ffebee'; btnElement.style.borderColor = '#f44336'; setTimeout(() => { btnElement.style.background = '#f0f0f0'; btnElement.style.borderColor = '#ddd'; messageDiv.innerHTML = ''; }, 1500); } } // Проверяем, была ли уже решена капча в этой сессии try { if (sessionStorage.getItem('endocaptcha_solved') === 'true') { captchaSolved = true; } } catch(e) {} // Перехватываем клики по кнопкам отправки формы Tilda document.addEventListener('click', function(event) { // Ищем кнопку отправки (разные варианты селекторов Tilda) const submitBtn = event.target.closest('button[type="submit"], .t-submit, input[type="submit"], button:has(> .t-submit)'); if (submitBtn && !captchaSolved) { const form = submitBtn.closest('form'); if (form) { event.preventDefault(); event.stopPropagation(); showCaptcha(form, submitBtn); } } }, true); // Также перехватываем submit события document.addEventListener('submit', function(event) { const form = event.target; const submitBtn = form.querySelector('button[type="submit"], .t-submit, input[type="submit"]'); if (submitBtn && !captchaSolved) { event.preventDefault(); event.stopPropagation(); showCaptcha(form, submitBtn); } }, true); console.log('Эндокринологическая капча загружена'); })();