1const dbjs={};window.addEventListener('load',function(){dbjs.preload();dbjs.scroll();dbjs.sticky();dbjs.menu();dbjs.accordion();dbjs.tabs();dbjs.buttonmenu();dbjs.reviewReadMore();dbjs.beforeAfterSlider();dbjs.team();dbjs.beforeYouGo();dbjs.userAction();dbjs.quickLinkReturn();dbjs.initOffCanvas()});window.addEventListener('resize',function(){dbjs.reviewReadMore()});window.onpageshow=function(event){jQuery('.site-nav-menu').removeClass('active');jQuery('.site-nav-menu-btn').removeClass('active');jQuery('body').removeClass('locked')};dbjs.preload=function(){document.body.classList.remove("preload");jQuery('.preloader').fadeOut();const defer=document.querySelectorAll('.defer-bg');for(const item of defer){item.classList.remove('defer-bg')}} 2dbjs.sticky=function(){const el=document.querySelector(".sticky-header");const mobileEl=document.querySelector(".site-header-mobile-row.sticky-header");const observer=new IntersectionObserver(([e])=>{e.target.classList.toggle("stuck",e.intersectionRatio<1);if(mobileEl){mobileEl.classList.toggle("stuck",e.intersectionRatio<1)}},{threshold:[1]});observer.observe(el)} 3dbjs.menu=function(){let open=!1;let menu=document.querySelector('.site-header-menu-row .site-nav-menu');let headerTopMenu=document.querySelector('.site-header-top-row .site-nav-menu');let burger=document.querySelector('.site-nav-menu-btn');let dropdowns=document.querySelectorAll('.menu-item-has-children');document.body.addEventListener('click',function(event){let target=event.target;if(menu.contains(target))return;if(menu.contains(target)||headerTopMenu.contains(target))return;if(!open)return;closeAllDropdowns();if(burger.contains(target))return;if(!menu.classList.contains('active')&&headerTopMenu.contains('active'))return;menu.classList.remove('active');headerTopMenu.classList.remove('active');burger.classList.remove('active');document.body.classList.remove('locked');console.log('removed active')});for(const dropdown of dropdowns){dropdown.querySelector('a').addEventListener('click',toggleDropdown)} 4function toggleDropdown(event){const el=event.target;if(el.getAttribute('href')==='#'||el.tagName==='SPAN'){event.preventDefault()} 5console.log(el);removeCtaMenus();closeSiblingDropdowns(this.parentElement);this.parentElement.classList.toggle('active');console.log(this.parentElement);open=!0;addCtaMenu(el)} 6function addCtaMenu(el){var next=el.nextElementSibling;if(next&&next.classList.contains('cta-menu-container')){var parent=el.parentElement;while(parent&&parent.tagName!=='UL'){parent=parent.parentElement} 7if(parent){parent.classList.add('cta-menu-open')}}} 8function removeCtaMenus(){const ctaMenus=document.querySelectorAll('.cta-menu-open');for(const menu of ctaMenus){menu.classList.remove('cta-menu-open')}} 9function closeAllDropdowns(){for(const dropdown of dropdowns){dropdown.classList.remove('active')} 10open=!1} 11function closeSiblingDropdowns(element){for(const dropdown of dropdowns){if(dropdown!==element)dropdown.classList.remove('active');}} 12burger.addEventListener('click',toggleMobileMenu);function toggleMobileMenu(){console.log(this);document.body.classList.toggle('locked');this.classList.toggle('active');menu.classList.toggle('active')} 13removeCtaMenus()};dbjs.scroll=function(){let scrollButton=document.querySelector('.site-rtt');let scrolling=!1;let sidebarabsolute=document.querySelector('.sidebar--overlay .sidebar-container');scrollButton.addEventListener('click',scrollToTop);document.addEventListener('scroll',(event)=>{if(!scrolling){setTimeout(function(){updateScrollButton();updateSidebar();scrolling=!1},300)} 14scrolling=!0},{passive:!0});function updateScrollButton(){let y=window.scrollY;let h=jQuery('.home');let offset=100;if(y>=offset){scrollButton.classList.add('visible');if(h.length||!sidebarabsolute)return;sidebarabsolute.classList.remove('absolute')}else{scrollButton.classList.remove('visible');if(h.length||!sidebarabsolute)return;sidebarabsolute.classList.add('absolute')}} 15function scrollToTop(){let y=0;jQuery('html').animate({scrollTop:y})} 16function updateSidebar(){let header=document.querySelector('.site-header-menu-row');let sidebar=document.querySelector('aside#sidebar .site-sidebar');let h1=header.offsetHeight;if(sidebar){let margin='4rem';let top='calc('+h1+'px'+' + '+margin+')';sidebar.style.top=top}}} 17dbjs.resize=function(){} 18document.addEventListener("DOMContentLoaded",function(){var lazyElements=[].slice.call(document.querySelectorAll(".lazy"));if("IntersectionObserver" in window&&"IntersectionObserverEntry" in window&&"intersectionRatio" in window.IntersectionObserverEntry.prototype){let lazyObserver=new IntersectionObserver(function(entries,observer){entries.forEac
18h(function(entry){if(entry.isIntersecting){if(entry.target.hasAttribute("data-src")){const src=entry.target.getAttribute("data-src");entry.target.setAttribute("src",src)} 19if(entry.target.hasAttribute("data-css")){const style=entry.target.getAttribute("data-css");entry.target.setAttribute("style",style)} 20entry.target.classList.remove("lazy");lazyObserver.unobserve(entry.target)}})});lazyElements.forEach(function(lazyElement){lazyObserver.observe(lazyElement)})}});jQuery('.site-header-announcement-banner i').click(function(){jQuery(".site-header-announcement-banner").slideUp('fast',function(){jQuery(".site-header-announcement-banner").css('display','none');var d=new Date();d.setTime(d.getTime()+(72*60*60*1000));var expires="expires="+d.toUTCString();document.cookie="headerAnnouncementBanner=1;"+expires+";path=/"})});dbjs.accordion=function(){if(jQuery('.site-accordion').length){jQuery('.site-accordion').children('.section').first().toggleClass('open');jQuery('.site-accordion').children('.section').first().children('.body').toggle()};if(jQuery('.site-accordion.numbered').length){jQuery('.site-accordion.numbered').children('.section').each(function(){jQuery(this).children('.title').prepend("<span>"+(jQuery(this).index()+1)+"</span>")})} 21jQuery('.site-accordion .title').click(function(){jQuery(this).siblings('.body').slideToggle('fast');jQuery(this).parent().siblings().removeClass('open');jQuery(this).parent().siblings().children('.body').slideUp('fast');jQuery(this).parent().toggleClass('open')})} 22dbjs.tabs=function(){if(jQuery('.site-tabs').length){activate(jQuery('.site-tabs .tab:first-child'));jQuery('.site-tabs .tab').click(function(){activate(jQuery(this))});function activate(tab){var index=tab.index()+1;var tabContent=jQuery('.site-tabs .content:nth-of-type('+index+')');tab.siblings().removeClass('active');tab.addClass('active');tabContent.siblings().removeClass('active');tabContent.addClass('active')}}} 23dbjs.buttonmenu=function(){let open=!1;let buttons=document.querySelectorAll('.site-btn.btn-menu');for(const button of buttons){button.querySelector('a').addEventListener('click',toggleMenu)} 24function toggleMenu(event){event.preventDefault();this.parentElement.classList.toggle('active');closeSiblingMenus(this.parentElement);if(this.parentElement.classList.contains('active'))open=!0} 25function closeSiblingMenus(element){for(const button of buttons){if(button!==element&&button.classList.contains('active'))button.classList.remove('active');}} 26function closeAllMenus(){for(const button of buttons){button.classList.remove('active')} 27open=!1} 28document.body.addEventListener('click',function(event){if(!open)return;let target=event.target;let button=document.querySelector('.site-btn.btn-menu.active');if(button&&button.contains(target))return;closeAllMenus()})} 29dbjs.lightbox=function(){var modal=jQuery('.site-gallery-modal');var modalContent=jQuery('.site-gallery-modal .modal-content');var gallery=jQuery('.site-gallery');var galleryItem=jQuery('.site-gallery.grid .gallery-item');var scrollBtn=jQuery('.site-rtt');var current 30var next 31var prev 32if(!modal.length)return;function showModal(){modal.fadeIn();scrollBtn.removeClass('visible')} 33function hideModal(){modal.fadeOut(function(){clearModal()})} 34function clearModal(){modalContent.empty();current='';next='';prev=''} 35function updateModal(html){clearModal();jQuery(html).clone().appendTo(modalContent);current=html;prev=jQuery(html).prev();next=jQuery(html).next()} 36function modalForward(){if(!next.length)return;modalContent.fadeOut('fast',function(){modalContent.empty();updateModal(next);modalContent.fadeIn('fast')})} 37function modalBack(){if(!prev.length)return;modalContent.fadeOut('fast',function(){modalContent.empty();updateModal(prev);modalContent.fadeIn()})} 38galleryItem.click(function(){updateModal(this);showModal()}) 39jQuery(document).on('keydown',function(e){if(e.key=='Escape'){hideModal()}}) 40jQuery('.site-gallery-modal .close').click(function(){hideModal()});jQuery('.site-gallery-modal .next').click(function(){modalForward()});jQuery('.site-gallery-modal .prev').click(function(){modalBack()});jQuery('.site-gallery-modal').click(function(event){var target=event.target;
40var controls=document.querySelector('.modal-controls');var content=document.querySelector('.modal-content');if(controls.contains(target)||content.contains(target))return;hideModal()})} 41dbjs.reviewReadMore=function(){const reviewContent=document.querySelectorAll('.review-content');if(!reviewContent.length)return;reviewContent.forEach(function(content){const inner=content.querySelector('.inner');const innerHeight=inner.offsetHeight;const innerScrollHeight=inner.scrollHeight;const readMore=content.nextElementSibling;if(innerHeight===innerScrollHeight){readMore.style.display='none';return} 42readMore.style.display='block';readMore.removeEventListener('click',handleReadMoreClick);readMore.addEventListener('click',handleReadMoreClick)});const modal=document.querySelector('.review-modal');const closeBtn=modal.querySelector('.review-modal-footer .close-btn');closeBtn.addEventListener('click',function(e){e.preventDefault();modal.style.display='none';document.body.style.overflow=''})} 43function handleReadMoreClick(e){e.preventDefault();const gridElement=this.parentElement;const d=document.querySelector('.review-modal');d.querySelector('.review-modal-content').innerHTML=gridElement.innerHTML;d.querySelector('.grid-item')?.classList.remove('grid-item');d.querySelector('.review-read-more').style.display='none';d.querySelector('.review-content').classList.add('show-all');d.style.display='flex';document.body.style.overflow='hidden'} 44dbjs.beforeAfterSlider=function(){jQuery('.before-after-slider .slider').on('input change',function(e){const element=jQuery(this).parents('.before-after-slider');const pos=e.target.value;element.find('.before').css({clipPath:'polygon(0 0, '+pos+'% 0, '+pos+'% 100%, 0% 100%)'});element.find('.slider-button').css({left:'calc('+pos+'%)',})})} 45dbjs.team=function(){const open=jQuery('.staff-container .btn-open');const close=jQuery('.staff-container .btn-close');const x=jQuery('.staff-container .window-close');let window=null;open.click(function(event){event.preventDefault();const id=this.dataset.team;const div=jQuery('.team-bio[data-team='+id+']');window=div;div.fadeIn()});close.click(function(event){event.preventDefault();window.fadeOut()}) 46x.click(function(event){event.preventDefault();window.fadeOut()})} 47dbjs.beforeYouGo=function(){const modal=jQuery('.before-you-go-modal');const useCookie=modal.attr('data-use-cookie')==='1';if(!modal.length)return;if(useCookie){const cookie=document.cookie.split(';').filter(function(item){return item.trim().startsWith('beforeYouGoModal=')});if(cookie.length)return} 48const closeBtn=modal.find('.close-btn');const delayMs=(parseInt(modal.attr('data-delay'))||3)*1000;closeBtn.on('click',function(e){e.preventDefault();modal.css('display','none');document.body.style.overflow='';if(useCookie){document.cookie='beforeYouGoModal=1'}});let timer=null;function mouseOut(e){if(e.toElement||e.relatedTarget)return;timer=setTimeout(function(){closeModal()},delayMs)} 49function mouseEnter(){clearTimeout(timer)} 50function keyDown(e){if(e.key==='Escape'){closeModal()}} 51function closeModal(){modal.css('display','flex');document.body.style.overflow='hidden';document.removeEventListener('mouseout',mouseOut);document.removeEventListener('mouseenter',mouseEnter);document.removeEventListener('keydown',keyDown)} 52document.addEventListener('mouseout',mouseOut);document.addEventListener('mouseenter',mouseEnter);document.addEventListener('keydown',keyDown)} 53dbjs.userAction=function(){let tid;function onAction(){document.getElementsByTagName('html')[0].classList.add('js-user-action');document.removeEventListener('mousedown',onAction);document.removeEventListener('mousedown',onAction);document.removeEventListener('mousemove',onAction);document.removeEventListener('touchstart',onAction);document.removeEventListener('scroll',onAction);document.removeEventListener('keydown',onAction);clearTimeout(tid)} 54document.addEventListener('mousedown',onAction);document.addEventListener('mousemove',onAction);document.addEventListener('touchstart',onAction);document.addEventListener('scroll',onAction);document.addEventListener('keydown',onAction);tid=setTimeout(onAction,5000)} 55dbjs.quickLinkReturn=function(){const container=document.querySelector('.quick-links');if(!container)return;const links=container.querySelectorAll('.links a');for(const link of links){link.addEventListener('click',function(e){const href=this.getAttribute('href');if(!href.startsWith('#'))return;document.querySelectorAll('.return-to-top').forEach(function(el){el.remove()});const elId=href.replace('#','');const a=document.createElement('a');a.classList.add('return-to-top');a.setAttribute('href',`#${container.getAttribute( 'id' )}`);a.innerHTML='Quick Links';a.style.marginBottom='-7rem';a.addEventListener('click',function(){history.pushState('',document.title,window.location.pathname);this.parentElement.removeChild(this)});const el=document.getElementById(elId);el.parentElement.insertBefore(a,el)})}} 56jQuery.event.special.touchstart={setup:function(_,ns,handle){this.addEventListener('touchstart',handle,{passive:!ns.includes('noPreventDefault')})}};jQuery.event.special.touchmove={setup:function(_,ns,handle){this.addEventListener('touchmove',handle,{passive:!ns.includes('noPreventDefault')})}};jQuery.event.special.wheel={setup:function(_,ns,handle){this.addEventListener('wheel',handle,{passive:!0})}};jQuery.event.special.mousewheel={setup:function(_,ns,handle){this.addEventListener('mousewheel',handle,{passive:!0})}};dbjs.initOffCanvas=function(){const offCanvas=document.querySelector('.off-canvas-sidebar');if(!offCanvas)return;const openBtn=document.querySelector('.off-canvas-menu-btn > .site-nav-menu-btn');const closeBtn=document.querySelector('.off-canvas-sidebar-close');offCanvas.addEventListener('click',function(e){if(e.target!==offCanvas)return;offCanvas.classList.remove('show');document.body.style.overflow=''});closeBtn.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();offCanvas.classList.remove('show');document.body.style.overflow=''});openBtn?.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();offCanvas.classList.add('show');document.body.style.overflow='hidden'})}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.