(function () { try { var pending = window.sessionStorage.getItem("ec_form_submit_pending"); if (pending) { window.sessionStorage.removeItem("ec_form_submit_pending"); window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "ec_form_submit", user_data: JSON.parse(pending) }); } } catch (_) {} })(); // Defensive stub: a GTM tag calls window._zi_fc.fcRetrigger() which is // only defined once the ZoomInfo FormComplete SDK loads. If consent / // ad blockers / load order prevent that, the GTM call throws and // breaks downstream tags. The no-op below is harmlessly overwritten // when the real SDK initializes. (function () { try { window._zi_fc = window._zi_fc || {}; if (typeof window._zi_fc.fcRetrigger !== "function") { window._zi_fc.fcRetrigger = function () {}; } } catch (_) {} })();
var swiper = new Swiper('.swiper-container', { pagination: '.swiper-pagination', nextButton: '.swiper-button-next', prevButton: '.swiper-button-prev', slidesPerView: 1, paginationClickable: true, spaceBetween: 30, loop: true }), waitForFinalEvent = (function () { var timers = {}; return function (callback, ms, uniqueId) { if (!uniqueId) { uniqueId = "000000"; } if (timers[uniqueId]) { clearTimeout(timers[uniqueId]); } timers[uniqueId] = setTimeout(callback, ms); }; })(); function getOuterHeight(element, includeMargin) { if (!element) return 0; var styles = window.getComputedStyle(element); var height = element.offsetHeight; if (includeMargin) { height += parseInt(styles.marginTop) + parseInt(styles.marginBottom); } return height; } function slideUp(element, duration, callback) { if (!element) return; var height = element.scrollHeight; element.style.height = height + 'px'; element.style.overflow = 'hidden'; element.style.transition = 'height ' + duration + 'ms'; requestAnimationFrame(function() { element.style.height = '0px'; setTimeout(function() { element.style.display = 'none'; element.style.height = ''; element.style.overflow = ''; element.style.transition = ''; if (callback) callback(); }, duration); }); } function slideDown(element, duration, callback) { if (!element) return; element.style.display = 'block'; var height = element.scrollHeight; element.style.height = '0px'; element.style.overflow = 'hidden'; element.style.transition = 'height ' + duration + 'ms'; requestAnimationFrame(function() { element.style.height = height + 'px'; setTimeout(function() { element.style.height = ''; element.style.overflow = ''; element.style.transition = ''; if (callback) callback(); }, duration); }); } function resizeWN() { var newCapabilities = document.getElementById("new-capabilities"); if (!newCapabilities) return; var wn = []; var wnIndex = 0; var tallest = 0; var overallHeight = 0; Array.prototype.forEach.call(newCapabilities.children, function(child, i) { wn.push(child); var h = 0; Array.prototype.forEach.call(child.children, function(grandchild) { var tagName = grandchild.tagName.toLowerCase(); switch (tagName) { case 'h4': h += getOuterHeight(grandchild, true); overallHeight += getOuterHeight(grandchild, true); break; case 'div': if (!grandchild.parentElement.classList.contains('active')) { grandchild.style.position = 'absolute'; grandchild.style.visibility = 'hidden'; grandchild.style.display = 'block'; } Array.prototype.forEach.call(grandchild.children, function(greatGrandchild) { h += getOuterHeight(greatGrandchild, true); }); if (!grandchild.parentElement.classList.contains('active')) { grandchild.removeAttribute('style'); } break; default: h += getOuterHeight(grandchild, true); break; } }); if (h > tallest) { var h4 = wn[wnIndex].querySelector('h4'); var currentH4 = wn[i].querySelector('h4'); if (h4 && currentH4) { overallHeight -= (tallest - getOuterHeight(h4, true)); overallHeight += (h - getOuterHeight(currentH4, true)); } tallest = h; wnIndex = i; } }); var parent = newCapabilities.parentElement; if (parent) { parent.style.height = overallHeight + 'px'; } } function init() { resizeWN(); var newCapabilities = document.getElementById("new-capabilities"); if (newCapabilities) { newCapabilities.addEventListener('mousemoveend', function(e) { var li = e.target.closest('li'); if (!li) return; var capability = li.getAttribute('data-screenshot'); var screenShot = document.querySelector('#new-capability-screens *[data-screenshot="' + capability + '"]'); var list = newCapabilities; var x = li; if (!list.classList.contains('animating') && !x.classList.contains('active')) { var activeDiv = list.querySelector(".active > div"); var xDiv = x.querySelector('div'); var animationsComplete = 0; function checkComplete() { animationsComplete++; if (animationsComplete === 2) { list.classList.remove('animating'); Array.prototype.forEach.call(list.children, function(child) { if (child !== x) { child.removeAttribute('class'); Array.prototype.forEach.call(child.children, function(grandchild) { grandchild.removeAttribute('style'); }); } }); x.classList.add('active'); } } if (activeDiv) { slideUp(activeDiv, 300, checkComplete); } else { checkComplete(); } if (xDiv) { slideDown(xDiv, 300, checkComplete); } else { checkComplete(); } list.classList.add('animating'); var screenshots = document.querySelectorAll(".screenshot"); Array.prototype.forEach.call(screenshots, function(screenshot) { if (screenshot !== screenShot) { screenshot.style.display = 'none'; } }); if (screenShot) { screenShot.style.display = ''; } } }); } window.addEventListener('resize', function () { waitForFinalEvent(function () { resizeWN(); }, 600, "1DB3E7"); }); } if (document.readyState !== 'loading') { init(); } else { document.addEventListener('DOMContentLoaded', init); } (function() { function fadeIn(element, duration) { if (!element) return; element.style.display = 'block'; element.style.opacity = '0'; element.style.transition = 'opacity ' + duration + 'ms'; requestAnimationFrame(function() { element.style.opacity = '1'; }); } function fadeOut(element, duration) { if (!element) return; element.style.opacity = '1'; element.style.transition = 'opacity ' + duration + 'ms'; requestAnimationFrame(function() { element.style.opacity = '0'; setTimeout(function() { element.style.display = 'none'; element.style.transition = ''; element.style.opacity = ''; }, duration); }); } function init() { var player; var lightbox = document.getElementById("lightbox"); var videoElement = document.getElementById("vjs_video_3"); if (videoElement && typeof videojs !== 'undefined') { videojs("vjs_video_3").ready(function () { player = this; player.one('loadedmetadata', function () { var teamVideo = document.getElementById("team-applied-video"); if (teamVideo) { var playButton = teamVideo.querySelector('#playbutton'); if (playButton) { playButton.addEventListener('click', function (event) { event.preventDefault(); if (lightbox) fadeIn(lightbox, 300); if (player) player.play(); }); } } var closeButton = document.getElementById("close"); if (closeButton) { closeButton.addEventListener('click', function (event) { event.preventDefault(); if (player) { player.pause(); player.currentTime(0); } if (lightbox) fadeOut(lightbox, 300); }); } }); }); } } if (document.readyState !== 'loading') { init(); } else { document.addEventListener('DOMContentLoaded', init); } })();