(function () { 'use strict'; var TEST_PATH_RE = /\/(%D1%82%D0%B5%D1%81%D1%82-%D0%BD%D0%B0%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D1%82%D0%B5%D0%B1%D0%B5-%D1%81%D0%BF%D1%80%D1%83%D1%82|тест-насколько-подходит-тебе-спрут)(\/|$|\?|#)/i; var DIAG_PATH_RE = /\/besplatnaya-diagnostika(\/|$|\?|#)/i; var TEST_TEXT_RE = /(пройти\s+(тест|диагностик)|диагностик|узнайте\s+за\s+2\s*минут|подходит\s+ли\s+вам\s+sprut|подходит\s+ли\s+вам\s+спрут|бесплатн\w*\s+разбор|получить\s+бесплатный|записаться\s+на\s+бесплатн)/i; var CPC_AUTO_OPEN_KEY = 'sprut_cpc_quiz_auto_opened'; function norm(text) { return (text || '').replace(/\s+/g, ' ').trim().toLowerCase(); } function getUtm(name) { try { return new URLSearchParams(window.location.search).get(name) || ''; } catch (e) { return ''; } } function isCpcTraffic() { var medium = getUtm('utm_medium').toLowerCase(); var source = getUtm('utm_source').toLowerCase(); var campaign = getUtm('utm_campaign').toUpperCase(); if (medium === 'cpc') return true; if (source === 'yandex' && medium === 'cpc') return true; if (campaign.indexOf('SPRUT_') === 0) return true; return false; } function isTestHref(href) { if (!href) return false; var h = href.trim(); if (h === '#sprut-quiz-popup' || h === '#sprut-quiz') return true; if (!h || h === '#' || h.indexOf('javascript:') === 0) return false; if (/sprut-test\.html/i.test(h)) return true; try { var url = new URL(h, window.location.origin); if (url.origin !== window.location.origin) return false; var path = decodeURIComponent(url.pathname).toLowerCase(); if (path.indexOf('тест-насколько-подходит-тебе-спрут') >= 0) return true; if (TEST_PATH_RE.test(url.pathname)) return true; if (DIAG_PATH_RE.test(url.pathname)) return true; } catch (e) { if (/тест-насколько-подходит-тебе-спрут/i.test(h)) return true; if (/besplatnaya-diagnostika/i.test(h)) return true; } return false; } function isTestTrigger(el) { if (!el || el.closest('#sprut-quiz-popup-modal')) return false; if (el.getAttribute('data-sprut-quiz-popup') === '0') return false; var tag = (el.tagName || '').toLowerCase(); var text = norm(el.textContent); var href = tag === 'a' ? el.getAttribute('href') : ''; if (el.classList && (el.classList.contains('sprut-btn-test') || el.classList.contains('sprut-open-quiz'))) { return true; } if (href && isTestHref(href)) return true; if (tag === 'button' && (el.id === 'sprut-quiz-start' || el.classList.contains('sq-start-btn'))) { return true; } if (TEST_TEXT_RE.test(text)) { if (tag === 'button') return true; if (tag === 'a' && href) { return isTestHref(href) || href === '#' || href.indexOf('#') === 0 || DIAG_PATH_RE.test(href); } } return false; } function wantsAutoStart(el) { return true; } function openPopupFromClick(el) { if (window.openSprutQuizPopup) window.openSprutQuizPopup(wantsAutoStart(el)); } function rewriteQuizLinks() { document.querySelectorAll('a[href]').forEach(function (a) { var href = a.getAttribute('href') || ''; if (!isTestHref(href)) return; a.setAttribute('href', '#sprut-quiz-popup'); a.setAttribute('data-sprut-quiz-popup', '1'); }); } function maybeAutoOpenQuizForCpc() { if (!isCpcTraffic()) return; if (!window.openSprutQuizPopup) return; try { if (sessionStorage.getItem(CPC_AUTO_OPEN_KEY) === '1') return; sessionStorage.setItem(CPC_AUTO_OPEN_KEY, '1'); } catch (e) {} window.setTimeout(function () { if (window.openSprutQuizPopup) window.openSprutQuizPopup(true); }, 450); } document.addEventListener( 'click', function (e) { var el = e.target.closest('a, button'); if (!isTestTrigger(el)) return; e.preventDefault(); e.stopPropagation(); openPopupFromClick(el); }, true ); document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && window.closeSprutQuizPopup) window.closeSprutQuizPopup(); }); document.addEventListener('DOMContentLoaded', function () { var modal = document.getElementById('sprut-quiz-popup-modal'); if (!modal) return; modal.querySelectorAll('.sprut-quiz-popup-backdrop, .sprut-quiz-popup-close').forEach(function (btn) { btn.addEventListener('click', function () { if (window.closeSprutQuizPopup) window.closeSprutQuizPopup(); }); }); rewriteQuizLinks(); maybeAutoOpenQuizForCpc(); }); })();