/** * Sweet Berries - Выпадающий список игр */ (function() { 'use strict'; function init() { var inp = document.querySelector('input[name="s"]'); if (!inp || !window.sbSearch || !window.sbSearch.games) { return; } var form = inp.form || inp.closest('.search-form'); if (!form) { return; } form.style.position = 'relative'; var dd = document.createElement('div'); dd.className = 'sb-games-list'; dd.style.cssText = 'display:none;position:absolute;top:100%;left:0;right:0;max-height:450px;overflow-y:auto;background:#1a1a2e;border:1px solid #2a2a4e;border-radius:0 0 14px 14px;box-shadow:0 10px 40px rgba(0,0,0,0.7);z-index:100000;margin-top:4px;'; form.appendChild(dd); inp.setAttribute('autocomplete', 'off'); var games = window.sbSearch.games; function render(list) { if (!list || !list.length) { dd.innerHTML = '
Ничего не найдено 😔
'; return; } var html = ''; for (var i = 0; i < list.length; i++) { var g = list[i]; html += '' + '🎮' + '
' + '
' + g.name + '
' + '
' + g.count + ' гайдов
' + '
' + '' + '
'; } dd.innerHTML = html; } function filter(q) { q = q.toLowerCase().trim(); if (!q) { render(games.slice(0, 15)); return; } var res = []; for (var i = 0; i < games.length; i++) { if (games[i].name.toLowerCase().indexOf(q) !== -1) { res.push(games[i]); } } render(res); } inp.addEventListener('input', function() { filter(this.value); dd.style.display = 'block'; }); inp.addEventListener('focus', function() { filter(this.value); dd.style.display = 'block'; }); document.addEventListener('click', function(e) { if (e.target !== inp && !dd.contains(e.target)) dd.style.display = 'none'; }); inp.addEventListener('keydown', function(e) { if (e.key === 'Escape') dd.style.display = 'none'; }); } if (document.readyState === 'complete' || document.readyState === 'interactive') { init(); } else { document.addEventListener('DOMContentLoaded', init); } })();