var bam=bam||{};if(window.NodeList&&!NodeList.prototype.forEach){NodeList.prototype.forEach=function(callback,thisArg){var i;var len=this.length;thisArg=thisArg||window;for(i=0;i<len;i++){callback.call(thisArg,this[i],i,this);}};}
bam.keyboardNavigation={init:function(){this.initMenus();},focusMenuItems:function(navigationId){var navigation=document.getElementById(navigationId);if(!navigation){return;}
const menu=navigation.getElementsByTagName('ul')[0];if('undefined'===typeof menu){return;}
if(!menu.classList.contains('nav-menu')){menu.classList.add('nav-menu');}
var links=menu.getElementsByTagName('a');for(var link of links){link.addEventListener('focus',toggleFocus,true);link.addEventListener('blur',toggleFocus,true);}
function toggleFocus(){var self=this;while(!self.classList.contains('nav-menu')){if('li'===self.tagName.toLowerCase()){self.classList.toggle('focus');}
self=self.parentNode;}}},initMenus:function(){var navigationIds=['site-navigation','top-navigation'];navigationIds.forEach(function(navigationId){this.focusMenuItems(navigationId);},this);}};bam.mobileMenu={init:function(){this.toggle();},performToggle:function(element){var target=element.dataset.toggleTarget,targetElement="";activeClass='toggled-on';if(element.classList.contains('menu-toggle')){this.toggleIcon(element);targetElement=document.querySelector(target);}else{var parentNavContainer=element.closest('.bam-mobile-dropdown');targetElement=parentNavContainer.querySelector(target);}
element.classList.toggle(activeClass);bamToggleAttribute(element,'aria-expanded','true','false');if(targetElement){targetElement.classList.toggle(activeClass);}},toggle:function(){var self=this;document.querySelectorAll('*[data-toggle-target]').forEach(function(element){element.addEventListener('click',function(event){event.preventDefault();self.performToggle(element);});});},toggleIcon:function(element){var icon=element.querySelector('i.fas');if(!icon){return false;}
if(icon.classList.contains('fa-bars')){icon.classList.remove('fa-bars');icon.classList.add('fa-times');}else if(icon.classList.contains('fa-times')){icon.classList.remove('fa-times');icon.classList.add('fa-bars');}}};bam.searchToggle={init:function(){this.addListener();},toggle:function(element){var navigationContainer=element.parentElement,icon=navigationContainer.querySelector('i.fas'),svgIconSearch=navigationContainer.querySelector('.bam-svg-search'),svgIconClose=navigationContainer.querySelector('.bam-svg-times'),searchBoxContainer=navigationContainer.querySelector('.bam-search-box-container'),inputField=navigationContainer.querySelector('input.search-field');searchBoxContainer.classList.toggle('active');element.classList.toggle('toggled-on');if(!svgIconSearch||!svgIconClose){this.toggleIcon(icon);}
if(searchBoxContainer.classList.contains('active')){inputField.focus();}},addListener:function(){var searchButton=document.querySelector('.bam-search-button-icon');if(!searchButton){return false;}
var self=this;searchButton.addEventListener('click',function(){self.toggle(this);});},toggleIcon:function(icon){if(!icon){return false;}
if(icon.classList.contains('fa-search')){icon.classList.remove('fa-search');icon.classList.add('fa-times');}else if(icon.classList.contains('fa-times')){icon.classList.remove('fa-times');icon.classList.add('fa-search');}}};bam.intrinsicRatioVideos={init:function(){this.makeFit();window.addEventListener('resize',function(){this.makeFit();}.bind(this));},makeFit:function(){document.querySelectorAll('iframe, object, video').forEach(function(video){var ratio,iTargetWidth,container=video.parentNode;if(video.classList.contains('intrinsic-ignore')||video.parentNode.classList.contains('intrinsic-ignore')){return true;}
if(!video.dataset.origwidth){video.setAttribute('data-origwidth',video.width);video.setAttribute('data-origheight',video.height);}
iTargetWidth=container.offsetWidth;ratio=iTargetWidth/video.dataset.origwidth;video.style.width=iTargetWidth+'px';video.style.height=(video.dataset.origheight*ratio)+'px';});}};function bamToggleAttribute(element,attribute,trueVal,falseVal){if(trueVal===undefined){trueVal=true;}
if(falseVal===undefined){falseVal=false;}
if(element.getAttribute(attribute)!==trueVal){element.setAttribute(attribute,trueVal);}else{element.setAttribute(attribute,falseVal);}}
function bamDomReady(fn){if(typeof fn!=='function'){return;}
if(document.readyState==='interactive'||document.readyState==='complete'){return fn();}
document.addEventListener('DOMContentLoaded',fn,false);}
bamDomReady(function(){bam.mobileMenu.init();bam.searchToggle.init();bam.keyboardNavigation.init();bam.intrinsicRatioVideos.init();});