Âé¶¹Ô­´´

MU logo
MU logo

2026 Arizona Alumni Gathering

2026 Arizona Alumni Gathering

Welcome Arizona Spartans!

Alumni and friends are invited to join Manchester for the annual Arizona Alumni Gathering on Feb. 17 at 6 p.m. Guests will enjoy a complimentary dinner at Roaring Forks Scottsdale. Catch up, hear exciting updates on what’s new at Âé¶¹Ô­´´, plus what lies ahead. We look forward to an evening of conversation and new connections!

Âé¶¹Ô­´´ Calendars

exists --- (function ensure40pxInlineEarly() { function set40(el) { el && el.style.setProperty('padding-top', '40px', 'important'); } // If header already parsed, set now; otherwise set as soon as it appears. const hdrNow = document.getElementById(HEADER_ID); if (hdrNow) { set40(hdrNow); return; } new MutationObserver((muts, obs) => { const hdr = document.getElementById(HEADER_ID); if (hdr) { set40(hdr); obs.disconnect(); } }).observe(document.documentElement, { childList: true, subtree: true }); })(); // --- Helpers --- function hideDiviBars() { document.querySelectorAll('.divibars-container').forEach(div => { const content = (div.textContent || '').replace(/\u00A0/g, ' ').trim(); const shouldHide = !content || /all\s*clear/i.test(content) || /test/i.test(content) || /feed\s*has\s*no\s*items\.?/i.test(content); if (shouldHide) div.style.setProperty('display', 'none', 'important'); }); } function isEffectivelyVisible(el) { if (!el || !el.isConnected) return false; const target = el.querySelector('.divibars, .divibars-wrapper, .divibars-content') || el; const cs = getComputedStyle(target); if (cs.display === 'none' || cs.visibility === 'hidden' || target.hidden) return false; if (parseFloat(cs.opacity || '1') < 0.05) return false; if (target.closest('[aria-hidden="true"]')) return false; const rect = target.getBoundingClientRect(); const hasSize = (rect.width > 0 && rect.height > 0) || (target.offsetWidth > 0 && target.offsetHeight > 0); if (!hasSize) return false; const vh = window.innerHeight || document.documentElement.clientHeight; return rect.bottom > 0 && rect.top < vh; } function anyRealBannerVisible() { // A “real†banner = visible AND not empty/test/all-clear/feed-empty return Array.from(document.querySelectorAll(CANDS)).some(el => { if (!isEffectivelyVisible(el)) return false; const txt = (el.textContent || '').replace(/\u00A0/g, ' ').trim(); if (!txt) return false; if (/all\s*clear/i.test(txt) || /test/i.test(txt) || /feed\s*has\s*no\s*items\.?/i.test(txt)) return false; return true; }); } function setForce110(on) { const root = document.documentElement; const was = root.classList.contains('divibar-force-110'); if (!!on === was) return; root.classList.add('divibar-atomic'); root.classList.toggle('divibar-force-110', !!on); // If we’re NOT forcing 110, clear any stray inline 110 the plugin may add later. if (!on) { const hdr = document.getElementById(HEADER_ID); if (hdr) hdr.style.setProperty('padding-top', '40px', 'important'); } requestAnimationFrame(() => root.classList.remove('divibar-atomic')); } // Debounced 2-frame confirmation to avoid flicker during animations let raf1 = null, raf2 = null; function scheduleRecompute() { if (raf1) return; raf1 = requestAnimationFrame(() => { raf1 = null; hideDiviBars(); const a = anyRealBannerVisible(); raf2 = requestAnimationFrame(() => { raf2 = null; const b = anyRealBannerVisible(); setForce110(a && b); }); }); } // --- Wiring --- document.addEventListener('DOMContentLoaded', scheduleRecompute); window.addEventListener('load', scheduleRecompute); window.addEventListener('resize', () => { cancelAnimationFrame(raf1); raf1 = null; cancelAnimationFrame(raf2); raf2 = null; scheduleRecompute(); }); new MutationObserver(() => scheduleRecompute()).observe(document.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class', 'aria-hidden'] }); document.addEventListener('transitionend', e => { if (e.target && e.target.closest(CANDS)) scheduleRecompute(); }); document.addEventListener('animationend', e => { if (e.target && e.target.closest(CANDS)) scheduleRecompute(); }); document.addEventListener('click', function (e) { const btn = e.target && e.target.closest('.divibars-close'); if (!btn) return; setTimeout(() => { const bar = btn.closest('.divibars-container, [class*="divibar"]'); if (bar) bar.style.setProperty('display', 'none', 'important'); scheduleRecompute(); }, 200); }, true); // Initial pass scheduleRecompute(); })();