Я подарю тебе Бермуды
Рогоносец
Безумный день или женитьба Фигаро
Премьера! Бриллиантовый жених
Премьера!
Комедия положений

АФИША

ОСНОВНАЯ СЦЕНА НА ЛЕНИНА, 49  МАЛАЯ СЦЕНА НА ПЕРВОМАЙСКОЙ,40
 
ОБРАТНАЯ СВЯЗЬ
/* ===== настройки ===== */ const FULL_PRICE_ADULT = 1100; // базовая цена для расчёта скидки /* ===== инициализация карточек: картинки + сеансы + скидки ===== */ function initCards(scope){ scope.querySelectorAll('.card.play').forEach(card=>{ // картинка const img = card.querySelector('.cover img'); const cover = card.dataset.cover; if (cover) img.src = cover; // сортировка сеансов внутри карточки const sessions = [...card.querySelectorAll('.session')]; sessions.sort((a,b)=> new Date(a.dataset.date) - new Date(b.dataset.date)); const wrap = card.querySelector('.sessions'); sessions.forEach(s=>wrap.appendChild(s)); // пометка скидок (только взрослые) if (card.dataset.category === 'adult'){ card.querySelectorAll('.session').forEach(row=>{ const price = +row.dataset.price; if (price < FULL_PRICE_ADULT){ const pct = Math.round((FULL_PRICE_ADULT - price) / FULL_PRICE_ADULT * 100); const badge = document.createElement('span'); badge.className = 'discount-badge'; badge.textContent = `–${pct}%`; row.querySelector('.price').appendChild(badge); } }); } }); } /* ===== сортировка карточек по ближайшей дате ===== */ function sortCardsByNearestDate(container, dir='asc'){ const cards = [...container.querySelectorAll('.card.play')]; cards.sort((a,b)=>{ const da = new Date(a.querySelector('.session').dataset.date); const db = new Date(b.querySelector('.session').dataset.date); return dir==='asc' ? da - db : db - da; }); cards.forEach(c=>container.appendChild(c)); } /* ===== запуск ===== */ const adultGrid = document.getElementById('adult-grid'); const kidsGrid = document.getElementById('kids-grid'); initCards(adultGrid); initCards(kidsGrid); sortCardsByNearestDate(adultGrid,'asc'); /* ===== UI: сортировка и прочее ===== */ document.getElementById('sortSelect').addEventListener('change', e=>{ sortCardsByNearestDate(adultGrid, e.target.value); }); document.getElementById('resetFilter').addEventListener('click', ()=>{ window.scrollTo({top: document.getElementById('home-billboard').offsetTop-20, behavior:'smooth'}); }); document.getElementById('openCalendar').addEventListener('click', ()=>{ alert('Откроется модальное окно календаря (подключите ваш виджет).'); });
Данный сайт использует файлы cookie и прочие похожие технологии. В том числе, мы обрабатываем Ваш IP-адрес для определения региона местоположения. Используя данный сайт, вы подтверждаете свое согласие с политикой конфиденциальности сайта.
OK