Standings

Group A MP W D L GF GA GD PTS
team flag image Buriram United 0 0 0 0 0 0 0 0
team flag image Ratchaburi 0 0 0 0 0 0 0 0
team flag image Kuching City 0 0 0 0 0 0 0 0
team flag image Tampines Rovers 0 0 0 0 0 0 0 0
team flag image Ho Chi Minh City 0 0 0 0 0 0 0 0
team flag image Borneo 0 0 0 0 0 0 0 0
team flag image Winner of Play-off 1 0 0 0 0 0 0 0 0
Qualified
Group B MP W D L GF GA GD PTS
team flag image Port 0 0 0 0 0 0 0 0
team flag image Johor Darul Ta'zim 0 0 0 0 0 0 0 0
team flag image Lion City Sailors 0 0 0 0 0 0 0 0
team flag image Công An Hà Nội 0 0 0 0 0 0 0 0
team flag image PKR Svay Rieng 0 0 0 0 0 0 0 0
team flag image Persib 0 0 0 0 0 0 0 0
team flag image Winner of Play-off 2 0 0 0 0 0 0 0 0
Qualified
document.addEventListener('DOMContentLoaded', function () { // Delegated listener — survives every innerHTML swap inside #knockoutWrapper document.addEventListener('click', function (e) { const btn = e.target.closest('.bracket-tab'); if (!btn) return; document.querySelectorAll('.bracket-tab').forEach(b => b.classList.remove('active')); btn.classList.add('active'); const target = document.getElementById(btn.dataset.target); target?.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' }); ['semi-a', 'semi-b', 'final', 'winner-col'].forEach(id => { document.getElementById(id)?.classList.remove('border-card'); }); target?.classList.add('border-card'); if (btn.dataset.target === 'semi-a') { document.getElementById('semi-b')?.classList.add('border-card'); } if (btn.dataset.target === 'winner-col') window.launchFireworks?.(); }); }); /**to prevent manual scroll **/ if (window.innerWidth < 768) { const bracketScroll = document.querySelector('.bracket-scroll'); if (bracketScroll) { // Block horizontal mouse wheel / trackpad scroll bracketScroll.addEventListener('wheel', (e) => { if (Math.abs(e.deltaX) > Math.abs(e.deltaY)) { e.preventDefault(); } }, { passive: false }); // Block horizontal touch swipe only let startX = 0; let startY = 0; bracketScroll.addEventListener('touchstart', (e) => { startX = e.touches[0].clientX; startY = e.touches[0].clientY; }, { passive: true }); bracketScroll.addEventListener('touchmove', (e) => { const deltaX = Math.abs(e.touches[0].clientX - startX); const deltaY = Math.abs(e.touches[0].clientY - startY); // Prevent only horizontal swipe if (deltaX > deltaY) { e.preventDefault(); } }, { passive: false }); } }