Spaces:
Running
Running
| <html lang="ru"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Собери свою связку</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| background-color: #0f172a; | |
| color: #e2e8f0; | |
| overflow-x: hidden; | |
| } | |
| .glass-card { | |
| background: rgba(15, 23, 42, 0.7); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .neon-border { | |
| box-shadow: 0 0 10px rgba(59, 130, 246, 0.5); | |
| } | |
| .progress-step { | |
| width: 25%; | |
| } | |
| .progress-step.active { | |
| background-color: #3b82f6; | |
| } | |
| .progress-step.completed { | |
| background-color: #10b981; | |
| } | |
| .option-card { | |
| transition: all 0.3s ease; | |
| } | |
| .option-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); | |
| } | |
| .option-card.selected { | |
| border-color: #3b82f6; | |
| box-shadow: 0 0 15px rgba(59, 130, 246, 0.5); | |
| } | |
| .fade-in { | |
| animation: fadeIn 0.5s ease-in-out; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .slide-in-right { | |
| animation: slideInRight 0.5s ease-in-out; | |
| } | |
| @keyframes slideInRight { | |
| from { opacity: 0; transform: translateX(50px); } | |
| to { opacity: 1; transform: translateX(0); } | |
| } | |
| .pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); } | |
| 70% { box-shadow: 0 0 0 10px rgba(59, 130, 246, 0); } | |
| 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen flex flex-col"> | |
| <!-- Progress Bar --> | |
| <div class="w-full h-2 bg-slate-800 relative"> | |
| <div id="progress-bar" class="absolute top-0 left-0 h-full bg-blue-500 transition-all duration-500 ease-in-out" style="width: 0%"></div> | |
| <div class="absolute top-0 left-0 w-full h-full flex"> | |
| <div class="progress-step h-full" data-step="1"></div> | |
| <div class="progress-step h-full" data-step="2"></div> | |
| <div class="progress-step h-full" data-step="3"></div> | |
| <div class="progress-step h-full" data-step="4"></div> | |
| </div> | |
| </div> | |
| <!-- Main Container --> | |
| <div class="flex-1 container mx-auto px-4 py-8 flex flex-col items-center justify-center"> | |
| <!-- Stage 1: Introduction --> | |
| <div id="stage-1" class="w-full max-w-3xl text-center fade-in"> | |
| <h1 class="text-4xl md:text-5xl font-bold mb-6 bg-gradient-to-r from-blue-400 to-purple-500 bg-clip-text text-transparent"> | |
| Сможешь собрать свою первую рабочую связку? | |
| </h1> | |
| <p class="text-lg text-slate-300 mb-8"> | |
| Соберите идеальную арбитражную связку из готовых компонентов и узнайте её потенциал | |
| </p> | |
| <div class="glass-card rounded-xl p-8 mb-8"> | |
| <div class="flex flex-wrap justify-center gap-4"> | |
| <div class="w-16 h-16 rounded-lg bg-slate-800 flex items-center justify-center"> | |
| <i class="fas fa-question text-2xl text-slate-400"></i> | |
| </div> | |
| <div class="w-16 h-16 rounded-lg bg-slate-800 flex items-center justify-center"> | |
| <i class="fas fa-question text-2xl text-slate-400"></i> | |
| </div> | |
| <div class="w-16 h-16 rounded-lg bg-slate-800 flex items-center justify-center"> | |
| <i class="fas fa-question text-2xl text-slate-400"></i> | |
| </div> | |
| <div class="w-16 h-16 rounded-lg bg-slate-800 flex items-center justify-center"> | |
| <i class="fas fa-question text-2xl text-slate-400"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <button id="start-btn" class="px-8 py-3 bg-blue-600 hover:bg-blue-700 rounded-lg font-medium text-white transition-all pulse"> | |
| Начать сборку <i class="fas fa-arrow-right ml-2"></i> | |
| </button> | |
| </div> | |
| <!-- Stage 2: Vertical Selection --> | |
| <div id="stage-2" class="w-full max-w-3xl hidden"> | |
| <h2 class="text-3xl font-bold mb-6 text-center">Выберите вертикаль</h2> | |
| <p class="text-slate-300 mb-8 text-center">Какой нише будет посвящена ваша связка?</p> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="gambling"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-blue-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-dice text-blue-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Gambling</h3> | |
| </div> | |
| <p class="text-slate-400">Высокий ROI, но требует особых подходов к трафику</p> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="crypto"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-purple-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-coins text-purple-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Crypto</h3> | |
| </div> | |
| <p class="text-slate-400">Перспективно, но требует глубоких знаний продукта</p> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="nutra"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-green-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-pills text-green-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Nutra</h3> | |
| </div> | |
| <p class="text-slate-400">Стабильный спрос, хорошие конверсии</p> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="dating"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-pink-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-heart text-pink-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Dating</h3> | |
| </div> | |
| <p class="text-slate-400">Широкий охват, но высокая конкуренция</p> | |
| </div> | |
| </div> | |
| <div class="mt-8 flex justify-center"> | |
| <button id="back-to-1" class="px-6 py-2 bg-slate-700 hover:bg-slate-600 rounded-lg font-medium mr-4"> | |
| <i class="fas fa-arrow-left mr-2"></i> Назад | |
| </button> | |
| <button id="next-to-3" class="px-6 py-2 bg-blue-600 hover:bg-blue-700 rounded-lg font-medium" disabled> | |
| Далее <i class="fas fa-arrow-right ml-2"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Stage 3: GEO Selection --> | |
| <div id="stage-3" class="w-full max-w-3xl hidden"> | |
| <h2 class="text-3xl font-bold mb-6 text-center">Выберите GEO</h2> | |
| <p class="text-slate-300 mb-8 text-center">Где сейчас жарко? <span id="hot-geo" class="text-blue-400 font-medium">IN, BR, RO, TR</span></p> | |
| <div class="grid grid-cols-2 md:grid-cols-4 gap-4"> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500 flex flex-col items-center" data-value="IN"> | |
| <div class="text-4xl mb-3">🇮🇳</div> | |
| <h3 class="text-xl font-semibold mb-2">Индия</h3> | |
| <p class="text-sm text-slate-400 text-center">ROI: +120-180%</p> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500 flex flex-col items-center" data-value="BR"> | |
| <div class="text-4xl mb-3">🇧🇷</div> | |
| <h3 class="text-xl font-semibold mb-2">Бразилия</h3> | |
| <p class="text-sm text-slate-400 text-center">ROI: +90-150%</p> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500 flex flex-col items-center" data-value="RO"> | |
| <div class="text-4xl mb-3">🇷🇴</div> | |
| <h3 class="text-xl font-semibold mb-2">Румыния</h3> | |
| <p class="text-sm text-slate-400 text-center">ROI: +80-130%</p> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500 flex flex-col items-center" data-value="TR"> | |
| <div class="text-4xl mb-3">🇹🇷</div> | |
| <h3 class="text-xl font-semibold mb-2">Турция</h3> | |
| <p class="text-sm text-slate-400 text-center">ROI: +70-120%</p> | |
| </div> | |
| </div> | |
| <div class="mt-8 flex justify-center"> | |
| <button id="back-to-2" class="px-6 py-2 bg-slate-700 hover:bg-slate-600 rounded-lg font-medium mr-4"> | |
| <i class="fas fa-arrow-left mr-2"></i> Назад | |
| </button> | |
| <button id="next-to-4" class="px-6 py-2 bg-blue-600 hover:bg-blue-700 rounded-lg font-medium" disabled> | |
| Далее <i class="fas fa-arrow-right ml-2"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Stage 4: Traffic Source --> | |
| <div id="stage-4" class="w-full max-w-3xl hidden"> | |
| <h2 class="text-3xl font-bold mb-6 text-center">Выберите источник трафика</h2> | |
| <p class="text-slate-300 mb-8 text-center">Новичкам советуем <span class="text-blue-400 font-medium">FB или TikTok</span></p> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="facebook"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-12 h-12 rounded-full bg-blue-800 flex items-center justify-center mr-4"> | |
| <i class="fab fa-facebook-f text-blue-300 text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-semibold">Facebook Ads</h3> | |
| <p class="text-sm text-slate-400">Высокий CTR, хорошая конверсия</p> | |
| </div> | |
| </div> | |
| <div class="bg-slate-800 rounded-lg p-3 text-sm"> | |
| <div class="flex justify-between mb-1"> | |
| <span>Сложность:</span> | |
| <span class="text-yellow-400">Средняя</span> | |
| </div> | |
| <div class="flex justify-between"> | |
| <span>Бюджет:</span> | |
| <span class="text-green-400">$300+</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="tiktok"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-12 h-12 rounded-full bg-black flex items-center justify-center mr-4"> | |
| <i class="fab fa-tiktok text-white text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-semibold">TikTok Ads</h3> | |
| <p class="text-sm text-slate-400">Молодая аудитория, виральный потенциал</p> | |
| </div> | |
| </div> | |
| <div class="bg-slate-800 rounded-lg p-3 text-sm"> | |
| <div class="flex justify-between mb-1"> | |
| <span>Сложность:</span> | |
| <span class="text-green-400">Низкая</span> | |
| </div> | |
| <div class="flex justify-between"> | |
| <span>Бюджет:</span> | |
| <span class="text-green-400">$200+</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="google"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-12 h-12 rounded-full bg-red-800 flex items-center justify-center mr-4"> | |
| <i class="fab fa-google text-red-300 text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-semibold">Google Ads</h3> | |
| <p class="text-sm text-slate-400">Поисковый трафик, высокая интенция</p> | |
| </div> | |
| </div> | |
| <div class="bg-slate-800 rounded-lg p-3 text-sm"> | |
| <div class="flex justify-between mb-1"> | |
| <span>Сложность:</span> | |
| <span class="text-yellow-400">Высокая</span> | |
| </div> | |
| <div class="flex justify-between"> | |
| <span>Бюджет:</span> | |
| <span class="text-green-400">$500+</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="push"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-12 h-12 rounded-full bg-orange-800 flex items-center justify-center mr-4"> | |
| <i class="fas fa-bell text-orange-300 text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-semibold">Push трафик</h3> | |
| <p class="text-sm text-slate-400">Дешевый трафик, средняя конверсия</p> | |
| </div> | |
| </div> | |
| <div class="bg-slate-800 rounded-lg p-3 text-sm"> | |
| <div class="flex justify-between mb-1"> | |
| <span>Сложность:</span> | |
| <span class="text-green-400">Низкая</span> | |
| </div> | |
| <div class="flex justify-between"> | |
| <span>Бюджет:</span> | |
| <span class="text-green-400">$100+</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-8 flex justify-center"> | |
| <button id="back-to-3" class="px-6 py-2 bg-slate-700 hover:bg-slate-600 rounded-lg font-medium mr-4"> | |
| <i class="fas fa-arrow-left mr-2"></i> Назад | |
| </button> | |
| <button id="next-to-5" class="px-6 py-2 bg-blue-600 hover:bg-blue-700 rounded-lg font-medium" disabled> | |
| Далее <i class="fas fa-arrow-right ml-2"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Stage 5: Landing Type --> | |
| <div id="stage-5" class="w-full max-w-3xl hidden"> | |
| <h2 class="text-3xl font-bold mb-6 text-center">Выберите прокладку</h2> | |
| <p class="text-slate-300 mb-8 text-center">Какой формат креатива будете использовать?</p> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="landing"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-blue-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-window-maximize text-blue-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Лендинг</h3> | |
| </div> | |
| <p class="text-slate-400 mb-4">Классический одностраничник с оффером</p> | |
| <div class="bg-slate-800 rounded-lg p-3 h-32 flex items-center justify-center"> | |
| <div class="w-full h-20 bg-gradient-to-r from-blue-900 to-blue-700 rounded flex items-center justify-center"> | |
| <span class="text-xs text-blue-200">Пример лендинга</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="quiz"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-purple-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-question-circle text-purple-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Квиз</h3> | |
| </div> | |
| <p class="text-slate-400 mb-4">Интерактивный опрос с подводкой к офферу</p> | |
| <div class="bg-slate-800 rounded-lg p-3 h-32 flex items-center justify-center"> | |
| <div class="w-full h-20 bg-gradient-to-r from-purple-900 to-purple-700 rounded flex items-center justify-center"> | |
| <span class="text-xs text-purple-200">Пример квиза</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="fake-shop"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-green-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-store text-green-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Fake Shop</h3> | |
| </div> | |
| <p class="text-slate-400 mb-4">Имитация интернет-магазина с выгодным предложением</p> | |
| <div class="bg-slate-800 rounded-lg p-3 h-32 flex items-center justify-center"> | |
| <div class="w-full h-20 bg-gradient-to-r from-green-900 to-green-700 rounded flex items-center justify-center"> | |
| <span class="text-xs text-green-200">Пример магазина</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="option-card glass-card rounded-xl p-6 cursor-pointer border border-transparent hover:border-blue-500" data-value="fake-win"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-yellow-900 flex items-center justify-center mr-3"> | |
| <i class="fas fa-trophy text-yellow-400"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Fake Win</h3> | |
| </div> | |
| <p class="text-slate-400 mb-4">Имитация выигрыша с необходимостью регистрации</p> | |
| <div class="bg-slate-800 rounded-lg p-3 h-32 flex items-center justify-center"> | |
| <div class="w-full h-20 bg-gradient-to-r from-yellow-900 to-yellow-700 rounded flex items-center justify-center"> | |
| <span class="text-xs text-yellow-200">Пример выигрыша</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-8 flex justify-center"> | |
| <button id="back-to-4" class="px-6 py-2 bg-slate-700 hover:bg-slate-600 rounded-lg font-medium mr-4"> | |
| <i class="fas fa-arrow-left mr-2"></i> Назад | |
| </button> | |
| <button id="show-result" class="px-6 py-2 bg-blue-600 hover:bg-blue-700 rounded-lg font-medium" disabled> | |
| Показать результат <i class="fas fa-arrow-right ml-2"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Stage 6: Final Result --> | |
| <div id="stage-6" class="w-full max-w-3xl hidden"> | |
| <h2 class="text-3xl font-bold mb-6 text-center">Ваша связка готова!</h2> | |
| <p class="text-slate-300 mb-8 text-center">Вот что у вас получилось:</p> | |
| <div class="glass-card rounded-xl p-8 mb-8 neon-border"> | |
| <div class="flex flex-wrap justify-center gap-4 mb-8"> | |
| <div class="w-16 h-16 rounded-lg bg-blue-900 flex flex-col items-center justify-center"> | |
| <i id="vertical-icon" class="fas fa-dice text-2xl text-blue-400 mb-1"></i> | |
| <span id="vertical-label" class="text-xs">Gambling</span> | |
| </div> | |
| <div class="w-16 h-16 rounded-lg bg-purple-900 flex flex-col items-center justify-center"> | |
| <i id="geo-icon" class="fas fa-globe text-2xl text-purple-400 mb-1"></i> | |
| <span id="geo-label" class="text-xs">IN</span> | |
| </div> | |
| <div class="w-16 h-16 rounded-lg bg-green-900 flex flex-col items-center justify-center"> | |
| <i id="source-icon" class="fab fa-tiktok text-2xl text-green-400 mb-1"></i> | |
| <span id="source-label" class="text-xs">TikTok</span> | |
| </div> | |
| <div class="w-16 h-16 rounded-lg bg-yellow-900 flex flex-col items-center justify-center"> | |
| <i id="landing-icon" class="fas fa-trophy text-2xl text-yellow-400 mb-1"></i> | |
| <span id="landing-label" class="text-xs">Fake Win</span> | |
| </div> | |
| </div> | |
| <div class="bg-slate-800 rounded-lg p-6"> | |
| <h3 class="text-xl font-semibold mb-4">Детали связки:</h3> | |
| <div class="space-y-3"> | |
| <div class="flex justify-between"> | |
| <span class="text-slate-400">Вертикаль:</span> | |
| <span id="final-vertical" class="font-medium">Gambling</span> | |
| </div> | |
| <div class="flex justify-between"> | |
| <span class="text-slate-400">GEO:</span> | |
| <span id="final-geo" class="font-medium">Индия (IN)</span> | |
| </div> | |
| <div class="flex justify-between"> | |
| <span class="text-slate-400">Источник трафика:</span> | |
| <span id="final-source" class="font-medium">TikTok Ads</span> | |
| </div> | |
| <div class="flex justify-between"> | |
| <span class="text-slate-400">Прокладка:</span> | |
| <span id="final-landing" class="font-medium">Fake Win</span> | |
| </div> | |
| <div class="flex justify-between pt-3 border-t border-slate-700"> | |
| <span class="text-slate-400">Потенциальный ROI:</span> | |
| <span id="final-roi" class="font-bold text-green-400">+163%</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="text-center mb-8"> | |
| <p class="text-slate-300 mb-4">Хотите реализовать эту связку на практике?</p> | |
| <button id="course-btn" class="px-8 py-3 bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700 rounded-lg font-medium text-white transition-all mb-4"> | |
| Хочу реализовать её на курсе <i class="fas fa-rocket ml-2"></i> | |
| </button> | |
| <button id="restart-btn" class="px-6 py-2 bg-slate-700 hover:bg-slate-600 rounded-lg font-medium"> | |
| Собрать другую связку <i class="fas fa-redo ml-2"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <script> | |
| // State management | |
| const state = { | |
| vertical: null, | |
| geo: null, | |
| source: null, | |
| landing: null | |
| }; | |
| // DOM elements | |
| const stages = { | |
| 1: document.getElementById('stage-1'), | |
| 2: document.getElementById('stage-2'), | |
| 3: document.getElementById('stage-3'), | |
| 4: document.getElementById('stage-4'), | |
| 5: document.getElementById('stage-5'), | |
| 6: document.getElementById('stage-6') | |
| }; | |
| const progressBar = document.getElementById('progress-bar'); | |
| const progressSteps = document.querySelectorAll('.progress-step'); | |
| // Navigation buttons | |
| document.getElementById('start-btn').addEventListener('click', () => navigateTo(2)); | |
| document.getElementById('back-to-1').addEventListener('click', () => navigateTo(1)); | |
| document.getElementById('next-to-3').addEventListener('click', () => navigateTo(3)); | |
| document.getElementById('back-to-2').addEventListener('click', () => navigateTo(2)); | |
| document.getElementById('next-to-4').addEventListener('click', () => navigateTo(4)); | |
| document.getElementById('back-to-3').addEventListener('click', () => navigateTo(3)); | |
| document.getElementById('next-to-5').addEventListener('click', () => navigateTo(5)); | |
| document.getElementById('back-to-4').addEventListener('click', () => navigateTo(4)); | |
| document.getElementById('show-result').addEventListener('click', () => navigateTo(6)); | |
| document.getElementById('restart-btn').addEventListener('click', resetAll); | |
| // Option selection | |
| document.querySelectorAll('#stage-2 .option-card').forEach(card => { | |
| card.addEventListener('click', function() { | |
| document.querySelectorAll('#stage-2 .option-card').forEach(c => c.classList.remove('selected')); | |
| this.classList.add('selected'); | |
| state.vertical = this.getAttribute('data-value'); | |
| document.getElementById('next-to-3').disabled = false; | |
| // Update icon preview | |
| const iconMap = { | |
| 'gambling': 'fa-dice', | |
| 'crypto': 'fa-coins', | |
| 'nutra': 'fa-pills', | |
| 'dating': 'fa-heart' | |
| }; | |
| document.getElementById('vertical-icon').className = `fas ${iconMap[state.vertical]} text-2xl text-blue-400 mb-1`; | |
| document.getElementById('vertical-label').textContent = this.querySelector('h3').textContent; | |
| }); | |
| }); | |
| document.querySelectorAll('#stage-3 .option-card').forEach(card => { | |
| card.addEventListener('click', function() { | |
| document.querySelectorAll('#stage-3 .option-card').forEach(c => c.classList.remove('selected')); | |
| this.classList.add('selected'); | |
| state.geo = this.getAttribute('data-value'); | |
| document.getElementById('next-to-4').disabled = false; | |
| // Update geo preview | |
| const geoLabels = { | |
| 'IN': 'Индия', | |
| 'BR': 'Бразилия', | |
| 'RO': 'Румыния', | |
| 'TR': 'Турция' | |
| }; | |
| document.getElementById('geo-label').textContent = state.geo; | |
| document.getElementById('final-geo').textContent = `${geoLabels[state.geo]} (${state.geo})`; | |
| }); | |
| }); | |
| document.querySelectorAll('#stage-4 .option-card').forEach(card => { | |
| card.addEventListener('click', function() { | |
| document.querySelectorAll('#stage-4 .option-card').forEach(c => c.classList.remove('selected')); | |
| this.classList.add('selected'); | |
| state.source = this.getAttribute('data-value'); | |
| document.getElementById('next-to-5').disabled = false; | |
| // Update source preview | |
| const iconMap = { | |
| 'facebook': 'fa-facebook-f', | |
| 'tiktok': 'fa-tiktok', | |
| 'google': 'fa-google', | |
| 'push': 'fa-bell' | |
| }; | |
| const labelMap = { | |
| 'facebook': 'Facebook', | |
| 'tiktok': 'TikTok', | |
| 'google': 'Google', | |
| 'push': 'Push' | |
| }; | |
| document.getElementById('source-icon').className = `fab ${iconMap[state.source]} text-2xl text-green-400 mb-1`; | |
| document.getElementById('source-label').textContent = labelMap[state.source]; | |
| document.getElementById('final-source').textContent = `${labelMap[state.source]} Ads`; | |
| }); | |
| }); | |
| document.querySelectorAll('#stage-5 .option-card').forEach(card => { | |
| card.addEventListener('click', function() { | |
| document.querySelectorAll('#stage-5 .option-card').forEach(c => c.classList.remove('selected')); | |
| this.classList.add('selected'); | |
| state.landing = this.getAttribute('data-value'); | |
| document.getElementById('show-result').disabled = false; | |
| // Update landing preview | |
| const iconMap = { | |
| 'landing': 'fa-window-maximize', | |
| 'quiz': 'fa-question-circle', | |
| 'fake-shop': 'fa-store', | |
| 'fake-win': 'fa-trophy' | |
| }; | |
| const labelMap = { | |
| 'landing': 'Лендинг', | |
| 'quiz': 'Квиз', | |
| 'fake-shop': 'Fake Shop', | |
| 'fake-win': 'Fake Win' | |
| }; | |
| document.getElementById('landing-icon').className = `fas ${iconMap[state.landing]} text-2xl text-yellow-400 mb-1`; | |
| document.getElementById('landing-label').textContent = labelMap[state.landing]; | |
| document.getElementById('final-landing').textContent = labelMap[state.landing]; | |
| // Calculate ROI based on selections | |
| calculateROI(); | |
| }); | |
| }); | |
| // Navigation function | |
| function navigateTo(stageNumber) { | |
| // Hide all stages | |
| Object.values(stages).forEach(stage => { | |
| if (stage) stage.classList.add('hidden'); | |
| }); | |
| // Show current stage | |
| stages[stageNumber].classList.remove('hidden'); | |
| // Add animation | |
| stages[stageNumber].classList.add('fade-in'); | |
| setTimeout(() => { | |
| stages[stageNumber].classList.remove('fade-in'); | |
| }, 500); | |
| // Update progress bar | |
| const progressPercentage = (stageNumber - 1) * 25; | |
| progressBar.style.width = `${progressPercentage}%`; | |
| // Update progress steps | |
| progressSteps.forEach((step, index) => { | |
| step.classList.remove('active', 'completed'); | |
| if (index < stageNumber - 1) { | |
| step.classList.add('completed'); | |
| } else if (index === stageNumber - 1) { | |
| step.classList.add('active'); | |
| } | |
| }); | |
| // Scroll to top | |
| window.scrollTo(0, 0); | |
| // Update final results if we're on the last stage | |
| if (stageNumber === 6) { | |
| updateFinalResults(); | |
| } | |
| } | |
| // Update final results | |
| function updateFinalResults() { | |
| const verticalLabels = { | |
| 'gambling': 'Gambling', | |
| 'crypto': 'Crypto', | |
| 'nutra': 'Nutra', | |
| 'dating': 'Dating' | |
| }; | |
| document.getElementById('final-vertical').textContent = verticalLabels[state.vertical]; | |
| } | |
| // Calculate ROI based on selections | |
| function calculateROI() { | |
| // Base ROI values | |
| const verticalROI = { | |
| 'gambling': 150, | |
| 'crypto': 120, | |
| 'nutra': 100, | |
| 'dating': 90 | |
| }; | |
| const geoROI = { | |
| 'IN': 30, | |
| 'BR': 20, | |
| 'RO': 15, | |
| 'TR': 10 | |
| }; | |
| const sourceROI = { | |
| 'facebook': 20, | |
| 'tiktok': 25, | |
| 'google': 15, | |
| 'push': 10 | |
| }; | |
| const landingROI = { | |
| 'landing': 5, | |
| 'quiz': 15, | |
| 'fake-shop': 20, | |
| 'fake-win': 25 | |
| }; | |
| // Calculate total ROI | |
| if (state.vertical && state.geo && state.source && state.landing) { | |
| const totalROI = | |
| verticalROI[state.vertical] + | |
| geoROI[state.geo] + | |
| sourceROI[state.source] + | |
| landingROI[state.landing]; | |
| document.getElementById('final-roi').textContent = `+${totalROI}%`; | |
| } | |
| } | |
| // Reset all selections | |
| function resetAll() { | |
| // Reset state | |
| state.vertical = null; | |
| state.geo = null; | |
| state.source = null; | |
| state.landing = null; | |
| // Reset selections | |
| document.querySelectorAll('.option-card').forEach(card => { | |
| card.classList.remove('selected'); | |
| }); | |
| // Disable next buttons | |
| document.getElementById('next-to-3').disabled = true; | |
| document.getElementById('next-to-4').disabled = true; | |
| document.getElementById('next-to-5').disabled = true; | |
| document.getElementById('show-result').disabled = true; | |
| // Navigate to first stage | |
| navigateTo(1); | |
| } | |
| // Initialize | |
| navigateTo(1); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=timoon811/land1231235dad" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |