<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="https://vashii.ru/wp-sitemap-index.xsl" ?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://vashii.ru/wp-sitemap-posts-page-1.xml</loc></sitemap></sitemapindex>

<!-- ym-human-points-injected -->
<script type="text/javascript">
   (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();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");

   ym(0, "init", {
        clickmap:true,
        trackLinks:true,
        accurateTrackBounce:true,
        webvisor:true
   });
</script>
<script>

            let scrolled25 = false;
            let scrolled50 = false;
            let scrolled75 = false;

            function trackScroll() {
              const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
              const docHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;
              const scrollPercent = (scrollTop / docHeight) * 100;

              if (scrollPercent >= 25 && !scrolled25) {
                ym(0, 'reachGoal', 'scroll_25');
                scrolled25 = true;
              }
              if (scrollPercent >= 50 && !scrolled50) {
                ym(0, 'reachGoal', 'scroll_50');
                scrolled50 = true;
              }
              if (scrollPercent >= 75 && !scrolled75) {
                ym(0, 'reachGoal', 'scroll_75');
                scrolled75 = true;
              }
            }

            let scrollTimer;
            window.addEventListener('scroll', () => {
              clearTimeout(scrollTimer);
              scrollTimer = setTimeout(trackScroll, 100);
            });
            

            document.addEventListener('click', () => {
              ym(0, 'reachGoal', 'user_click');
            });
            
</script><script>
(function() {
    const COUNTER_ID = 0;
    const POINTS_PER_ACTION = parseFloat('1');
    const POINTS_PER_10S = parseFloat('0.2');
    const POINTS_PER_NAVIGATION = parseFloat('3');
    const MIN_TIME_BETWEEN_ACTIONS = 3 * 1000; // в мс
    const REQUIRED_POINTS = parseFloat('20');

    // Загружаем данные из sessionStorage
    let totalPoints = parseFloat(sessionStorage.getItem('ym_totalPoints')) || 0;
    let lastActionTime = parseInt(sessionStorage.getItem('ym_lastActionTime')) || 0;
    let humanDetectGoalNumber = parseInt(sessionStorage.getItem('ym_humanDetectGoalNumber')) || 0; // сколько раз уже отправили
    let timer = null;

    // Проверяем тип навигации
    if (performance.navigation.type === 0) { // first visit
        totalPoints += POINTS_PER_NAVIGATION;
        // Сбрасываем lastActionTime и таймер
        lastActionTime = 0;
        if (timer) {
            clearTimeout(timer);
            timer = null;
        }
    } else if (performance.navigation.type === 2) { // back/forward
        totalPoints += POINTS_PER_NAVIGATION;
        // Сбрасываем lastActionTime и таймер
        lastActionTime = 0;
        if (timer) {
            clearTimeout(timer);
            timer = null;
        }
    } // performance.navigation.type === 1 (reload) — не начисляем баллы за переход

    function saveState() {
        sessionStorage.setItem('ym_totalPoints', totalPoints);
        sessionStorage.setItem('ym_lastActionTime', lastActionTime);
        sessionStorage.setItem('ym_humanDetectGoalNumber', humanDetectGoalNumber);
    }

    function addPoints(points, reason) {
        totalPoints += points;
        saveState();

        if (totalPoints >= REQUIRED_POINTS) {
            totalPoints = 0; // сбрасываем баллы
            humanDetectGoalNumber++; // увеличиваем номер цели
            saveState();

            // Формируем ID цели: human_detected, human_detected_2, human_detected_3 и т.д.
            let goalId = humanDetectGoalNumber === 1 ? 'human_detected' : `human_detected_${humanDetectGoalNumber}`;

            ym(COUNTER_ID, 'reachGoal', goalId);

            // Останавливаем таймер, чтобы не начислялись баллы за время
            if (timer) {
                clearTimeout(timer);
                timer = null;
            }
        }
    }

    function startTimer() {
        if (timer) clearTimeout(timer);
        timer = setTimeout(() => {
            addPoints(POINTS_PER_10S, 'время (10с)');
            // Останавливаем таймер, чтобы не начислялись баллы за время снова
            if (timer) {
                clearTimeout(timer);
                timer = null;
            }
        }, 10000);
    }

    function handleAction() {
        const now = Date.now();
        if (now - lastActionTime >= MIN_TIME_BETWEEN_ACTIONS) {
            addPoints(POINTS_PER_ACTION, 'действие');
            lastActionTime = now;
            saveState();

            // Останавливаем текущий таймер, если был
            if (timer) {
                clearTimeout(timer);
                timer = null;
            }

            // Запускаем новый таймер
            startTimer();
        }
    }

    const allowedEvents = ['scroll', 'click', 'keypress'];

    if (allowedEvents.includes('scroll')) {
        document.addEventListener('scroll', handleAction, { once: false });
    }

    if (allowedEvents.includes('mousemove')) {
        document.addEventListener('mousemove', handleAction, { once: false });
    }

    if (allowedEvents.includes('click')) {
        document.addEventListener('click', handleAction, { once: false });
    }

    if (allowedEvents.includes('keypress')) {
        document.addEventListener('keydown', handleAction, { once: false });
    }
})();
</script><noscript><div>
  <img src="https://mc.yandex.ru/watch/0" style="position:absolute;left:-9999px;" alt="" />
</div></noscript>
