(function () {
try {
var mq = window.matchMedia('(max-width: 991px)');
function isMobile() {
return mq.matches;
}
function getDirectMenuLink(li) {
if (!li) return null;
for (var i = 0; i < li.children.length; i++) {
if (li.children[i].tagName === 'A') return li.children[i];
}
return li.querySelector('a');
}
function syncMobileAnnouncement() {
var target = document.getElementById('mobile_announcement_text');
var source = document.querySelector('#announcement_list li');
if (target && source && source.textContent.trim()) {
target.textContent = source.textContent.trim();
}
}
function updateCategoryProgress() {
var scroll = document.getElementById('mobile_category_scroll');
var bar = document.getElementById('mobile_category_progress');
if (!scroll || !bar) return;
var max = scroll.scrollWidth - scroll.clientWidth;
if (max <= 0) {
bar.style.width = '100%';
return;
}
var pct = (scroll.scrollLeft / max) * 70 + 30;
bar.style.width = Math.min(100, pct) + '%';
}
var categoryScrollInited = false;
function initCategoryScroll() {
var scroll = document.getElementById('mobile_category_scroll');
var left = document.getElementById('mobile_cat_arrow_left');
var right = document.getElementById('mobile_cat_arrow_right');
if (!scroll) return;
updateCategoryProgress();
if (categoryScrollInited) return;
categoryScrollInited = true;
scroll.addEventListener('scroll', updateCategoryProgress);
if (left) {
left.addEventListener('click', function () {
scroll.scrollBy({ left: -120, behavior: 'smooth' });
});
}
if (right) {
right.addEventListener('click', function () {
scroll.scrollBy({ left: 120, behavior: 'smooth' });
});
}
}
function buildMobileCategoryGrid() {
var grid = document.getElementById('mobile_category_grid');
if (!grid) return;
if (!isMobile()) {
grid.innerHTML = '';
return;
}
var items = document.querySelectorAll('.top-menu > li');
grid.innerHTML = '';
var activeSet = false;
items.forEach(function (li) {
var sourceLink = getDirectMenuLink(li);
if (!sourceLink) return;
var cell = document.createElement('div');
cell.className = 'mobile-category-cell';
var link = document.createElement('a');
link.href = sourceLink.href;
if (li.getAttribute('data-active') === 'true' || !activeSet) {
link.classList.add('is-active');
activeSet = true;
}
var iconWrap = document.createElement('span');
iconWrap.className = 'mobile-category-icon';
var img = sourceLink.querySelector('img');
if (img) {
var icon = img.cloneNode(true);
icon.removeAttribute('style');
iconWrap.appendChild(icon);
}
var label = document.createElement('span');
label.className = 'mobile-category-label';
label.textContent = sourceLink.textContent.replace(/\s+/g, ' ').trim();
link.appendChild(iconWrap);
link.appendChild(label);
link.addEventListener('click', function () {
grid.querySelectorAll('a.is-active').forEach(function (el) {
el.classList.remove('is-active');
});
link.classList.add('is-active');
});
cell.appendChild(link);
grid.appendChild(cell);
});
initCategoryScroll();
}
function buildMobileDrawer() {
var nav = document.getElementById('mobile_drawer_nav');
if (!nav) return;
if (!isMobile()) {
nav.innerHTML = '';
return;
}
var iconStroke = '#10b981';
var homeIcon = '';
var loginIcon = '';
var desktopIcon = '';
nav.innerHTML = '';
var home = document.createElement('a');
home.className = 'mobile-drawer-item is-active';
home.href = 'https://laboitealivres.com/';
home.innerHTML = homeIcon + 'หน้าแรก';
nav.appendChild(home);
var group = document.createElement('div');
group.className = 'mobile-drawer-group';
var toggle = document.createElement('button');
toggle.type = 'button';
toggle.className = 'mobile-drawer-toggle';
var firstMenuImg = document.querySelector('.top-menu > li > a img');
toggle.innerHTML = (firstMenuImg ? '
' : '') + 'เกมส์▼';
var sublist = document.createElement('div');
sublist.className = 'mobile-drawer-sublist';
document.querySelectorAll('.top-menu > li').forEach(function (li) {
var a = getDirectMenuLink(li);
if (!a) return;
var sub = document.createElement('a');
sub.href = a.href;
var img = a.querySelector('img');
sub.innerHTML = (img ? '
' : '') + '' + a.textContent.replace(/\s+/g, ' ').trim() + '';
sublist.appendChild(sub);
});
toggle.addEventListener('click', function () {
group.classList.toggle('is-expanded');
});
group.appendChild(toggle);
group.appendChild(sublist);
nav.appendChild(group);
var login = document.createElement('a');
login.className = 'mobile-drawer-item';
login.href = 'https://documents.laboitealivres.com/';
login.target = '_blank';
login.rel = 'nofollow noopener';
login.innerHTML = loginIcon + 'เข้าสู่ระบบ';
nav.appendChild(login);
var desktop = document.createElement('a');
desktop.className = 'mobile-drawer-item';
desktop.href = 'https://laboitealivres.com/';
desktop.innerHTML = desktopIcon + 'เวอร์ชันเดสก์ท็อป';
nav.appendChild(desktop);
}
function setDrawerOpen(open) {
var drawer = document.getElementById('mobile_side_drawer');
var overlay = document.getElementById('mobile_drawer_overlay');
var toggle = document.getElementById('mobile_menu_toggle');
if (!drawer || !overlay) return;
drawer.classList.toggle('is-open', open);
overlay.classList.toggle('is-open', open);
drawer.setAttribute('aria-hidden', open ? 'false' : 'true');
overlay.setAttribute('aria-hidden', open ? 'false' : 'true');
document.body.classList.toggle('mobile-drawer-open', open);
if (toggle) toggle.setAttribute('aria-expanded', open ? 'true' : 'false');
}
var drawerInited = false;
function initMobileDrawer() {
if (drawerInited) return;
drawerInited = true;
var toggle = document.getElementById('mobile_menu_toggle');
var overlay = document.getElementById('mobile_drawer_overlay');
var closeBtn = document.getElementById('mobile_drawer_close');
var nav = document.getElementById('mobile_drawer_nav');
if (toggle) {
toggle.addEventListener('click', function () {
if (!isMobile()) return;
var drawer = document.getElementById('mobile_side_drawer');
setDrawerOpen(!drawer.classList.contains('is-open'));
});
}
if (overlay) overlay.addEventListener('click', function () { setDrawerOpen(false); });
if (closeBtn) closeBtn.addEventListener('click', function () { setDrawerOpen(false); });
if (nav) {
nav.addEventListener('click', function (e) {
if (e.target.closest('a')) setDrawerOpen(false);
});
}
}
function syncPromotionLink() {
var bottomPromo = document.getElementById('mobile_bottom_promo');
if (!bottomPromo) return;
document.querySelectorAll('.top-menu > li > a').forEach(function (a) {
if (a.textContent.replace(/\s+/g, '').indexOf('การส่งเสริม') !== -1) {
bottomPromo.href = a.href;
}
});
}
function initMobile() {
try {
syncMobileAnnouncement();
buildMobileCategoryGrid();
buildMobileDrawer();
syncPromotionLink();
updateCategoryProgress();
} catch (err) {
console.warn('HOT999 mobile init:', err);
}
}
function onViewportChange() {
if (!isMobile()) setDrawerOpen(false);
initMobile();
window.dispatchEvent(new Event('pgcat:viewport-change'));
}
var resizeTimer = null;
window.addEventListener('load', function () {
initMobileDrawer();
initMobile();
});
window.addEventListener('resize', function () {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(onViewportChange, 150);
});
if (mq.addEventListener) {
mq.addEventListener('change', onViewportChange);
} else if (mq.addListener) {
mq.addListener(onViewportChange);
}
} catch (err) {
console.warn('HOT999 mobile script:', err);
}
})();