placement.solutions
HomeJobsButler Wooten Cheeley PC › Find Your Admission Counselor

Find Your Admission Counselor

Butler Wooten Cheeley PC
GA
Find Your Counselor Planning for college is a big step–we’re here to help. Our admission counselors are your go-to resource for all things Butler. From application questions to what life on campus is really like, they’re here to guide you every step of the way. Find your counselor below to get connected. Loading… /* 1) ? '&' + location.search.substring(1) : ''); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(script, s);/*]]>*/ const IFRAME_ORIGIN = 'https://adm.butler.edu'; const IFRAME_ID = 'portal_97fa9ced-db78-40e4-a055-0df42fd1304a'; const iframe = document.getElementById(IFRAME_ID); // === Config === const MOBILE_MAX_WIDTH = 768; const FIXED_HEIGHT_DESKTOP = 650; const FIXED_HEIGHT_MOBILE = 1050; let specialFixedHeightEnabled = true; function isMobile() { return window.matchMedia(`(max-width: ${MOBILE_MAX_WIDTH}px)`).matches; } function isSafari() { return /^((?!chrome|android).)*safari/i.test(navigator.userAgent); } function setIframeHeight(value, overflowMode = 'visible') { if (!iframe) return; iframe.style.setProperty('min-height', '0', 'important'); if (value === 'auto') { iframe.style.removeProperty('height'); } else { iframe.style.setProperty('height', value + 'px', 'important'); } iframe.style.setProperty('overflow', overflowMode, 'important'); } function requestHeightBurst() { if (!iframe) return; [0, 120, 300, 600].forEach((d) => { setTimeout(() => { iframe.contentWindow.postMessage({ type: 'REQUEST_IFRAME_HEIGHT' }, IFRAME_ORIGIN); }, d); }); } // 🔽 Safari-specific scroll behavior function safariScrollToIframe() { if (isSafari() && iframe) { // scroll the iframe into view smoothly iframe.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } window.addEventListener('message', (event) => { if (event.origin !== IFRAME_ORIGIN) return; const data = event.data || {}; switch (data.type) { case 'CARD_CLICK': { // Always scroll in Safari when any card is clicked safariScrollToIframe(); if (data.variant === 'incoming-first-years') { if (specialFixedHeightEnabled) { const fixedHeight = isMobile() ? FIXED_HEIGHT_MOBILE : FIXED_HEIGHT_DESKTOP; setIframeHeight(fixedHeight, 'clip'); return; } setIframeHeight('auto', 'visible'); requestHeightBurst(); return; } if (data.variant === 'card') { setIframeHeight('auto', 'visible'); requestHeightBurst(); return; } if (data.variant === 'lookup') { specialFixedHeightEnabled = false; setIframeHeight('auto', 'visible'); requestHeightBurst(); return; } break; } case 'IFRAME_HEIGHT': { const h = Math.max(0, Number(data.height) || 0); setIframeHeight(h, 'visible'); break; } } }); window.addEventListener('resize', () => { const isClipped = iframe && getComputedStyle(iframe).overflow === 'clip'; if (isClipped && specialFixedHeightEnabled) { const fixedHeight = isMobile() ? FIXED_HEIGHT_MOBILE : FIXED_HEIGHT_DESKTOP; setIframeHeight(fixedHeight, 'clip'); } }); // Add near your other config if you want to tweak later const SAFARI_EXTRA_SCROLL_PX = 300; function isSafari() { return /^((?!chrome|android).)*safari/i.test(navigator.userAgent); } // Smoothly scroll so the iframe top is in view, then go 300px further down function safariScrollToIframe() { if (!isSafari() || !iframe) return; // Respect reduced-motion users const smoothOK = !window.matchMedia('(prefers-reduced-motion: reduce)').matches; // Compute absolute Y of the iframe const rectTop = iframe.getBoundingClientRect().top; const absoluteTop = window.pageYOffset + rectTop; // Target is 300px past the iframe's top const targetY = absoluteTop + SAFARI_EXTRA_SCROLL_PX; // Small delay helps Safari after DOM height changes setTimeout(() => { window.scrollTo({ top: targetY, behavior: smoothOK ? 'smooth' : 'auto' }); }, 50); }
Apply on firm site →