Skip to content
(function () {
if (window.cbhsMobileMegaMenuFixLoaded) {
return;
}
window.cbhsMobileMegaMenuFixLoaded = true;
function getAccordionParts(trigger) {
var controls = trigger && trigger.getAttribute("aria-controls");
var panel = controls ? document.getElementById(controls) : null;
var item = trigger ? trigger.closest("li") : null;
return { panel: panel, item: item };
}
function closeTrigger(trigger) {
var parts = getAccordionParts(trigger);
trigger.setAttribute("aria-expanded", "false");
trigger.classList.remove("bdt-open");
if (parts.item) {
parts.item.classList.remove("bdt-open");
}
if (parts.panel) {
parts.panel.hidden = true;
parts.panel.setAttribute("hidden", "");
parts.panel.classList.remove("bdt-open");
parts.panel.style.removeProperty("height");
parts.panel.style.removeProperty("display");
}
}
function openTrigger(trigger) {
var parts = getAccordionParts(trigger);
trigger.setAttribute("aria-expanded", "true");
trigger.classList.add("bdt-open");
if (parts.item) {
parts.item.classList.add("bdt-open");
}
if (parts.panel) {
parts.panel.hidden = false;
parts.panel.removeAttribute("hidden");
parts.panel.classList.add("bdt-open");
parts.panel.style.removeProperty("height");
parts.panel.style.removeProperty("display");
}
}
function toggleTrigger(trigger) {
var menu = trigger.closest(".ep-virtual-area");
var isOpen = trigger.getAttribute("aria-expanded") === "true";
if (!menu) {
return;
}
menu
.querySelectorAll(".bdt-accordion-title[aria-controls]")
.forEach(function (otherTrigger) {
if (otherTrigger !== trigger) {
closeTrigger(otherTrigger);
}
});
if (isOpen) {
closeTrigger(trigger);
} else {
openTrigger(trigger);
}
}
function isAccordionToggleClick(event, trigger) {
var icon = event.target.closest(".bdt-megamenu-indicator");
var bounds = trigger.getBoundingClientRect();
var toggleAreaWidth = Math.min(96, Math.max(64, bounds.width * 0.28));
var isRightSide = event.clientX >= bounds.right - toggleAreaWidth;
return Boolean(icon || isRightSide);
}
document.addEventListener(
"click",
function (event) {
var target = event.target;
var trigger = target.closest(
".ep-virtual-area .bdt-accordion-title[aria-controls]"
);
if (!trigger) {
return;
}
if (!isAccordionToggleClick(event, trigger)) {
return;
}
event.preventDefault();
event.stopPropagation();
event.stopImmediatePropagation();
toggleTrigger(trigger);
},
true
);
})();