<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Домен продаётся</title>
    <link rel="icon" type="image/svg+xml" href="/favicon.svg">
    <script type="application/ld+json" id="schema-data"></script>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            display: flex; align-items: center; justify-content: center;
            min-height: 100vh; background: #f5f7fa; color: #1a1a2e;
        }
        .card {
            background: #fff; border-radius: 16px; padding: 24px 40px 48px;
            text-align: center; box-shadow: 0 4px 24px rgba(0,0,0,0.08);
            max-width: 420px; width: 100%;
        }
        h1 { font-size: 17px; font-weight: 600; color: #666; margin-bottom: 2px; }
        .domain-hero {
            font-size: 40px; font-weight: 800; letter-spacing: -0.5px;
            margin-bottom: 6px; overflow-wrap: break-word; word-break: normal;
            line-height: 1.4; padding-bottom: 6px;
            background: linear-gradient(90deg, #1a73e8, #e74c3c);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        @media (min-width: 769px) {
            .domain-hero { font-weight: 700; -webkit-font-smoothing: antialiased; }
        }
        .price { font-size: 36px; font-weight: 700; margin: 8px 0 20px; display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
        .price-old { color: #999; text-decoration: line-through; font-size: 26px; }
        .price-sale { color: #e74c3c; }
        .price-percent { color: #e74c3c; font-size: 18px; font-weight: 700; }
        .buttons { display: flex; flex-direction: column; gap: 12px; }
        .btn {
            display: block; padding: 14px 24px; border-radius: 10px;
            text-decoration: none; font-size: 16px; font-weight: 600;
            transition: background 0.2s, transform 0.1s;
        }
        .btn:hover { transform: translateY(-1px); }
        .btn-primary {
            background: #1a73e8; color: #fff;
        }
        .btn-primary:hover { background: #1557b0; }
        .btn-secondary {
            background: #e8f0fe; color: #1a73e8;
        }
        .btn-secondary:hover { background: #d2e3fc; }
        .domain { color: #666; font-size: 14px; margin-bottom: 4px; }
        .contacts { margin-top: 32px; padding-top: 24px; border-top: 1px solid #eee; }
        .contacts .label { font-size: 16px; font-weight: 700; color: #1a1a2e; margin-bottom: 12px; }
        .contacts p { font-size: 15px; color: #444; margin-bottom: 6px; }
        .contacts a { color: #1a73e8; text-decoration: none; }
        .contacts a:hover { text-decoration: underline; }
        .views { margin-top: 24px; font-size: 14px; color: #888; }
        .clients { margin-top: 32px; padding-top: 24px; border-top: 1px solid #eee; text-align: center; }
        .clients .label { font-size: 16px; font-weight: 700; color: #1a1a2e; margin-bottom: 12px; }
        .clients .ticker-clients { font-size: 15px; color: #e74c3c; font-weight: 600; min-height: 24px; }
        .clients .ticker-clients .client-item { opacity: 0; transition: opacity 0.6s; }
        .clients .ticker-clients .client-item.show { opacity: 1; }
        .sold { margin-top: 32px; padding-top: 24px; border-top: 1px solid #eee; text-align: left; }
        .sold .label { font-size: 16px; font-weight: 700; color: #1a1a2e; margin-bottom: 12px; text-align: center; }
        .sold .years { display: flex; flex-wrap: wrap; gap: 4px 8px; justify-content: center; }
        .sold details { flex: 0 0 auto; max-width: 100%; overflow: hidden; }
        .sold details[open] { flex: 1 1 100%; }
        .sold summary { font-size: 14px; font-weight: 600; color: #1a73e8; cursor: pointer; padding: 6px 0; }
        .sold summary:hover { color: #1557b0; }
        .sold .domain-list { display: flex; flex-wrap: wrap; gap: 4px 12px; padding: 8px 0 4px 16px; overflow: hidden; }
        .sold .domain-list span { font-size: 13px; color: #555; overflow-wrap: break-word; word-break: break-all; }
        .ticker-wrap{overflow:hidden;background:#fff;border-radius:10px;padding:10px 0;display:flex;align-items:center;margin-top:20px}.ticker-label{white-space:nowrap;font-weight:600;color:#1a1a2e;margin-right:12px;font-size:14px;background:#d4edda;padding:4px 12px;border-radius:6px;flex-shrink:0}.ticker-scroll{white-space:nowrap;overflow:hidden;flex:1;min-width:0;align-self:center}.ticker-scroll span{display:inline-block;animation:ticker 60s linear infinite}.ticker-scroll a{font-size:14px;color:#2563eb;text-decoration:none;margin:0 20px 0 0}.ticker-scroll a:hover{text-decoration:underline}@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.discount-badge{display:inline-flex;align-items:center;gap:6px;background:#fff3cd;border:1px solid #ffeeba;border-radius:8px;padding:8px 16px;font-size:13px;color:#856404;margin-bottom:14px}.chart-wrap{margin-top:20px;padding-top:20px;border-top:1px solid #eee;text-align:center}.chart-wrap .label{font-size:16px;font-weight:700;color:#1a1a2e;margin-bottom:10px}.chart-wrap canvas{width:100%;height:175px;display:block}.pitch{margin-top:20px;padding-top:20px;border-top:1px solid #eee;text-align:left;font-size:13px;color:#444;line-height:1.65}.pitch p{margin-bottom:14px}.pitch p:first-of-type{margin-bottom:4px}.pitch .chart-wrap{border-top:none;margin-top:4px;padding-top:0}.pitch strong{color:#1a1a2e}.pitch em{color:#e74c3c;font-style:normal;font-weight:600}.pitch .red{color:#e74c3c;font-weight:700}.pitch ul{list-style:none;margin:0 0 14px 0;background:#f8f9fa;border-radius:10px;padding:12px 16px}.pitch ul li{position:relative;padding:3px 0 3px 24px;font-size:13px;line-height:1.55}.pitch ul li::before{content:"✓";position:absolute;left:0;color:#28a745;font-weight:700;font-size:14px}
    .pitch .price-inline { font-size: inherit; font-weight: 700; color: #e74c3c; }
.pitch .faq { margin-top: 20px; padding-top: 20px; border-top: 1px solid #eee; }
.pitch .faq .qa { margin-bottom: 14px; }
.pitch .faq .qa summary.q { font-weight: 700; color: #1a1a2e; margin-bottom: 4px; cursor: pointer; }
.pitch .faq .qa summary.q::-webkit-details-marker { display: none; }
.pitch .faq .qa summary.q::before { content: "› "; font-size: 18px; line-height: 1; }
.pitch .faq .qa[open] summary.q::before { content: "› "; font-size: 18px; line-height: 1; }
.pitch .faq .qa .a { color: #444; padding-left: 14px; margin-top: 4px; }
.facts-carousel { margin-top: 16px; padding-top: 16px; border-top: 1px solid #eee; }
.facts-label { font-size: 13px; font-weight: 700; color: #1a1a2e; margin-bottom: 8px; }
.facts-slides { position: relative; background: #f8f9fa; border-radius: 10px; }
.fact-item { position: absolute; top: 0; left: 0; right: 0; opacity: 0; transform: translateY(6px); transition: opacity .5s ease, transform .5s ease; font-size: 13px; line-height: 1.6; color: #444; padding: 14px 16px; pointer-events: none; }
.fact-item b { color: #1a1a2e; font-weight: 700; }
.fact-item.active { opacity: 1; transform: translateY(0); position: relative; }
.facts-dots { display: flex; justify-content: center; gap: 6px; margin-top: 10px; }
.facts-dots button { width: 8px; height: 8px; border-radius: 50%; border: none; background: #ccc; cursor: pointer; padding: 0; transition: background .2s; }
.facts-dots button.active { background: #1a73e8; }
.strip { border-top: 1px solid #e5e7eb; margin: 18px 0; }
    </style>
</head>
<body>
    <div class="card">
        <div class="domain-hero" id="domain-hero"></div>
        <h1 id="message">продаётся за</h1>
        <div class="price" id="price">
            <span id="price-sale"></span>
            <span id="price-old"></span>
            <span id="price-percent"></span>
        </div>
        <div class="discount-badge" id="discount-info">
            <span>Скидка действует до <b id="countdown-date"></b></span>
        </div>
        <div class="buttons">
            <a href="#" id="link-reg" class="btn btn-primary">Купить в магазине Рег.ру</a>
            <p style="margin-top:8px;font-size:13px;color:#888;">Также доступен в <a href="#" id="link-nic" style="color:#1a73e8;">магазине Руцентра</a></p>
        </div>
        <div class="ticker-wrap"><span class="ticker-label">Недавно проданы:</span><div class="ticker-scroll" id="ticker-scroll"></div></div>
        <div class="pitch">
            <p>Домен был впервые зарегистрирован <strong id="reg-first-date">до 2008 года</strong> <small id="reg-small">(5% доменов — до 2010)</small>. Миллионы других доменов ещё свободны, а этот уже занят.</p>
            <div class="chart-wrap">
                <p class="label">Число доменов в зоне .ru</p>
                <canvas id="chart" width="340" height="175"></canvas>
            </div>
			<p id="reg-registered-p" style="display:none;">Имя было куплено на аукционе освобождающихся доменов <strong id="reg-registered-date"></strong>. <span id="reg-age-p">Сайт с нуля сегодня или на домене с возрастом <strong id="reg-age"></strong>?</span></p>
            <div class="facts-carousel">
                <p class="facts-label">Почему это важно</p>
                <div class="facts-slides" id="facts-slides"></div>
                <div class="facts-dots" id="facts-dots"></div>
            </div>
            <div class="strip"></div>
            <p>Вы зашли на <strong id="domain-in-pitch2"></strong>, ассоциировав это имя со своим делом. Можно потратить <strong>27% от среднемесячной зарплаты в Москве</strong> и купить своё представительство в национальной доменной зоне, которое:</p>
            <ul>
                <li>не зависит от политики соцсетей и маркетплейсов</li>
                <li>не подвержено влиянию внешних факторов и форсмажоров</li>
                <li>всегда будет принадлежать вам <small>(при условии ежегодного продления, продление по стандартной цене регистраторов Рег.ру или Руцентр)</small></li>
            </ul>
            <p>&nbsp;</p>
            <p>Можно сэкономить от 26 до 20% зп и взять свободный домен или домен в другой зоне, добавив префиксы, суффиксы, х<span class="red">**</span>фиксы и обманывать себя, что взял «Почти то же», первоначально зайдя на другое имя.</p>
            <p><span class="price-inline" id="price-ref"></span> — это много или мало? Это медиана в магазине доменов №1 в РФ для лотов, находящихся в продаже в т.ч. и с 2015 г. Или в 2 раза ниже медианы для доменов, поступающих в продажу, когда вы читаете эту страницу.</p>
            <div class="faq">
                <details class="qa">
                    <summary class="q">Возможен ли торг?</summary>
                    <div class="a">К сожалению, нет. Домены приобретаются на аукционах освобождающихся доменов (цены можно посмотреть <a href="https://expired.ru/history/" target="_blank">здесь</a>) и, с учётом продления всего портфеля, на 2026 год дают 10,48% годовых.</div>
                </details>
                <details class="qa">
                    <summary class="q">Какие гарантии?</summary>
                    <div class="a">Вы покупаете домен непосредственно на сайте регистраторов Рег.ру (20 лет на рынке, 48% доменов .ru на обслуживании, 1.3 млн. активных клиентов) или Руцентра (26 лет на рынке, более 250000 компаний на обслуживании), которые выступают гарантом в сделке.</div>
                </details>
                <details class="qa">
                    <summary class="q">Когда я получу домен?</summary>
                    <div class="a">Процесс полного переоформления домена занимает несколько минут. Если домен находится у регистратора reg.ru, а вы купили его на сайте nic.ru, переоформление займёт 1 рабочий день.</div>
                </details>
                <details class="qa">
                    <summary class="q">Сколько будет стоить продление?</summary>
                    <div class="a">Домен продлевается по стандартной цене. 1424 ₽ в Рег.ру и 2609 ₽ в Руцентре.</div>
                </details>
                <details class="qa">
                    <summary class="q">Можно купить на юрлицо по безналу?</summary>
                    <div class="a">Да, конечно. Вы можете купить его как на физлицо, так и на юрлицо.</div>
                </details>
                <details class="qa">
                    <summary class="q">Какие способы оплаты?</summary>
                    <div class="a">Банковская карта, безналичный перевод, ЮMoney, SberPay, Система Быстрых Платежей, наличные и другие.</div>
                </details>
            </div>
        </div>
        <div class="sold">
            <p class="label">Уже проданы в</p>
            
<div class="years" id="sold-years">
            </div>
        </div>
        <div class="clients">
            <p class="label">Мои домены выбирают</p>
            <div class="ticker-clients" id="ticker-clients"></div>
        </div>
        <div class="contacts">
            <p class="label">Контакты</p>
            <p><a href="mailto:mail@webadresa.ru">mail@webadresa.ru</a></p>
            <p><a href="https://wa.me/79601117776" target="_blank">Whatsapp</a> · <a href="tg://resolve?phone=79601117776">Telegram</a> +79601117776</p>
        </div>
        <div class="views">
            <p>Ещё <span id="viewers"></span> человек просматривали этот домен сегодня</p>
        </div>
    </div>
    <script>
        var domain = window.location.hostname;
        var priceEl = document.getElementById('price');
        var msgEl = document.getElementById('message');
        document.getElementById('link-reg').href = 'https://reg.ru/domain/shop/lot/' + domain + '?rlink=reflink-12298121';
document.getElementById('link-nic').href = 'https://nic.ru/shop/' + domain;
        document.getElementById('domain-in-pitch2').textContent = domain;

        function prettyDomain(d) {
            var parts = d.split('.');
            var out = parts[0].split('-').join('-<wbr>');
            for (var i = 1; i < parts.length; i++) {
                out += '<wbr>.' + parts[i];
            }
            return out;
        }
        document.getElementById('domain-hero').innerHTML = prettyDomain(domain);

        function loadPrice() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'https://01x.ru/price.json?t=' + Date.now(), true);
            xhr.onload = function() {
                if (xhr.status === 200) {
                    try {
                        var data = JSON.parse(xhr.responseText);
                        var p = data.price;
                        var oldEl = document.getElementById('price-old');
                        var saleEl = document.getElementById('price-sale');
                        var percentEl = document.getElementById('price-percent');
                        msgEl.textContent = 'продаётся за';
                        document.title = 'Домен ' + domain + ' продаётся за ' + p + ' ₽';

                        var xhr2 = new XMLHttpRequest();
                        xhr2.open('GET', 'https://01x.ru/price_sale.json?t=' + Date.now(), true);
                        xhr2.onload = function() {
                            if (xhr2.status === 200) {
                                try {
                                    var ds = JSON.parse(xhr2.responseText);
                                    var s = ds.price_sale;
                                    if (s > 0) {
                                        saleEl.textContent = s + ' ₽';
                                        saleEl.className = 'price-sale';
                                        oldEl.textContent = p + ' ₽';
                                        oldEl.className = 'price-old';
                                        var disc = Math.round((p - s) / p * 100);
                                        percentEl.textContent = '-' + disc + '%';
                                        percentEl.className = 'price-percent';
                                        document.title = 'Домен ' + domain + ' продаётся за ' + s + ' ₽';
                                        showDiscountDate();
                                        document.getElementById('price-ref').textContent = s + ' ₽';
                                        updateSchema(s, p);
                                        return;
                                    }
                                } catch(e) { console.error('sale JSON parse:', e); }
                            }
                            saleEl.textContent = p + ' ₽';
                            saleEl.className = '';
                            oldEl.textContent = '';
                            oldEl.className = '';
                            percentEl.textContent = '';
                            percentEl.className = '';
                            document.getElementById('discount-info').style.display = 'none';
                            document.getElementById('price-ref').textContent = p + ' ₽';
                            updateSchema(0, p);
                        };
                        xhr2.onerror = function() {
                            saleEl.textContent = p + ' ₽';
                            saleEl.className = '';
                            oldEl.textContent = '';
                            oldEl.className = '';
                            percentEl.textContent = '';
                            percentEl.className = '';
                            document.getElementById('discount-info').style.display = 'none';
                            document.getElementById('price-ref').textContent = p + ' ₽';
                            updateSchema(0, p);
                        };
                        xhr2.send();
                    } catch(e) { console.error('price JSON parse:', e); }
                } else {
                    console.error('price HTTP:', xhr.status);
                }
            };
            xhr.onerror = function() { console.error('price network error'); updateSchema(0, 0); };
            xhr.send();
        }


        var clientsData = [
            'Mastercard (idservice.ru)',
            'Газпром (eco-gas.ru)',
            'Газпром-Медиа Холдинг (gpmedia.ru)',
            'Норникель (online-city.ru)',
            'Mail.Ru (oktech.ru)',
            'Яндекс (pricelab.ru)',
            'VK (vkdesign.ru)',
            'O\'STIN (o-style.ru)',
            'ВЭБ.РФ (pro-school.ru)',
            'Спасские ворота (spasskievorota.ru)',
            'Военторг (armrus.ru)',
            'Lavazza (lavazzablue.ru)',
            'Navigator (navigatorgroup.ru)',
            'Российская Академия Наук (med-education.ru)',
            'Фонд поддержки национальных проектов (malaya-rodina.ru)',
            'reStore (top-toy.ru)',
            'Южниигипрогаз (ungg.ru)',
            'A101 (easy-busy.ru)',
            'Isopan (sandwich-panel.ru)',
            'Деметра-Холдинг (dholding.ru)',
            'ТАСС (sovinformburo.ru)',
            'ЕВРАЗ (steelbuilding.ru)',
            'Гиперспорт (gipersport.ru)',
            'Нацпроект Сохраним лес (eco-projects.ru)',
            'Совет по туризму Санкт-Петербурга (ct-group.ru)',
            'Национальная Транспортная Компания (нтк.рф)',
            'Федерация профессиональных коучей (procoach.ru)',
            'Russian Society of Cardiology (congress-center.ru)',
            'Балтмаш (baltmash.ru)'
        ];

        var clientsTicker = document.getElementById('ticker-clients');
        var cIdx = 0, cBatch = 0;

        function shuffleClients() {
            for (var i = clientsData.length - 1; i > 0; i--) {
                var j = Math.floor(Math.random() * (i + 1));
                var t = clientsData[i]; clientsData[i] = clientsData[j]; clientsData[j] = t;
            }
        }

        function showNextClient() {
            if (cBatch >= clientsData.length) {
                shuffleClients();
                cIdx = 0;
                cBatch = 0;
            }
            var items = clientsTicker.querySelectorAll('.client-item');
            for (var i = 0; i < items.length; i++) items[i].classList.remove('show');
            setTimeout(function() {
                clientsTicker.innerHTML = '';
                var span = document.createElement('span');
                span.className = 'client-item';
                span.textContent = clientsData[cIdx];
                clientsTicker.appendChild(span);
                setTimeout(function(el) { el.classList.add('show'); }, 50, span);
                cIdx++;
                cBatch++;
            }, 600);
        }

        shuffleClients();
        showNextClient();
        setInterval(showNextClient, 1500);

        function loadViewers() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'https://01x.ru/viewers/viewers.php?domain=' + encodeURIComponent(domain) + '&t=' + Date.now(), true);
            xhr.onload = function() {
                if (xhr.status === 200) {
                    try {
                        var data = JSON.parse(xhr.responseText);
                        document.getElementById('viewers').textContent = (data.views || 0) + 1;
                    } catch(e) { console.error('viewers JSON parse:', e); }
                }
            };
            xhr.onerror = function() { console.error('viewers network error'); };
            xhr.send();
        }
loadViewers();

        function pluralYears(n) {
            n = Math.abs(n) % 100;
            var n1 = n % 10;
            if (n > 10 && n < 20) return n + ' лет';
            if (n1 === 1) return n + ' год';
            if (n1 >= 2 && n1 <= 4) return n + ' года';
            return n + ' лет';
        }

        function loadRegDate() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'https://01x.ru/regdate.php?domain=' + encodeURIComponent(domain) + '&t=' + Date.now(), true);
            xhr.onload = function() {
                if (xhr.status === 200) {
                    try {
                        var d = JSON.parse(xhr.responseText);
                        if (d.first) {
                            document.getElementById('reg-first-date').textContent = d.first;
                            document.getElementById('reg-small').style.display = 'none';
                        }
                        if (d.registered) {
                            var parts = d.registered.split('.');
                            var y = parseInt(parts[2], 10);
                            var age = new Date().getFullYear() - y;
                            document.getElementById('reg-registered-date').textContent = d.registered;
                            document.getElementById('reg-registered-p').style.display = 'block';
                            if (y && age >= 1) {
                                document.getElementById('reg-age').textContent = pluralYears(age);
                                document.getElementById('reg-age-p').style.display = 'inline';
                            }
                        }
                    } catch(e) { console.error('regdate JSON parse:', e); }
                }
            };
            xhr.onerror = function() { console.error('regdate network error'); };
            xhr.send();
        }
        loadRegDate();

        function buildFaqSchema() {
            var qas = document.querySelectorAll('.faq .qa');
            var mainEntity = [];
            for (var i = 0; i < qas.length; i++) {
                var q = qas[i].querySelector('summary.q');
                var a = qas[i].querySelector('.a');
                if (q && a && q.textContent.trim() && a.textContent.trim()) {
                    mainEntity.push({
                        '@type': 'Question',
                        name: q.textContent.trim(),
                        acceptedAnswer: { '@type': 'Answer', text: a.textContent.trim() }
                    });
                }
            }
            if (!mainEntity.length) return null;
            return {
                '@context': 'https://schema.org',
                '@type': 'FAQPage',
                mainEntity: mainEntity
            };
        }

        function updateSchema(salePrice, regularPrice) {
            var price = salePrice > 0 ? salePrice : regularPrice;
            var product = {
                '@type': 'Product',
                name: 'Домен ' + domain + ' продаётся',
                description: 'Продажа доменного имени ' + domain + ' в зоне .ru. Имя зарегистрировано с 2008 года. Переоформление занимает несколько минут, покупка через Рег.ру или Руцентр.',
                url: 'https://' + domain + '/',
                brand: { '@type': 'Brand', name: domain }
            };
            if (price > 0) {
                var d = new Date();
                d.setFullYear(d.getFullYear() + 1);
                var yyyy = d.getFullYear();
                var mm = String(d.getMonth() + 1).padStart(2, '0');
                var dd = String(d.getDate()).padStart(2, '0');
                product.offers = {
                    '@type': 'Offer',
                    priceCurrency: 'RUB',
                    price: price,
                    priceValidUntil: yyyy + '-' + mm + '-' + dd,
                    availability: 'https://schema.org/InStock',
                    url: 'https://reg.ru/domain/shop/lot/' + domain + '?rlink=reflink-12298121',
                    seller: { '@type': 'Organization', name: 'Рег.ру' }
                };
            }
            var graph = [product];
            var faq = buildFaqSchema();
            if (faq) graph.push(faq);
            var schema = { '@context': 'https://schema.org', '@graph': graph };
            document.getElementById('schema-data').textContent = JSON.stringify(schema);
        }

        function showDiscountDate() {
            var d = new Date();
            d.setDate(d.getDate() + 1);
            var dd = String(d.getDate()).padStart(2, '0');
            var mm = String(d.getMonth() + 1).padStart(2, '0');
            var yyyy = d.getFullYear();
            document.getElementById('countdown-date').innerHTML = dd + '.' + mm + '.' + yyyy;
        }

        loadPrice();

        function loadTicker() {
            var el = document.getElementById('ticker-scroll');
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'https://01x.ru/last.json?t=' + Date.now(), true);
            xhr.onload = function() {
                if (xhr.status === 200) {
                    try {
                        var domains = JSON.parse(xhr.responseText);
                        if (!domains || !domains.length) { console.warn('ticker: empty list'); return; }
                        var html1 = '', html2 = '';
                        for (var i = 0; i < domains.length; i++) {
                            var d = domains[i];
                            var link = '<a href="http://' + d + '" target="_blank">' + d + '</a>';
                            html1 += link;
                            html2 += link;
                        }
                        el.innerHTML = '<span>' + html1 + '</span><span>' + html2 + '</span>';
                    } catch(e) { console.error('ticker JSON parse:', e); }
                } else {
                    console.error('ticker HTTP:', xhr.status);
                }
            };
            xhr.onerror = function() { console.error('ticker network error'); };
            xhr.send();
        }
        loadTicker();

        function loadSold() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'https://01x.ru/sold.json?t=' + Date.now(), true);
            xhr.onload = function() {
                if (xhr.status === 200) {
                    try {
                        var data = JSON.parse(xhr.responseText);
                        var years = Object.keys(data).sort().reverse();
                        var container = document.getElementById('sold-years');
                        container.innerHTML = '';
                        years.forEach(function(year) {
                            var details = document.createElement('details');
                            var summary = document.createElement('summary');
                            summary.textContent = year;
                            details.appendChild(summary);
                            var div = document.createElement('div');
                            div.className = 'domain-list';
                            (data[year] || []).forEach(function(d) {
                                var span = document.createElement('span');
                                span.textContent = d;
                                div.appendChild(span);
                            });
                            details.appendChild(div);
                            container.appendChild(details);
                        });
                    } catch(e) { console.error('sold JSON parse:', e); }
                }
            };
            xhr.onerror = function() { console.error('sold network error'); };
            xhr.send();
        }
        loadSold();

        var factsData = [
            '<b>77% потребителей</b> считают доменное имя главным фактором при экспресс-оценке надежности бренда в сети. При этом <b>47%</b> назвали простоту и легкое написание домена ключевым условием для совершения покупки (<b>AtomRadar</b>).',
            'Домены с понятным, чистым именем и в «родной» для рынка зоне (.com для мира, .ru для России) <b>на 33% лучше запоминаются пользователями</b>, чем адреса со сложными конструкциями или в экзотических зонах (<b>GrowthBadger</b>).',
            'Сайты с авторитетными, «чистыми» доменами имеют значительно более высокий показатель кликабельности (<b>CTR</b>) в поисковой выдаче, так как вызывают подсознательное доверие (<b>SiteGuru</b>).',
            'По <b>официальной методологии оценки Рунета</b>, премиальный домен — это не просто строчка в браузере, а <b>законный нематериальный актив вашей компании</b>. Деньги, вложенные в него, увеличивают балансовую стоимость вашего бизнеса, и их можно официально учесть при аудите или продаже компании.'
        ];

        var factsSlides = document.getElementById('facts-slides');
        var factsDots = document.getElementById('facts-dots');
        var factIdx = 0;

        factsData.forEach(function(t, i) {
            var div = document.createElement('div');
            div.className = 'fact-item';
            div.innerHTML = t;
            factsSlides.appendChild(div);
            var dot = document.createElement('button');
            dot.className = i === 0 ? 'active' : '';
            dot.setAttribute('aria-label', 'Факт ' + (i + 1));
            (function(idx) {
                dot.onclick = function() { showFact(idx); };
            })(i);
            factsDots.appendChild(dot);
        });

        var factItems = factsSlides.querySelectorAll('.fact-item');
        var factMaxH = 0;
        for (var fi = 0; fi < factItems.length; fi++) {
            if (factItems[fi].offsetHeight > factMaxH) factMaxH = factItems[fi].offsetHeight;
        }
        factsSlides.style.minHeight = factMaxH + 'px';

        function showFact(idx) {
            factIdx = idx;
            var items = factsSlides.querySelectorAll('.fact-item');
            var dots = factsDots.querySelectorAll('button');
            for (var i = 0; i < items.length; i++) items[i].classList.toggle('active', i === idx);
            for (var j = 0; j < dots.length; j++) dots[j].classList.toggle('active', j === idx);
        }

        showFact(0);
        setInterval(function() { showFact((factIdx + 1) % factsData.length); }, 10000);

        function drawChart() {
            var c = document.getElementById('chart');
            var dpr = window.devicePixelRatio || 1;
            var w = 340, h = 175;
            c.width = w * dpr;
            c.height = h * dpr;
            c.style.width = w + 'px';
            c.style.height = h + 'px';
            var ctx = c.getContext('2d');
            ctx.scale(dpr, dpr);
            var data = [
                { year: '1994', val: 1 },
                { year: '2007', val: 1000000 },
                { year: '2009', val: 2000000 },
                { year: '2010', val: 3000000 },
                { year: '2012', val: 4000000 },
                { year: '2015', val: 5000000 },
                { year: '2026', val: 6000000 }
            ];
            var labels = ['1', '1 млн', '2 млн', '3 млн', '4 млн', '5 млн', '6 млн'];
            var maxVal = 6000000;
            var pad = { top: 16, bottom: 20, left: 10, right: 30 };
            var chartW = w - pad.left - pad.right;
            var chartH = h - pad.top - pad.bottom;
            var barW = Math.min(30, chartW / data.length * 0.5);
            var gap = chartW / data.length;
            var duration = 15000, startTime = null;

            function animate(time) {
                if (!startTime) startTime = time;
                var progress = Math.min(1, (time - startTime) / duration);
                ctx.clearRect(0, 0, w, h);

                for (var i = 0; i < data.length; i++) {
                    var x = pad.left + gap * i + (gap - barW) / 2;
                    var curH = (data[i].val / maxVal) * chartH * progress;
                    var y = pad.top + chartH - curH;

                    ctx.fillStyle = '#1a73e8';
                    ctx.fillRect(x, y, barW, curH);

                    ctx.fillStyle = '#555';
                    ctx.font = '11px -apple-system, sans-serif';
                    ctx.textAlign = 'center';
                    ctx.fillText(data[i].year, x + barW / 2, h - pad.bottom + 14);

                    ctx.fillStyle = '#888';
                    ctx.font = '10px -apple-system, sans-serif';
                    ctx.fillText(labels[i], x + barW / 2, y - 4);
                }

                if (progress < 1) requestAnimationFrame(animate);
            }

            requestAnimationFrame(animate);
        }

        setTimeout(drawChart, 100);
    </script>
</body>
</html>