document.addEventListener('DOMContentLoaded', () => { const urlParams = new URLSearchParams(window.location.search); const query = urlParams.get('q'); const engine = urlParams.get('engine') || 'google'; const inputField = document.getElementById('fake-input'); const cursor = document.getElementById('fake-cursor'); const searchBtn = document.getElementById('btn-submit'); const statusMsg = document.getElementById('status-msg'); if (!query) { window.location.href = 'index.html'; return; } const searchEngines = { 'google': 'https://www.google.com/search?q=', 'bing': 'https://www.bing.com/search?q=', 'duckduckgo': 'https://duckduckgo.com/?q=', 'seznam': 'https://search.seznam.cz/?q=' }; const targetUrl = (searchEngines[engine] || searchEngines['google']) + encodeURIComponent(query); // Pomocná funkce pro čekání const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms)); // Funkce pro přesun kurzoru const moveCursorTo = (element, offsetX = 0, offsetY = 0) => { const rect = element.getBoundingClientRect(); // Přesun do středu elementu + offset const top = rect.top + (rect.height / 2) + offsetY; const left = rect.left + (rect.width / 2) + offsetX; cursor.style.top = `${top}px`; cursor.style.left = `${left}px`; }; // Hlavní sekvence animace const runAnimation = async () => { await wait(1000); statusMsg.textContent = 'Step 1: Move to search field...'; // 1. Přesun kurzoru na input (offset trochu doleva) cursor.style.transition = 'all 1s cubic-bezier(0.4, 0, 0.2, 1)'; moveCursorTo(inputField, -100, 0); await wait(1200); // Simulace kliknutí do inputu inputField.style.borderColor = '#4285f4'; inputField.style.boxShadow = '0 0 0 1px #4285f4'; statusMsg.textContent = 'Step 2: Typing...'; await wait(500); // 2. Psaní textu cursor.style.transition = 'all 0.1s linear'; // pro psaní není potřeba dlouhá animace kurzoru, ale může se jemně třást for (let i = 0; i < query.length; i++) { inputField.value += query.charAt(i); // Malý náhodný pohyb kurzoru při psaní moveCursorTo(inputField, -100 + (i * 2), (Math.random() * 4) - 2); await wait(100 + Math.random() * 100); // Náhodná rychlost psaní (100-200ms) } await wait(500); inputField.style.borderColor = '#dfe1e5'; inputField.style.boxShadow = 'none'; // 3. Přesun kurzoru na tlačítko "Vyhledat" statusMsg.textContent = 'Step 3: Click the button...'; cursor.style.transition = 'all 1s cubic-bezier(0.4, 0, 0.2, 1)'; moveCursorTo(searchBtn); await wait(1200); // 4. Simulace hover a kliknutí na tlačítko searchBtn.classList.add('active'); cursor.style.transform = 'scale(0.9)'; // efekt stisknutí await wait(300); searchBtn.classList.remove('active'); cursor.style.transform = 'scale(1)'; statusMsg.textContent = 'Redirecting...'; await wait(500); // 5. Přesměrování window.location.href = targetUrl; }; // Spuštění animace runAnimation(); });