{"version":3,"sources":["_config.js","_plugins.js","blog-logic.js","location-search.js","content-filter.js","gab-main.js","map.js","tour-script.js"],"names":["tablet_break","max_wrap","bank_name","method","noop","methods","length","console","window","n","t","scrolling","vExtend","a","b","key","hasOwnProperty","documentReady","fn","document","readyState","addEventListener","attachEvent","isVisible","el","offsetWidth","offsetHeight","getClientRects","getParents","parentSelector","undefined","parents","p","parentNode","o","push","getParentElementWithTag","tag","parentElement","currentElement","tagName","toUpperCase","parent","getParentElementWithClass","className","classList","contains","isTablockChild","isAnchorLink","isAnchor","hasAttribute","getAttribute","indexOf","vScrollTo","to","duration","callbackFunction","element","scrollingElement","documentElement","start","scrollTop","change","startTs","performance","now","requestAnimationFrame","animateScroll","ts","currentTime","parseInt","c","d","easeInOutQuad","vOuterHeight","height","style","currentStyle","getComputedStyle","marginTop","marginBottom","vSlideUp","target","transitionProperty","transitionDuration","boxSizing","overflow","paddingTop","paddingBottom","setTimeout","display","removeProperty","vSlideDown","displayValue","vSlideToggle","vFadeOut","opacity","fade","vFadeIn","val","parseFloat","vShow","vHide","focusFirst","selectableElements","querySelectorAll","selected","i","focus","focusLast","getFirstSelectableElement","firstElement","tabIndex","getLastSelectableElement","lastElement","speedbump","options","settings","header","message","button_cancel","button_ok","id","confirm_function","cancel_function","ok_link","window_target","clickedElement","speedbumpCode","createElement","add","setAttribute","innerHTML","body","appendChild","currentSpeedbump","querySelector","spb","currentSpeedbumpInner","currentOKButton","currentCancelbutton","event","remove","removeAttribute","windowHeight","pageYOffset","top","getElementsByTagName","position","isCurrentDomain","split","e","f","location","href","r","enumerable","configurable","writable","Object","defineProperty","Jt","prototype","SV","HoverIntent","elements","userConfig","defaultOptions","exitDelay","interval","sensitivity","currX","currY","prevX","prevY","allElems","pollTimer","exitTimer","config","mouseTrack","ev","pageX","pageY","mouseCompare","targetElem","distX","distY","Math","sqrt","clearTimeout","elem","isActive","onExit","onEnter","defaults","userArgs","extend","init","setInterval","jumpNavAnchors","jumpNavAnchorParents","sp","getBoundingClientRect","j","matches","preventDefault","includes","linkboxElement","theLinkElement","theLinkURL","open","onmouseover","la","onmouseout","activeElement","shift","shiftKey","tablockContainer","firstContainerElement","lastContainerElement","cnt","dispatchEvent","Event","log","this","v","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","D","Array","slice","call","R","bind","apply","concat","arguments","on","h","u","un","isArray","x","C","en","m","ownerDocument","defaultView","HTMLElement","y","g","forEach","k","A","M","L","O","insertBefore","cn","msMatchesSelector","S","children","filter","firstElementChild","E","keys","w","reverse","an","sn","P","I","String","_","ln","dn","setActive","preventScroll","z","vn","N","T","removeChild","hn","DOMParser","parseFromString","F","stopPropagation","stopImmediatePropagation","pn","gn","X","mn","timeStamp","W","yn","bn","Error","Y","min","wn","max","xn","floor","kn","ceil","U","abs","Sn","En","q","Ln","On","replace","An","_n","zn","removeEventListener","removeListener","addListener","unbind","dispatch","CustomEvent","bubbles","detail","createEvent","initCustomEvent","destroy","B","H","Dn","Mn","J","K","jn","Nn","Tn","V","Gn","Fn","Xn","Wn","Q","bus","createDocumentFragment","join","off","emit","qn","Date","s","l","cancelAnimationFrame","rewind","pause","cancel","set","isPaused","Bn","Hn","Jn","width","left","right","ArrowLeft","ArrowRight","Z","$","Kn","Vn","Qn","nn","Zn","$n","nt","tt","it","rt","ot","ut","et","ct","ft","at","st","lt","dt","vt","ht","pt","gt","mt","yt","bt","wt","tn","xt","kt","St","Et","Lt","Ot","At","_t","zt","Dt","Mt","Pt","It","Ct","jt","passive","capture","Nt","Spacebar","Right","Left","Up","Down","Tt","Gt","Ft","Xt","Wt","Yt","Ut","freeze","__proto__","Media","state","breakpoints","reducedMotion","matchMedia","is","direction","reduce","mount","refresh","getPrototypeOf","setup","mediaQuery","sort","Direction","resolve","toLowerCase","charAt","orient","Elements","root","i18n","arrows","pagination","prev","next","bar","toggle","track","list","slides","role","carousel","label","labelledby","closest","nodeType","type","drag","isNavigation","Slides","Components","updateOnMove","slideFocus","splides","map","splide","getAt","slide","slideX","index","focusableNodes","cloneStatus","slideIndex","container","isClone","slideLabel","update","isWithin","Rt","register","get","getIn","Controller","toIndex","hasFocus","perPage","classes","getLength","isEnough","Layout","gap","autoWidth","fixedWidth","fixedHeight","autoHeight","padding","heightRatio","resize","listSize","slideSize","sliderSize","totalSize","getPadding","isOverflow","Clones","cloneNode","clone","clones","Move","isBusy","Scroll","getEnd","trimSpace","Transition","move","jump","translate","toPosition","getPosition","getLimit","exceededLimit","reposition","omitEnd","perMove","waitForTransition","go","match","scroll","getNext","getPrev","getAdjacent","setIndex","getIndex","toPage","toDest","Arrows","arrow","arrowPath","last","first","disabled","Autoplay","autoplay","resetProgress","pauseOnHover","pauseOnFocus","play","Cover","src","cover","easingFunc","pow","Drag","noDrag","button","cancelable","dragMinThreshold","mouse","touch","flickPower","flickMaxPages","rewindByDrag","snap","changedTouches","TouchEvent","disable","isDragging","Keyboard","keyboard","LazyLoad","lazyLoad","srcset","spinner","preloadPages","check","Pagination","paginationDirection","items","select","class","page","paginationKeyboard","li","Sync","isParent","remount","Wheel","deltaY","wheelMinThreshold","wheelSleep","releaseWheel","wheel","Live","live","textContent","qt","speed","easing","rewindSpeed","Bt","Ht","useScroll","JSON","parse","create","sync","STATES","exports","module","define","amd","globalThis","self","Splide","offBy","rn","autoStart","Extensions","AutoScroll","autoScroll","G","EvEmitter","_events","once","_onceEvents","splice","emitEvent","require","imagesLoaded","getImages","jqDeferred","Deferred","img","url","Image","jQuery","images","addElementImages","nodeName","addImage","background","addElementBackgroundImages","exec","backgroundImage","addBackground","progress","progressedCount","hasAnyBroken","complete","isLoaded","notify","debug","isComplete","getIsImageComplete","confirm","naturalWidth","proxyImage","handleEvent","onload","unbindEvents","onerror","makeJQueryPlugin","promise","filterBlog","cat","blogForm","data","Query","value","fetch","headers","stringify","then","response","ok","text","selectedIndex","catch","error","locationSearchForm","initialize","inp","address","google","maps","Geocoder","geocode","async","results","status","GeocoderStatus","OK","coords","geometry","addressLat","lat","addressLon","lng","loc","Number","trim","lon","dist","distance","branchLocations","atmLocations","branchArray","atmArray","dataset","resultsDiv","branchResult","atmResult","innerText","nextElementSibling","append","fetchAndSortDistances","addressInput","script","lat1","lon1","lat2","lon2","radlat1","PI","radlat2","theta","radtheta","sin","cos","acos","title","otherOffices","service","locationsContainer","locations","contentFilter","initCreditCards","cards","stateFilter","countyFilter","stateDeclaration","countyDeclaration","card","county","option","initBlogFilter","articles","reset","serviceFilter","topicFilter","count","emp","filterCount","art","initTeam","employees","serviceCode","counties","from","removedEls","countyObjArray","obj","name","newEl","bell","rates","dropItems","mainNav","navButtons","instance","targetItem","innerWidth","closeLogin","closeSearch","offsetLeft","setProperty","indexInParent","node","childNodes","num","menuHover","outInterval","mel","clearInterval","getCookie","parts","cookie","pop","item","hashElement","hash","click","rate","scrollTo","scrollIntoView","behavior","trs","tds","cook","gridTemplateColumns","mobileSplide","pinnedSplide","featureSplide","blogSplide","blogSplideHorizontal","blogSplideMobile","iconCatSplide","dots","iconSplide","cardSplide","crossSplide","hours","today","daysOfWeek","dayName","getDay","dl","splits","scrollObserver","IntersectionObserver","entries","entry","isIntersecting","animateCountUp","timer","innerHeight","threshold","underlineObserver","scrolls","underlineAnimations","openSearch","closeAllMenus","searchBox","innerWidget","openMenu","btn","closeMenu","ml","openLogin","mb_img","mb_txt","docum","menu","observe","vid","navigator","clipboard","writeText","content","dropButton","videoTitle","videoGUID","vidBuild","substring","vidModal","div","getElementById","xhr","XMLHttpRequest","send","responseText","sliders","alerts","alert","prods","jumpers","pd","base","ths","eq","updateDots","col","mobileButtonDisplay","compareTable","tabs","tab","moveSlideTrack","ptabs","activeEl","slideEl","tabHeader","rand","random","slideTrack","tabBtns","history","HISTORY_SUPPORT","pushState","anchorScrolls","ANCHOR_REGEX","OFFSET_HEIGHT_PX","scrollToCurrent","delegateAnchors","getFixedOffset","scrollIfAnchor","pushToHistory","rect","anchorOffset","test","pageXOffset","pathname","cmp","pageTitle","table","th","cellIndex","td","ids","animationDuration","frameDuration","totalFrames","round","easeOutQuad","frame","money","countTo","counter","currentCount","toString","charts","chart","holder","controls","firstChild","jumpObserver","jp","rootMargin","jumps","scrollLeft","scrollWidth","linkHolder","activeColumn","buttonToMove","jumpClass","jumpLinks","lnk","dot","paginationDots","numCols","sideBarObserver","sideNavs","compareCharts","alignRows","columns","numRows","childElementCount","rowHeight","currentRowHeight","mutObserver","MutationObserver","setCompareSize","mutations","openAppModal","modalElement","modalContent","modalShroud","closeAppModal","draggable","lastSlide","justifyContent","marginRight","attributes","childList","attributeFilter","modalType","appDownloadModal","modalIcon","modalMessage","personal","business","universal","modalLink","apple","android","modalQR","theBody","theFooter","newModalElement","modalMarkup","modalT","ype","keyCode","displayClosest","closestLocations","destination","allLocations","locationCookie","cookieLatLon","homeLocation","locationid","latlon","addElement","sortedLocations","determineDistance","sortList","geolocation","getCurrentPosition","getLocationsByIP","closestDiv","latitude","longitude","prepend","arrayToSort","nodeArray","states","replaceAll","tour","removeClass","currentSlide","dotNav","nextArrow","initDotNav","headerHeight","css","show","loadTourSlide","spot","prevArrow","fadeOut","setPosition","fadeIn","addClass","attr","centered","posX","offset","posY","block","hide","removeAttr"],"mappings":"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","file":"scripts.js","sourcesContent":["var tablet_break = 980;\r\nvar max_wrap = 1200;\r\nvar bank_name = \"German American Bank\";\r\n","/********************************************************\r\n** INITIALIZATION CODE\r\n********************************************************/\r\n/*\r\n    Any code which should run before everything else\r\n*/\r\n\r\n// Normalize console\r\n(function () {\r\n    var method;\r\n    var noop = function () { };\r\n    var methods = [\r\n        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',\r\n        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',\r\n        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',\r\n        'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn'\r\n    ];\r\n    var length = methods.length;\r\n    var console = (window.console = window.console || {});\r\n    while (length--) {\r\n        method = methods[length];\r\n        // Only stub undefined methods.\r\n        if (!console[method]) {\r\n            console[method] = noop;\r\n        }\r\n    }\r\n}());\r\n\r\n/*\r\n    Set this as the master scroll event to keep a lot of code from firing on scroll.\r\n    When you want to execute based on scroll behavior, use:\r\n    setInterval(function() {\r\n        if(scrolling) {\r\n            scrolling = false;\r\n            CODE();\r\n        }\r\n    }, 250);\r\n*/\r\nvar scrolling = false;\r\nwindow.addEventListener('scroll', function () {\r\n    scrolling = true;\r\n});\r\n\r\n\r\n/*************************************************\r\n * Hover Intent\r\n * *********************************************/\r\n\r\n// load namespace\r\nSV = window.SV || {};\r\n\r\nSV.HoverIntent = (function () {\r\n\r\n    // constructor\r\n    return function (elements, userConfig) {\r\n\r\n        // private members\r\n\r\n        const defaultOptions = {\r\n            exitDelay: 400,\r\n            interval: 100,\r\n            sensitivity: 7,\r\n        };\r\n        let config = {};\r\n\r\n        let currX, currY, prevX, prevY;\r\n        let allElems, pollTimer, exitTimer;\r\n\r\n        // private methods\r\n\r\n        // override default options with user config\r\n        const extend = function (defaults, userArgs) {\r\n            for (let i in userArgs) {\r\n                defaults[i] = userArgs[i];\r\n            }\r\n\r\n            return defaults;\r\n        };\r\n\r\n        // update mouse position\r\n        const mouseTrack = function (ev) {\r\n            currX = ev.pageX;\r\n            currY = ev.pageY;\r\n        };\r\n\r\n        // check if mouse movement has slowed enough to trigger active state\r\n        const mouseCompare = function (targetElem) {\r\n            const distX = prevX - currX, distY = prevY - currY;\r\n            const distance = Math.sqrt(distX * distX + distY * distY);\r\n\r\n            if (distance < config.sensitivity) {\r\n                // if we re-entered an element, cancel delayed exit and clear any active elements immediately\r\n                clearTimeout(exitTimer);\r\n                for (let elem of allElems) {\r\n                    if (elem.isActive) {\r\n                        config.onExit(elem);\r\n                        elem.isActive = false;\r\n                    }\r\n                }\r\n\r\n                // trigger hover\r\n                config.onEnter(targetElem);\r\n                targetElem.isActive = true;\r\n            } else {\r\n                // update previous coordinates and try again later\r\n                prevX = currX;\r\n                prevY = currY;\r\n                pollTimer = setTimeout(function () {\r\n                    mouseCompare(targetElem);\r\n                }, config.interval);\r\n            }\r\n        };\r\n\r\n        const init = function (elements, userConfig) {\r\n            if (!userConfig || !userConfig.onEnter || !userConfig.onExit) {\r\n                throw 'onEnter and onExit callbacks must be provided';\r\n            }\r\n            config = extend(defaultOptions, userConfig);\r\n            allElems = elements;\r\n\r\n            for (let elem of allElems) {\r\n                // holds current element state\r\n                elem.isActive = false;\r\n                // keeps track of mouse position\r\n                elem.addEventListener('mousemove', mouseTrack);\r\n\r\n                elem.addEventListener('mouseenter', function (ev) {\r\n                    // set initial entry position\r\n                    prevX = ev.pageX;\r\n                    prevY = ev.pageY;\r\n                    // if this element is already active, cancel exit\r\n                    if (elem.isActive) {\r\n                        clearTimeout(exitTimer);\r\n                        return;\r\n                    }\r\n\r\n                    // while mouse is over this element, check distance every 100ms\r\n                    pollTimer = setTimeout(function () {\r\n                        mouseCompare(elem);\r\n                    }, config.interval);\r\n                });\r\n                elem.addEventListener('mouseleave', function (ev) {\r\n                    clearTimeout(pollTimer);\r\n                    if (!elem.isActive)\r\n                        return;\r\n\r\n                    exitTimer = setTimeout(function () {\r\n                        config.onExit(elem);\r\n                        elem.isActive = false;\r\n                    }, config.exitDelay);\r\n                });\r\n            }\r\n        };\r\n\r\n        init(elements, userConfig);\r\n    };\r\n\r\n})();\r\n\r\n\r\n/********************************************************\r\n** HELPER FUNCTIONS\r\n********************************************************/\r\n/*\r\n    Any functions that have a jQuery equivalent I have tried to prefix with 'v' for vanilla.\r\n*/\r\n\r\n// Takes array 'a' and array 'b'\r\n// Iterates through 'b' and either replaces missing values from 'a' to 'b' or replaces default values in 'a' with the value provided in 'b'\r\n// This function is intedned to mimic the jQuery funtion \"extend\"\r\nfunction vExtend(a, b) {\r\n    for (var key in b) {\r\n        if (b.hasOwnProperty(key)) {\r\n            a[key] = b[key];\r\n        }\r\n    }\r\n    return a;\r\n}\r\n\r\n// Takes a function 'fn'\r\n// Executes 'fn' once the DOM has loaded (but before all assets finish loading)\r\nfunction documentReady(fn) {\r\n    if (document.readyState != 'loading') {\r\n        fn();\r\n    } else if (document.addEventListener) {\r\n        document.addEventListener('DOMContentLoaded', fn);\r\n    } else {\r\n        document.attachEvent('onreadystatechange', function () {\r\n            if (document.readyState != 'loading') {\r\n                fn();\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\n// Takes an element 'el'\r\n// Return true if an element is visisble and false if it is not\r\nfunction isVisible(el) {\r\n    return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\r\n}\r\n\r\n// Takes an element 'el' and an optional selector 'parentSelector'\r\n// Returns an array of parent elements of 'el', up to either document root or 'parentSelector' if it is provided\r\nfunction getParents(el, parentSelector) {\r\n    if (parentSelector === undefined) {\r\n        parentSelector = document;\r\n    }\r\n    var parents = [];\r\n    var p = el.parentNode;\r\n    while (p !== parentSelector && p !== null) {\r\n        var o = p;\r\n        parents.push(o);\r\n        p = o.parentNode;\r\n    }\r\n    parents.push(parentSelector);\r\n    return parents;\r\n}\r\n\r\n// Takes an element 'el' and string 'tag'\r\n// Returns an element that is a parent of 'el' and has the tagName property matching 'tag' or null if no such parent is found\r\n// Please be aware that in javascript, the tagname property is often formatted as all uppercase, so matching div means tag should = DIV\r\nfunction getParentElementWithTag(el, tag) {\r\n    if (el.parentElement !== null) {\r\n        var currentElement = el;\r\n        while (currentElement.tagName !== tag.toUpperCase() && currentElement.parentElement !== null) {\r\n            var objectPlaceholder = currentElement;\r\n            currentElement = objectPlaceholder.parentElement;\r\n        }\r\n        if (currentElement.tagName !== tag.toUpperCase()) {\r\n            currentElement = null;\r\n        }\r\n        return parent;\r\n    } else {\r\n        return null;\r\n    }\r\n}\r\n\r\n// Takes an element 'el'\r\n// Returns an element that is either 'el' or a parent of 'el' and has the passed class, or null if nothing is found\r\nfunction getParentElementWithClass(el, className) {\r\n    if (el !== null) {\r\n        var currentElement = el;\r\n        while (!currentElement.classList.contains(className) && currentElement.parentElement !== null) {\r\n            var objectPlaceholder = currentElement;\r\n            currentElement = objectPlaceholder.parentElement;\r\n        }\r\n        if (!currentElement.classList.contains(className)) {\r\n            currentElement = null;\r\n        }\r\n        return currentElement;\r\n    } else {\r\n        return null;\r\n    }\r\n}\r\n\r\n// Takes an element 'el'\r\n// Returns an true if one of the parents of 'el' has the class tablock or false if not\r\nfunction isTablockChild(el) {\r\n    if (el.parentElement !== null) {\r\n        var parent = el.parentElement;\r\n        while (!parent.classList.contains(\"tablock\") && parent.parentElement !== null) {\r\n            var parentObject = parent;\r\n            parent = parentObject.parentElement;\r\n        }\r\n        if (!parent.classList.contains(\"linkbox\")) {\r\n            parent = true;\r\n        } else {\r\n            parent = false;\r\n        }\r\n        return parent;\r\n    } else {\r\n        return false;\r\n    }\r\n}\r\n\r\n// Takes an element 'el'\r\n// Returns true or false based on the presence of # in the href attribute of 'el'\r\nfunction isAnchorLink(el) {\r\n    isAnchor = false;\r\n    if (el.tagName === \"A\" && el.hasAttribute(\"href\") && el.getAttribute(\"href\").indexOf(\"#\") > -1) {\r\n        isAnchor = true;\r\n    }\r\n    return isAnchor;\r\n}\r\n\r\n// Takes target element 'to', number 'duration', and optional function 'callbackFunction'\r\n// Animates the windows to scroll down to 'to' at speed of 'duration'\r\n// If 'callbackFunction' is defined, executes this function when the animation is complete\r\nfunction vScrollTo(to, duration, callbackFunction) {\r\n    var element = document.scrollingElement || document.documentElement,\r\n        start = element.scrollTop,\r\n        change = to - start,\r\n        startTs = performance.now();\r\n    // t = current time\r\n    // b = start value\r\n    // c = change in value\r\n    // d = duration\r\n    function easeInOutQuad(t, b, c, d) {\r\n        t /= d / 2;\r\n        if (t < 1) return c / 2 * t * t + b;\r\n        t--;\r\n        return -c / 2 * (t * (t - 2) - 1) + b;\r\n    }\r\n    function animateScroll(ts) {\r\n        var currentTime = ts - startTs;\r\n        element.scrollTop = parseInt(easeInOutQuad(currentTime, start, change, duration));\r\n        if (currentTime < duration) {\r\n            requestAnimationFrame(animateScroll);\r\n        } else {\r\n            element.scrollTop = to;\r\n            if (callbackFunction !== undefined) {\r\n                callbackFunction();\r\n            }\r\n        }\r\n    }\r\n    requestAnimationFrame(animateScroll);\r\n};\r\n\r\n// Takes element 'el' and returns the height, inlcluding padding and margins, or 'el'\r\nfunction vOuterHeight(el) {\r\n    var height = el.offsetHeight;\r\n    var style = el.currentStyle || getComputedStyle(el);\r\n    height += parseInt(style.marginTop) + parseInt(style.marginBottom);\r\n    return height;\r\n}\r\n\r\n// Takes element 'el', optional number 'duration', and optional function 'callbackFunction'\r\n// Slides 'el' open at the speed of 'duration'\r\n// If 'duration' is not provided, uses 500 as the default speed\r\n// If 'callbackFunction' is defined, executes this function when the slide animation is complete\r\nfunction vSlideUp(target, duration, callbackFunction) {\r\n    if (duration === undefined) {\r\n        duration = 500;\r\n    }\r\n    target.style.transitionProperty = 'height, margin, padding';\r\n    target.style.transitionDuration = duration + 'ms';\r\n    target.style.boxSizing = 'border-box';\r\n    target.style.height = target.offsetHeight + 'px';\r\n    target.offsetHeight;\r\n    target.style.overflow = 'hidden';\r\n    target.style.height = 0;\r\n    target.style.paddingTop = 0;\r\n    target.style.paddingBottom = 0;\r\n    target.style.marginTop = 0;\r\n    target.style.marginBottom = 0;\r\n    window.setTimeout(function () {\r\n        target.style.display = 'none';\r\n        target.style.removeProperty('height');\r\n        target.style.removeProperty('padding-top');\r\n        target.style.removeProperty('padding-bottom');\r\n        target.style.removeProperty('margin-top');\r\n        target.style.removeProperty('margin-bottom');\r\n        target.style.removeProperty('overflow');\r\n        target.style.removeProperty('transition-duration');\r\n        target.style.removeProperty('transition-property');\r\n        if (callbackFunction !== undefined) {\r\n            callbackFunction();\r\n        }\r\n    }, duration);\r\n}\r\n\r\n// Takes element 'el', number 'duration', optional string 'display', and optional function 'callbackFunction'\r\n// Slides 'el' open at the speed of 'duration' if 'el' display is set to \"none\"\r\n// If 'duration' is not provided, uses 500 as the default speed\r\n// Will set the CSS property \"display\" of 'el' to 'display' or to \"block\" if 'display' is not set\r\n// If 'callbackFunction' is defined, executes this function when the slide animation is complete\r\nfunction vSlideDown(target, duration, display, callbackFunction) {\r\n    if (duration === undefined) {\r\n        duration = 500;\r\n    }\r\n    target.style.removeProperty('display');\r\n    var displayValue = window.getComputedStyle(target).display;\r\n    if (displayValue === 'none' && display === undefined) {\r\n        displayValue = 'block';\r\n    } else if (displayValue === 'none') {\r\n        displayValue = display;\r\n    }\r\n    target.style.display = displayValue;\r\n    var height = target.offsetHeight;\r\n    target.style.overflow = 'hidden';\r\n    target.style.height = 0;\r\n    target.style.paddingTop = 0;\r\n    target.style.paddingBottom = 0;\r\n    target.style.marginTop = 0;\r\n    target.style.marginBottom = 0;\r\n    target.offsetHeight;\r\n    target.style.boxSizing = 'border-box';\r\n    target.style.transitionProperty = \"height, margin, padding\";\r\n    target.style.transitionDuration = duration + 'ms';\r\n    target.style.height = height + 'px';\r\n    target.style.removeProperty('padding-top');\r\n    target.style.removeProperty('padding-bottom');\r\n    target.style.removeProperty('margin-top');\r\n    target.style.removeProperty('margin-bottom');\r\n    window.setTimeout(function () {\r\n        target.style.removeProperty('height');\r\n        target.style.removeProperty('overflow');\r\n        target.style.removeProperty('transition-duration');\r\n        target.style.removeProperty('transition-property');\r\n        if (callbackFunction !== undefined) {\r\n            callbackFunction();\r\n        }\r\n    }, duration);\r\n}\r\n\r\n// Takes an element 'el' a number 'duration' and a string 'display'\r\n// Slides 'el' open at the speed of 'duration' if 'el' display is set to none\r\n// Slides 'el' closed at the speed of 'duration' if 'el' display is set to anything other than none\r\n// Optional attribute 'display' can be used to set what the CSS display property of 'el' is set to when the slideDOwn animation is complete\r\nfunction vSlideToggle(target, duration, display) {\r\n    if (duration === undefined) {\r\n        duration = 500;\r\n    }\r\n    if (window.getComputedStyle(target).display === 'none') {\r\n        if (display === undefined) {\r\n            return vSlideDown(target, duration);\r\n        } else {\r\n            return vSlideDown(target, duration, display);\r\n        }\r\n    } else {\r\n        return vSlideUp(target, duration);\r\n    }\r\n}\r\n\r\n// Takes an element 'el' and fades 'el' out, and then sets the display CSS property of 'el' to 'none' once the fade animaton is complete\r\nfunction vFadeOut(target) {\r\n    target.style.opacity = 1;\r\n    (function fade() {\r\n        if ((target.style.opacity -= .1) < 0) {\r\n            target.style.display = \"none\";\r\n        } else {\r\n            requestAnimationFrame(fade);\r\n        }\r\n    })();\r\n};\r\n\r\n// Takes an element 'el' and an optional string 'display' and fades 'el' in, and then sets the display CSS property of 'el' to 'display' once the fade animaton is complete\r\n// Will set CSS display proerty to 'block' as a fallback if none is provided\r\nfunction vFadeIn(el, display) {\r\n    el.style.opacity = 0;\r\n    el.style.display = display || \"block\";\r\n    (function fade() {\r\n        var val = parseFloat(el.style.opacity);\r\n        if (!((val += .1) > 1)) {\r\n            el.style.opacity = val;\r\n            requestAnimationFrame(fade);\r\n        }\r\n    })();\r\n};\r\n\r\n// Takes an element 'el' and an optional string 'display' and sets the display CSS property of 'el' to 'display'\r\n// Will set CSS display proerty to 'block' as a fallback if none is provided\r\nfunction vShow(el, display) {\r\n    el.style.display = display || \"block\";\r\n}\r\n\r\n// Takes an element 'el' and sets the display CSS property of 'el' to 'none'\r\nfunction vHide(el) {\r\n    el.style.display = \"none\";\r\n}\r\n\r\n// Takes an element 'el' and focuses the first selectable element within it\r\n// Return null if no selectable element is found\r\nfunction focusFirst(el) {\r\n    if (el !== null) {\r\n        var selectableElements = el.querySelectorAll(\"a, input, textarea, button\");\r\n        var selected = false;\r\n        for (var i = 0; i < selectableElements.length; i++) {\r\n            if (selectableElements[i].style.display !== \"none\" && selected === false) {\r\n                selectableElements[i].focus();\r\n                selected = true;\r\n            }\r\n        }\r\n        return false;\r\n    } else {\r\n        return null;\r\n    }\r\n}\r\n\r\n// Takes an element 'el' and focuses the last selectable element within it\r\n// Return null if no selectable element is found\r\nfunction focusLast(el) {\r\n    if (el !== null) {\r\n        var selectableElements = el.querySelectorAll(\"a, input, textarea, button\");\r\n        var selected = false;\r\n        for (var i = (selectableElements.length - 1); i > -1; i--) {\r\n            if (selectableElements[i].style.display !== \"none\" && selected === false) {\r\n                selectableElements[i].focus();\r\n                selected = true;\r\n            }\r\n        }\r\n        return false;\r\n    } else {\r\n        return null;\r\n    }\r\n}\r\n\r\n// Takes an element 'el' and returns the first selectable and visible element within 'el' or null if none is found\r\nfunction getFirstSelectableElement(el) {\r\n    var selectableElements = el.querySelectorAll(\"button, a, input, select, textarea\");\r\n    var firstElement = null;\r\n    if (selectableElements !== null && selectableElements.length) {\r\n        for (i = 0; i < selectableElements.length; i++) {\r\n            if (selectableElements[i].tabIndex === 0 && selectableElements[i].style.display !== \"none\" && !selectableElements[i].classList.contains(\"visuallyhidden\") && isVisible(selectableElements[i]) && firstElement === null) {\r\n                firstElement = selectableElements[i];\r\n            }\r\n        }\r\n    }\r\n    return firstElement;\r\n}\r\n\r\n// Takes an element as 'el' returns the last selectable and visible element within 'el' or null if none is found\r\nfunction getLastSelectableElement(el) {\r\n    var selectableElements = el.querySelectorAll(\"button, a, input, select, textarea\");\r\n    var lastElement = null;\r\n    if (selectableElements !== null && selectableElements.length) {\r\n        for (i = (selectableElements.length - 1); i > -1; i--) {\r\n            if (selectableElements[i].tabIndex === 0 && selectableElements[i].style.display !== \"none\" && !selectableElements[i].classList.contains(\"visuallyhidden\") && isVisible(selectableElements[i]) && lastElement === null) {\r\n                lastElement = selectableElements[i];\r\n            }\r\n        }\r\n    }\r\n    return lastElement;\r\n}\r\n\r\n\r\n\r\n/********************************************************\r\n** JUMPNAV CONDITIONAL HIGHLIGHTING\r\n********************************************************/\r\n/*\r\n    Used to detect when the target of a jumplink scrolls into view so we can format those items as the currently displayed area\r\n*/\r\nsetInterval(function () {\r\n    if (scrolling) {\r\n        scrolling = false;\r\n        var jumpNavAnchors = document.querySelectorAll(\".jump-nav a\");\r\n        var jumpNavAnchorParents = document.querySelectorAll(\".jump-nav li\");\r\n        if (jumpNavAnchors !== null && jumpNavAnchors.length && jumpNavAnchorParents !== null && jumpNavAnchorParents.length) {\r\n            for (i = 0; i < jumpNavAnchors.length; i++) {\r\n                var sp = jumpNavAnchors[i].getAttribute(\"href\").split(\"#\");\r\n                if (document.querySelector(\"[data-jn='\" + sp[1] + \"']\").length && document.querySelector(\"[data-jn='\" + sp[1] + \"']\").getBoundingClientRect().top - 100 < window.pageYOffset) {\r\n                    for (j = 0; j < jumpNavAnchorParents.length; j++) {\r\n                        jumpNavAnchorParents[i].classList.remove(\"current\");\r\n                    }\r\n                    jumpNavAnchors[i].parentElement.classList.add(\"current\");\r\n                }\r\n            }\r\n        }\r\n    }\r\n}, 250);\r\n\r\n\r\n/********************************************************\r\n** SPEEDBUMP\r\n********************************************************/\r\n/*\r\n    Displays a dialog when users click on certain links that have the speedbump class and that will navigate them away from the current site\r\n*/\r\nfunction speedbump(options) {\r\n    // Options\r\n    var settings = vExtend({\r\n        // These are the defaults\r\n\r\n        // Speedbump box title text\r\n        header: \"You are continuing to another website.\",\r\n\r\n        // Speedbump box message text\r\n        message: `You have selected an external link and are now leaving the secure website of ${bank_name}. We do not control external sites and cannot be held responsible for the content contained therein. We encourage you to review their privacy and security policies as they may differ from ${bank_name}’s.`,\r\n\r\n\r\n\r\n        // Speedbump box cancel button text\r\n        button_cancel: \"Return to \" + bank_name,\r\n\r\n        // Speedbump box OK button text\r\n        button_ok: \"OK\",\r\n\r\n        // Speedbump box element ID\r\n        id: \"default\",\r\n\r\n        // Optional: speedbump box function code to execute when the OK button is clicked\r\n        // Will not execute if target=\"_self\"\r\n        confirm_function: null,\r\n\r\n        // Optional: speedbump box function code to execute when the cancel button is clicked. Also executed on ESC\r\n        cancel_function: null,\r\n\r\n        // Speedbump box URL for the OK button. If left blank, automatically pulled from clicked element\r\n        ok_link: \"\",\r\n\r\n        // Spedbump box target (_self, _blank) for the OK button\r\n        window_target: \"_self\"\r\n\r\n        // 'clickedElement' is also passed, but isn't overwritten because it should never be provided as a default\r\n    }, options);\r\n\r\n    // If no link is provided to override, source it from the clicked element\r\n    if (settings.ok_link === \"\") {\r\n        settings.ok_link = settings.clickedElement.getAttribute(\"href\");\r\n    }\r\n\r\n    // If the clicked element has no target, set as self, otherwise, set as the clicked element's target\r\n    if (settings.clickedElement.hasAttribute(\"target\") && settings.clickedElement.getAttribute(\"target\") !== \"\") {\r\n        settings.window_target = settings.clickedElement.getAttribute(\"target\");\r\n    }\r\n\r\n    // If an ID exists, assign it\r\n    if (settings.id != \"\") {\r\n        settings.id = \"_\" + settings.id;\r\n    }\r\n\r\n    // Check to see if the markup for this speedbump has already been appended and if not append it\r\n    if (\r\n        document.querySelectorAll(\".js-speedbump_pop\" + settings.id).length ===\r\n        0\r\n    ) {\r\n        const speedbumpCode = document.createElement(\"section\");\r\n        speedbumpCode.classList.add(\"js-speedbump_pop\" + settings.id);\r\n        speedbumpCode.classList.add(\"speedbump_back\");\r\n        speedbumpCode.setAttribute(\"aria-label\", \"Speedbump - Please review\");\r\n        speedbumpCode.style.display = \"none\";\r\n        speedbumpCode.innerHTML =\r\n            \"<div class='speedbump_pop_inner'><div class='speedbump_pop_content tablock'></div></div>\";\r\n        body.appendChild(speedbumpCode);\r\n    }\r\n\r\n    // Assign a variable to refer to the speedbump we just added to the DOM\r\n    var currentSpeedbump = document.querySelector(\".js-speedbump_pop\" + settings.id);\r\n\r\n    // Build the speedbump inner HTML based on the values passed to settings and then set it\r\n    var valid = true;\r\n    var spb = \"\";\r\n    if (settings.header != \"\") {\r\n        spb += \"<div class='speedbump_pop_header'>\" + settings.header + \"</div>\";\r\n    }\r\n    spb += \"<div class='speedbump_pop_message'>\" + settings.message + \"</div>\" +\r\n        \"<div class='speedbump_pop_buttons'>\" +\r\n        \"<button type='button' class='js-speedbump_btn_cancel\" + settings.id + \" speedbump_pop_btn speedbump_pop_btn_cancel ghost-btn'>\" + settings.button_cancel + \"</button>\" +\r\n        \"<a href='\" + settings.clickedElement.getAttribute(\"href\") + \"' class='js-speedbump_btn_ok\" + settings.id + \" speedbump_pop_btn speedbump_pop_btn_ok cta-btn' target='\" + settings.window_target + \"'>\" + settings.button_ok + \"</a>\" +        \r\n        \"</div>\";\r\n    currentSpeedbump.querySelector(\".speedbump_pop_content\").innerHTML = spb;\r\n\r\n    // Now that the markup is complete, set reference variables to the current speedbump for the rest of the code\r\n    var currentSpeedbumpInner = currentSpeedbump.querySelector(\".speedbump_pop_inner\");\r\n    var currentOKButton = currentSpeedbump.querySelector(\".js-speedbump_btn_ok\" + settings.id);\r\n    var currentCancelbutton = currentSpeedbump.querySelector(\".js-speedbump_btn_cancel\" + settings.id);\r\n\r\n    // ESC key behavior\r\n    if (!currentSpeedbump.classList.contains(\"esc-bound\")) {\r\n        currentSpeedbump.addEventListener(\"keyup\", function (event) {\r\n            if (event.key === \"Esc\" && currentSpeedbump.style.display !== \"none\") {\r\n                vHide(currentSpeedbump);\r\n                currentSpeedbump.classList.remove(\"sb-active\");\r\n                currentSpeedbump.removeAttribute(\"role\");\r\n                valid = false;\r\n                if (settings.cancel_function !== null) {\r\n                    settings.cancel_function();\r\n                }\r\n                settings.clickedElement.focus();\r\n                return false;\r\n            }\r\n        });\r\n        currentSpeedbump.classList.add(\"esc-bound\");\r\n    }\r\n\r\n    // OK button click event\r\n    if (!currentOKButton.classList.contains(\"bound\")) {\r\n        currentOKButton.addEventListener(\"click\", function (event) {\r\n            vHide(currentSpeedbump);\r\n            currentSpeedbump.classList.remove(\"sb-active\");\r\n            currentSpeedbump.removeAttribute(\"role\");\r\n            if (settings.confirm_function !== null) {\r\n                settings.confirm_function();\r\n            }\r\n        });\r\n        currentOKButton.classList.add(\"bound\");\r\n    }\r\n\r\n    // Cancel button click event\r\n    if (!currentCancelbutton.classList.contains(\"bound\")) {\r\n        currentCancelbutton.addEventListener(\"click\", function (event) {\r\n            vHide(currentSpeedbump);\r\n            currentSpeedbump.classList.remove(\"sb-active\");\r\n            currentSpeedbump.removeAttribute(\"role\");\r\n            valid = false;\r\n            if (settings.cancel_function !== null) {\r\n                settings.cancel_function();\r\n            }\r\n            settings.clickedElement.focus();\r\n            return false;\r\n        });\r\n        currentCancelbutton.classList.add(\"bound\");\r\n    }\r\n\r\n    //Move any tracking from link to confirm ok button\r\n    currentOKButton.removeAttribute(\"data-track\");\r\n    currentOKButton.removeAttribute(\"data-event\");\r\n    currentOKButton.removeAttribute(\"data-track-category\");\r\n    currentOKButton.removeAttribute(\"data-track-action\");\r\n    currentOKButton.removeAttribute(\"data-track-value\");\r\n\r\n    if (settings.clickedElement.hasAttribute(\"data-track\") && settings.clickedElement.getAttribute(\"data-track\") !== \"\") {\r\n        currentOKButton.setAttribute(\"data-track\", settings.clickedElement.getAttribute(\"data-track\"));\r\n    }\r\n    if (settings.clickedElement.hasAttribute(\"data-event\") && settings.clickedElement.getAttribute(\"data-event\") !== \"\") {\r\n        currentOKButton.setAttribute(\"data-event\", settings.clickedElement.getAttribute(\"data-event\"));\r\n    }\r\n    if (settings.clickedElement.hasAttribute(\"data-track-category\") && settings.clickedElement.getAttribute(\"data-track-category\") !== \"\") {\r\n        currentOKButton.setAttribute(\"data-track-category\", settings.clickedElement.getAttribute(\"data-track-category\"));\r\n    }\r\n    if (settings.clickedElement.hasAttribute(\"data-track-action\") && settings.clickedElement.getAttribute(\"data-track-action\") !== \"\") {\r\n        currentOKButton.setAttribute(\"data-track-action\", settings.clickedElement.getAttribute(\"data-track-action\"));\r\n    }\r\n    if (settings.clickedElement.hasAttribute(\"data-track-value\") && settings.clickedElement.getAttribute(\"data-track-value\") !== \"\") {\r\n        currentOKButton.setAttribute(\"data-track-value\", settings.clickedElement.getAttribute(\"data-track-value\"));\r\n    }\r\n\r\n    // The code to display the speedbump\r\n    //vShow(currentSpeedbump);\r\n    currentSpeedbump.style.display = \"flex\";\r\n    currentSpeedbump.setAttribute(\"role\", \"alert\");\r\n    setTimeout(function () {\r\n        currentOKButton.focus();\r\n    }, \"600\");\r\n    var windowHeight = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n    if (windowHeight < vOuterHeight(currentSpeedbumpInner)) {\r\n        currentSpeedbumpInner.style.top = windowHeight;\r\n        //currentSpeedbump.style.position = \"absolute\";\r\n        currentSpeedbump.classList.remove(\"fixed\");\r\n        currentSpeedbump.style.height = vOuterHeight(document.getElementsByTagName(\"html\")[0]);\r\n    } else {\r\n        currentSpeedbump.style.position = \"fixed\";\r\n        currentSpeedbump.classList.add(\"fixed\");\r\n    }\r\n    currentSpeedbump.classList.add(\"sb-active\");\r\n    currentSpeedbump.setAttribute(\"data-url\", settings.ok_link);\r\n\r\n    return false;\r\n}\r\n\r\n// Helper to determine if a string which would be a URL references the domain of the current site or a different one\r\nfunction isCurrentDomain(a) { var b, c = \"\"; a.indexOf(\"://\") > -1 ? (b = a.split(\"/\")[2], c = a.split(\"/\")[0]) : b = a.split(\"/\")[0]; var e, f, d = window.location.href; return a.indexOf(\"://\") > -1 ? (e = d.split(\"/\")[2], f = d.split(\"/\")[0]) : e = d.split(\"/\")[0], e = e.split(\":\")[0], \"\" == c || c == f && b == e }\r\n\r\n// Normal link speedbumps\r\ndocument.addEventListener(\"click\", function (event) {\r\n\r\n    if (event.target.matches(\"a\")) {\r\n        if (!document.documentElement.classList.contains('hydrated') && !(event.target.classList.contains(\"speedbump_pop_btn_ok\")) &&\r\n            (event.target.classList.contains(\"speedbump\") || event.target.getAttribute(\"data-speedbump\") == \"speedbump\" || \r\n                (!isCurrentDomain(event.target.getAttribute(\"href\")) && event.target.getAttribute(\"target\") == \"_blank\"))) {\r\n\r\n            if (!event.target.hasAttribute(\"data-no-speedbump\") && !event.target.classList.contains(\"no-sb\")) {\r\n\r\n                if (!event.target.href.includes(\"https://germanamerican-web.oflows.net\")) {\r\n                    event.preventDefault();\r\n                    speedbump({\r\n                        id: \"default_link\",\r\n                        clickedElement: event.target,\r\n                        button_cancel = \"Stay Here\",\r\n                        button_ok = \"Continue\"\r\n                    });\r\n                }\r\n                \r\n            }\r\n\r\n        }\r\n        else if (!document.documentElement.classList.contains('hydrated') && event.target.getAttribute(\"href\").indexOf(\"mailto\") != -1 && !(event.target.classList.contains(\"speedbump_pop_btn_ok\"))) {\r\n            event.preventDefault();\r\n            speedbump({\r\n                id: 'default_email',\r\n                header: 'Email Disclaimer',\r\n                message: 'Email is not a secure transmission route. Thus we ask that you never send sensitive personal information like Social Security numbers, Account numbers, Credit Card numbers or any type of password via email to ' + bank_name + ' or anyone else. Please call us when submitting this information. Please click <strong>Send an Email</strong> to continue ...',\r\n                button_cancel: 'Stay Here',\r\n                button_ok: 'Send an Email',\r\n                clickedElement: event.target\r\n            });\r\n        }\r\n    }\r\n});\r\n\r\n/* Email link Speedbumps\r\ndocument.addEventListener(\"click\", function (event) {\r\n    var emailbumpElement = getParentElementWithClass(event.target, \"email_bump\");\r\n    if (!document.documentElement.classList.contains('hydrated') && emailbumpElement !== null && !emailbumpElement.hasAttribute(\"data-no-speedbump\") && emailbumpElement.hasAttribute(\"href\") && emailbumpElement.getAttribute(\"href\") !== \"\") {\r\n        event.preventDefault();\r\n        speedbump({\r\n            id: 'default_email',\r\n            header: 'Email Disclaimer',\r\n            message: 'Email is not a secure transmission route. Thus we ask that you never send sensitive personal information like Social Security numbers, Account numbers, Credit Card numbers or any type of password via email to ' + bank_name + ' or anyone else. Please call us when submitting this information. Please click <strong>Send an Email</strong> to continue ...',\r\n            button_cancel: 'Return to ' + bank_name,\r\n            button_ok: 'Send an Email',\r\n            clickedElement: speedbumpElement\r\n        });\r\n    }\r\n});\r\n*/\r\n\r\n/********************************************************\r\n** LINKBOX\r\n********************************************************/\r\n/*\r\n    Makes an element's entire area a clickable link. Uses the href of the first link in the element as the link address\r\n*/\r\n// Event handler for linkbox links, including dynamic elements: Part 1, Click Events (with line to Disable in Kentico Admin)\r\nif (!document.documentElement.classList.contains('hydrated')) {\r\n    document.addEventListener(\"click\", function (event) {\r\n        \r\n        var linkboxElement = getParentElementWithClass(event.target, \"linkbox\");\r\n        if (linkboxElement !== null && !document.documentElement.classList.contains('hydrated')) {\r\n            event.preventDefault();\r\n            var theLinkElement = linkboxElement.querySelector(\"a\");\r\n            var theLinkURL = theLinkElement.getAttribute(\"href\");\r\n            if ((theLinkElement.classList.contains(\"speedbump\") || theLinkElement.getAttribute(\"data-speedbump\") == \"speedbump\") && !document.documentElement.classList.contains('hydrated')) {\r\n                event.preventDefault();\r\n                speedbump({\r\n                    id: \"default_link\",\r\n                    clickedElement: theLinkElement,\r\n                    button_cancel = \"Stay Here\",\r\n                    button_ok = \"Continue\"\r\n                });\r\n            } else {\r\n                if (theLinkElement.hasAttribute(\"target\") && theLinkElement.getAttribute(\"target\") === \"_blank\") {\r\n                    window.open(theLinkURL);\r\n                } else {\r\n                    window.location.href = theLinkURL;\r\n                }\r\n            }\r\n        }\r\n    });\r\n    // Part 2, Hover Events\r\n    document.onmouseover = function (event) {\r\n        var linkboxElement = getParentElementWithClass(event.target, \"linkbox\");\r\n        if (linkboxElement !== null) {\r\n            var la = linkboxElement.querySelector(\"a\");\r\n            if (la != null) {\r\n                la.classList.add(\"hovered\");\r\n            }\r\n        }\r\n    }\r\n    document.onmouseout = function (event) {\r\n        var linkboxElement = getParentElementWithClass(event.target, \"linkbox\");\r\n        if (linkboxElement !== null) {\r\n            var la = linkboxElement.querySelector(\"a\");\r\n            if (la != null) {\r\n                la.classList.remove(\"hovered\");\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n/********************************************************\r\n** SKIP LINK\r\n********************************************************/\r\n/*\r\n    Behavior for when users on a screen reader click on the \"skip to main content\" link\r\n*/\r\ndocument.addEventListener(\"click\", function (event) {\r\n    if (event.target.classList.contains(\"js-skip-link\")) {\r\n        if (event.target.hasAttribute(\"href\") && document.querySelector(\"main\" + event.target.getAttribute(\"href\")) !== null) {\r\n            vScrollTo(document.querySelector(\"main\" + event.target.getAttribute(\"href\")), 1000, function () {\r\n                document.querySelector(\"main a\").focus();\r\n            });\r\n        }\r\n    }\r\n});\r\n\r\n\r\n/********************************************************\r\n** TABLOCK\r\n********************************************************/\r\n/*\r\n    Prevents users from tabbing out of an area, such as a modal. Automatic based on the deepest container with class \"tablock.\"\r\n*/\r\ndocument.addEventListener(\"keydown\", function (event) {\r\n    var activeElement = document.activeElement;\r\n    if (event.key === \"Tab\" && isTablockChild(activeElement)) {\r\n        var shift = event.shiftKey;\r\n        tablockContainer = getParentElementWithClass(activeElement, \"tablock\");\r\n        // Check to see if the container index has changed, which means the element is inside of a tablock.\r\n        if (tablockContainer !== null) {\r\n            var firstContainerElement = getFirstSelectableElement(tablockContainer);\r\n            var lastContainerElement = getLastSelectableElement(tablockContainer);\r\n            if (firstContainerElement !== null && lastContainerElement !== null) {\r\n                if (firstContainerElement === activeElement && shift === true) {\r\n                    event.preventDefault();\r\n                    lastContainerElement.focus();\r\n                    return false;\r\n                } else if (lastContainerElement === activeElement && shift === false) {\r\n                    event.preventDefault();\r\n                    firstContainerElement.focus();\r\n                    return false;\r\n                }\r\n            }\r\n        }\r\n    }\r\n});\r\n\r\n\r\n\r\n\r\n/*****************************************************\r\n * ACCORDIONS\r\n * **************************************************/\r\n//document.addEventListener(\"click\", function (e) {\r\n//    if (e.target.matches(\".js-accordion-button\") && !e.target.parentNode.classList.contains('js-card-accordion')) {\r\n//        var pnt = getParentElementWithClass(e.target, \"js-accordion\");\r\n//        var cnt = pnt.querySelector(\".js-accordion-content\");\r\n\r\n//        if ((cnt.style.display == \"none\") || (cnt.style.display == '')) {\r\n//            vSlideDown(cnt);\r\n//            pnt.classList.add(\"active\");\r\n//            e.target.setAttribute(\"aria-expanded\", true);\r\n//        }\r\n//        else {\r\n//            vSlideUp(cnt);\r\n//            pnt.classList.remove(\"active\");\r\n//            e.target.setAttribute(\"aria-expanded\", true);\r\n//        }\r\n//    }\r\n//});\r\ndocument.addEventListener(\"click\", function (e) {\r\n    if (e.target.matches(\".js-accordion-button\")) {\r\n        var cnt = e.target.parentNode.querySelector(\".js-accordion-content\");\r\n\r\n        if ((cnt.style.display == \"none\") || (cnt.style.display == '')) {\r\n            vSlideDown(cnt);\r\n            setTimeout(function () {\r\n                //for splides inside accordions\r\n                window.dispatchEvent(new Event('resize'));\r\n                console.log(\"RESIZE\");\r\n            }, 500);\r\n            e.target.parentNode.classList.add(\"active\");\r\n            e.target.setAttribute(\"aria-expanded\", true);\r\n        }\r\n        else {\r\n            vSlideUp(cnt);\r\n            e.target.parentNode.classList.remove(\"active\");\r\n            e.target.setAttribute(\"aria-expanded\", true);\r\n        }\r\n    }\r\n});\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction r(n, t) { for (var i = 0; i < t.length; i++) { var r = t[i]; r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(n, r.key, r) } } function Jt(n, t, i) { t && r(n.prototype, t), i && r(n, i), Object.defineProperty(n, \"prototype\", { writable: !1 }) }\r\n/*!\r\n * Splide.js\r\n * Version  : 4.1.2\r\n * License  : MIT\r\n * Copyright: 2022 Naotoshi Fujita\r\n */\r\nvar n, t; n = this, t = function () { \"use strict\"; var v = \"(prefers-reduced-motion: reduce)\", G = 4, rn = 5, r = { CREATED: 1, MOUNTED: 2, IDLE: 3, MOVING: G, SCROLLING: rn, DRAGGING: 6, DESTROYED: 7 }; function D(n) { n.length = 0 } function o(n, t, i) { return Array.prototype.slice.call(n, t, i) } function R(n) { return n.bind.apply(n, [null].concat(o(arguments, 1))) } function on() { } var p = setTimeout; function h(n) { return requestAnimationFrame(n) } function u(n, t) { return typeof t === n } function un(n) { return !c(n) && u(\"object\", n) } var e = Array.isArray, x = R(u, \"function\"), C = R(u, \"string\"), en = R(u, \"undefined\"); function c(n) { return null === n } function m(n) { try { return n instanceof (n.ownerDocument.defaultView || window).HTMLElement } catch (n) { return !1 } } function y(n) { return e(n) ? n : [n] } function g(n, t) { y(n).forEach(t) } function b(n, t) { return -1 < n.indexOf(t) } function k(n, t) { return n.push.apply(n, y(t)), n } function A(t, n, i) { t && g(n, function (n) { n && t.classList[i ? \"add\" : \"remove\"](n) }) } function M(n, t) { A(n, C(t) ? t.split(\" \") : t, !0) } function L(n, t) { g(t, n.appendChild.bind(n)) } function O(n, i) { g(n, function (n) { var t = (i || n).parentNode; t && t.insertBefore(n, i) }) } function cn(n, t) { return m(n) && (n.msMatchesSelector || n.matches).call(n, t) } function S(n, t) { n = n ? o(n.children) : []; return t ? n.filter(function (n) { return cn(n, t) }) : n } function fn(n, t) { return t ? S(n, t)[0] : n.firstElementChild } var E = Object.keys; function w(t, i, n) { t && (n ? E(t).reverse() : E(t)).forEach(function (n) { \"__proto__\" !== n && i(t[n], n) }) } function an(r) { return o(arguments, 1).forEach(function (i) { w(i, function (n, t) { r[t] = i[t] }) }), r } function d(i) { return o(arguments, 1).forEach(function (n) { w(n, function (n, t) { e(n) ? i[t] = n.slice() : un(n) ? i[t] = d({}, un(i[t]) ? i[t] : {}, n) : i[t] = n }) }), i } function sn(t, n) { g(n || E(t), function (n) { delete t[n] }) } function P(n, i) { g(n, function (t) { g(i, function (n) { t && t.removeAttribute(n) }) }) } function I(i, t, r) { un(t) ? w(t, function (n, t) { I(i, t, n) }) : g(i, function (n) { c(r) || \"\" === r ? P(n, t) : n.setAttribute(t, String(r)) }) } function j(n, t, i) { n = document.createElement(n); return t && (C(t) ? M : I)(n, t), i && L(i, n), n } function _(n, t, i) { if (en(i)) return getComputedStyle(n)[t]; c(i) || (n.style[t] = \"\" + i) } function ln(n, t) { _(n, \"display\", t) } function dn(n) { n.setActive && n.setActive() || n.focus({ preventScroll: !0 }) } function z(n, t) { return n.getAttribute(t) } function vn(n, t) { return n && n.classList.contains(t) } function N(n) { return n.getBoundingClientRect() } function T(n) { g(n, function (n) { n && n.parentNode && n.parentNode.removeChild(n) }) } function hn(n) { return fn((new DOMParser).parseFromString(n, \"text/html\").body) } function F(n, t) { n.preventDefault(), t && (n.stopPropagation(), n.stopImmediatePropagation()) } function pn(n, t) { return n && n.querySelector(t) } function gn(n, t) { return t ? o(n.querySelectorAll(t)) : [] } function X(n, t) { A(n, t, !1) } function mn(n) { return n.timeStamp } function W(n) { return C(n) ? n : n ? n + \"px\" : \"\" } var yn = \"splide\", f = \"data-\" + yn; function bn(n, t) { if (!n) throw new Error(\"[\" + yn + \"] \" + (t || \"\")) } var Y = Math.min, wn = Math.max, xn = Math.floor, kn = Math.ceil, U = Math.abs; function Sn(n, t, i) { return U(n - t) < i } function En(n, t, i, r) { var o = Y(t, i), t = wn(t, i); return r ? o < n && n < t : o <= n && n <= t } function q(n, t, i) { var r = Y(t, i), t = wn(t, i); return Y(wn(r, n), t) } function Ln(n) { return (0 < n) - (n < 0) } function On(t, n) { return g(n, function (n) { t = t.replace(\"%s\", \"\" + n) }), t } function An(n) { return n < 10 ? \"0\" + n : \"\" + n } var _n = {}; function zn() { var c = []; function i(n, i, r) { g(n, function (t) { t && g(i, function (n) { n.split(\" \").forEach(function (n) { n = n.split(\".\"); r(t, n[0], n[1]) }) }) }) } return { bind: function (n, t, u, e) { i(n, t, function (n, t, i) { var r = \"addEventListener\" in n, o = r ? n.removeEventListener.bind(n, t, u, e) : n.removeListener.bind(n, u); r ? n.addEventListener(t, u, e) : n.addListener(u), c.push([n, t, i, u, o]) }) }, unbind: function (n, t, o) { i(n, t, function (t, i, r) { c = c.filter(function (n) { return !!(n[0] !== t || n[1] !== i || n[2] !== r || o && n[3] !== o) || (n[4](), !1) }) }) }, dispatch: function (n, t, i) { var r; return \"function\" == typeof CustomEvent ? r = new CustomEvent(t, { bubbles: !0, detail: i }) : (r = document.createEvent(\"CustomEvent\")).initCustomEvent(t, !0, !1, i), n.dispatchEvent(r), r }, destroy: function () { c.forEach(function (n) { n[4]() }), D(c) } } } var B = \"mounted\", H = \"move\", Dn = \"moved\", Mn = \"click\", Pn = \"active\", In = \"inactive\", Rn = \"visible\", Cn = \"hidden\", J = \"refresh\", K = \"updated\", jn = \"resize\", Nn = \"resized\", Tn = \"scroll\", V = \"scrolled\", a = \"destroy\", Gn = \"navigation:mounted\", Fn = \"autoplay:play\", Xn = \"autoplay:pause\", Wn = \"lazyload:loaded\", Yn = \"sk\", Un = \"sh\"; function Q(n) { var i = n ? n.event.bus : document.createDocumentFragment(), r = zn(); return n && n.event.on(a, r.destroy), an(r, { bus: i, on: function (n, t) { r.bind(i, y(n).join(\" \"), function (n) { t.apply(t, e(n.detail) ? n.detail : []) }) }, off: R(r.unbind, i), emit: function (n) { r.dispatch(i, n, o(arguments, 1)) } }) } function qn(t, n, i, r) { var o, u, e = Date.now, c = 0, f = !0, a = 0; function s() { if (!f) { if (c = t ? Y((e() - o) / t, 1) : 1, i && i(c), 1 <= c && (n(), o = e(), r && ++a >= r)) return l(); u = h(s) } } function l() { f = !0 } function d() { u && cancelAnimationFrame(u), f = !(u = c = 0) } return { start: function (n) { n || d(), o = e() - (n ? c * t : 0), f = !1, u = h(s) }, rewind: function () { o = e(), c = 0, i && i(c) }, pause: l, cancel: d, set: function (n) { t = n }, isPaused: function () { return f } } } function s(n) { var t = n; return { set: function (n) { t = n }, is: function (n) { return b(y(n), t) } } } var n = \"Arrow\", Bn = n + \"Left\", Hn = n + \"Right\", t = n + \"Up\", n = n + \"Down\", Jn = \"ttb\", l = { width: [\"height\"], left: [\"top\", \"right\"], right: [\"bottom\", \"left\"], x: [\"y\"], X: [\"Y\"], Y: [\"X\"], ArrowLeft: [t, Hn], ArrowRight: [n, Bn] }; var Z = \"role\", $ = \"tabindex\", i = \"aria-\", Kn = i + \"controls\", Vn = i + \"current\", Qn = i + \"selected\", nn = i + \"label\", Zn = i + \"labelledby\", $n = i + \"hidden\", nt = i + \"orientation\", tt = i + \"roledescription\", it = i + \"live\", rt = i + \"busy\", ot = i + \"atomic\", ut = [Z, $, \"disabled\", Kn, Vn, nn, Zn, $n, nt, tt], i = yn + \"__\", et = yn, ct = i + \"track\", ft = i + \"list\", at = i + \"slide\", st = at + \"--clone\", lt = at + \"__container\", dt = i + \"arrows\", vt = i + \"arrow\", ht = vt + \"--prev\", pt = vt + \"--next\", gt = i + \"pagination\", mt = gt + \"__page\", yt = i + \"progress\" + \"__bar\", bt = i + \"toggle\", wt = i + \"sr\", tn = \"is-active\", xt = \"is-prev\", kt = \"is-next\", St = \"is-visible\", Et = \"is-loading\", Lt = \"is-focus-in\", Ot = \"is-overflow\", At = [tn, St, xt, kt, Et, Lt, Ot]; var _t = \"touchstart mousedown\", zt = \"touchmove mousemove\", Dt = \"touchend touchcancel mouseup click\"; var Mt = \"slide\", Pt = \"loop\", It = \"fade\"; function Rt(o, r, t, u) { var e, n = Q(o), i = n.on, c = n.emit, f = n.bind, a = o.Components, s = o.root, l = o.options, d = l.isNavigation, v = l.updateOnMove, h = l.i18n, p = l.pagination, g = l.slideFocus, m = a.Direction.resolve, y = z(u, \"style\"), b = z(u, nn), w = -1 < t, x = fn(u, \".\" + lt); function k() { var n = o.splides.map(function (n) { n = n.splide.Components.Slides.getAt(r); return n ? n.slide.id : \"\" }).join(\" \"); I(u, nn, On(h.slideX, (w ? t : r) + 1)), I(u, Kn, n), I(u, Z, g ? \"button\" : \"\"), g && P(u, tt) } function S() { e || E() } function E() { var n, t, i; e || (n = o.index, (i = L()) !== vn(u, tn) && (A(u, tn, i), I(u, Vn, d && i || \"\"), c(i ? Pn : In, O)), i = function () { if (o.is(It)) return L(); var n = N(a.Elements.track), t = N(u), i = m(\"left\", !0), r = m(\"right\", !0); return xn(n[i]) <= kn(t[i]) && xn(t[r]) <= kn(n[r]) }(), t = !i && (!L() || w), o.state.is([G, rn]) || I(u, $n, t || \"\"), I(gn(u, l.focusableNodes || \"\"), $, t ? -1 : \"\"), g && I(u, $, t ? -1 : 0), i !== vn(u, St) && (A(u, St, i), c(i ? Rn : Cn, O)), i || document.activeElement !== u || (t = a.Slides.getAt(o.index)) && dn(t.slide), A(u, xt, r === n - 1), A(u, kt, r === n + 1)) } function L() { var n = o.index; return n === r || l.cloneStatus && n === t } var O = { index: r, slideIndex: t, slide: u, container: x, isClone: w, mount: function () { w || (u.id = s.id + \"-slide\" + An(r + 1), I(u, Z, p ? \"tabpanel\" : \"group\"), I(u, tt, h.slide), I(u, nn, b || On(h.slideLabel, [r + 1, o.length]))), f(u, \"click\", R(c, Mn, O)), f(u, \"keydown\", R(c, Yn, O)), i([Dn, Un, V], E), i(Gn, k), v && i(H, S) }, destroy: function () { e = !0, n.destroy(), X(u, At), P(u, ut), I(u, \"style\", y), I(u, nn, b || \"\") }, update: E, style: function (n, t, i) { _(i && x || u, n, t) }, isWithin: function (n, t) { return n = U(n - r), (n = w || !l.rewind && !o.is(Pt) ? n : Y(n, o.length - n)) <= t } }; return O } var Ct = f + \"-interval\"; var jt = { passive: !1, capture: !0 }; var Nt = { Spacebar: \" \", Right: Hn, Left: Bn, Up: t, Down: n }; function Tt(n) { return n = C(n) ? n : n.key, Nt[n] || n } var Gt = \"keydown\"; var Ft = f + \"-lazy\", Xt = Ft + \"-srcset\", Wt = \"[\" + Ft + \"], [\" + Xt + \"]\"; var Yt = [\" \", \"Enter\"]; var Ut = Object.freeze({ __proto__: null, Media: function (r, n, o) { var u = r.state, t = o.breakpoints || {}, e = o.reducedMotion || {}, i = zn(), c = []; function f(n) { n && i.destroy() } function a(n, t) { t = matchMedia(t); i.bind(t, \"change\", s), c.push([n, t]) } function s() { var n = u.is(7), t = o.direction, i = c.reduce(function (n, t) { return d(n, t[1].matches ? t[0] : {}) }, {}); sn(o), l(i), o.destroy ? r.destroy(\"completely\" === o.destroy) : n ? (f(!0), r.mount()) : t !== o.direction && r.refresh() } function l(n, t, i) { d(o, n), t && d(Object.getPrototypeOf(o), n), !i && u.is(1) || r.emit(K, o) } return { setup: function () { var i = \"min\" === o.mediaQuery; E(t).sort(function (n, t) { return i ? +n - +t : +t - +n }).forEach(function (n) { a(t[n], \"(\" + (i ? \"min\" : \"max\") + \"-width:\" + n + \"px)\") }), a(e, v), s() }, destroy: f, reduce: function (n) { matchMedia(v).matches && (n ? d(o, e) : sn(o, E(e))) }, set: l } }, Direction: function (n, t, o) { return { resolve: function (n, t, i) { var r = \"rtl\" !== (i = i || o.direction) || t ? i === Jn ? 0 : -1 : 1; return l[n] && l[n][r] || n.replace(/width|left|right/i, function (n, t) { n = l[n.toLowerCase()][r] || n; return 0 < t ? n.charAt(0).toUpperCase() + n.slice(1) : n }) }, orient: function (n) { return n * (\"rtl\" === o.direction ? 1 : -1) } } }, Elements: function (n, t, i) { var r, o, u, e = Q(n), c = e.on, f = e.bind, a = n.root, s = i.i18n, l = {}, d = [], v = [], h = []; function p() { r = y(\".\" + ct), o = fn(r, \".\" + ft), bn(r && o, \"A track/list element is missing.\"), k(d, S(o, \".\" + at + \":not(.\" + st + \")\")), w({ arrows: dt, pagination: gt, prev: ht, next: pt, bar: yt, toggle: bt }, function (n, t) { l[t] = y(\".\" + n) }), an(l, { root: a, track: r, list: o, slides: d }); var n = a.id || function (n) { return \"\" + n + An(_n[n] = (_n[n] || 0) + 1) }(yn), t = i.role; a.id = n, r.id = r.id || n + \"-track\", o.id = o.id || n + \"-list\", !z(a, Z) && \"SECTION\" !== a.tagName && t && I(a, Z, t), I(a, tt, s.carousel), I(o, Z, \"presentation\"), m() } function g(n) { var t = ut.concat(\"style\"); D(d), X(a, v), X(r, h), P([r, o], t), P(a, n ? t : [\"style\", tt]) } function m() { X(a, v), X(r, h), v = b(et), h = b(ct), M(a, v), M(r, h), I(a, nn, i.label), I(a, Zn, i.labelledby) } function y(n) { n = pn(a, n); return n && function (n, t) { if (x(n.closest)) return n.closest(t); for (var i = n; i && 1 === i.nodeType && !cn(i, t);)i = i.parentElement; return i }(n, \".\" + et) === a ? n : void 0 } function b(n) { return [n + \"--\" + i.type, n + \"--\" + i.direction, i.drag && n + \"--draggable\", i.isNavigation && n + \"--nav\", n === et && tn] } return an(l, { setup: p, mount: function () { c(J, g), c(J, p), c(K, m), f(document, _t + \" keydown\", function (n) { u = \"keydown\" === n.type }, { capture: !0 }), f(a, \"focusin\", function () { A(a, Lt, !!u) }) }, destroy: g }) }, Slides: function (r, o, u) { var n = Q(r), t = n.on, e = n.emit, c = n.bind, f = (n = o.Elements).slides, a = n.list, s = []; function i() { f.forEach(function (n, t) { d(n, t, -1) }) } function l() { h(function (n) { n.destroy() }), D(s) } function d(n, t, i) { t = Rt(r, t, i, n); t.mount(), s.push(t), s.sort(function (n, t) { return n.index - t.index }) } function v(n) { return n ? p(function (n) { return !n.isClone }) : s } function h(n, t) { v(t).forEach(n) } function p(t) { return s.filter(x(t) ? t : function (n) { return C(t) ? cn(n.slide, t) : b(y(t), n.index) }) } return { mount: function () { i(), t(J, l), t(J, i) }, destroy: l, update: function () { h(function (n) { n.update() }) }, register: d, get: v, getIn: function (n) { var t = o.Controller, i = t.toIndex(n), r = t.hasFocus() ? 1 : u.perPage; return p(function (n) { return En(n.index, i, i + r - 1) }) }, getAt: function (n) { return p(n)[0] }, add: function (n, o) { g(n, function (n) { var t, i, r; m(n = C(n) ? hn(n) : n) && ((t = f[o]) ? O(n, t) : L(a, n), M(n, u.classes.slide), t = n, i = R(e, jn), t = gn(t, \"img\"), (r = t.length) ? t.forEach(function (n) { c(n, \"load error\", function () { --r || i() }) }) : i()) }), e(J) }, remove: function (n) { T(p(n).map(function (n) { return n.slide })), e(J) }, forEach: h, filter: p, style: function (t, i, r) { h(function (n) { n.style(t, i, r) }) }, getLength: function (n) { return (n ? f : s).length }, isEnough: function () { return s.length > u.perPage } } }, Layout: function (t, n, i) { var r, o, u, e = (a = Q(t)).on, c = a.bind, f = a.emit, a = n.Slides, s = n.Direction.resolve, l = (n = n.Elements).root, d = n.track, v = n.list, h = a.getAt, p = a.style; function g() { r = i.direction === Jn, _(l, \"maxWidth\", W(i.width)), _(d, s(\"paddingLeft\"), y(!1)), _(d, s(\"paddingRight\"), y(!0)), m(!0) } function m(n) { var t = N(l); !n && o.width === t.width && o.height === t.height || (_(d, \"height\", function () { var n = \"\"; r && (bn(n = b(), \"height or heightRatio is missing.\"), n = \"calc(\" + n + \" - \" + y(!1) + \" - \" + y(!0) + \")\"); return n }()), p(s(\"marginRight\"), W(i.gap)), p(\"width\", i.autoWidth ? null : W(i.fixedWidth) || (r ? \"\" : w())), p(\"height\", W(i.fixedHeight) || (r ? i.autoHeight ? null : w() : b()), !0), o = t, f(Nn), u !== (u = O()) && (A(l, Ot, u), f(\"overflow\", u))) } function y(n) { var t = i.padding, n = s(n ? \"right\" : \"left\"); return t && W(t[n] || (un(t) ? 0 : t)) || \"0px\" } function b() { return W(i.height || N(v).width * i.heightRatio) } function w() { var n = W(i.gap); return \"calc((100%\" + (n && \" + \" + n) + \")/\" + (i.perPage || 1) + (n && \" - \" + n) + \")\" } function x() { return N(v)[s(\"width\")] } function k(n, t) { n = h(n || 0); return n ? N(n.slide)[s(\"width\")] + (t ? 0 : L()) : 0 } function S(n, t) { var i, n = h(n); return n ? (n = N(n.slide)[s(\"right\")], i = N(v)[s(\"left\")], U(n - i) + (t ? 0 : L())) : 0 } function E(n) { return S(t.length - 1) - S(0) + k(0, n) } function L() { var n = h(0); return n && parseFloat(_(n.slide, s(\"marginRight\"))) || 0 } function O() { return t.is(It) || E(!0) > x() } return { mount: function () { var n, t, i; g(), c(window, \"resize load\", (n = R(f, jn), i = qn(t || 0, n, null, 1), function () { i.isPaused() && i.start() })), e([K, J], g), e(jn, m) }, resize: m, listSize: x, slideSize: k, sliderSize: E, totalSize: S, getPadding: function (n) { return parseFloat(_(d, s(\"padding\" + (n ? \"Right\" : \"Left\")))) || 0 }, isOverflow: O } }, Clones: function (c, i, f) { var t, r = Q(c), n = r.on, a = i.Elements, s = i.Slides, o = i.Direction.resolve, l = []; function u() { if (n(J, d), n([K, jn], v), t = h()) { var o = t, u = s.get().slice(), e = u.length; if (e) { for (; u.length < o;)k(u, u); k(u.slice(-o), u.slice(0, o)).forEach(function (n, t) { var i = t < o, r = function (n, t) { n = n.cloneNode(!0); return M(n, f.classes.clone), n.id = c.root.id + \"-clone\" + An(t + 1), n }(n.slide, t); i ? O(r, u[0].slide) : L(a.list, r), k(l, r), s.register(r, t - o + (i ? 0 : e), n.index) }) } i.Layout.resize(!0) } } function d() { e(), u() } function e() { T(l), D(l), r.destroy() } function v() { var n = h(); t !== n && (t < n || !n) && r.emit(J) } function h() { var n, t = f.clones; return c.is(Pt) ? en(t) && (t = (n = f[o(\"fixedWidth\")] && i.Layout.slideSize(0)) && kn(N(a.track)[o(\"width\")] / n) || f[o(\"autoWidth\")] && c.length || 2 * f.perPage) : t = 0, t } return { mount: u, destroy: e } }, Move: function (r, c, o) { var e, n = Q(r), t = n.on, f = n.emit, a = r.state.set, u = (n = c.Layout).slideSize, i = n.getPadding, s = n.totalSize, l = n.listSize, d = n.sliderSize, v = (n = c.Direction).resolve, h = n.orient, p = (n = c.Elements).list, g = n.track; function m() { c.Controller.isBusy() || (c.Scroll.cancel(), y(r.index), c.Slides.update()) } function y(n) { b(S(n, !0)) } function b(n, t) { r.is(It) || (t = t ? n : function (n) { { var t, i; r.is(Pt) && (t = k(n), i = t > c.Controller.getEnd(), (t < 0 || i) && (n = w(n, i))) } return n }(n), _(p, \"transform\", \"translate\" + v(\"X\") + \"(\" + t + \"px)\"), n !== t && f(Un)) } function w(n, t) { var i = n - L(t), r = d(); return n -= h(r * (kn(U(i) / r) || 1)) * (t ? 1 : -1) } function x() { b(E(), !0), e.cancel() } function k(n) { for (var t = c.Slides.get(), i = 0, r = 1 / 0, o = 0; o < t.length; o++) { var u = t[o].index, e = U(S(u, !0) - n); if (!(e <= r)) break; r = e, i = u } return i } function S(n, t) { var i = h(s(n - 1) - (n = n, \"center\" === (i = o.focus) ? (l() - u(n, !0)) / 2 : +i * u(n) || 0)); return t ? (n = i, n = o.trimSpace && r.is(Mt) ? q(n, 0, h(d(!0) - l())) : n) : i } function E() { var n = v(\"left\"); return N(p)[n] - N(g)[n] + h(i(!1)) } function L(n) { return S(n ? c.Controller.getEnd() : 0, !!o.trimSpace) } return { mount: function () { e = c.Transition, t([B, Nn, K, J], m) }, move: function (n, t, i, r) { var o, u; n !== t && (o = i < n, u = h(w(E(), o)), o ? 0 <= u : u <= p[v(\"scrollWidth\")] - N(g)[v(\"width\")]) && (x(), b(w(E(), i < n), !0)), a(G), f(H, t, i, n), e.start(t, function () { a(3), f(Dn, t, i, n), r && r() }) }, jump: y, translate: b, shift: w, cancel: x, toIndex: k, toPosition: S, getPosition: E, getLimit: L, exceededLimit: function (n, t) { t = en(t) ? E() : t; var i = !0 !== n && h(t) < h(L(!1)), n = !1 !== n && h(t) > h(L(!0)); return i || n }, reposition: m } }, Controller: function (o, u, e) { var c, f, a, s, n = Q(o), t = n.on, i = n.emit, l = u.Move, d = l.getPosition, r = l.getLimit, v = l.toPosition, h = (n = u.Slides).isEnough, p = n.getLength, g = e.omitEnd, m = o.is(Pt), y = o.is(Mt), b = R(L, !1), w = R(L, !0), x = e.start || 0, k = x; function S() { f = p(!0), a = e.perMove, s = e.perPage, c = _(); var n = q(x, 0, g ? c : f - 1); n !== x && (x = n, l.reposition()) } function E() { c !== _() && i(\"ei\") } function L(n, t) { var i = a || (P() ? 1 : s), i = O(x + i * (n ? -1 : 1), x, !(a || P())); return -1 === i && y && !Sn(d(), r(!n), 1) ? n ? 0 : c : t ? i : A(i) } function O(n, t, i) { var r; return h() || P() ? ((r = function (n) { if (y && \"move\" === e.trimSpace && n !== x) for (var t = d(); t === v(n, !0) && En(n, 0, o.length - 1, !e.rewind);)n < x ? --n : ++n; return n }(n)) !== n && (t = n, n = r, i = !1), n < 0 || c < n ? n = a || !En(0, n, t, !0) && !En(c, t, n, !0) ? m ? i ? n < 0 ? -(f % s || s) : f : n : e.rewind ? n < 0 ? c : 0 : -1 : z(D(n)) : i && n !== t && (n = z(D(t) + (n < t ? -1 : 1)))) : n = -1, n } function A(n) { return m ? (n + f) % f || 0 : n } function _() { for (var n = f - (P() || m && a ? 1 : s); g && 0 < n--;)if (v(f - 1, !0) !== v(n, !0)) { n++; break } return q(n, 0, f - 1) } function z(n) { return q(P() ? n : s * n, 0, c) } function D(n) { return P() ? Y(n, c) : xn((c <= n ? f - 1 : n) / s) } function M(n) { n !== x && (k = x, x = n) } function P() { return !en(e.focus) || e.isNavigation } function I() { return o.state.is([G, rn]) && !!e.waitForTransition } return { mount: function () { S(), t([K, J, \"ei\"], S), t(Nn, E) }, go: function (n, t, i) { var r; I() || -1 < (r = A(n = function (n) { var t = x; { var i, r; C(n) ? (r = n.match(/([+\\-<>])(\\d+)?/) || [], i = r[1], r = r[2], \"+\" === i || \"-\" === i ? t = O(x + +(\"\" + i + (+r || 1)), x) : \">\" === i ? t = r ? z(+r) : b(!0) : \"<\" === i && (t = w(!0))) : t = m ? n : q(n, 0, c) } return t }(n))) && (t || r !== x) && (M(r), l.move(n, r, k, i)) }, scroll: function (n, t, i, r) { u.Scroll.scroll(n, t, i, function () { var n = A(l.toIndex(d())); M(g ? Y(n, c) : n), r && r() }) }, getNext: b, getPrev: w, getAdjacent: L, getEnd: _, setIndex: M, getIndex: function (n) { return n ? k : x }, toIndex: z, toPage: D, toDest: function (n) { return n = l.toIndex(n), y ? q(n, 0, c) : n }, hasFocus: P, isBusy: I } }, Arrows: function (o, n, t) { var i, r, u = Q(o), e = u.on, c = u.bind, f = u.emit, a = t.classes, s = t.i18n, l = n.Elements, d = n.Controller, v = l.arrows, h = l.track, p = v, g = l.prev, m = l.next, y = {}; function b() { var n = t.arrows; !n || g && m || (p = v || j(\"div\", a.arrows), g = S(!0), m = S(!1), i = !0, L(p, [g, m]), v || O(p, h)), g && m && (an(y, { prev: g, next: m }), ln(p, n ? \"\" : \"none\"), M(p, r = dt + \"--\" + t.direction), n && (e([B, Dn, J, V, \"ei\"], E), c(m, \"click\", R(k, \">\")), c(g, \"click\", R(k, \"<\")), E(), I([g, m], Kn, h.id), f(\"arrows:mounted\", g, m))), e(K, w) } function w() { x(), b() } function x() { u.destroy(), X(p, r), i ? (T(v ? [g, m] : p), g = m = null) : P([g, m], ut) } function k(n) { d.go(n, !0) } function S(n) { return hn('<button class=\"' + a.arrow + \" \" + (n ? a.prev : a.next) + '\" type=\"button\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"40\" height=\"40\" focusable=\"false\"><path d=\"' + (t.arrowPath || \"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z\") + '\" />') } function E() { var n, t, i, r; g && m && (r = o.index, n = d.getPrev(), t = d.getNext(), i = -1 < n && r < n ? s.last : s.prev, r = -1 < t && t < r ? s.first : s.next, g.disabled = n < 0, m.disabled = t < 0, I(g, nn, i), I(m, nn, r), f(\"arrows:updated\", g, m, n, t)) } return { arrows: y, mount: b, destroy: x, update: E } }, Autoplay: function (n, t, i) { var r, o, u = Q(n), e = u.on, c = u.bind, f = u.emit, a = qn(i.interval, n.go.bind(n, \">\"), function (n) { var t = l.bar; t && _(t, \"width\", 100 * n + \"%\"), f(\"autoplay:playing\", n) }), s = a.isPaused, l = t.Elements, d = (u = t.Elements).root, v = u.toggle, h = i.autoplay, p = \"pause\" === h; function g() { s() && t.Slides.isEnough() && (a.start(!i.resetProgress), o = r = p = !1, b(), f(Fn)) } function m(n) { p = !!(n = void 0 === n ? !0 : n), b(), s() || (a.pause(), f(Xn)) } function y() { p || (r || o ? m(!1) : g()) } function b() { v && (A(v, tn, !p), I(v, nn, i.i18n[p ? \"play\" : \"pause\"])) } function w(n) { n = t.Slides.getAt(n); a.set(n && +z(n.slide, Ct) || i.interval) } return { mount: function () { h && (i.pauseOnHover && c(d, \"mouseenter mouseleave\", function (n) { r = \"mouseenter\" === n.type, y() }), i.pauseOnFocus && c(d, \"focusin focusout\", function (n) { o = \"focusin\" === n.type, y() }), v && c(v, \"click\", function () { p ? g() : m(!0) }), e([H, Tn, J], a.rewind), e(H, w), v && I(v, Kn, l.track.id), p || g(), b()) }, destroy: a.cancel, play: g, pause: m, isPaused: s } }, Cover: function (n, t, i) { var r = Q(n).on; function o(i) { t.Slides.forEach(function (n) { var t = fn(n.container || n.slide, \"img\"); t && t.src && u(i, t, n) }) } function u(n, t, i) { i.style(\"background\", n ? 'center/cover no-repeat url(\"' + t.src + '\")' : \"\", !0), ln(t, n ? \"none\" : \"\") } return { mount: function () { i.cover && (r(Wn, R(u, !0)), r([B, K, J], R(o, !0))) }, destroy: R(o, !1) } }, Scroll: function (n, c, u) { var f, a, t = Q(n), i = t.on, s = t.emit, l = n.state.set, d = c.Move, v = d.getPosition, e = d.getLimit, h = d.exceededLimit, p = d.translate, g = n.is(Mt), m = 1; function y(n, t, i, r, o) { var u, e = v(), i = (x(), !i || g && h() || (i = c.Layout.sliderSize(), u = Ln(n) * i * xn(U(n) / i) || 0, n = d.toPosition(c.Controller.toDest(n % i)) + u), Sn(e, n, 1)); m = 1, t = i ? 0 : t || wn(U(n - e) / 1.5, 800), a = r, f = qn(t, b, R(w, e, n, o), 1), l(rn), s(Tn), f.start() } function b() { l(3), a && a(), s(V) } function w(n, t, i, r) { var o = v(), r = (n + (t - n) * (t = r, (n = u.easingFunc) ? n(t) : 1 - Math.pow(1 - t, 4)) - o) * m; p(o + r), g && !i && h() && (m *= .6, U(r) < 10 && y(e(h(!0)), 600, !1, a, !0)) } function x() { f && f.cancel() } function r() { f && !f.isPaused() && (x(), b()) } return { mount: function () { i(H, x), i([K, J], r) }, destroy: x, scroll: y, cancel: r } }, Drag: function (e, o, c) { var f, t, u, a, s, l, d, v, n = Q(e), i = n.on, h = n.emit, p = n.bind, g = n.unbind, m = e.state, y = o.Move, b = o.Scroll, w = o.Controller, x = o.Elements.track, k = o.Media.reduce, r = (n = o.Direction).resolve, S = n.orient, E = y.getPosition, L = y.exceededLimit, O = !1; function j() { var n = c.drag; C(!n), a = \"free\" === n } function N(n) { var t, i, r; l = !1, d || (t = R(n), i = n.target, r = c.noDrag, cn(i, \".\" + mt + \", .\" + vt) || r && cn(i, r) || !t && n.button || (w.isBusy() ? F(n, !0) : (v = t ? x : window, s = m.is([G, rn]), u = null, p(v, zt, A, jt), p(v, Dt, _, jt), y.cancel(), b.cancel(), z(n)))) } function A(n) { var t, i, r, o, u; m.is(6) || (m.set(6), h(\"drag\")), n.cancelable && (s ? (y.translate(f + D(n) / (O && e.is(Mt) ? 5 : 1)), u = 200 < M(n), t = O !== (O = L()), (u || t) && z(n), l = !0, h(\"dragging\"), F(n)) : U(D(u = n)) > U(D(u, !0)) && (t = n, i = c.dragMinThreshold, r = un(i), o = r && i.mouse || 0, r = (r ? i.touch : +i) || 10, s = U(D(t)) > (R(t) ? r : o), F(n))) } function _(n) { var t, i, r; m.is(6) && (m.set(3), h(\"dragged\")), s && (i = function (n) { return E() + Ln(n) * Y(U(n) * (c.flickPower || 600), a ? 1 / 0 : o.Layout.listSize() * (c.flickMaxPages || 1)) }(t = function (n) { if (e.is(Pt) || !O) { var t = M(n); if (t && t < 200) return D(n) / t } return 0 }(t = n)), r = c.rewind && c.rewindByDrag, k(!1), a ? w.scroll(i, 0, c.snap) : e.is(It) ? w.go(S(Ln(t)) < 0 ? r ? \"<\" : \"-\" : r ? \">\" : \"+\") : e.is(Mt) && O && r ? w.go(L(!0) ? \">\" : \"<\") : w.go(w.toDest(i), !0), k(!0), F(n)), g(v, zt, A), g(v, Dt, _), s = !1 } function T(n) { !d && l && F(n, !0) } function z(n) { u = t, t = n, f = E() } function D(n, t) { return I(n, t) - I(P(n), t) } function M(n) { return mn(n) - mn(P(n)) } function P(n) { return t === n && u || t } function I(n, t) { return (R(n) ? n.changedTouches[0] : n)[\"page\" + r(t ? \"Y\" : \"X\")] } function R(n) { return \"undefined\" != typeof TouchEvent && n instanceof TouchEvent } function C(n) { d = n } return { mount: function () { p(x, zt, on, jt), p(x, Dt, on, jt), p(x, _t, N, jt), p(x, \"click\", T, { capture: !0 }), p(x, \"dragstart\", F), i([B, K], j) }, disable: C, isDragging: function () { return s } } }, Keyboard: function (t, n, i) { var r, o, u = Q(t), e = u.on, c = u.bind, f = u.unbind, a = t.root, s = n.Direction.resolve; function l() { var n = i.keyboard; n && (r = \"global\" === n ? window : a, c(r, Gt, h)) } function d() { f(r, Gt) } function v() { var n = o; o = !0, p(function () { o = n }) } function h(n) { o || ((n = Tt(n)) === s(Bn) ? t.go(\"<\") : n === s(Hn) && t.go(\">\")) } return { mount: function () { l(), e(K, d), e(K, l), e(H, v) }, destroy: d, disable: function (n) { o = n } } }, LazyLoad: function (i, n, o) { var t = Q(i), r = t.on, u = t.off, e = t.bind, c = t.emit, f = \"sequential\" === o.lazyLoad, a = [Dn, V], s = []; function l() { D(s), n.Slides.forEach(function (r) { gn(r.slide, Wt).forEach(function (n) { var t = z(n, Ft), i = z(n, Xt); t === n.src && i === n.srcset || (t = o.classes.spinner, t = fn(i = n.parentElement, \".\" + t) || j(\"span\", t, i), s.push([n, r, t]), n.src || ln(n, \"none\")) }) }), (f ? p : (u(a), r(a, d), d))() } function d() { (s = s.filter(function (n) { var t = o.perPage * ((o.preloadPages || 1) + 1) - 1; return !n[1].isWithin(i.index, t) || v(n) })).length || u(a) } function v(n) { var t = n[0]; M(n[1].slide, Et), e(t, \"load error\", R(h, n)), I(t, \"src\", z(t, Ft)), I(t, \"srcset\", z(t, Xt)), P(t, Ft), P(t, Xt) } function h(n, t) { var i = n[0], r = n[1]; X(r.slide, Et), \"error\" !== t.type && (T(n[2]), ln(i, \"\"), c(Wn, i, r), c(jn)), f && p() } function p() { s.length && v(s.shift()) } return { mount: function () { o.lazyLoad && (l(), r(J, l)) }, destroy: R(D, s), check: d } }, Pagination: function (l, n, d) { var v, h, t = Q(l), p = t.on, g = t.emit, m = t.bind, y = n.Slides, b = n.Elements, w = n.Controller, x = w.hasFocus, r = w.getIndex, e = w.go, c = n.Direction.resolve, k = b.pagination, S = []; function E() { v && (T(k ? o(v.children) : v), X(v, h), D(S), v = null), t.destroy() } function L(n) { e(\">\" + n, !0) } function O(n, t) { var i = S.length, r = Tt(t), o = A(), u = -1, o = (r === c(Hn, !1, o) ? u = ++n % i : r === c(Bn, !1, o) ? u = (--n + i) % i : \"Home\" === r ? u = 0 : \"End\" === r && (u = i - 1), S[u]); o && (dn(o.button), e(\">\" + u), F(t, !0)) } function A() { return d.paginationDirection || d.direction } function _(n) { return S[w.toPage(n)] } function z() { var n, t = _(r(!0)), i = _(r()); t && (X(n = t.button, tn), P(n, Qn), I(n, $, -1)), i && (M(n = i.button, tn), I(n, Qn, !0), I(n, $, \"\")), g(\"pagination:updated\", { list: v, items: S }, t, i) } return { items: S, mount: function n() { E(), p([K, J, \"ei\"], n); var t = d.pagination; if (k && ln(k, t ? \"\" : \"none\"), t) { p([H, Tn, V], z); var t = l.length, i = d.classes, r = d.i18n, o = d.perPage, u = x() ? w.getEnd() + 1 : kn(t / o); M(v = k || j(\"ul\", i.pagination, b.track.parentElement), h = gt + \"--\" + A()), I(v, Z, \"tablist\"), I(v, nn, r.select), I(v, nt, A() === Jn ? \"vertical\" : \"\"); for (var e = 0; e < u; e++) { var c = j(\"li\", null, v), f = j(\"button\", { class: i.page, type: \"button\" }, c), a = y.getIn(e).map(function (n) { return n.slide.id }), s = !x() && 1 < o ? r.pageX : r.slideX; m(f, \"click\", R(L, e)), d.paginationKeyboard && m(f, \"keydown\", R(O, e)), I(c, Z, \"presentation\"), I(f, Z, \"tab\"), I(f, Kn, a.join(\" \")), I(f, nn, On(s, e + 1)), I(f, $, -1), S.push({ li: c, button: f, page: e }) } z(), g(\"pagination:mounted\", { list: v, items: S }, _(l.index)) } }, destroy: E, getAt: _, update: z } }, Sync: function (i, n, t) { var r = t.isNavigation, o = t.slideFocus, u = []; function e() { var n, t; i.splides.forEach(function (n) { n.isParent || (f(i, n.splide), f(n.splide, i)) }), r && (n = Q(i), (t = n.on)(Mn, s), t(Yn, l), t([B, K], a), u.push(n), n.emit(Gn, i.splides)) } function c() { u.forEach(function (n) { n.destroy() }), D(u) } function f(n, r) { n = Q(n); n.on(H, function (n, t, i) { r.go(r.is(Pt) ? i : n) }), u.push(n) } function a() { I(n.Elements.list, nt, t.direction === Jn ? \"vertical\" : \"\") } function s(n) { i.go(n.index) } function l(n, t) { b(Yt, Tt(t)) && (s(n), F(t)) } return { setup: R(n.Media.set, { slideFocus: en(o) ? r : o }, !0), mount: e, destroy: c, remount: function () { c(), e() } } }, Wheel: function (e, c, f) { var n = Q(e).bind, a = 0; function t(n) { var t, i, r, o, u; n.cancelable && (t = (u = n.deltaY) < 0, i = mn(n), r = f.wheelMinThreshold || 0, o = f.wheelSleep || 0, U(u) > r && o < i - a && (e.go(t ? \"<\" : \">\"), a = i), u = t, f.releaseWheel && !e.state.is(G) && -1 === c.Controller.getAdjacent(u) || F(n)) } return { mount: function () { f.wheel && n(c.Elements.track, \"wheel\", t, jt) } } }, Live: function (n, t, i) { var r = Q(n).on, o = t.Elements.track, u = i.live && !i.isNavigation, e = j(\"span\", wt), c = qn(90, R(f, !1)); function f(n) { I(o, rt, n), n ? (L(o, e), c.start()) : (T(e), c.cancel()) } function a(n) { u && I(o, it, n ? \"off\" : \"polite\") } return { mount: function () { u && (a(!t.Autoplay.isPaused()), I(o, ot, !0), e.textContent = \"�\", r(Fn, R(a, !0)), r(Xn, R(a, !1)), r([Dn, V], R(f, !0))) }, disable: a, destroy: function () { P(o, [it, ot, rt]), T(e) } } } }), qt = { type: \"slide\", role: \"region\", speed: 400, perPage: 1, cloneStatus: !0, arrows: !0, pagination: !0, paginationKeyboard: !0, interval: 5e3, pauseOnHover: !0, pauseOnFocus: !0, resetProgress: !0, easing: \"cubic-bezier(0.25, 1, 0.5, 1)\", drag: !0, direction: \"ltr\", trimSpace: !0, focusableNodes: \"a, button, textarea, input, select, iframe\", live: !0, classes: { slide: at, clone: st, arrows: dt, arrow: vt, prev: ht, next: pt, pagination: gt, page: mt, spinner: i + \"spinner\" }, i18n: { prev: \"Previous slide\", next: \"Next slide\", first: \"Go to first slide\", last: \"Go to last slide\", slideX: \"Go to slide %s\", pageX: \"Go to page %s\", play: \"Start autoplay\", pause: \"Pause autoplay\", carousel: \"carousel\", slide: \"slide\", select: \"Select a slide to show\", slideLabel: \"%s of %s\" }, reducedMotion: { speed: 0, rewindSpeed: 0, autoplay: \"pause\" } }; function Bt(n, t, i) { var r = t.Slides; function o() { r.forEach(function (n) { n.style(\"transform\", \"translateX(-\" + 100 * n.index + \"%)\") }) } return { mount: function () { Q(n).on([B, J], o) }, start: function (n, t) { r.style(\"transition\", \"opacity \" + i.speed + \"ms \" + i.easing), p(t) }, cancel: on } } function Ht(u, n, e) { var c, f = n.Move, a = n.Controller, s = n.Scroll, t = n.Elements.list, l = R(_, t, \"transition\"); function i() { l(\"\"), s.cancel() } return { mount: function () { Q(u).bind(t, \"transitionend\", function (n) { n.target === t && c && (i(), c()) }) }, start: function (n, t) { var i = f.toPosition(n, !0), r = f.getPosition(), o = function (n) { var t = e.rewindSpeed; if (u.is(Mt) && t) { var i = a.getIndex(!0), r = a.getEnd(); if (0 === i && r <= n || r <= i && 0 === n) return t } return e.speed }(n); 1 <= U(i - r) && 1 <= o ? e.useScroll ? s.scroll(i, o, !1, t) : (l(\"transform \" + o + \"ms \" + e.easing), f.translate(i, !0), c = t) : (f.jump(n), t()) }, cancel: i } } t = function () { function i(n, t) { this.event = Q(), this.Components = {}, this.state = s(1), this.splides = [], this.n = {}, this.t = {}; n = C(n) ? pn(document, n) : n; bn(n, n + \" is invalid.\"), t = d({ label: z(this.root = n, nn) || \"\", labelledby: z(n, Zn) || \"\" }, qt, i.defaults, t || {}); try { d(t, JSON.parse(z(n, f))) } catch (n) { bn(!1, \"Invalid JSON\") } this.n = Object.create(d({}, t)) } var n = i.prototype; return n.mount = function (n, t) { var i = this, r = this.state, o = this.Components; return bn(r.is([1, 7]), \"Already mounted!\"), r.set(1), this.i = o, this.r = t || this.r || (this.is(It) ? Bt : Ht), this.t = n || this.t, w(an({}, Ut, this.t, { Transition: this.r }), function (n, t) { n = n(i, o, i.n); (o[t] = n).setup && n.setup() }), w(o, function (n) { n.mount && n.mount() }), this.emit(B), M(this.root, \"is-initialized\"), r.set(3), this.emit(\"ready\"), this }, n.sync = function (n) { return this.splides.push({ splide: n }), n.splides.push({ splide: this, isParent: !0 }), this.state.is(3) && (this.i.Sync.remount(), n.Components.Sync.remount()), this }, n.go = function (n) { return this.i.Controller.go(n), this }, n.on = function (n, t) { return this.event.on(n, t), this }, n.off = function (n) { return this.event.off(n), this }, n.emit = function (n) { var t; return (t = this.event).emit.apply(t, [n].concat(o(arguments, 1))), this }, n.add = function (n, t) { return this.i.Slides.add(n, t), this }, n.remove = function (n) { return this.i.Slides.remove(n), this }, n.is = function (n) { return this.n.type === n }, n.refresh = function () { return this.emit(J), this }, n.destroy = function (t) { void 0 === t && (t = !0); var n = this.event, i = this.state; return i.is(1) ? Q(this).on(\"ready\", this.destroy.bind(this, t)) : (w(this.i, function (n) { n.destroy && n.destroy(t) }, !0), n.emit(a), n.destroy(), t && D(this.splides), i.set(7)), this }, Jt(i, [{ key: \"options\", get: function () { return this.n }, set: function (n) { this.i.Media.set(n, !0, !0) } }, { key: \"length\", get: function () { return this.i.Slides.getLength(!0) } }, { key: \"index\", get: function () { return this.i.Controller.getIndex() } }]), i }(); return t.defaults = {}, t.STATES = r, t }, \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(t) : (n = \"undefined\" != typeof globalThis ? globalThis : n || self).Splide = t();\r\n//# sourceMappingURL=splide.min.js.map\r\n\r\n/*!\r\n * @splidejs/splide-extension-auto-scroll\r\n * Version  : 0.3.7\r\n * License  : MIT\r\n * Copyright: 2022 Naotoshi Fujita\r\n */(function (_) { typeof define == \"function\" && define.amd ? define(_) : _() })(function () {\r\n    \"use strict\"; function _(n) { return Array.isArray(n) } function z(n) { return _(n) ? n : [n] } function J(n, t) { z(n).forEach(t) } function I(n) { return requestAnimationFrame(n) } var L = \"move\", P = \"moved\", K = \"updated\", b = \"drag\", M = \"scroll\", V = \"scrolled\", Q = \"destroy\"; function U(n) { var t = n.event, o = {}, e = []; function u(i, E, f) { t.on(i, E, o, f) } function d(i) { t.off(i, o) } function a(i, E, f, c) { s(i, E, function (p, l) { e.push([p, l, f, c]), p.addEventListener(l, f, c) }) } function h(i, E, f) { s(i, E, function (c, p) { e = e.filter(function (l) { return l[0] === c && l[1] === p && (!f || l[2] === f) ? (c.removeEventListener(p, l[2], l[3]), !1) : !0 }) }) } function s(i, E, f) { J(i, function (c) { c && E.split(\" \").forEach(f.bind(null, c)) }) } function S() { e = e.filter(function (i) { return h(i[0], i[1]) }), t.offBy(o) } return t.on(Q, S, o), { on: u, off: d, emit: t.emit, bind: a, unbind: h, destroy: S } } function W(n, t, o, e) { var u = Date.now, d, a = 0, h, s = !0, S = 0; function i() { if (!s) { var m = u() - d; if (m >= n ? (a = 1, d = u()) : a = m / n, o && o(a), a === 1 && (t(), e && ++S >= e)) return f(); I(i) } } function E(m) { !m && p(), d = u() - (m ? a * n : 0), s = !1, I(i) } function f() { s = !0 } function c() { d = u(), a = 0, o && o(a) } function p() { cancelAnimationFrame(h), a = 0, h = 0, s = !0 } function l(m) { n = m } function A() { return s } return { start: E, rewind: c, pause: f, cancel: p, set: l, isPaused: A } } var X = \"slide\"; function N(n) { return !j(n) && typeof n == \"object\" } function Z(n) { return typeof n == \"undefined\" } function j(n) { return n === null } var k = Array.prototype; function nn(n, t, o) { return k.slice.call(n, t, o) } function tn(n, t, o) { if (n) { var e = Object.keys(n); e = o ? e.reverse() : e; for (var u = 0; u < e.length; u++) { var d = e[u]; if (d !== \"__proto__\" && t(n[d], d) === !1) break } } return n } function F(n) { return nn(arguments, 1).forEach(function (t) { tn(t, function (o, e) { n[e] = t[e] }) }), n } var R = Math.min, q = Math.max, vn = Math.floor, En = Math.ceil, mn = Math.abs; function en(n, t, o) { var e = R(t, o), u = q(t, o); return R(q(e, n), u) } var rn = { speed: 1, autoStart: !0, pauseOnHover: !0, pauseOnFocus: !0 }; function on(n, t, o) { var e = U(n), u = e.on, d = e.off, a = e.bind, h = e.unbind, s = t.Move, S = s.translate, i = s.getPosition, E = s.toIndex, f = s.getLimit, c = t.Controller, p = c.setIndex, l = c.getIndex, A = t.Direction.orient, m = n.root, y = {}, v, C, H, $, T, g; function un() { var r = o.autoScroll; y = F({}, rn, N(r) ? r : {}) } function B() { !v && o.autoScroll !== !1 && (v = W(0, cn), fn(), sn()) } function G() { v && (v.cancel(), v = null, g = void 0, d([L, b, M, P, V]), h(m, \"mouseenter mouseleave focusin focusout\")) } function fn() { y.pauseOnHover && a(m, \"mouseenter mouseleave\", function (r) { H = r.type === \"mouseenter\", D() }), y.pauseOnFocus && a(m, \"focusin focusout\", function (r) { $ = r.type === \"focusin\", D() }), u(K, an), u([L, b, M], function () { T = !0, O(!1) }), u([P, V], function () { T = !1, D() }) } function an() { var r = o.autoScroll; r !== !1 ? (y = F(y, N(r) ? r : {}), B()) : G(), v && !Z(g) && S(g) } function sn() { y.autoStart && (document.readyState === \"complete\" ? x() : a(window, \"load\", x)) } function x() { v && v.isPaused() && v.start(!0) } function O(r) { r === void 0 && (r = !0), v && !v.isPaused() && v.pause(), C = r } function D() { C || (!H && !$ && !T ? x() : O(!1)) } function cn() { var r = i(), w = dn(r); r !== w ? (S(w), ln(w), g = w) : (O(!1), y.rewind && n.go(0)) } function dn(r) { var w = y.speed || 1; return r += A(w), n.is(X) && (r = en(r, f(!1), f(!0))), r } function ln(r) { var w = n.length, Y = (E(r) + w) % w; Y !== l() && (p(Y), t.Slides.update(), t.Pagination.update()) } return { setup: un, mount: B, destroy: G, play: x, pause: O } } typeof window != \"undefined\" && (window.splide = window.splide || {}, window.splide.Extensions = window.splide.Extensions || {}, window.splide.Extensions.AutoScroll = on);/*!\r\n * Splide.js\r\n * Version  : 3.6.11\r\n * License  : MIT\r\n * Copyright: 2022 Naotoshi Fujita\r\n */});\r\n\r\n\r\n/*!\r\n * imagesLoaded PACKAGED v4.1.1\r\n * JavaScript is all like \"You images are done yet or what?\"\r\n * MIT License\r\n */\r\n\r\n!function (t, e) { \"function\" == typeof define && define.amd ? define(\"ev-emitter/ev-emitter\", e) : \"object\" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e() }(\"undefined\" != typeof window ? window : this, function () { function t() { } var e = t.prototype; return e.on = function (t, e) { if (t && e) { var i = this._events = this._events || {}, n = i[t] = i[t] || []; return -1 == n.indexOf(e) && n.push(e), this } }, e.once = function (t, e) { if (t && e) { this.on(t, e); var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {}; return n[e] = !0, this } }, e.off = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = i.indexOf(e); return -1 != n && i.splice(n, 1), this } }, e.emitEvent = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = 0, o = i[n]; e = e || []; for (var r = this._onceEvents && this._onceEvents[t]; o;) { var s = r && r[o]; s && (this.off(t, o), delete r[o]), o.apply(this, e), n += s ? 0 : 1, o = i[n] } return this } }, t }), function (t, e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"ev-emitter/ev-emitter\"], function (i) { return e(t, i) }) : \"object\" == typeof module && module.exports ? module.exports = e(t, require(\"ev-emitter\")) : t.imagesLoaded = e(t, t.EvEmitter) }(window, function (t, e) { function i(t, e) { for (var i in e) t[i] = e[i]; return t } function n(t) { var e = []; if (Array.isArray(t)) e = t; else if (\"number\" == typeof t.length) for (var i = 0; i < t.length; i++)e.push(t[i]); else e.push(t); return e } function o(t, e, r) { return this instanceof o ? (\"string\" == typeof t && (t = document.querySelectorAll(t)), this.elements = n(t), this.options = i({}, this.options), \"function\" == typeof e ? r = e : i(this.options, e), r && this.on(\"always\", r), this.getImages(), h && (this.jqDeferred = new h.Deferred), void setTimeout(function () { this.check() }.bind(this))) : new o(t, e, r) } function r(t) { this.img = t } function s(t, e) { this.url = t, this.element = e, this.img = new Image } var h = t.jQuery, a = t.console; o.prototype = Object.create(e.prototype), o.prototype.options = {}, o.prototype.getImages = function () { this.images = [], this.elements.forEach(this.addElementImages, this) }, o.prototype.addElementImages = function (t) { \"IMG\" == t.nodeName && this.addImage(t), this.options.background === !0 && this.addElementBackgroundImages(t); var e = t.nodeType; if (e && d[e]) { for (var i = t.querySelectorAll(\"img\"), n = 0; n < i.length; n++) { var o = i[n]; this.addImage(o) } if (\"string\" == typeof this.options.background) { var r = t.querySelectorAll(this.options.background); for (n = 0; n < r.length; n++) { var s = r[n]; this.addElementBackgroundImages(s) } } } }; var d = { 1: !0, 9: !0, 11: !0 }; return o.prototype.addElementBackgroundImages = function (t) { var e = getComputedStyle(t); if (e) for (var i = /url\\((['\"])?(.*?)\\1\\)/gi, n = i.exec(e.backgroundImage); null !== n;) { var o = n && n[2]; o && this.addBackground(o, t), n = i.exec(e.backgroundImage) } }, o.prototype.addImage = function (t) { var e = new r(t); this.images.push(e) }, o.prototype.addBackground = function (t, e) { var i = new s(t, e); this.images.push(i) }, o.prototype.check = function () { function t(t, i, n) { setTimeout(function () { e.progress(t, i, n) }) } var e = this; return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function (e) { e.once(\"progress\", t), e.check() }) : void this.complete() }, o.prototype.progress = function (t, e, i) { this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, this.emitEvent(\"progress\", [this, t, e]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log(\"progress: \" + i, t, e) }, o.prototype.complete = function () { var t = this.hasAnyBroken ? \"fail\" : \"done\"; if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent(\"always\", [this]), this.jqDeferred) { var e = this.hasAnyBroken ? \"reject\" : \"resolve\"; this.jqDeferred[e](this) } }, r.prototype = Object.create(e.prototype), r.prototype.check = function () { var t = this.getIsImageComplete(); return t ? void this.confirm(0 !== this.img.naturalWidth, \"naturalWidth\") : (this.proxyImage = new Image, this.proxyImage.addEventListener(\"load\", this), this.proxyImage.addEventListener(\"error\", this), this.img.addEventListener(\"load\", this), this.img.addEventListener(\"error\", this), void (this.proxyImage.src = this.img.src)) }, r.prototype.getIsImageComplete = function () { return this.img.complete && void 0 !== this.img.naturalWidth }, r.prototype.confirm = function (t, e) { this.isLoaded = t, this.emitEvent(\"progress\", [this, this.img, e]) }, r.prototype.handleEvent = function (t) { var e = \"on\" + t.type; this[e] && this[e](t) }, r.prototype.onload = function () { this.confirm(!0, \"onload\"), this.unbindEvents() }, r.prototype.onerror = function () { this.confirm(!1, \"onerror\"), this.unbindEvents() }, r.prototype.unbindEvents = function () { this.proxyImage.removeEventListener(\"load\", this), this.proxyImage.removeEventListener(\"error\", this), this.img.removeEventListener(\"load\", this), this.img.removeEventListener(\"error\", this) }, s.prototype = Object.create(r.prototype), s.prototype.check = function () { this.img.addEventListener(\"load\", this), this.img.addEventListener(\"error\", this), this.img.src = this.url; var t = this.getIsImageComplete(); t && (this.confirm(0 !== this.img.naturalWidth, \"naturalWidth\"), this.unbindEvents()) }, s.prototype.unbindEvents = function () { this.img.removeEventListener(\"load\", this), this.img.removeEventListener(\"error\", this) }, s.prototype.confirm = function (t, e) { this.isLoaded = t, this.emitEvent(\"progress\", [this, this.element, e]) }, o.makeJQueryPlugin = function (e) { e = e || t.jQuery, e && (h = e, h.fn.imagesLoaded = function (t, e) { var i = new o(this, t, e); return i.jqDeferred.promise(h(this)) }) }, o.makeJQueryPlugin(), o });\r\n\r\n\r\n\r\n/** Search Suggestions **/\r\n/*\r\n * easy-autocomplete\r\n * jQuery plugin for autocompletion\r\n * \r\n * @author Łukasz Pawełczak (http://github.com/pawelczak)\r\n * @version 1.3.5\r\n * Copyright  License: \r\n\r\n\r\nvar EasyAutocomplete = function (a) { return a.Configuration = function (a) { function b() { if (\"xml\" === a.dataType && (a.getValue || (a.getValue = function (a) { return $(a).text() }), a.list || (a.list = {}), a.list.sort || (a.list.sort = {}), a.list.sort.method = function (b, c) { return b = a.getValue(b), c = a.getValue(c), c > b ? -1 : b > c ? 1 : 0 }, a.list.match || (a.list.match = {}), a.list.match.method = function (a, b) { return a.search(b) > -1 }), void 0 !== a.categories && a.categories instanceof Array) { for (var b = [], c = 0, d = a.categories.length; d > c; c += 1) { var e = a.categories[c]; for (var f in h.categories[0]) void 0 === e[f] && (e[f] = h.categories[0][f]); b.push(e) } a.categories = b } } function c() { function b(a, c) { var d = a || {}; for (var e in a) void 0 !== c[e] && null !== c[e] && (\"object\" != typeof c[e] || c[e] instanceof Array ? d[e] = c[e] : b(a[e], c[e])); return void 0 !== c.data && null !== c.data && \"object\" == typeof c.data && (d.data = c.data), d } h = b(h, a) } function d() { if (\"list-required\" !== h.url && \"function\" != typeof h.url) { var b = h.url; h.url = function () { return b } } if (void 0 !== h.ajaxSettings.url && \"function\" != typeof h.ajaxSettings.url) { var b = h.ajaxSettings.url; h.ajaxSettings.url = function () { return b } } if (\"string\" == typeof h.listLocation) { var c = h.listLocation; \"XML\" === h.dataType.toUpperCase() ? h.listLocation = function (a) { return $(a).find(c) } : h.listLocation = function (a) { return a[c] } } if (\"string\" == typeof h.getValue) { var d = h.getValue; h.getValue = function (a) { return a[d] } } void 0 !== a.categories && (h.categoriesAssigned = !0) } function e() { void 0 !== a.ajaxSettings && \"object\" == typeof a.ajaxSettings ? h.ajaxSettings = a.ajaxSettings : h.ajaxSettings = {} } function f(a) { return void 0 !== h[a] && null !== h[a] } function g(a, b) { function c(b, d) { for (var e in d) void 0 === b[e] && a.log(\"Property '\" + e + \"' does not exist in EasyAutocomplete options API.\"), \"object\" == typeof b[e] && -1 === $.inArray(e, i) && c(b[e], d[e]) } c(h, b) } var h = { data: \"list-required\", url: \"list-required\", dataType: \"json\", listLocation: function (a) { return a }, xmlElementName: \"\", getValue: function (a) { return a }, autocompleteOff: !0, placeholder: !1, ajaxCallback: function () { }, matchResponseProperty: !1, list: { sort: { enabled: !1, method: function (a, b) { return a = h.getValue(a), b = h.getValue(b), b > a ? -1 : a > b ? 1 : 0 } }, maxNumberOfElements: 6, hideOnEmptyPhrase: !0, match: { enabled: !1, caseSensitive: !1, method: function (a, b) { return a.search(b) > -1 } }, showAnimation: { type: \"normal\", time: 400, callback: function () { } }, hideAnimation: { type: \"normal\", time: 400, callback: function () { } }, onClickEvent: function () { }, onSelectItemEvent: function () { }, onLoadEvent: function () { }, onChooseEvent: function () { }, onKeyEnterEvent: function () { }, onMouseOverEvent: function () { }, onMouseOutEvent: function () { }, onShowListEvent: function () { }, onHideListEvent: function () { } }, highlightPhrase: !0, theme: \"\", cssClasses: \"\", minCharNumber: 0, requestDelay: 0, adjustWidth: !0, ajaxSettings: {}, preparePostData: function (a, b) { return a }, loggerEnabled: !0, template: \"\", categoriesAssigned: !1, categories: [{ maxNumberOfElements: 4 }] }, i = [\"ajaxSettings\", \"template\"]; this.get = function (a) { return h[a] }, this.equals = function (a, b) { return !(!f(a) || h[a] !== b) }, this.checkDataUrlProperties = function () { return \"list-required\" !== h.url || \"list-required\" !== h.data }, this.checkRequiredProperties = function () { for (var a in h) if (\"required\" === h[a]) return logger.error(\"Option \" + a + \" must be defined\"), !1; return !0 }, this.printPropertiesThatDoesntExist = function (a, b) { g(a, b) }, b(), c(), h.loggerEnabled === !0 && g(console, a), e(), d() }, a }(EasyAutocomplete || {}), EasyAutocomplete = function (a) { return a.Logger = function () { this.error = function (a) { console.log(\"ERROR: \" + a) }, this.warning = function (a) { console.log(\"WARNING: \" + a) } }, a }(EasyAutocomplete || {}), EasyAutocomplete = function (a) { return a.Constans = function () { var a = { CONTAINER_CLASS: \"easy-autocomplete-container\", CONTAINER_ID: \"eac-container-\", WRAPPER_CSS_CLASS: \"easy-autocomplete\" }; this.getValue = function (b) { return a[b] } }, a }(EasyAutocomplete || {}), EasyAutocomplete = function (a) { return a.ListBuilderService = function (a, b) { function c(b, c) { function d() { var d, e = {}; return void 0 !== b.xmlElementName && (e.xmlElementName = b.xmlElementName), void 0 !== b.listLocation ? d = b.listLocation : void 0 !== a.get(\"listLocation\") && (d = a.get(\"listLocation\")), void 0 !== d ? \"string\" == typeof d ? e.data = $(c).find(d) : \"function\" == typeof d && (e.data = d(c)) : e.data = c, e } function e() { var a = {}; return void 0 !== b.listLocation ? \"string\" == typeof b.listLocation ? a.data = c[b.listLocation] : \"function\" == typeof b.listLocation && (a.data = b.listLocation(c)) : a.data = c, a } var f = {}; if (f = \"XML\" === a.get(\"dataType\").toUpperCase() ? d() : e(), void 0 !== b.header && (f.header = b.header), void 0 !== b.maxNumberOfElements && (f.maxNumberOfElements = b.maxNumberOfElements), void 0 !== a.get(\"list\").maxNumberOfElements && (f.maxListSize = a.get(\"list\").maxNumberOfElements), void 0 !== b.getValue) if (\"string\" == typeof b.getValue) { var g = b.getValue; f.getValue = function (a) { return a[g] } } else \"function\" == typeof b.getValue && (f.getValue = b.getValue); else f.getValue = a.get(\"getValue\"); return f } function d(b) { var c = []; return void 0 === b.xmlElementName && (b.xmlElementName = a.get(\"xmlElementName\")), $(b.data).find(b.xmlElementName).each(function () { c.push(this) }), c } this.init = function (b) { var c = [], d = {}; return d.data = a.get(\"listLocation\")(b), d.getValue = a.get(\"getValue\"), d.maxListSize = a.get(\"list\").maxNumberOfElements, c.push(d), c }, this.updateCategories = function (b, d) { if (a.get(\"categoriesAssigned\")) { b = []; for (var e = 0; e < a.get(\"categories\").length; e += 1) { var f = c(a.get(\"categories\")[e], d); b.push(f) } } return b }, this.convertXml = function (b) { if (\"XML\" === a.get(\"dataType\").toUpperCase()) for (var c = 0; c < b.length; c += 1)b[c].data = d(b[c]); return b }, this.processData = function (c, d) { for (var e = 0, f = c.length; f > e; e += 1)c[e].data = b(a, c[e], d); return c }, this.checkIfDataExists = function (a) { for (var b = 0, c = a.length; c > b; b += 1)if (void 0 !== a[b].data && a[b].data instanceof Array && a[b].data.length > 0) return !0; return !1 } }, a }(EasyAutocomplete || {}), EasyAutocomplete = function (a) { return a.proccess = function (b, c, d) { function e(a, c) { var d = [], e = \"\"; if (b.get(\"list\").match.enabled) for (var g = 0, h = a.length; h > g; g += 1)e = b.get(\"getValue\")(a[g]), f(e, c) && d.push(a[g]); else d = a; return d } function f(a, c) { return b.get(\"list\").match.caseSensitive || (\"string\" == typeof a && (a = a.toLowerCase()), c = c.toLowerCase()), !!b.get(\"list\").match.method(a, c) } function g(a) { return void 0 !== c.maxNumberOfElements && a.length > c.maxNumberOfElements && (a = a.slice(0, c.maxNumberOfElements)), a } function h(a) { return b.get(\"list\").sort.enabled && a.sort(b.get(\"list\").sort.method), a } a.proccess.match = f; var i = c.data, j = d; return i = e(i, j), i = g(i), i = h(i) }, a }(EasyAutocomplete || {}), EasyAutocomplete = function (a) { return a.Template = function (a) { var b = { basic: { type: \"basic\", method: function (a) { return a }, cssClass: \"\" }, description: { type: \"description\", fields: { description: \"description\" }, method: function (a) { return a + \" - description\" }, cssClass: \"eac-description\" }, iconLeft: { type: \"iconLeft\", fields: { icon: \"\" }, method: function (a) { return a }, cssClass: \"eac-icon-left\" }, iconRight: { type: \"iconRight\", fields: { iconSrc: \"\" }, method: function (a) { return a }, cssClass: \"eac-icon-right\" }, links: { type: \"links\", fields: { link: \"\" }, method: function (a) { return a }, cssClass: \"\" }, custom: { type: \"custom\", method: function () { }, cssClass: \"\" } }, c = function (a) { var c, d = a.fields; return \"description\" === a.type ? (c = b.description.method, \"string\" == typeof d.description ? c = function (a, b) { return a + \" - <span>\" + b[d.description] + \"</span>\" } : \"function\" == typeof d.description && (c = function (a, b) { return a + \" - <span>\" + d.description(b) + \"</span>\" }), c) : \"iconRight\" === a.type ? (\"string\" == typeof d.iconSrc ? c = function (a, b) { return a + \"<img class='eac-icon' src='\" + b[d.iconSrc] + \"' />\" } : \"function\" == typeof d.iconSrc && (c = function (a, b) { return a + \"<img class='eac-icon' src='\" + d.iconSrc(b) + \"' />\" }), c) : \"iconLeft\" === a.type ? (\"string\" == typeof d.iconSrc ? c = function (a, b) { return \"<img class='eac-icon' src='\" + b[d.iconSrc] + \"' />\" + a } : \"function\" == typeof d.iconSrc && (c = function (a, b) { return \"<img class='eac-icon' src='\" + d.iconSrc(b) + \"' />\" + a }), c) : \"links\" === a.type ? (\"string\" == typeof d.link ? c = function (a, b) { return \"<a href='\" + b[d.link] + \"' >\" + a + \"</a>\" } : \"function\" == typeof d.link && (c = function (a, b) { return \"<a href='\" + d.link(b) + \"' >\" + a + \"</a>\" }), c) : \"custom\" === a.type ? a.method : b.basic.method }, d = function (a) { return a && a.type && a.type && b[a.type] ? c(a) : b.basic.method }, e = function (a) { var c = function () { return \"\" }; return a && a.type && a.type && b[a.type] ? function () { var c = b[a.type].cssClass; return function () { return c } }() : c }; this.getTemplateClass = e(a), this.build = d(a) }, a }(EasyAutocomplete || {}), EasyAutocomplete = function (a) { return a.main = function (b, c) { function d() { return 0 === t.length ? void p.error(\"Input field doesn't exist.\") : o.checkDataUrlProperties() ? o.checkRequiredProperties() ? (e(), void g()) : void p.error(\"Will not work without mentioned properties.\") : void p.error(\"One of options variables 'data' or 'url' must be defined.\") } function e() { function a() { var a = $(\"<div>\"), c = n.getValue(\"WRAPPER_CSS_CLASS\"); o.get(\"theme\") && \"\" !== o.get(\"theme\") && (c += \" eac-\" + o.get(\"theme\")), o.get(\"cssClasses\") && \"\" !== o.get(\"cssClasses\") && (c += \" \" + o.get(\"cssClasses\")), \"\" !== q.getTemplateClass() && (c += \" \" + q.getTemplateClass()), a.addClass(c), t.wrap(a), o.get(\"adjustWidth\") === !0 && b() } function b() { var a = t.outerWidth(); t.parent().css(\"width\", a) } function c() { t.unwrap() } function d() { var a = $(\"<div>\").addClass(n.getValue(\"CONTAINER_CLASS\")); a.attr(\"id\", f()).prepend($(\"<ul>\")), function () { a.on(\"show.eac\", function () { switch (o.get(\"list\").showAnimation.type) { case \"slide\": var b = o.get(\"list\").showAnimation.time, c = o.get(\"list\").showAnimation.callback; a.find(\"ul\").slideDown(b, c); break; case \"fade\": var b = o.get(\"list\").showAnimation.time, c = o.get(\"list\").showAnimation.callback; a.find(\"ul\").fadeIn(b), c; break; default: a.find(\"ul\").show() }o.get(\"list\").onShowListEvent() }).on(\"hide.eac\", function () { switch (o.get(\"list\").hideAnimation.type) { case \"slide\": var b = o.get(\"list\").hideAnimation.time, c = o.get(\"list\").hideAnimation.callback; a.find(\"ul\").slideUp(b, c); break; case \"fade\": var b = o.get(\"list\").hideAnimation.time, c = o.get(\"list\").hideAnimation.callback; a.find(\"ul\").fadeOut(b, c); break; default: a.find(\"ul\").hide() }o.get(\"list\").onHideListEvent() }).on(\"selectElement.eac\", function () { a.find(\"ul li\").removeClass(\"selected\"), a.find(\"ul li\").eq(w).addClass(\"selected\"), o.get(\"list\").onSelectItemEvent() }).on(\"loadElements.eac\", function (b, c, d) { var e = \"\", f = a.find(\"ul\"); f.empty().detach(), v = []; for (var h = 0, i = 0, k = c.length; k > i; i += 1) { var l = c[i].data; if (0 !== l.length) { void 0 !== c[i].header && c[i].header.length > 0 && f.append(\"<div class='eac-category' >\" + c[i].header + \"</div>\"); for (var m = 0, n = l.length; n > m && h < c[i].maxListSize; m += 1)e = $(\"<li><div class='eac-item'></div></li>\"), function () { var a = m, b = h, f = c[i].getValue(l[a]); e.find(\" > div\").on(\"click\", function () { t.val(f).trigger(\"change\"), w = b, j(b), o.get(\"list\").onClickEvent(), o.get(\"list\").onChooseEvent() }).mouseover(function () { w = b, j(b), o.get(\"list\").onMouseOverEvent() }).mouseout(function () { o.get(\"list\").onMouseOutEvent() }).html(q.build(g(f, d), l[a])) }(), f.append(e), v.push(l[m]), h += 1 } } a.append(f), o.get(\"list\").onLoadEvent() }) }(), t.after(a) } function e() { t.next(\".\" + n.getValue(\"CONTAINER_CLASS\")).remove() } function g(a, b) { return o.get(\"highlightPhrase\") && \"\" !== b ? i(a, b) : a } function h(a) { return a.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\") } function i(a, b) { var c = h(b); return (a + \"\").replace(new RegExp(\"(\" + c + \")\", \"gi\"), \"<b>$1</b>\") } t.parent().hasClass(n.getValue(\"WRAPPER_CSS_CLASS\")) && (e(), c()), a(), d(), u = $(\"#\" + f()), o.get(\"placeholder\") && t.attr(\"placeholder\", o.get(\"placeholder\")) } function f() { var a = t.attr(\"id\"); return a = n.getValue(\"CONTAINER_ID\") + a } function g() { function a() { s(\"autocompleteOff\", !0) && n(), b(), c(), d(), e(), f(), g() } function b() { t.focusout(function () { var a, b = t.val(); o.get(\"list\").match.caseSensitive || (b = b.toLowerCase()); for (var c = 0, d = v.length; d > c; c += 1)if (a = o.get(\"getValue\")(v[c]), o.get(\"list\").match.caseSensitive || (a = a.toLowerCase()), a === b) return w = c, void j(w) }) } function c() { t.off(\"keyup\").keyup(function (a) { function b(a) { function b() { var a = {}, b = o.get(\"ajaxSettings\") || {}; for (var c in b) a[c] = b[c]; return a } function c(a, b) { return o.get(\"matchResponseProperty\") !== !1 ? \"string\" == typeof o.get(\"matchResponseProperty\") ? b[o.get(\"matchResponseProperty\")] === a : \"function\" == typeof o.get(\"matchResponseProperty\") ? o.get(\"matchResponseProperty\")(b) === a : !0 : !0 } if (!(a.length < o.get(\"minCharNumber\"))) { if (\"list-required\" !== o.get(\"data\")) { var d = o.get(\"data\"), e = r.init(d); e = r.updateCategories(e, d), e = r.processData(e, a), k(e, a), t.parent().find(\"li\").length > 0 ? h() : i() } var f = b(); void 0 !== f.url && \"\" !== f.url || (f.url = o.get(\"url\")), void 0 !== f.dataType && \"\" !== f.dataType || (f.dataType = o.get(\"dataType\")), void 0 !== f.url && \"list-required\" !== f.url && (f.url = f.url(a), f.data = o.get(\"preparePostData\")(f.data, a), $.ajax(f).done(function (b) { var d = r.init(b); d = r.updateCategories(d, b), d = r.convertXml(d), c(a, b) && (d = r.processData(d, a), k(d, a)), r.checkIfDataExists(d) && t.parent().find(\"li\").length > 0 ? h() : i(), o.get(\"ajaxCallback\")() }).fail(function () { p.warning(\"Fail to load response data\") }).always(function () { })) } } switch (a.keyCode) { case 27: i(), l(); break; case 38: a.preventDefault(), v.length > 0 && w > 0 && (w -= 1, t.val(o.get(\"getValue\")(v[w])), j(w)); break; case 40: a.preventDefault(), v.length > 0 && w < v.length - 1 && (w += 1, t.val(o.get(\"getValue\")(v[w])), j(w)); break; default: if (a.keyCode > 40 || 8 === a.keyCode) { var c = t.val(); o.get(\"list\").hideOnEmptyPhrase !== !0 || 8 !== a.keyCode || \"\" !== c ? o.get(\"requestDelay\") > 0 ? (void 0 !== m && clearTimeout(m), m = setTimeout(function () { b(c) }, o.get(\"requestDelay\"))) : b(c) : i() } } }) } function d() { t.on(\"keydown\", function (a) { a = a || window.event; var b = a.keyCode; return 38 === b ? (suppressKeypress = !0, !1) : void 0 }).keydown(function (a) { 13 === a.keyCode && w > -1 && (t.val(o.get(\"getValue\")(v[w])), o.get(\"list\").onKeyEnterEvent(), o.get(\"list\").onChooseEvent(), w = -1, i(), a.preventDefault()) }) } function e() { t.off(\"keypress\") } function f() { t.focus(function () { \"\" !== t.val() && v.length > 0 && (w = -1, h()) }) } function g() { t.blur(function () { setTimeout(function () { w = -1, i() }, 250) }) } function n() { t.attr(\"autocomplete\", \"off\") } a() } function h() { u.trigger(\"show.eac\") } function i() { u.trigger(\"hide.eac\") } function j(a) { u.trigger(\"selectElement.eac\", a) } function k(a, b) { u.trigger(\"loadElements.eac\", [a, b]) } function l() { t.trigger(\"blur\") } var m, n = new a.Constans, o = new a.Configuration(c), p = new a.Logger, q = new a.Template(c.template), r = new a.ListBuilderService(o, a.proccess), s = o.equals, t = b, u = \"\", v = [], w = -1; a.consts = n, this.getConstants = function () { return n }, this.getConfiguration = function () { return o }, this.getContainer = function () { return u }, this.getSelectedItemIndex = function () { return w }, this.getItems = function () { return v }, this.getItemData = function (a) { return v.length < a || void 0 === v[a] ? -1 : v[a] }, this.getSelectedItemData = function () { return this.getItemData(w) }, this.build = function () { e() }, this.init = function () { d() } }, a.eacHandles = [], a.getHandle = function (b) { return a.eacHandles[b] }, a.inputHasId = function (a) { return void 0 !== $(a).attr(\"id\") && $(a).attr(\"id\").length > 0 }, a.assignRandomId = function (b) { var c = \"\"; do c = \"eac-\" + Math.floor(1e4 * Math.random()); while (0 !== $(\"#\" + c).length); elementId = a.consts.getValue(\"CONTAINER_ID\") + c, $(b).attr(\"id\", c) }, a.setHandle = function (b, c) { a.eacHandles[c] = b }, a }(EasyAutocomplete || {}); !function (a) { a.fn.easyAutocomplete = function (b) { return this.each(function () { var c = a(this), d = new EasyAutocomplete.main(c, b); EasyAutocomplete.inputHasId(c) || EasyAutocomplete.assignRandomId(c), d.init(), EasyAutocomplete.setHandle(d, c.attr(\"id\")) }) }, a.fn.getSelectedItemIndex = function () { var b = a(this).attr(\"id\"); return void 0 !== b ? EasyAutocomplete.getHandle(b).getSelectedItemIndex() : -1 }, a.fn.getItems = function () { var b = a(this).attr(\"id\"); return void 0 !== b ? EasyAutocomplete.getHandle(b).getItems() : -1 }, a.fn.getItemData = function (b) { var c = a(this).attr(\"id\"); return void 0 !== c && b > -1 ? EasyAutocomplete.getHandle(c).getItemData(b) : -1 }, a.fn.getSelectedItemData = function () { var b = a(this).attr(\"id\"); return void 0 !== b ? EasyAutocomplete.getHandle(b).getSelectedItemData() : -1 } }(jQuery);\r\n */","document.addEventListener(\"click\", function (e) {\r\n    if (e.target.matches(\".js-blog-btn\")) {\r\n        var btns = document.querySelectorAll(\".js-blog-btn\");\r\n        btns.forEach(function (it) {\r\n            it.classList.remove(\"active\");\r\n        });\r\n        e.target.classList.add(\"active\");\r\n\r\n        filterBlog(e.target.getAttribute(\"data-cat\"));\r\n    }\r\n    else if (e.target.matches(\".js-blog-filter\")) {\r\n        document.querySelector(\".filter-categories\").classList.toggle(\"open\");\r\n    }\r\n});\r\n\r\nfunction filterBlog(cat) {\r\n    var arts = document.querySelectorAll(\".blog-articles .article-card\");\r\n\r\n    arts.forEach(function (it) {\r\n        if (cat==\"all\" || it.getAttribute(\"data-cat\").indexOf(cat) != -1) {\r\n            it.style.display = \"block\";\r\n        }\r\n        else {\r\n            it.style.display = \"none\";\r\n        }\r\n    });\r\n}\r\n\r\n\r\nvar blogForm = document.querySelector(\"#blog-search-form\");\r\n\r\nif (blogForm) {\r\n    blogForm.addEventListener(\"submit\", function (e) {\r\n        e.preventDefault();\r\n        var inp = document.querySelector(\".js-blog-search\");\r\n        var data = { Query: inp.value };\r\n        fetch('/Blog/BlogSearch', {\r\n            method: 'POST',\r\n            headers: { 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(data),\r\n        })\r\n        .then((response) => {\r\n            if (!response.ok) {\r\n                console.log('Network response was not ok');\r\n                throw new Error('Network response was not ok');\r\n            }\r\n            //var arts = document.querySelector(\".js-articles\");\r\n\r\n            //arts.innerHTML = data;\r\n\r\n            return response.text();\r\n        })\r\n        .then((data) => {\r\n            var arts = document.querySelector(\".js-articles\");\r\n\r\n            arts.innerHTML = data;\r\n            //const contentFilter = document.querySelectorAll(\".content-filter\");\r\n            //const articles = document.querySelectorAll('.articles .article-card');\r\n            //initBlogFilter(contentFilter, articles, true);\r\n            document.querySelector('#service-filter').selectedIndex = 0;\r\n        })\r\n        .catch((error) => {\r\n            console.error('Failed to fetch page: ', error)\r\n        });\r\n    });\r\n}","const locationSearchForm = document.querySelector('#find-branch-form');\r\n\r\nif (locationSearchForm) {\r\n    function initialize() {\r\n\r\n        //Branch search\r\n        /*var locSearch = document.querySelector(\".js-branch-modal-search-form\");*/\r\n        document.addEventListener(\"submit\", function (e) {\r\n            if (e.target.matches(\"form#find-branch-form\")) {\r\n                e.preventDefault();\r\n                var inp = document.querySelector(\"#addressInput\");\r\n                loadBranchAddress(encodeLocationHTML(inp.value));\r\n            }\r\n        }, false);\r\n\r\n        function encodeLocationHTML(s) {\r\n            return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\"/g, '&quot;');\r\n        }\r\n\r\n        function loadBranchAddress(address) {\r\n            var geocoder = new google.maps.Geocoder();\r\n            geocoder.geocode({\r\n                'address': address\r\n            }, async function (results, status) {\r\n                console.log(\"geocoder created\");\r\n                if (status == google.maps.GeocoderStatus.OK) {\r\n                    var coords = results[0].geometry.location;\r\n                    console.log(coords);\r\n                    await setDistances(coords.lat(), coords.lng());\r\n                    await fetchAndSortDistances();\r\n                }\r\n                else {\r\n                    console.log(\"Address Not Found\");\r\n                    const addressInput = document.querySelector('#addressInput');\r\n                    addressInput.classList.add('not-found');\r\n                    addressInput.value = \"Address Not Found\";\r\n                }\r\n            });\r\n\r\n        }\r\n\r\n        function setDistances(addressLat, addressLon) {\r\n            //Get distance from address for each branch\r\n            document.querySelectorAll(\".js-branch-location, .js-atm-location\").forEach(function (loc) {\r\n                if (loc.getAttribute(\"data-latlon\") != null && loc.getAttribute(\"data-latlon\").indexOf(\",\") != -1) {\r\n                    var sp = loc.getAttribute('data-latlon').split(',');\r\n                    lat = Number(sp[0].trim());\r\n                    lon = Number(sp[1].trim());\r\n                    dist = distance(addressLat, addressLon, lat, lon);\r\n                    loc.setAttribute('data-distance', dist);\r\n                }\r\n            });\r\n        }\r\n\r\n        function fetchAndSortDistances() {\r\n            const branchLocations = document.querySelectorAll('.js-branch-location[data-distance]');\r\n            const atmLocations = document.querySelectorAll('.js-atm-location[data-distance]');\r\n\r\n            const branchArray = [...branchLocations];\r\n            const atmArray = [...atmLocations];\r\n\r\n            branchArray.sort(function (a, b) { return a.dataset.distance - b.dataset.distance });\r\n            atmArray.sort(function (a, b) { return a.dataset.distance - b.dataset.distance });\r\n\r\n            const resultsDiv = document.querySelector('.result-container');\r\n            resultsDiv.innerHTML = \"\";\r\n\r\n            let branchResult = document.createElement('div');\r\n            branchResult.classList.add('location')\r\n            branchResult.innerHTML = \"\";\r\n\r\n            branchResult.innerHTML = `<h3 class=\"location-title\">\r\n                <span>Branch</span> - ${Math.floor(branchArray[0].dataset.distance)} miles away\r\n            </h3>` + branchArray[0].innerHTML;\r\n\r\n            let atmResult = document.createElement('div');\r\n            atmResult.classList.add(\"location\");\r\n            atmResult.innerHTML = `<h3 class=\"location-title\">\r\n\t\t\t\t\t\t\t\t\t\t<span>ATM</span> - ${Math.floor(atmArray[0].dataset.distance)} miles away\r\n\t\t\t\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\tclass=\"location-image\"\r\n\t\t\t\t\t\t\t\t\t\tstyle=\"\r\n\t\t\t\t\t\t\t\t\t\t\tbackground-image: ${atmArray[0].parentElement.querySelector(\".location-image\").style.backgroundImage.replace('url(\"', \"url('\").replace('\");', \"');\")};\r\n\t\t\t\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t\t\t\t></div>\r\n\t\t\t\t\t\t\t\t\t<h4 class=\"f-h4 location-name\">\r\n\t\t\t\t\t\t\t\t\t\t${atmArray[0].innerText}\r\n\t\t\t\t\t\t\t\t\t</h4>\r\n\t\t\t\t\t\t\t\t\t<div class=\"location-info\">\r\n\t\t\t\t\t\t\t\t\t\t${atmArray[0].nextElementSibling.innerHTML}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<div class=\"actions\">\r\n\t\t\t\t\t\t\t\t\t\t${atmArray[0].nextElementSibling.nextElementSibling.innerHTML}\r\n\t\t\t\t\t\t\t\t\t</div>`\r\n\r\n            resultsDiv.append(branchResult);\r\n            resultsDiv.append(atmResult);\r\n            vSlideDown(resultsDiv.parentElement);\r\n        };\r\n\r\n    }\r\n    var script = document.createElement('script');\r\n    script.type = 'text/javascript';\r\n    script.src = 'https://maps.googleapis.com/maps/api/js?key=AIzaSyAkUpfLRM4twBM56RpzRz8RGQLEQl9D4LY&libraries=geometry,places&callback=initialize';\r\n    document.body.appendChild(script);\r\n\r\n    function distance(lat1, lon1, lat2, lon2) {\r\n        if ((lat1 == lat2) && (lon1 == lon2)) {\r\n            return 0;\r\n        } else {\r\n            var radlat1 = Math.PI * lat1 / 180;\r\n            var radlat2 = Math.PI * lat2 / 180;\r\n            var theta = lon1 - lon2;\r\n            var radtheta = Math.PI * theta / 180;\r\n            var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);\r\n            if (dist > 1) {\r\n                dist = 1;\r\n            }\r\n            dist = Math.acos(dist);\r\n            dist = dist * 180 / Math.PI;\r\n            dist = dist * 60 * 1.1515;\r\n            return dist;\r\n        }\r\n    }\r\n    locationSearchForm.addEventListener('click', (e) => {\r\n        if (locationSearchForm.querySelector('#addressInput').classList.contains('not-found')) {\r\n            e.target.classList.remove('not-found');\r\n            e.target.value = \"\";\r\n        }\r\n    })\r\n}\r\n\r\n//logic to make ATM singlue if there is just one.\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n    const locationsContainer = document.querySelectorAll('.locations-container .location');\r\n\r\n    locationsContainer.forEach((el) => {\r\n        const atms = el.querySelectorAll('.js-atm-location');\r\n\r\n        if (atms.length == 1) {\r\n            let title = el.querySelector('.location-title span');\r\n            title.innerText = title.innerText.slice(0, -1);\r\n        }\r\n    })\r\n})\r\n\r\n//Other Offices Content Filter\r\n\r\nconst otherOffices = document.querySelector(\".other-offices-area\");\r\n\r\nif (otherOffices) {\r\n    const buttons = otherOffices.querySelectorAll(\".service-filter button\");\r\n\r\n    buttons.forEach(button => {\r\n        button.addEventListener('click', (e) => {\r\n            const service = e.target.dataset.service;\r\n\r\n            const locationsContainer = otherOffices.querySelector('.filter-locations');\r\n            const locations = locationsContainer.querySelectorAll('.location-listing');\r\n            locationsContainer.classList.add('hidden');\r\n            if (service == \"all\") {\r\n                locations.forEach(loc => {\r\n                    loc.classList.remove('hidden')\r\n                })\r\n            } else {\r\n                locations.forEach(loc => {\r\n                    if (loc.querySelector(\"li[data-service='\" + service + \"']\")) {\r\n                        loc.classList.remove('hidden');\r\n                    } else {\r\n                        loc.classList.add('hidden')\r\n                    }\r\n                })\r\n            }\r\n\r\n            setTimeout(() => {\r\n                locationsContainer.classList.remove('hidden');\r\n            }, 200)\r\n            \r\n            \r\n        })\r\n    })\r\n}","const contentFilter = document.querySelectorAll(\".content-filter\");\r\n\r\ncontentFilter.forEach((filter) => {\r\n\tif (filter.classList.contains(\"credit-cards\")) {\r\n\t\tconst cards = filter.parentNode.querySelectorAll(\".card-container.tablet .card\");\r\n\t\tinitCreditCards(filter, cards);\r\n\t}\r\n\tif (filter.classList.contains('team')) {\r\n\t\tconst employees = filter.parentNode.querySelectorAll('.team-container .employee');\r\n\t\tinitTeam(filter, employees);\r\n\t}\r\n\tif (filter.classList.contains('blog-filter')) {\r\n\t\tlet articles = filter.parentNode.querySelectorAll('.article-card')\r\n\t\tinitBlogFilter(filter, articles);\r\n\t}\r\n});\r\n\r\nfunction initCreditCards(filter, cards) {\r\n\tconst stateFilter = filter.querySelector(\"#state-filter\");\r\n\tconst countyFilter = filter.querySelector(\"#county-filter\");\r\n\tconst stateDeclaration = filter.parentElement.querySelector(\".card-container.tablet .state\");\r\n\tconst countyDeclaration = filter.parentElement.querySelector(\".card-container.tablet .county\");\r\n\r\n\t//cards.forEach((card) => {\r\n\t//\tif (card.dataset.state) {\r\n\t//\t\tif (!stateFilter.querySelector(`option[value='${card.dataset.state}']`)) {\r\n\t//\t\t\tconst el = document.createElement(\"option\");\r\n\t//\t\t\tel.value = card.dataset.state;\r\n\t//\t\t\tel.innerText = card.dataset.state;\r\n\t//\t\t\tstateFilter.appendChild(el);\r\n\t//\t\t}\r\n\t//\t}\r\n\t//});\r\n\r\n\tstateFilter.addEventListener(\"change\", (state) => {\r\n\t\t//countyFilter.innerHTML =\r\n\t\t//\t'<option value=\"\" disabled selected>Select County...</option><option value=\"all\">All</option>';\r\n\r\n\t\tif (state.target.value == \"all\") {\r\n\t\t\tstateDeclaration.classList.remove('visible');\r\n\t\t\tcountyFilter.disabled = true;\r\n\t\t\t//countyFilter.innerHTML =\r\n\t\t\t//\t'<option value=\"\" disabled selected>Select County...</option><option value=\"all\">All</option>';\r\n\t\t\tcountyFilter.selectedIndex = 0;\r\n\t\t\tcountyDeclaration.style.display = \"none\";\r\n\t\t\tcards.forEach((card) => {\r\n\t\t\t\tif (state.target.value == \"all\") {\r\n\t\t\t\t\tcard.classList.remove(\"hidden\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tconst options = countyFilter.querySelectorAll('option');\r\n\t\t\tconsole.log(options);\r\n\t\t\toptions.forEach(el => {\r\n\t\t\t\tel.style.display = 'none';\r\n\t\t\t})\r\n\t\t\tcards.forEach((card) => {\r\n\t\t\t\tif (card.dataset.county && card.dataset.state == state.target.value) {\r\n\t\t\t\t\tconst option = countyFilter.querySelector(`option[value=\"${card.dataset.county}\"]`);\r\n\t\t\t\t\tif (option) {\r\n\t\t\t\t\t\toption.style.display = \"block\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if (countyFilter.querySelector(`option[value=\"${card.dataset.county}\"]`)) {\r\n\t\t\t\t\t//\tconst el = document.createElement(\"option\");\r\n\t\t\t\t\t//\tel.value = card.dataset.county;\r\n\t\t\t\t\t//\tel.innerText = card.dataset.county;\r\n\t\t\t\t\t//\tcountyFilter.appendChild(el);\r\n\t\t\t\t\t//}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (card.dataset.state !== state.target.value) {\r\n\t\t\t\t\tcard.classList.add(\"hidden\");\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tcard.style.display == \"none\";\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcard.style.display == \"block\";\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tcard.classList.remove(\"hidden\");\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tcountyFilter.disabled = false;\r\n\r\n\t\t\tstateDeclaration.querySelector(\r\n\t\t\t\t\"img\"\r\n\t\t\t).src = `/Content/Images/state-${state.target.value\r\n\t\t\t\t.replace(\" \", \"-\")}.svg`;\r\n\t\t\tstateDeclaration.querySelector(\".state-name\").innerText = state.target.value;\r\n\t\t\tstateDeclaration.classList.add(\"visible\");\r\n\t\t}\r\n\t});\r\n\tcountyFilter.addEventListener(\"change\", (county) => {\r\n\t\tif (county.target.value == \"all\") {\r\n\t\t\tcards.forEach((card) => {\r\n\t\t\t\tif (card.dataset.state == stateFilter.options[stateFilter.selectedIndex].value) {\r\n\t\t\t\t\tcard.classList.remove(\"hidden\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tcountyDeclaration.classList.remove(\"visible\");\r\n\t\t} else {\r\n\t\t\tcountyDeclaration.querySelector(\".name\").innerText = county.target.options[county.target.selectedIndex].text;\r\n\t\t\tcountyDeclaration.classList.add(\"visible\");\r\n\r\n\t\t\tcards.forEach((card) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tcard.dataset.county == county.target.value &&\r\n\t\t\t\t\tcard.dataset.state == stateFilter.options[stateFilter.selectedIndex].value\r\n\t\t\t\t) {\r\n\t\t\t\t\tcard.classList.remove(\"hidden\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcard.classList.add(\"hidden\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction initBlogFilter(filter, articles, reset = false) {\r\n\tconst serviceFilter = filter.querySelector('#service-filter');\r\n\t//const stateFilter = filter.querySelector('#state-filter');\r\n\tconst topicFilter = filter.querySelector('#topic-filter');\r\n\tlet count = 0;\r\n\r\n\tarticles.forEach((emp) => {\r\n\t\tif (emp.dataset.service) {\r\n\t\t\tif (!serviceFilter.querySelector(`option[value='${emp.dataset.service}']`)) {\r\n\t\t\t\tconst el = document.createElement(\"option\");\r\n\t\t\t\tel.value = emp.dataset.service;\r\n\t\t\t\tel.innerText = emp.dataset.service;\r\n\t\t\t\tserviceFilter.appendChild(el);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (count == 6) {\r\n\t\t\temp.classList.add('full-width');\r\n\t\t\tcount = 0;\r\n\t\t} else {\r\n\t\t\tcount++;\r\n\t\t}\r\n\t\t\r\n\t});\r\n\r\n\tserviceFilter.addEventListener('change', (service) => {\r\n\t\tarticles = document.querySelectorAll('.articles .article-card')\r\n\t\t//stateFilter.innerHTML =\r\n\t\t//\t'<option value=\"\" disabled selected>Select a State...</option><option value=\"all\">All</option>';\r\n\t\t//if (topicFilter) {\r\n\t\t//\ttopicFilter.innerHTML =\r\n\t\t//\t'<option value=\"\" disabled selected>Select a county...</option><option value=\"all\">All</option>';\r\n\t\t//}\r\n\t\tlet filterCount = 0;\r\n\r\n\t\tif (articles.length > 0) {\r\n\t\t\tarticles[0].parentElement.classList.remove('visible');\r\n\t\t}\r\n\t\tarticles.forEach(art => {\r\n\t\t\tart.classList.remove('hidden');\r\n\t\t\tart.classList.remove('full-width');\r\n\t\t})\r\n\t\tif (service.target.value == \"all\") {\r\n\t\t\tarticles.forEach(emp => {\r\n\t\t\t\temp.classList.remove('hidden');\r\n\t\t\t\temp.classList.remove('full-width');\r\n\t\t\t\tif (filterCount == 6) {\r\n\t\t\t\t\temp.classList.add('full-width');\r\n\t\t\t\t\tfilterCount = 0;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfilterCount++;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t})\r\n\t\t\t//stateFilter.disabled = true;\r\n\t\t\tif (topicFilter) {\r\n\t\t\t\ttopicFilter.disabled = true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t} else {\r\n\t\t\tarticles.forEach(emp => {\r\n\t\t\t\tif (emp.dataset.cat.indexOf(service.target.value) !== -1) {\r\n\t\t\t\t\temp.classList.remove('hidden')\r\n\t\t\t\t\t//if (reset) {\r\n\t\t\t\t\t//\tif (!stateFilter.querySelector(`option[value=${emp.dataset.county}]`)) {\r\n\t\t\t\t\t//\t\tconst el = document.createElement(\"option\");\r\n\t\t\t\t\t//\t\tel.value = emp.dataset.county;\r\n\t\t\t\t\t//\t\tel.innerText = emp.dataset.county;\r\n\t\t\t\t\t//\t\tstateFilter.appendChild(el);\r\n\t\t\t\t\t//\t}\r\n\t\t\t\t\t//}\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (filterCount == 6) {\r\n\t\t\t\t\t\temp.classList.add('full-width');\r\n\t\t\t\t\t\tfilterCount = 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfilterCount++;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\temp.classList.add('hidden')\r\n\t\t\t\t\temp.classList.remove('full-width');\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t//topicFilter.disabled = false;\r\n\t\t}\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (articles.length > 0) {\r\n\t\t\t\tarticles[0].parentElement.classList.add('visible');\r\n\t\t\t}\r\n\t\t}, 200)\r\n\t});\r\n\r\n\tif (topicFilter) {\r\n\t\ttopicFilter.addEventListener('change', (state) => {\r\n\t\ttopicFilter.innerHTML =\r\n\t\t\t'<option value=\"\" disabled selected>Select a county...</option><option value=\"all\">All</option>';\r\n\r\n\t\tif (county.target.value == \"all\") {\r\n\t\t\tarticles.forEach(emp => {\r\n\t\t\t\tif (emp.dataset.service == serviceFilter.options[serviceFilter.selectedIndex].value) {\r\n\t\t\t\t\temp.classList.remove('hidden');\r\n\t\t\t\t}\r\n\r\n\t\t\t})\r\n\t\t\ttopicFilter.disabled = true;\r\n\t\t} else {\r\n\t\t\tarticles.forEach(emp => {\r\n\t\t\t\tif (emp.dataset.county == county.target.value && emp.dataset.service == serviceFilter.options[serviceFilter.selectedIndex].value) {\r\n\t\t\t\t\temp.classList.remove('hidden')\r\n\t\t\t\t\tif (!topicFilter.querySelector(`option[value=${emp.dataset.county}]`)) {\r\n\t\t\t\t\t\tconst el = document.createElement(\"option\");\r\n\t\t\t\t\t\tel.value = emp.dataset.county;\r\n\t\t\t\t\t\tel.innerText = emp.dataset.county;\r\n\t\t\t\t\t\ttopicFilter.appendChild(el);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\temp.classList.add('hidden')\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\ttopicFilter.disabled = false;\r\n\t\t}\r\n\t})\r\n\t}\r\n}\r\n\r\nfunction initTeam(filter, employees) {\r\n\tconst serviceFilter = filter.querySelector('#service-filter');\r\n\t//const stateFilter = filter.querySelector('#state-filter');\r\n\tconst countyFilter = filter.querySelector('#county-filter');\r\n\r\n\temployees.forEach((emp) => {\r\n\t\tif (emp.dataset.service && serviceFilter) {\r\n\t\t\tconst serviceCode = emp.dataset.service.replace(\"|\", \"\");\r\n\t\t\tconst filterExists = serviceFilter.querySelector(`option[value=\"${serviceCode}\"]`)\r\n\t\t\tif (!filterExists) {\r\n\t\t\t\tconst el = document.createElement(\"option\");\r\n\t\t\t\tel.value = emp.dataset.service;\r\n\t\t\t\tel.innerText = emp.dataset.service;\r\n\t\t\t\tserviceFilter.appendChild(el);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tif (countyFilter) {\r\n\t\tconst counties = Array.from(countyFilter.querySelectorAll('option'));\r\n\t\tconst removedEls = counties.splice(0, 2);\r\n\t\tconst countyObjArray = [];\r\n\t\tcounties.forEach(el => {\r\n\t\t\tconst obj = {\r\n\t\t\t\tvalue: el.value,\r\n\t\t\t\tstate: el.innerText.split(' - ')[1],\r\n\t\t\t\tname: el.innerText.split(' - ')[0]\r\n\t\t\t}\r\n\t\t\tcountyObjArray.push(obj);\r\n\t\t})\r\n\r\n\t\tcountyObjArray.sort(\r\n\t\t\tfunction (a, b) {\r\n\t\t\t\tif (a.state === b.state) {\r\n\t\t\t\t\t// Price is only important when cities are the same\r\n\t\t\t\t\treturn b.name - a.name;\r\n\t\t\t\t}\r\n\t\t\t\treturn a.state > b.state ? 1 : -1;\r\n\t\t\t});\r\n\r\n\t\t//countyObjArray.sort((a, b) => a.state > b.state ? 1 : -1);\r\n\t\t//countyObjArray.sort((a, b) => a.name > b.name ? 1 : -1);\r\n\t\tcountyFilter.innerHTML = \"\";\r\n\t\tremovedEls.forEach(x => {\r\n\t\t\tcountyFilter.appendChild(x);\r\n\t\t})\r\n\t\tcountyObjArray.forEach(x => {\r\n\t\t\tconst newEl = document.createElement('option');\r\n\t\t\tnewEl.value = x.value;\r\n\t\t\tnewEl.innerText = x.name + \" - \" + x.state;\r\n\t\t\tcountyFilter.appendChild(newEl);\r\n\t\t})\r\n\t}\r\n\tif (serviceFilter) {\r\n\t\tserviceFilter.addEventListener('change', (service) => {\r\n\t\t\t//stateFilter.innerHTML =\r\n\t\t\t//\t'<option value=\"\" disabled selected>Select a State...</option><option value=\"all\">All</option>';\r\n\t\t\tcountyFilter.innerHTML =\r\n\t\t\t\t'<option value=\"\" disabled selected>Select a county...</option><option value=\"all\">All</option>';\r\n\r\n\t\t\tif (service.target.value == \"all\") {\r\n\t\t\t\temployees.forEach(emp => {\r\n\t\t\t\t\temp.classList.remove('hidden');\r\n\t\t\t\t})\r\n\t\t\t\t//stateFilter.disabled = true;\r\n\t\t\t\tcountyFilter.disabled = true;\r\n\t\t\t} else {\r\n\t\t\t\temployees.forEach(emp => {\r\n\t\t\t\t\tif (emp.dataset.service.replace(\"|\", \"\") == service.target.value) {\r\n\t\t\t\t\t\temp.classList.remove('hidden')\r\n\t\t\t\t\t\tif (!stateFilter.querySelector(`option[value=${emp.dataset.county}]`)) {\r\n\t\t\t\t\t\t\tconst el = document.createElement(\"option\");\r\n\t\t\t\t\t\t\tel.value = emp.dataset.county;\r\n\t\t\t\t\t\t\tel.innerText = emp.dataset.county;\r\n\t\t\t\t\t\t\tstateFilter.appendChild(el);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\temp.classList.add('hidden')\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tcountyFilter.disabled = false;\r\n\t\t\t}\r\n\t\t});\r\n\t} else {\r\n\t\tcountyFilter.disabled = false;\r\n\t}\r\n\r\n\tcountyFilter.addEventListener('change', e => {\r\n\t\tif (e.target.value == \"all\") {\r\n\t\t\temployees.forEach(emp => {\r\n\t\t\t\temp.classList.remove('hidden');\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\temployees.forEach(emp => {\r\n\t\t\t\tif (serviceFilter && emp.dataset.service == serviceFilter.options[serviceFilter.selectedIndex].value) {\r\n\t\t\t\t\tif (e.target.value == emp.dataset.county) {\r\n\t\t\t\t\t\temp.classList.remove('hidden');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\temp.classList.add('hidden')\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (emp.dataset.county.indexOf(e.target.value) != -1) {\r\n\t\t\t\t\t\temp.classList.remove('hidden');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\temp.classList.add('hidden')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t\r\n\t\t\t\r\n\t\t}\r\n\t})\r\n}\r\n","var body = document.querySelector(\"body\");\r\n\r\n/* Enable Transitions */\r\ndocument.addEventListener(\r\n\t\"DOMContentLoaded\",\r\n\tfunction () {\r\n\t\tsetTimeout(function () {\r\n\t\t\tdocument.body.classList.remove(\"no-transitions\");\r\n\t\t}, 200);\r\n\t},\r\n\tfalse\r\n);\r\n\r\n//show the alert bell on load if hidden alerts are present\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tconst alertBell = document.querySelectorAll('.js-alert-bell');\r\n\talertBell.forEach((bell) => {\r\n\t\tconst container = getParentElementWithClass(bell,'alert-bell')\r\n\t\tconst hiddenAlerts = document.querySelectorAll('.alert.hidden-alert');\r\n\t\tif (hiddenAlerts.length > 0) {\r\n\t\t\tif (getParentElementWithClass(bell, 'mobile-secondary-nav')) {\r\n\t\t\t\tbell.style.display = 'block';\r\n\t\t\t}\r\n\t\t\tcontainer.style.display = \"block\";\r\n\t\t}\r\n\t})\r\n})\r\n\r\n/* Dropdown Menu */\r\nvar dropItems = document.querySelectorAll(\".main-nav > ul > li\");\r\nvar mainNav = document.querySelector(\".main-nav\");\r\nvar navButtons = document.querySelectorAll(\".header .nav-drop\");\r\n\r\n/*var wave = document.querySelector(\".feature-wave\");*/\r\n\r\nvar instance = new SV.HoverIntent(dropItems, {\r\n\tonEnter: function (targetItem) {\r\n\t\tif (window.innerWidth > 980) {\r\n\t\t\tcloseLogin();\r\n\t\t\tcloseSearch();\r\n\r\n\t\t\ttargetItem.classList.add(\"active\");\r\n\r\n\r\n\t\t\tbody.classList.remove(\"nav-closed\");\r\n\t\t\tbody.classList.add(\"nav-open\");\r\n\r\n\t\t\tconst left =\r\n\t\t\t\ttargetItem.offsetLeft + targetItem.offsetWidth / 2 - 23;\r\n\t\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t\t\"--navBeforeLeft\",\r\n\t\t\t\tleft + \"px\"\r\n\t\t\t);\r\n\r\n\t\t\tif (left > window.innerWidth - 200) {\r\n\t\t\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t\t\t\"--navBeforeColor\",\r\n\t\t\t\t\t\"rgba(0,0,0,0)\"\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\telse if (left > window.innerWidth / 2) {\r\n\t\t\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t\t\t\"--navBeforeColor\",\r\n\t\t\t\t\t\"#2B553F\"\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t\t\t\"--navBeforeColor\",\r\n\t\t\t\t\t\"#FFF\"\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (body.classList.contains(\"search-open\")) {\r\n\t\t\t\tbody.classList.remove(\"search-open\");\r\n\t\t\t}\r\n\t\t\tif (body.classList.contains(\"login-open\")) {\r\n\t\t\t\tbody.classList.remove(\"login-open\");\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tonExit: function (targetItem) {\r\n\t\tif (window.innerWidth > 980) {\r\n\t\t\tmainNav.removeAttribute(\"data-spot\");\r\n\t\t\ttargetItem.classList.remove(\"active\");\r\n\r\n\t\t\tbody.classList.add(\"nav-closed\");\r\n\t\t\tbody.classList.remove(\"nav-open\");\r\n\t\t}\r\n\t},\r\n});\r\n\r\n// menuHover(ditem);\r\n//});\r\n\r\nfunction indexInParent(node) {\r\n\tvar children = node.parentNode.childNodes;\r\n\tvar num = 0;\r\n\tfor (var i = 0; i < children.length; i++) {\r\n\t\tif (children[i] == node) return num;\r\n\t\tif (children[i].nodeType == 1) num++;\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\nfunction menuHover(el) {\r\n\tvar interval;\r\n\tvar outInterval;\r\n\tvar mel = el.querySelector(\".dropdown-area\");\r\n\r\n\tif (window.innerWidth > 980) {\r\n\t\tel.addEventListener(\"mouseleave\", function (event) {\r\n\t\t\tinterval = setInterval(function () {\r\n\t\t\t\tmel.style.display = \"none\";\r\n\t\t\t}, 500);\r\n\t\t\tif (outInterval) {\r\n\t\t\t\tclearInterval(outInterval);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tel.addEventListener(\"mouseover\", function (event) {\r\n\t\t\toutInterval = setInterval(function () {\r\n\t\t\t\tmel.style.display = \"block\";\r\n\t\t\t}, 500);\r\n\t\t\tif (interval) {\r\n\t\t\t\tclearInterval(interval);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\n\r\ndocument.addEventListener(\r\n\t\"click\",\r\n\t(element) => {\r\n\t\tif (window.innerWidth < 980) {\r\n\t\t\tif (element.target.matches(\".main-nav > ul > li > a\")) {\r\n\t\t\t\telement.preventDefault();\r\n\t\t\t\telement.target.parentNode.classList.toggle(\"active\");\r\n\t\t\t\t//if (element.target.parentNode.classList.contains(\"active\")) {\r\n\t\t\t\t//\tvSlideDown(\r\n\t\t\t\t//\t\telement.target.parentNode.querySelector(\r\n\t\t\t\t//\t\t\t\".nav-drop\"\r\n\t\t\t\t//\t\t)\r\n\t\t\t\t//\t);\r\n\t\t\t\t//} else {\r\n\t\t\t\t//\tvSlideUp(\r\n\t\t\t\t//\t\telement.target.parentNode.querySelector(\r\n\t\t\t\t//\t\t\t\".nav-drop\"\r\n\t\t\t\t//\t\t)\r\n\t\t\t\t//\t);\r\n\t\t\t\t//}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn;\r\n\t},\r\n\ttrue\r\n);\r\n\r\n/*** MAIN NAV ***/\r\n//hide nav on anchor link of same page click in nav\r\nwindow.addEventListener(\r\n\t\"hashchange\",\r\n\tfunction (event) {\r\n\t\tvar drops = document.querySelectorAll(\".nav-drop\");\r\n\r\n\t\tdrops.forEach(function (item) {\r\n\t\t\titem.style.display = \"none\";\r\n\t\t});\r\n\t\tconst hashElement = document.querySelector(location.hash);\r\n\r\n\t\tif (hashElement) {\r\n\t\t\tif (hashElement.length > 0) {\r\n\t\t\t\t//Check Tabs\r\n\t\t\t\tif (\r\n\t\t\t\t\tdocument\r\n\t\t\t\t\t\t.querySelector(location.hash)\r\n\t\t\t\t\t\t.classList.contains(\"js-tab\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar hs = document\r\n\t\t\t\t\t\t.querySelector(location.hash)\r\n\t\t\t\t\t\t.querySelector(\"button\")\r\n\t\t\t\t\t\t.click();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Check rates/accordion names\r\n\t\tvar rates = document.querySelectorAll(\".js-accordion-button\");\r\n\t\trates.forEach(function (rate) {\r\n\t\t\tif (\r\n\t\t\t\trate.innerText\r\n\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t.replace(/[^a-z0-9 ]/gim, \"\")\r\n\t\t\t\t\t.replace(/ /g, \"-\") ==\r\n\t\t\t\tlocation.hash.toLowerCase().replace(\"#\", \"\")\r\n\t\t\t) {\r\n\t\t\t\twindow.scrollTo(0, 0);\r\n\t\t\t\trate.click();\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\trate.parentNode.scrollIntoView({ behavior: \"smooth\" });\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\tfalse\r\n);\r\n\r\n//Check rates/accordion names\r\nvar rates = document.querySelectorAll(\".js-accordion-button\");\r\nrates.forEach(function (rate) {\r\n\tif (\r\n\t\trate.innerText\r\n\t\t\t.toLowerCase()\r\n\t\t\t.replace(/[^a-z0-9 ]/gim, \"\")\r\n\t\t\t.replace(/ /g, \"-\") == location.hash.toLowerCase().replace(\"#\", \"\")\r\n\t) {\r\n\t\twindow.scrollTo(0, 0);\r\n\t\trate.click();\r\n\t\tsetTimeout(function () {\r\n\t\t\trate.parentNode.scrollIntoView({ behavior: \"smooth\" });\r\n\t\t}, 1000);\r\n\t}\r\n});\r\n\r\n/**\r\n *  RATE TABLE MOBILE SETUP\r\n */\r\n\r\nvar rates = document.querySelectorAll(\".rate-table table\");\r\n\r\nrates.forEach(function (rt) {\r\n\tvar trs = rt.querySelectorAll(\"tr\");\r\n\tvar headers = [];\r\n\tfor (var i = 0; i < trs.length; i++) {\r\n\t\tvar tds = trs[i].querySelectorAll(\"td,th\");\r\n\t\tfor (var j = 0; j < tds.length; j++) {\r\n\t\t\tif (i == 0) {\r\n\t\t\t\theaders.push(tds[j].innerText);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttds[j].setAttribute(\"data-title\", headers[j]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/*** ALERTS ***/\r\nfunction getCookie(name) {\r\n\tlet value = `; ${document.cookie}`;\r\n\tlet parts = value.split(`; ${name}=`);\r\n\tif (parts.length === 2) {\r\n\t\treturn parts.pop().split(\";\").shift();\r\n\t} else {\r\n\t\treturn null;\r\n\t}\r\n}\r\ndocument.addEventListener(\r\n\t\"click\",\r\n\t(element) => {\r\n\t\tif (element.target.matches(\".js-close-alert\")) {\r\n\t\t\tif (getCookie(\"alerts\")) {\r\n\t\t\t\tvar cook =\r\n\t\t\t\t\tgetCookie(\"alerts\") +\r\n\t\t\t\t\tevent.target.parentNode.parentNode.getAttribute(\r\n\t\t\t\t\t\t\"data-alert-id\"\r\n\t\t\t\t\t) +\r\n\t\t\t\t\t\"|\";\r\n\t\t\t} else {\r\n\t\t\t\tvar cook = event.target.parentNode.parentNode.getAttribute(\r\n\t\t\t\t\t\"data-alert-id\"\r\n\t\t\t\t) + \"|\";\r\n\t\t\t}\r\n\t\t\tdocument.cookie =\r\n\t\t\t\t\"alerts=\" +\r\n\t\t\t\tcook +\r\n\t\t\t\t\"; path=/; max-age=\" +\r\n\t\t\t\t60 * 60 * 24 * 14 +\r\n\t\t\t\t\";\";\r\n\r\n\t\t\tvSlideUp(element.target.parentNode.parentNode);\r\n\t\t\telement.target.parentNode.parentNode.setAttribute(\r\n\t\t\t\t\"data-hidden\",\r\n\t\t\t\t\"true\"\r\n\t\t\t);\r\n\t\t\telement.target.parentNode.parentNode.classList.add(\"hidden-alert\");\r\n\t\t\tconst alertBell = document.querySelectorAll('.js-alert-bell');\r\n\t\t\talertBell.forEach((bell) => {\r\n\t\t\t\tvSlideDown(getParentElementWithClass(bell, 'alert-bell'))\r\n\r\n\t\t\t\tif (getParentElementWithClass(bell, 'mobile-secondary-nav')) {\r\n\t\t\t\t\tbell.style.display = \"block\";\r\n\t\t\t\t\tdocument.querySelector('.mobile-secondary-nav').style.gridTemplateColumns = \"1fr 1fr 1fr 1fr\";\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t}\r\n\t},\r\n\tfalse\r\n);\r\n\r\n/** CAROUSELS **/\r\nconst mobileSplide = document.querySelectorAll(\".mobile-splide\");\r\nif (mobileSplide.length > 0) {\r\n\tmobileSplide.forEach(function (sp) {\r\n\t\tnew Splide(sp, {\r\n\t\t\tmediaQuery: \"min\",\r\n\t\t\tperPage: 1,\r\n\t\t\t//autoWidth: true,\r\n\t\t\ttype: \"loop\",\r\n\t\t\tbreakpoints: {\r\n\t\t\t\t980: {\r\n\t\t\t\t\tdestroy: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t}).mount();\r\n\t});\r\n}\r\n\r\n/** CAROUSELS **/\r\nconst pinnedSplide = document.querySelectorAll(\".pinned-mobile-splide\");\r\nif (pinnedSplide.length > 0) {\r\n\tpinnedSplide.forEach(function (sp) {\r\n\t\tnew Splide(sp, {\r\n\t\t\tmediaQuery: \"min\",\r\n\t\t\tperPage: 1,\r\n\t\t\t//autoWidth: true,\r\n\t\t\tpagination: false,\r\n\t\t\tarrows: true,\r\n\t\t\ttype: \"loop\",\r\n\t\t\tbreakpoints: {\r\n\t\t\t\t1100: {\r\n\t\t\t\t\tdestroy: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t}).mount();\r\n\t});\r\n}\r\n\r\nconst featureSplide = document.querySelectorAll(\".feature-splide\");\r\nif (featureSplide.length > 0) {\r\n\tfeatureSplide.forEach(function (sp) {\r\n\t\tnew Splide(sp, {\r\n\t\t\tmediaQuery: \"min\",\r\n\t\t\tperPage: 1,\r\n\t\t\t//autoWidth: true,\r\n\t\t\ttype: \"loop\",\r\n\t\t}).mount();\r\n\t});\r\n}\r\n\r\nconst blogSplide = document.querySelector(\".blog-splide\");\r\nif (blogSplide) {\r\n\tnew Splide(\".blog-splide\", {\r\n\t\tmediaQuery: \"min\",\r\n\t\tperPage: 1,\r\n\t\ttype: \"loop\",\r\n\t\tgap: \"1em\",\r\n\t\tperMove: 1,\r\n\t\tbreakpoints: {\r\n\t\t\t980: {\r\n\t\t\t\t/*\t\t\t\tperPage: 3,*/\r\n\t\t\t\tpadding: \"34%\",\r\n\t\t\t\tgap: \"1em\",\r\n\t\t\t\tperMove: 1,\r\n\t\t\t},\r\n\t\t},\r\n\t}).mount();\r\n}\r\nconst blogSplideHorizontal = document.querySelector(\".blog-splide-horizontal\");\r\nif (blogSplideHorizontal) {\r\n\tnew Splide(\".blog-splide-horizontal\", {\r\n\t\tmediaQuery: \"min\",\r\n\t\tperPage: 1,\r\n\t\ttype: \"loop\",\r\n\t\tgap: \"1em\",\r\n\t\tperMove: 1,\r\n\t\tbreakpoints: {\r\n\t\t\t980: {\r\n\t\t\t\t/*\t\t\t\tperPage: 3,*/\r\n\t\t\t\ttype: \"slide\"\r\n\t\t\t},\r\n\t\t},\r\n\t}).mount();\r\n}\r\n\r\nconst blogSplideMobile = document.querySelector(\".blog-splide-mobile\");\r\nif (blogSplideMobile) {\r\n\tnew Splide(\".blog-splide-mobile\", {\r\n\t\tmediaQuery: \"min\",\r\n\t\tperPage: 1,\r\n\t\ttype: \"loop\",\r\n\t\tgap: \"1em\",\r\n\t\tperMove: 1,\r\n\t\tbreakpoints: {\r\n\t\t\t980: {\r\n\t\t\t\tdestroy: true,\r\n\t\t\t},\r\n\t\t},\r\n\t}).mount();\r\n}\r\n\r\n\r\nconst iconCatSplide = document.querySelectorAll(\".icon-category-splide\");\r\nif (iconCatSplide.length > 0) {\r\n\ticonCatSplide.forEach(function (is) {\r\n\t\tnew Splide(is, {\r\n\r\n\t\t\tgap: \"2em\",\r\n\t\t\tperMove: 1,\r\n\t\t\tfixedWidth: \"240px\",\r\n\t\t\tpagination: false,\r\n\t\t\tarrows: true,\r\n\t\t\tdots: false,\r\n\t\t\tarrowPath: 'M39.669,140.609h0l-8.191-8.151a1.568,1.568,0,0,0-2.212,2.222l5.5,5.473H1.568a1.568,1.568,0,0,0,0,3.135h33.2l-5.5,5.473a1.568,1.568,0,0,0,2.212,2.222l8.191-8.151h0A1.569,1.569,0,0,0,39.669,140.609Z',\r\n\t\t}).mount();\r\n\t});\r\n}\r\n\r\n\r\nconst iconSplide = document.querySelectorAll(\".icon-splide\");\r\nif (iconSplide.length > 0) {\r\n\ticonSplide.forEach(function (is) {\r\n\t\tnew Splide(is, {\r\n\r\n\t\t\ttype: \"loop\",\r\n\t\t\tgap: \"2em\",\r\n\t\t\tperMove: 1,\r\n\t\t\tautoWidth: true,\r\n\t\t\tpagination: false,\r\n\t\t\tarrowPath: 'M39.669,140.609h0l-8.191-8.151a1.568,1.568,0,0,0-2.212,2.222l5.5,5.473H1.568a1.568,1.568,0,0,0,0,3.135h33.2l-5.5,5.473a1.568,1.568,0,0,0,2.212,2.222l8.191-8.151h0A1.569,1.569,0,0,0,39.669,140.609Z',\r\n\t\t}).mount();\r\n\t});\r\n}\r\n\r\nconst cardSplide = document.querySelector(\".card-splide\");\r\nif (cardSplide) {\r\n\tnew Splide(\".card-splide\", {\r\n\r\n\t\tmediaQuery: \"min\",\r\n\t\ttype: \"loop\",\r\n\t\tgap: \"1em\",\r\n\t\tperPage: 1,\r\n\t\t//autoWidth: true,\r\n\t\tpagination: false,\r\n\r\n\t\tbreakpoints: {\r\n\t\t\t980: {\r\n\t\t\t\tperPage: 3,\r\n\t\t\t\tgap: \"1.5em\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tarrowPath: 'M39.669,140.609h0l-8.191-8.151a1.568,1.568,0,0,0-2.212,2.222l5.5,5.473H1.568a1.568,1.568,0,0,0,0,3.135h33.2l-5.5,5.473a1.568,1.568,0,0,0,2.212,2.222l8.191-8.151h0A1.569,1.569,0,0,0,39.669,140.609Z',\r\n\t}).mount();\r\n}\r\n\r\nconst crossSplide = document.querySelector(\".cross-splide\");\r\nif (crossSplide) {\r\n\tnew Splide(\".cross-splide\", {\r\n\r\n\t\tmediaQuery: \"min\",\r\n\t\ttype: \"loop\",\r\n\t\tgap: \"1em\",\r\n\t\tperPage: 1,\r\n\t\t//autoWidth: true,\r\n\t\tpagination: false,\r\n\r\n\t\tbreakpoints: {\r\n\t\t\t980: {\r\n\t\t\t\tperPage: 2,\r\n\t\t\t\tgap: \"3.5em\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tarrowPath: 'M39.669,140.609h0l-8.191-8.151a1.568,1.568,0,0,0-2.212,2.222l5.5,5.473H1.568a1.568,1.568,0,0,0,0,3.135h33.2l-5.5,5.473a1.568,1.568,0,0,0,2.212,2.222l8.191-8.151h0A1.569,1.569,0,0,0,39.669,140.609Z',\r\n\t}).mount();\r\n}\r\n\r\n/*** SCRIPT ANIMATIONS ***/\r\n//let observer = new IntersectionObserver(function (entries) {\r\n//\tentries.forEach(function (entry) {\r\n//\t\t// Log if the element and if it's in the viewport\r\n//\t\tif (entry.target.matches(\".brick-split\")) {\r\n//\t\t\tif (entry.isIntersecting) {\r\n//\t\t\t\tentry.target.timer = setInterval(function () {\r\n//\t\t\t\t\tentry.target.style.backgroundPosition =\r\n//\t\t\t\t\t\t120 -\r\n//\t\t\t\t\t\t-20 *\r\n//\t\t\t\t\t\t\t(entry.target.getBoundingClientRect().top /\r\n//\t\t\t\t\t\t\t\tentry.target.offsetHeight) +\r\n//\t\t\t\t\t\t\"% 0\";\r\n//\t\t\t\t}, 30);\r\n//\t\t\t} else {\r\n//\t\t\t\tclearInterval(entry.target.timer);\r\n//\t\t\t}\r\n//\t\t}\r\n//\t});\r\n//});\r\n\r\n\r\nvar hours = document.querySelectorAll(\".hourlist dt\");\r\nconst today = new Date();\r\nconst daysOfWeek = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nconst dayName = daysOfWeek[today.getDay()];\r\n\r\nhours.forEach(function (dl) {\r\n\tif (dl.innerText == dayName) {\r\n\t\tdl.parentElement.classList.add(\"active\");\r\n\t}\r\n});\r\n\r\n\r\n\r\nvar splits = document.querySelectorAll(\".photo-split\");\r\nvar count = 0;\r\nsplits.forEach(function (sp) {\r\n\tsp.classList.add(\"item_\" + count);\r\n\tcount++;\r\n\tif (sp.nextElementSibling == null || !sp.nextElementSibling.classList.contains(\"photo-split\")) {\r\n\t\tcount = 0;\r\n\t}\r\n});\r\n\r\n/*** SCROLL ANIMATIONS ***/\r\nlet scrollObserver = new IntersectionObserver(\r\n\tfunction (entries) {\r\n\t\tentries.forEach(function (entry) {\r\n\t\t\tif (entry.target.matches(\".scroll\")) {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\tentry.target.classList.add(\"active\");\r\n\r\n\t\t\t\t\tif (entry.target.matches(\".count\")) {\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tanimateCountUp(entry.target);\r\n\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//else {\r\n\t\t\t\t//\tentry.target.classList.remove(\"active\");\r\n\t\t\t\t//}\r\n\t\t\t}\r\n\t\t\tif (entry.target.matches(\".with-arrow\")) {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\tentry.target.timer = setInterval(function () {\r\n\t\t\t\t\t\tentry.target.style.setProperty(\r\n\t\t\t\t\t\t\t\"--bar-position\",\r\n\t\t\t\t\t\t\t150 -\r\n\t\t\t\t\t\t\t150 *\r\n\t\t\t\t\t\t\t((window.innerHeight -\r\n\t\t\t\t\t\t\t\tentry.target.getBoundingClientRect()\r\n\t\t\t\t\t\t\t\t\t.top) /\r\n\t\t\t\t\t\t\t\t(window.innerHeight +\r\n\t\t\t\t\t\t\t\t\tentry.target.offsetHeight)) +\r\n\t\t\t\t\t\t\t\"px\"\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}, 30);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tclearInterval(entry.target.timer);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t{ threshold: 0.001 }\r\n);\r\n\r\nlet underlineObserver = new IntersectionObserver(\r\n\tfunction (entries) {\r\n\t\tentries.forEach(function (entry) {\r\n\t\t\tif (entry.target.matches(\"strong\")) {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\tentry.target.classList.add(\"active\");\r\n\r\n\t\t\t\t\t/* specific class functions can run here\r\n\t\t\t\tif (entry.target.matches(\".count\")) {\r\n\t\t\t\t\tanimateCountUp(entry.target);\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t{ threshold: 0.001 }\r\n);\r\n\r\nlet scrolls = document.querySelectorAll(\".scroll\");\r\nlet underlineAnimations = document.querySelectorAll(\"strong\");\r\n\r\nscrolls.forEach(function (item) {\r\n\tscrollObserver.observe(item);\r\n});\r\nunderlineAnimations.forEach(function (item) {\r\n\tunderlineObserver.observe(item);\r\n});\r\n\r\n///*** STICKY HEADER ***/\r\n//// get the sticky element\r\n//const stickyElm = document.querySelector('.headers')\r\n\r\n//const stickyObserver = new IntersectionObserver(function(entries) {\r\n//    entries.forEach(function (entry) {\r\n//        if (entry.isIntersecting < 1) {\r\n//            //Sticky\r\n\r\n//            entry.target.classList.remove('unSticky');\r\n//            entry.target.classList.remove('wasSticky');\r\n//            entry.target.classList.add('wasUnSticky');\r\n\r\n//            if (!entry.target.classList.contains(\"isSticky\")) {\r\n//                setTimeout(function () {\r\n//                    entry.target.classList.add('isSticky');\r\n//                }, 50);\r\n//            }\r\n\r\n//        }\r\n//        else {\r\n//            //Non Sticky\r\n//            if (entry.target.classList.contains(\"isSticky\")) {\r\n//                entry.target.classList.remove('isSticky');\r\n//                entry.target.classList.remove('wasUnSticky');\r\n//                entry.target.classList.add('wasSticky');\r\n\r\n//                if (!entry.target.classList.contains(\"unSticky\")) {\r\n//                    setTimeout(function () {\r\n//                        entry.target.classList.add('unSticky');\r\n//                    }, 50);\r\n//                }\r\n//            }\r\n\r\n//        }\r\n\r\n//    });\r\n//},\r\n//  {threshold: [1]}\r\n//);\r\n//stickyObserver.observe(stickyElm);\r\n\r\n/*** ESCAPE KEY CLOSURES ***/\r\ndocument.body.addEventListener(\"keypress\", function (e) {\r\n\tif (e.key == \"Escape\") {\r\n\t\tif (\r\n\t\t\tdocument.querySelector(\".js-search-area\").style.display == \"block\"\r\n\t\t) {\r\n\t\t\tdocument.querySelector(\".js-search-close\").click();\r\n\t\t}\r\n\t\tif (document.querySelector(\".js-login-area\").style.display == \"block\") {\r\n\t\t\tdocument.querySelector(\".js-login-close\").click();\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/** Search ***/\r\nfunction openSearch() {\r\n\tbody.classList.remove(\"nav-closed\");\r\n\tbody.classList.remove(\"login-open\");\r\n\r\n\tcloseAllMenus(\"search\");\r\n\r\n\tbody.classList.add(\"search-open\");\r\n\tbody.classList.remove(\"search-closed\");\r\n\r\n\tvar searches = document.querySelectorAll(\".js-search img\");\r\n\tsearches.forEach(function (it) {\r\n\t\tit.setAttribute(\"src\", \"/Content/Images/ico-close.svg\");\r\n\t});\r\n\r\n\tvar searchBox = document.querySelector(\".search-window .search-inp\");\r\n\tsetTimeout(function () {\r\n\t\tsearchBox.focus();\r\n\t}, 800);\r\n\r\n\tif (window.innerWidget < tablet_break) {\r\n\t\twindow.scrollTo({ top: 0, behavior: \"smooth\" });\r\n\t}\r\n}\r\n\r\nfunction closeSearch() {\r\n\tbody.classList.remove(\"search-open\");\r\n\tbody.classList.add(\"nav-closed\");\r\n\r\n\tvar searches = document.querySelectorAll(\".js-search img\");\r\n\tsearches.forEach(function (it) {\r\n\t\tit.setAttribute(\"src\", \"/Content/Images/ico-search.svg\");\r\n\t});\r\n}\r\n\r\n/** Menu **/\r\nfunction openMenu() {\r\n\tvar btn = document.querySelector(\".js-mobile-nav-area\");\r\n\tdocument.querySelector(\".js-nav-mobile\").classList.add(\"open\");\r\n\tbtn.classList.add(\"menu-open\");\r\n\tdocument.body.classList.add(\"nav-open\");\r\n\tdocument.querySelector(\"body\").classList.add(\"menu-open\");\r\n}\r\nfunction closeMenu() {\r\n\tdocument.body.classList.remove(\"nav-open\");\r\n\r\n\tvar ml = document.querySelector(\".main-nav li.active\");\r\n\tif (ml) {\r\n\t\tml.classList.remove(\"active\");\r\n\t}\r\n\tdocument.querySelector(\".js-nav-mobile\").classList.remove(\"open\");\r\n\tdocument.querySelector(\"body\").classList.remove(\"menu-open\");\r\n}\r\n\r\n/** Login **/\r\nfunction openLogin() {\r\n\tvar btn = document.querySelector(\".js-login-area\");\r\n\r\n\r\n\tvar mb_img = document.querySelectorAll(\".js-login img\");\r\n\tvar mb_txt = document.querySelectorAll(\".js-login span\");\r\n\r\n\tbody.classList.remove(\"nav-closed\");\r\n\tcloseAllMenus(\"login\");\r\n\r\n\tbody.classList.add(\"login-open\");\r\n\tbody.classList.remove(\"login-closed\");\r\n\t//body.classList.remove(\"search-open\");\r\n\r\n\tvar loginBox = document.querySelector(\".login-form #userid\");\r\n\t//loginBox.focus();\r\n\tbtn.scrollTop = 0;\r\n\r\n\t//document.querySelectorAll('.js-login').forEach((it) => {\r\n\t//\tit.style.opacity = 0;\r\n\t//})\r\n\tmb_txt.forEach(el => {\r\n\t\tel.style.display = \"none\";\r\n\t})\r\n\tmb_img.forEach(el => {\r\n\t\tel.style.display = \"block\";\r\n\t})\r\n\r\n}\r\nfunction closeLogin() {\r\n\tvar btn = document.querySelector(\".js-login-area\");\r\n\tvar mb_img = document.querySelectorAll(\".js-login img\");\r\n\tvar mb_txt = document.querySelectorAll(\".js-login span\");\r\n\r\n\tif (body.classList.contains('login-open')) {\r\n\t\tbody.classList.add(\"nav-closed\");\r\n\t\tbody.classList.remove(\"login-open\");\r\n\t\tbody.classList.add(\"login-closed\");\r\n\r\n\t\t//document.querySelectorAll('.js-login').forEach((it) => {\r\n\t\t//\tit.style.opacity = 0;\r\n\t\t//})\r\n\t\tmb_img.forEach(el => {\r\n\t\t\tel.style.display = \"none\";\r\n\t\t})\r\n\t\tsetTimeout(() => {\r\n\t\t\tmb_txt.forEach(el => {\r\n\t\t\t\tel.style.display = \"block\";\r\n\t\t\t})\r\n\t\t\tdocum\r\n\t\t}, 200)\r\n\t\t\r\n\t\t\r\n\r\n\t//\tsetTimeout(() => {\r\n\t\t//\tmb_img.forEach(function (it) { it.src = \"/Content/Images/ico-shield.svg\"; });\r\n\t\t//\tmb_txt.forEach(function (it) { it.innerText = \"Login\"; });\r\n\t\t//document.querySelectorAll('.js-login').forEach((it) => {\r\n\t\t//\tit.style.opacity = 1;\r\n\t\t//});\r\n\t\t//\t}, 200);\r\n\r\n\t}\r\n\r\n\r\n\r\n\r\n}\r\n\r\nfunction closeAllMenus(menu) {\r\n\tif (menu == \"nav\") {\r\n\t\tcloseLogin();\r\n\t\tcloseSearch();\r\n\t}\r\n\tif (menu == \"search\") {\r\n\t\tcloseLogin();\r\n\t\tcloseMenu();\r\n\t}\r\n\tif (menu == \"login\") {\r\n\t\tcloseSearch();\r\n\t\tcloseMenu();\r\n\t}\r\n}\r\n\r\n/*** Search Window ***/\r\ndocument.addEventListener(\r\n\t\"click\",\r\n\tfunction (e) {\r\n\t\t//Search Open\r\n\t\tif (e.target.matches(\".js-search\")) {\r\n\t\t\tif (document.body.classList.contains(\"search-open\")) {\r\n\t\t\t\tcloseSearch();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\topenSearch();\r\n\t\t\t}\r\n\t\t}\r\n\t\t//Search Close\r\n\t\telse if (e.target.matches(\".js-search-close\")) {\r\n\t\t\tcloseSearch();\r\n\t\t}\r\n\t\telse if (e.target.matches(\".js-nav-back\")) {\r\n\t\t\tdocument.querySelector(\".main-nav li.active\").classList.remove(\"active\");\r\n\t\t}\r\n\t\t//Search Close\r\n\t\telse if (e.target.matches(\".play-btn .photo\")) {\r\n\t\t\tvar par =\r\n\t\t\t\te.target.parentElement.parentElement.querySelectorAll(\r\n\t\t\t\t\t\"[data-video]\"\r\n\t\t\t\t);\r\n\t\t\tpar.forEach(function (vid) {\r\n\t\t\t\tif (vid.getAttribute(\"data-video\") != \"\") {\r\n\t\t\t\t\tvid.click();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t//Locations hours\r\n\t\telse if (e.target.matches(\".hour-block h3\")) {\r\n\t\t\te.target.parentElement.classList.toggle(\"active\");\r\n\t\t}\r\n\t\t//login accordions\r\n\t\telse if (e.target.matches(\".js-login-accordion\")) {\r\n\t\t\te.target.parentElement.classList.toggle(\"active\");\r\n\t\t}\r\n\t\t//Login Open\r\n\t\telse if (e.target.matches(\".js-login\")) {\r\n\t\t\tif (e.target.tagName == 'A') {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tvar btn = document.querySelector(\".js-login-area\");\r\n\t\t\tif (body.classList.contains(\"login-open\")) {\r\n\t\t\t\tcloseLogin();\r\n\t\t\t} else {\r\n\t\t\t\topenLogin();\r\n\t\t\t\tconst left =\r\n\t\t\t\t\te.target.offsetLeft + e.target.offsetWidth / 2 - 11;\r\n\t\t\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t\t\t\"--navBeforeLeft\",\r\n\t\t\t\t\tleft + \"px\"\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t\t\"--navBeforeColor\",\r\n\t\t\t\t\"rgba(0,0,0,0)\"\r\n\t\t\t);\r\n\r\n\t\t\tif (e.target.classList.contains(\"login-mobile\")) {\r\n\t\t\t\tvar sp = e.target.querySelector(\"span\");\r\n\t\t\t\tif (sp.innerText.trim() == \"Close\") {\r\n\t\t\t\t\tsp.innerText = \"Close\";\r\n\t\t\t\t\te.target.classList.add(\"active\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsp.innerText = \"Login\";\r\n\t\t\t\t\te.target.classList.remove(\"active\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t//Login Close\r\n\t\telse if (e.target.matches(\".js-login-close\")) {\r\n\t\t\tcloseLogin();\r\n\t\t}\r\n\t\t//Share Link\r\n\t\telse if (e.target.matches(\".share-link\")) {\r\n\t\t\te.preventDefault();\r\n\t\t\tnavigator.clipboard.writeText(window.location.href);\r\n\t\t\tthis.querySelector('span').innerText = 'Copied';\r\n\t\t}\r\n\t\t//Mobile Accordion\r\n\t\telse if (e.target.matches(\".mobile-accordion .accordion-button\")) {\r\n\t\t\tif (e.target.parentElement.classList.contains(\"active\")) {\r\n\t\t\t\te.target.parentElement.classList.remove(\"active\");\r\n\t\t\t\te.target.classList.add(\"cta-btn\");\r\n\t\t\t\te.target.classList.remove(\"ghost-btn\");\r\n\t\t\t\te.target.innerText = \"Contact Form\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\te.target.parentElement.classList.add(\"active\");\r\n\t\t\t\te.target.classList.add(\"ghost-btn\");\r\n\t\t\t\te.target.classList.remove(\"cta-btn\");\r\n\t\t\t\te.target.innerText = \"Close\";\r\n\t\t\t}\r\n\t\t}\r\n\t\t//Mobile Dropdown/Accordion\r\n\t\telse if (e.target.matches(\".js-mobile-dropdown-btn\")) {\r\n\t\t\tvar content = e.target.parentNode.querySelector(\r\n\t\t\t\t\".js-mobile-dropdown-content\"\r\n\t\t\t);\r\n\t\t\tvar dropButton = e.target;\r\n\t\t\tif (dropButton.classList.contains(\"open\")) {\r\n\t\t\t\tdropButton.classList.remove(\"open\");\r\n\t\t\t\tvSlideUp(content);\r\n\t\t\t} else {\r\n\t\t\t\tdropButton.classList.add(\"open\");\r\n\t\t\t\tvSlideDown(content);\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t//Login Mobile Dropdown\r\n\t\telse if (e.target.matches(\".js-login-drop\")) {\r\n\t\t\tvar btn = e.target.parentNode.querySelector(\"ul\");\r\n\t\t\tif (btn.style.display != \"block\") {\r\n\t\t\t\tvSlideDown(btn); //.style.display = \"block\";\r\n\t\t\t\te.target.parentNode.classList.add(\"active\");\r\n\t\t\t} else {\r\n\t\t\t\tvSlideUp(btn); //btn.style.display = \"none\";\r\n\t\t\t\te.target.parentNode.classList.remove(\"active\");\r\n\t\t\t}\r\n\t\t}\r\n\t\t//Mobile Nav Open\r\n\t\telse if (e.target.matches(\".js-nav-mobile\")) {\r\n\t\t\tcloseAllMenus(\"nav\");\r\n\t\t\tif (e.target.classList.contains(\"open\")) {\r\n\t\t\t\tcloseMenu();\r\n\t\t\t} else {\r\n\t\t\t\topenMenu();\r\n\t\t\t}\r\n\t\t}\r\n\t\t//Mobile Nav Close\r\n\t\telse if (e.target.matches(\".js-nav-mobile-close\")) {\r\n\t\t\tvar btn = document.querySelector(\".js-mobile-nav-area\");\r\n\t\t\tbtn.classList.remove(\"menu-open\");\r\n\r\n\t\t\tdocument.querySelector(\".main-nav li.active\").classList.remove(\"active\");\r\n\r\n\t\t\tdocument.body.classList.remove(\"nav-open\");\r\n\t\t\t// vSlideUp(btn);\r\n\t\t} else if (\r\n\t\t\te.target.matches(\"[data-video]\") &&\r\n\t\t\t!e.target.parentNode.classList.contains(\"cta-buttons\") &&\r\n\t\t\te.target.parentNode.id != \"ctaButtons\"\r\n\t\t) {\r\n\t\t\tif (e.target.getAttribute(\"data-video\") != \"\") {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tlet videoTitle = \"\";\r\n\t\t\t\tlet videoGUID = \"\";\r\n\t\t\t\tif (\r\n\t\t\t\t\te.target.querySelector(\"span.visuallyhidden\").length > 0 &&\r\n\t\t\t\t\te.target.querySelector(\"span.visuallyhidden\").innerText !=\r\n\t\t\t\t\t\"\"\r\n\t\t\t\t) {\r\n\t\t\t\t\tvideoTitle = e.target.querySelector(\r\n\t\t\t\t\t\t\"span.visuallyhidden\"\r\n\t\t\t\t\t).innerText;\r\n\t\t\t\t}\r\n\t\t\t\tvar vidBuild =\r\n\t\t\t\t\t\"<div class='video-modal-content'><button class='video-modal-close'>&times;<span class='visuallyhidden'> close</span></button>\";\r\n\t\t\t\tif (\r\n\t\t\t\t\te.target.getAttribute(\"data-video\").indexOf(\"vimeo\") != -1\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar vid = e.target\r\n\t\t\t\t\t\t.getAttribute(\"data-video\")\r\n\t\t\t\t\t\t.replace(\"https://vimeo.com/\", \"\")\r\n\t\t\t\t\t\t.replace(\"https://player.vimeo.com/video/\", \"\");\r\n\t\t\t\t\tconsole.log(vid);\r\n\t\t\t\t\tif (vid.indexOf(\"/\") != -1) {\r\n\t\t\t\t\t\tvid = vid.substring(0, vid.indexOf(\"/\"));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconsole.log(vid);\r\n\t\t\t\t\tvidBuild +=\r\n\t\t\t\t\t\t\"<div style='padding: 56.25% 0 0 0; position: relative;'><iframe src='https://player.vimeo.com/video/\" +\r\n\t\t\t\t\t\tvid +\r\n\t\t\t\t\t\t\"?title=0&byline=0&portrait=0' alt='\" +\r\n\t\t\t\t\t\tvideoTitle +\r\n\t\t\t\t\t\t\"' style='position:absolute;top:0;left:0;width:100%;height:100%;' frameborder='0' allow='autoplay; fullscreen' allowfullscreen></iframe></div><script src='https://player.vimeo.com/api/player.js'></script>\";\r\n\t\t\t\t\tvidBuild +=\r\n\t\t\t\t\t\t\"<div class='transcript-container js-accordion'><button class='transcript-button js-accordion-button' type='button' aria-expanded='false'>Video Transcript <img src='/Content/images/arrow-down.svg' width='19' height='10' alt='' /></button><div class='transcript-content js-accordion-content'><p>This video uses Vimeo's native closed captioning features to provide a transcript. If closed captioning is unavailable for this video, please <a href='/contact'>contact us</a> and we can provide you with one.</p></div></div>\";\r\n\t\t\t\t} else if (\r\n\t\t\t\t\te.target.getAttribute(\"data-video\").indexOf(\"youtube\") != -1\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar vid = e.target\r\n\t\t\t\t\t\t.getAttribute(\"data-video\")\r\n\t\t\t\t\t\t.replace(\"https://www.youtube.com/watch?v=\", \"\");\r\n\t\t\t\t\tif (vid.indexOf(\"/\") != -1) {\r\n\t\t\t\t\t\tvid = vid.substring(0, vid.indexOf(\"/\"));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvidBuild +=\r\n\t\t\t\t\t\t\"<div style='padding: 56.25% 0 0 0; position: relative;'><iframe src='https://www.youtube.com/embed/\" +\r\n\t\t\t\t\t\tvid +\r\n\t\t\t\t\t\t\"' alt='\" +\r\n\t\t\t\t\t\tvideoTitle +\r\n\t\t\t\t\t\t\"' style='position:absolute;top:0;left:0;width:100%;height:100%;' frameborder='0' allow='accelerometer; autoplay; encrypted - media; gyroscope; picture -in -picture; fullscreen' allowfullscreen></iframe></div>\";\r\n\t\t\t\t\tvidBuild +=\r\n\t\t\t\t\t\t\"<div class='transcript-container js-accordion'><button class='transcript-button js-accordion-button' type='button' aria-expanded='false'>Video Transcript <img src='/Content/images/arrow-down.svg' width='19' height='10' alt='' /></button><div class='transcript-content js-accordion-content'><p>This video uses YouTube's native closed captioning features to provide a transcript. If closed captioning is unavailable for this video, please <a href='/contact'>contact us</a> and we can provide you with one.</p></div></div>\";\r\n\t\t\t\t} else if (\r\n\t\t\t\t\te.target.getAttribute(\"data-video\").indexOf(\".mp4\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tvideoGUID = e.target\r\n\t\t\t\t\t\t.getAttribute(\"data-video\")\r\n\t\t\t\t\t\t.split(\"/\")[2];\r\n\t\t\t\t\tvidBuild +=\r\n\t\t\t\t\t\t\"<video width='100%' controls autoplay><source src='\" +\r\n\t\t\t\t\t\te.target.getAttribute(\"data-video\") +\r\n\t\t\t\t\t\t\"' type='video/mp4'></video>\";\r\n\t\t\t\t\t// Since the transcript is queried async, make a holder for it and we'll append the content after the async completes\r\n\t\t\t\t\tvidBuild +=\r\n\t\t\t\t\t\t\"<div class='transcript-container js-accordion'><button class='transcript-button js-accordion-button' type='button' aria-expanded='false'>Video Transcript <img src='/Content/images/arrow-down.svg' width='19' height='10' alt='' /></button><div id='transcript-\" +\r\n\t\t\t\t\t\tvideoGUID +\r\n\t\t\t\t\t\t\"' class='transcript-content js-accordion-content'><p>For a transcript of this video, please <a href='/contact'>contact us</a>.</p></div></div>\";\r\n\t\t\t\t}\r\n\t\t\t\tvidBuild += \"</div>\";\r\n\r\n\t\t\t\tvar vidModal = document.querySelector(\".video-modal\");\r\n\t\t\t\tif (vidModal !== null) {\r\n\t\t\t\t\tvidModal.parentNode.removeChild(vidModal);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar div = document.createElement(\"div\");\r\n\t\t\t\tdiv.classList.add(\"video-modal\");\r\n\t\t\t\tdiv.innerHTML = vidBuild;\r\n\r\n\t\t\t\tdocument.body.appendChild(div);\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tvideoGUID != \"\" &&\r\n\t\t\t\t\tdocument.getElementById(\"transcript-\" + videoGUID) !=\r\n\t\t\t\t\tundefined\r\n\t\t\t\t) {\r\n\t\t\t\t\t// If it's embedded, get the transcript\r\n\t\t\t\t\tlet xhr = new XMLHttpRequest();\r\n\t\t\t\t\txhr.open(\"GET\", \"/transcript/\" + videoGUID);\r\n\t\t\t\t\txhr.send();\r\n\t\t\t\t\txhr.onload = function () {\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\txhr.status === 200 &&\r\n\t\t\t\t\t\t\txhr.responseText.replace(/\\\"/gm, \"\") != \"\"\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t// console.log(\"Transcrpt Retrieval Succeeded, Status: \" + xhr.status + \".\");\r\n\t\t\t\t\t\t\tdocument.getElementById(\r\n\t\t\t\t\t\t\t\t\"transcript-\" + videoGUID\r\n\t\t\t\t\t\t\t).innerHTML =\r\n\t\t\t\t\t\t\t\t\"<p>\" +\r\n\t\t\t\t\t\t\t\txhr.responseText\r\n\t\t\t\t\t\t\t\t\t.replace(/\\\"/gm, \"\")\r\n\t\t\t\t\t\t\t\t\t.replace(/\\\\r\\\\n/gm, \"<br />\") +\r\n\t\t\t\t\t\t\t\t\"</p>\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// console.log(\"Transcrpt Retrieval Failed, Status: \" + xhr.status + \".\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t\txhr.onerror = function () {\r\n\t\t\t\t\t\t// console.log(\"Transcript Retrieval Error: \" + xhr.status + \".\");\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (e.target.matches(\".video-modal\")) {\r\n\t\t\te.target.parentNode.removeChild(e.target);\r\n\t\t} else if (e.target.matches(\".video-modal-content\")) {\r\n\t\t\te.stopPropagation();\r\n\t\t} else if (e.target.matches(\".video-modal-close\")) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar vidModal = document.querySelector(\".video-modal\");\r\n\t\t\tif (vidModal !== null) {\r\n\t\t\t\tvidModal.parentNode.removeChild(vidModal);\r\n\t\t\t}\r\n\t\t} else if (e.target.matches(\".js-filter-cat\")) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar cat = e.target.getAttribute(\"data-cat\");\r\n\t\t\tvar btns = e.target.parentElement.querySelectorAll(\".js-filter-cat\");\r\n\t\t\tbtns.forEach(function (btn) {\r\n\t\t\t\tbtn.classList.remove(\"active\");\r\n\t\t\t});\r\n\t\t\te.target.classList.add(\"active\");\r\n\r\n\t\t\tvar sliders = e.target.parentElement.parentElement.parentElement.querySelectorAll(\".icons\");\r\n\t\t\tsliders.forEach(el => {\r\n\t\t\t\tel.classList.add('fadeout');\r\n\t\t\t})\r\n\t\t\tsliders.forEach(function (it) {\r\n\t\t\t\tif (it.getAttribute(\"data-cat\") == cat) {\r\n\t\t\t\t\tit.classList.add(\"active\");\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tit.classList.remove(\"active\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tsliders.forEach(el => {\r\n\t\t\t\t\tel.classList.remove('fadeout');\r\n\t\t\t\t})\r\n\t\t\t}, 200)\r\n\t\t}\r\n\t\t//Footer Nav\r\n\t\telse if (e.target.matches(\".footer-nav > ul > li > a\")) {\r\n\t\t\tif (window.innerWidth < tablet_break) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar btn = e.target.parentNode.querySelector(\"ul\");\r\n\t\t\t\tif (btn.style.display != \"block\") {\r\n\t\t\t\t\tvSlideDown(btn); //.style.display = \"block\";\r\n\t\t\t\t\te.target.parentNode.classList.add(\"active\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvSlideUp(btn); //btn.style.display = \"none\";\r\n\t\t\t\t\te.target.parentNode.classList.remove(\"active\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (e.target.matches(\".js-accordion-header\")) {\r\n\t\t\tvar cnt = e.target.parentNode.parentNode.parentNode.querySelector(\r\n\t\t\t\t\".js-accordion-content\"\r\n\t\t\t);\r\n\t\t\te.target.parentNode.parentNode.parentNode.classList.add(\"open\");\r\n\t\t\tvSlideDown(cnt);\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t//for splides inside accordions\r\n\t\t\t\twindow.dispatchEvent(new Event('resize'));\r\n\t\t\t\tconsole.log(\"RESIZE\");\r\n\t\t\t}, 500);\r\n\r\n\t\t} else if (e.target.matches(\".js-accordion-close\")) {\r\n\t\t\tvar cnt = e.target.parentNode.parentNode.parentNode.querySelector(\r\n\t\t\t\t\".js-accordion-content\"\r\n\t\t\t);\r\n\t\t\te.target.parentNode.parentNode.parentNode.classList.remove(\"open\");\r\n\t\t\tvSlideUp(cnt);\r\n\t\t} else if (e.target.matches(\".js-branch-selector\")) {\r\n\t\t\tcloseAllMenus(\"branch\");\r\n\r\n\t\t\tdocument.body.classList.add(\"branch-open\");\r\n\t\t} else if (e.target.matches(\".js-branch-modal-close\")) {\r\n\t\t\tdocument.body.classList.remove(\"branch-open\");\r\n\t\t} else if (e.target.matches(\".js-branch-modal\")) {\r\n\t\t\t//Hide Locations Modal\r\n\t\t\tif (e.target.id == \"locationsModal\") {\r\n\t\t\t\tdocument.body.classList.remove(\"branch-open\");\r\n\t\t\t}\r\n\t\t} else if (e.target.matches(\".js-subscribe\")) {\r\n\t\t\t//Hide Locations Modal\r\n\t\t\tif (e.target.parentNode.classList.contains(\"open\")) {\r\n\t\t\t\te.target.parentNode.classList.remove(\"open\");\r\n\t\t\t\te.target.innerText = e.target.getAttribute(\"data-text\");\r\n\t\t\t} else {\r\n\t\t\t\te.target.parentNode.classList.add(\"open\");\r\n\t\t\t\te.target.setAttribute(\"data-text\", e.target.innerText);\r\n\t\t\t\te.target.innerText = \"Close\";\r\n\t\t\t}\r\n\t\t} else if (e.target.matches(\".js-alert-bell\")) {\r\n\t\t\tvar alerts = document.querySelectorAll(\".hidden-alert\");\r\n\t\t\tdocument.cookie =\r\n\t\t\t\t\"alerts=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\r\n\t\t\talerts.forEach(function (alert) {\r\n\t\t\t\tvSlideDown(alert);\r\n\t\t\t});\r\n\t\t\t//e.target.disabled = true;\r\n\t\t\t//e.target.style.opacity = 0;\r\n\t\t\tconst alertBell = document.querySelectorAll('.js-alert-bell')\r\n\t\t\talertBell.forEach((bell) => {\r\n\t\t\t\tgetParentElementWithClass(bell, 'alert-bell').style.display = \"none\";\r\n\t\t\t\tif (getParentElementWithClass(bell, 'mobile-secondary-nav')) {\r\n\t\t\t\t\tbell.style.display = \"none\";\r\n\t\t\t\t\tdocument.querySelector('.mobile-secondary-nav').style.gridTemplateColumns = \"1fr 1fr 1fr\";\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} else if (e.target.matches(\".js-bc-video\")) {\r\n\t\t\t//document.querySelector(\".js-bc-video\").parentNode.parentNode.parentNode.querySelector(\"img\").click();\r\n\t\t\te.target.parentNode.parentNode.parentNode\r\n\t\t\t\t.querySelector(\".photo img\")\r\n\t\t\t\t.click();\r\n\t\t} else if (e.target.matches(\".jump-lnk\")) {\r\n\t\t\tvar prods = document.querySelectorAll(\".js-product\");\r\n\t\t\tvar jumpers = document.querySelector(\".js-jump-links\");\r\n\t\t\tif (jumpers && jumpers.getAttribute(\"data-jump-class\") != undefined && jumpers.getAttribute(\"data-jump-class\") != \"\") {\r\n\t\t\t\tprods = document.querySelectorAll(\".\" + jumpers.getAttribute(\"data-jump-class\"));\r\n\t\t\t}\r\n\t\t\tprods.forEach(function (pd) {\r\n\t\t\t\tif (pd.querySelector(\"h2\").innerText == e.target.innerText) {\r\n\t\t\t\t\tpd.scrollIntoView({ behavior: \"smooth\" });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t// Comparison Chart Mobile Previous\r\n\t\telse if (e.target.matches(\".js-table-prev\")) {\r\n\t\t\tvar base = e.target.parentNode.parentNode; //$(this).parent().parent();\r\n\t\t\tbase.querySelector(\".js-table-next\").classList.remove(\"grayed\");\r\n\t\t\tbase.setAttribute(\r\n\t\t\t\t\"data-col\",\r\n\t\t\t\tNumber(base.getAttribute(\"data-col\")) - 1\r\n\t\t\t);\r\n\t\t\tif (base.getAttribute(\"data-col\") == 1) {\r\n\t\t\t\te.target.classList.add(\"grayed\");\r\n\t\t\t}\r\n\t\t\tvar spot = base.querySelector(\"table tr\");\r\n\t\t\tvar ths = spot.querySelectorAll(\"th\");\r\n\t\t\tbase.querySelector(\".js-rate-head\").innerHTML = eq.call(\r\n\t\t\t\tths,\r\n\t\t\t\tbase.getAttribute(\"data-col\")\r\n\t\t\t).innerHTML;\r\n\t\t\tupdateDots(base, base.dataset.col);\r\n\t\t\tmobileButtonDisplay(base.dataset.col);\r\n\t\t}\r\n\t\t// Comparison Chart Mobile Next\r\n\t\telse if (e.target.matches(\".js-table-next\")) {\r\n\t\t\tvar base = e.target.parentNode.parentNode; //$(this).parent().parent();\r\n\t\t\tbase.querySelector(\".js-table-prev\").classList.remove(\"grayed\");\r\n\t\t\tbase.setAttribute(\r\n\t\t\t\t\"data-col\",\r\n\t\t\t\tNumber(base.getAttribute(\"data-col\")) + 1\r\n\t\t\t);\r\n\t\t\tvar spot = base.querySelector(\"table tr\");\r\n\t\t\tvar ths = spot.querySelectorAll(\"th\");\r\n\r\n\t\t\tif (base.getAttribute(\"data-col\") == ths.length - 1) {\r\n\t\t\t\te.target.classList.add(\"grayed\");\r\n\t\t\t}\r\n\r\n\t\t\tbase.querySelector(\".js-rate-head\").innerHTML = eq.call(\r\n\t\t\t\tths,\r\n\t\t\t\tbase.getAttribute(\"data-col\")\r\n\t\t\t).innerHTML;\r\n\t\t\tupdateDots(base, base.dataset.col);\r\n\t\t\tmobileButtonDisplay(base.dataset.col);\r\n\t\t} else if (e.target.matches(\".pagination-dots .dot\")) {\r\n\t\t\tconst compareTable = e.target.parentNode.parentNode.querySelector('.compare-table');\r\n\t\t\tvar spot = compareTable.querySelector(\"table tr\");\r\n\t\t\tvar ths = spot.querySelectorAll(\"th\");\r\n\t\t\tcompareTable.dataset.col = e.target.dataset.col;\r\n\t\t\tupdateDots(compareTable);\r\n\t\t\tcompareTable.querySelector(\".js-table-prev\").classList.remove(\"grayed\");\r\n\t\t\tcompareTable.querySelector(\".js-table-next\").classList.remove(\"grayed\");\r\n\t\t\tif (compareTable.dataset.col == 1) {\r\n\t\t\t\tcompareTable.querySelector(\".js-table-prev\").classList.add(\"grayed\");\r\n\t\t\t}\r\n\t\t\tif (compareTable.dataset.col == ths.length - 1) {\r\n\t\t\t\tcompareTable.querySelector(\".js-table-next\").classList.add(\"grayed\");\r\n\t\t\t}\r\n\r\n\t\t\tcompareTable.querySelector(\".js-rate-head\").innerHTML = eq.call(\r\n\t\t\t\tths,\r\n\t\t\t\tcompareTable.getAttribute(\"data-col\")\r\n\t\t\t).innerHTML;\r\n\r\n\t\t} else if (e.target.matches(\".js-accordion .js-close-btn\")) {\r\n\t\t\tconst parent = getParentElementWithClass(e.target, \"js-accordion\");\r\n\t\t\tparent.querySelector(\".js-accordion-button\").click();\r\n\t\t}\r\n\t\t// else if (e.target.matches(\".js-accordion-container .js-accordion-button\")) {\r\n\t\t// \tconst parent = e.target.parentNode;\r\n\t\t// \tif (parent.classList.contains(\"active\")) {\r\n\t\t// \t\tparent.classList.remove(\"active\");\r\n\t\t// \t\tvSlideDown(parent.querySelector(\".js-accordion-content\"));\r\n\t\t// \t}\r\n\t\t// \telse {\r\n\r\n\t\t// \t\tparent.classList.add(\"active\");\r\n\t\t// \t\tvSlideUp(parent.querySelector(\".js-accordion-content\"));\r\n\t\t// \t}\r\n\t\t// }\r\n\t\telse if (e.target.matches(\".js-tab-header\")) {\r\n\t\t\t//change tab\r\n\r\n\t\t\tvar tabs =\r\n\t\t\t\te.target.parentNode.parentNode.parentNode.querySelectorAll(\r\n\t\t\t\t\t\".js-tab\"\r\n\t\t\t\t);\r\n\t\t\tvar activeTab = \"\";\r\n\r\n\t\t\tvar th = document.querySelectorAll(\".js-tab-header\");\r\n\r\n\t\t\tth.forEach(function (tt) {\r\n\t\t\t\ttt.classList.remove(\"active\");\r\n\t\t\t});\r\n\r\n\t\t\ttabs.forEach(function (tab) {\r\n\t\t\t\tif (\r\n\t\t\t\t\ttab.getAttribute(\"data-tab\") ==\r\n\t\t\t\t\te.target.getAttribute(\"data-tab\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (tab.classList.contains(\"active\")) {\r\n\t\t\t\t\t\tif (tab.classList.contains(\"js-closable\")) {\r\n\t\t\t\t\t\t\te.target.classList.remove(\"active\");\r\n\t\t\t\t\t\t\ttab.classList.remove(\"active\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\te.target.classList.add(\"active\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttab.classList.add(\"active\");\r\n\t\t\t\t\t\te.target.classList.add(\"active\");\r\n\t\t\t\t\t\tmoveSlideTrack(e.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttab.classList.remove(\"active\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t/*\r\n\t\t\tvar headers =\r\n\t\t\t\te.target.parentNode.parentNode.parentNode.querySelectorAll(\r\n\t\t\t\t\t\".js-tab-header\"\r\n\t\t\t\t);\r\n\t\t\theaders.forEach(function (tab) {\r\n\t\t\t\tif (\r\n\t\t\t\t\ttab.getAttribute(\"data-tab\") ==\r\n\t\t\t\t\te.target.getAttribute(\"data-tab\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (tab.classList.contains(\"active\") && activeTab.classList.contains(\"js-closable\")) {\r\n\t\t\t\t\t\ttab.classList.remove(\"active\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttab.classList.add(\"active\");\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttab.classList.remove(\"active\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t*/\r\n\t\t} else if (e.target.matches(\".tab-name\")) {\r\n\t\t\t//change tab\r\n\t\t\te.target.classList.toggle(\"open\");\r\n\t\t\tvar tab = e.target.parentNode.querySelector(\".tab-content\");\r\n\r\n\t\t\tif (tab.classList.contains(\"tab-open\")) {\r\n\t\t\t\tvSlideUp(tab);\r\n\t\t\t\ttab.classList.remove(\"tab-open\");\r\n\t\t\t} else {\r\n\t\t\t\tvSlideDown(tab);\r\n\t\t\t\ttab.classList.add(\"tab-open\");\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (e.target.matches(\".jump-header\")) {\r\n\t\t\t//change tab\r\n\t\t\te.target.parentNode.classList.toggle(\"open\");\r\n\t\t}\r\n\t},\r\n\tfalse\r\n);\r\n\r\n/** Tabs **/\r\nvar ptabs = document.querySelectorAll(\".tabs\");\r\n\r\nptabs.forEach(function (tab) {\r\n\tvar tabs = tab.querySelectorAll(\".js-tab\");\r\n\t//Create Tab Nav\r\n\tvar tabHeader = document.createElement(\"div\");\r\n\ttabHeader.classList.add(\"tabs-nav\");\r\n\tvar cnt = document.createElement(\"div\");\r\n\tcnt.classList.add(\"content\");\r\n\r\n\ttabs.forEach(function (tab) {\r\n\t\tvar rand = Math.floor(Math.random() * 10000000000000);\r\n\t\tvar btn = document.createElement(\"button\");\r\n\t\tbtn.classList.add(\"js-tab-header\");\r\n\t\tbtn.setAttribute(\"data-tab\", rand);\r\n\t\ttab.setAttribute(\"data-tab\", rand);\r\n\t\tbtn.innerHTML = tab.querySelector(\".tab-name\").innerHTML;\r\n\t\ttab.querySelector(\".tab-name\").style.display = \"none\";\r\n\t\tcnt.appendChild(btn);\r\n\t});\r\n\r\n\tconst slideTrack = document.createElement('div');\r\n\tslideTrack.classList.add('js-slide-track');\r\n\tconst slide = document.createElement('div');\r\n\tslide.classList.add('js-slide');\r\n\tslideTrack.appendChild(slide);\r\n\tcnt.appendChild(slideTrack);\r\n\r\n\ttabHeader.appendChild(cnt);\r\n\r\n\tif (tabs.length > 0) {\r\n\t\ttabs[0].parentNode.insertBefore(tabHeader, tabs[0]);\r\n\t}\r\n\r\n\t//Set first as active\r\n\r\n\tvar tabBtns = tab.querySelectorAll(\".js-tab-header\");\r\n\tif (tabBtns.length > 0 && !tabs[0].classList.contains(\"js-closable\")) {\r\n\t\ttabBtns[0].classList.add(\"active\");\r\n\t\ttabs[0].classList.add(\"active\");\r\n\t\ttabs[0].style.opacity = 1;\r\n\t\tmoveSlideTrack(tabBtns[0]);\r\n\t}\r\n});\r\n\r\n//Move Nav Slide Track\r\nfunction moveSlideTrack(activeEl) {\r\n\tconst slideEl = activeEl.parentNode.querySelector('.js-slide-track > .js-slide');\r\n\r\n\tslideEl.style.left = activeEl.offsetLeft + \"px\";\r\n\tslideEl.style.width = activeEl.offsetWidth + \"px\";\r\n\r\n}\r\n\r\n//Allow setting of tab via location hash\r\n//if (window.location.hash) {\r\n//\tvar hash = window.location.hash.substring(1); //Puts hash in variable, and removes the # character\r\n\r\n//\ttabBtns.forEach(function (topic) {\r\n//\t\tif (\r\n//\t\t\ttopic.innerText.toLowerCase().replace(/[^a-zA-Z0-9]+/g, \"\") ==\r\n//\t\t\thash.toLowerCase().replace(/[^a-zA-Z0-9]+/g, \"\")\r\n//\t\t) {\r\n//\t\t\ttopic.click();\r\n//\t\t}\r\n//\t});\r\n//}\r\n\r\n/* Anchor Links Chrome Fix */\r\n(function (document, history, location) {\r\n\tvar HISTORY_SUPPORT = !!(history && history.pushState);\r\n\r\n\tvar anchorScrolls = {\r\n\t\tANCHOR_REGEX: /^#[^ ]+$/,\r\n\t\tOFFSET_HEIGHT_PX: 65,\r\n\r\n\t\t/**\r\n\t\t * Establish events, and fix initial scroll position if a hash is provided.\r\n\t\t */\r\n\t\tinit: function () {\r\n\t\t\tthis.scrollToCurrent();\r\n\t\t\twindow.addEventListener(\r\n\t\t\t\t\"hashchange\",\r\n\t\t\t\tthis.scrollToCurrent.bind(this)\r\n\t\t\t);\r\n\t\t\tdocument.body.addEventListener(\r\n\t\t\t\t\"click\",\r\n\t\t\t\tthis.delegateAnchors.bind(this)\r\n\t\t\t);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Return the offset amount to deduct from the normal scroll position.\r\n\t\t * Modify as appropriate to allow for dynamic calculations\r\n\t\t */\r\n\t\tgetFixedOffset: function () {\r\n\t\t\treturn this.OFFSET_HEIGHT_PX;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * If the provided href is an anchor which resolves to an element on the\r\n\t\t * page, scroll to it.\r\n\t\t * @param  {String} href\r\n\t\t * @return {Boolean} - Was the href an anchor.\r\n\t\t */\r\n\t\tscrollIfAnchor: function (href, pushToHistory) {\r\n\t\t\tvar match, rect, anchorOffset;\r\n\r\n\t\t\tif (!this.ANCHOR_REGEX.test(href)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tmatch = document.getElementById(href.slice(1));\r\n\r\n\t\t\tif (match) {\r\n\t\t\t\trect = match.getBoundingClientRect();\r\n\t\t\t\tanchorOffset =\r\n\t\t\t\t\twindow.pageYOffset + rect.top - this.getFixedOffset();\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: anchorOffset,\r\n\t\t\t\t\tleft: window.pageXOffset,\r\n\t\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Add the state to history as-per normal anchor links\r\n\t\t\t\tif (HISTORY_SUPPORT && pushToHistory) {\r\n\t\t\t\t\thistory.pushState(\r\n\t\t\t\t\t\t{},\r\n\t\t\t\t\t\tdocument.title,\r\n\t\t\t\t\t\tlocation.pathname + href\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn !!match;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Attempt to scroll to the current location's hash.\r\n\t\t */\r\n\t\tscrollToCurrent: function () {\r\n\t\t\tthis.scrollIfAnchor(window.location.hash);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * If the click event's target was an anchor, fix the scroll position.\r\n\t\t */\r\n\t\tdelegateAnchors: function (e) {\r\n\t\t\tvar elem = e.target;\r\n\r\n\t\t\tif (\r\n\t\t\t\telem.nodeName === \"A\" &&\r\n\t\t\t\tthis.scrollIfAnchor(elem.getAttribute(\"href\"), true)\r\n\t\t\t) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t},\r\n\t};\r\n\r\n\twindow.addEventListener(\r\n\t\t\"DOMContentLoaded\",\r\n\t\tanchorScrolls.init.bind(anchorScrolls)\r\n\t);\r\n})(window.document, window.history, window.location);\r\n\r\n//Compare Chart Highlight\r\nvar cmp = document.querySelectorAll(\".compare-table\");\r\n\r\nif (cmp.length > 0) {\r\n\tvar pageTitle = document.querySelector(\"h1\");\r\n\tif (pageTitle != null) {\r\n\t\tcmp.forEach(function (table) {\r\n\t\t\tvar ths = table.querySelectorAll(\"th\");\r\n\t\t\tths.forEach(function (th) {\r\n\t\t\t\tif (th.innerText == pageTitle.innerText) {\r\n\t\t\t\t\tvar cellIndex = th.cellIndex;\r\n\r\n\t\t\t\t\tvar tds = table.querySelectorAll(\"th,td\");\r\n\t\t\t\t\ttds.forEach(function (td) {\r\n\t\t\t\t\t\tif (td.cellIndex == cellIndex) {\r\n\t\t\t\t\t\t\ttd.classList.add(\"active\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\n/**\r\n * ADA - Remove id=pasted\r\n */\r\nvar ids = document.querySelectorAll(\"#isPasted\");\r\nids.forEach(function (item) {\r\n\titem.removeAttribute(\"id\");\r\n});\r\n\r\n/** Comparison Charts\r\n * Add controls on mobile **/\r\nfunction eq(index) {\r\n\tif (index >= 0 && index < this.length) return this[index];\r\n\telse return -1;\r\n}\r\n\r\n/******* COUNTER ON SCROLL **********/\r\n// How long you want the animation to take, in ms\r\nconst animationDuration = 2000;\r\n// Calculate how long each �frame� should last if we want to update the animation 60 times per second\r\nconst frameDuration = 1000 / 60;\r\n// Use that to calculate how many frames we need to complete the animation\r\nconst totalFrames = Math.round(animationDuration / frameDuration);\r\n// An ease-out function that slows the count as it progresses\r\nconst easeOutQuad = (t) => t * (2 - t);\r\n\r\n// The animation function, which takes an Element\r\nconst animateCountUp = (el) => {\r\n\tlet frame = 0;\r\n\tlet money = \"\";\r\n\tif (el.innerHTML.indexOf(\"$\") != -1) {\r\n\t\tmoney = \"$\";\r\n\t}\r\n\tconsole.log(\"Count to: \" + el.innerHTML.replace(/\\D/g, \"\"));\r\n\tconst countTo = parseInt(el.innerHTML.replace(/\\D/g, \"\"), 10);\r\n\t// Start the animation running 60 times per second\r\n\tconst counter = setInterval(() => {\r\n\t\tframe++;\r\n\t\t// Calculate our progress as a value between 0 and 1\r\n\t\t// Pass that value to our easing function to get our\r\n\t\t// progress on a curve\r\n\t\tconst progress = easeOutQuad(frame / totalFrames);\r\n\t\t// Use the progress value to calculate the current count\r\n\t\tconst currentCount = Math.round(countTo * progress);\r\n\r\n\t\t// If the current count has changed, update the element\r\n\t\tif (parseInt(el.innerHTML.replace(\",\", \"\"), 10) !== currentCount) {\r\n\t\t\tel.innerHTML =\r\n\t\t\t\tmoney +\r\n\t\t\t\tcurrentCount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n\t\t}\r\n\r\n\t\t// If we�ve reached our last frame, stop the animation\r\n\t\tif (frame === totalFrames) {\r\n\t\t\tclearInterval(counter);\r\n\t\t}\r\n\t}, frameDuration);\r\n};\r\n\r\nvar charts = document.querySelectorAll(\".compare-block\");\r\n\r\ncharts.forEach(function (chart) {\r\n\tvar tab = chart.querySelector(\"table\");\r\n\r\n\tvar holder = chart.querySelector(\".compare-table\");\r\n\tvar ths = tab.querySelector(\"tr\").querySelectorAll(\"th\");\r\n\tif (ths.length > 1) {\r\n\t\tholder.setAttribute(\"data-col\", \"1\");\r\n\t\tvar controls = document.createElement(\"div\");\r\n\t\tcontrols.classList.add(\"table-controls\");\r\n\t\tcontrols.innerHTML =\r\n\t\t\t\"<button class='js-table-prev grayed'></button><span class='f-h2 js-rate-head'>\" +\r\n\t\t\teq.call(ths, 1).innerHTML +\r\n\t\t\t\"</span><button class='js-table-next'></button>\";\r\n\r\n\t\tholder.insertBefore(controls, holder.firstChild);\r\n\t}\r\n});\r\n\r\n/** JUMP NAVS ***/\r\nvar jumpObserver = new IntersectionObserver(\r\n\tfunction (entries) {\r\n\t\tentries.forEach(function (entry) {\r\n\t\t\tif (entry.target.matches(\"[data-jumplink]\")) {\r\n\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\tvar jumps = document.querySelectorAll(\r\n\t\t\t\t\t\t\".js-links .jump-lnk\"\r\n\t\t\t\t\t);\r\n\t\t\t\t\tjumps.forEach(function (jp) {\r\n\t\t\t\t\t\tif (jp.innerText.trim() == entry.target.getAttribute(\"data-jumplink\").replace(/_/g, \" \").trim()) {\r\n\t\t\t\t\t\t\tjp.classList.add(\"active\");\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tjp.classList.remove(\"active\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t{ rootMargin: \"-50px 0px 0px 0px\", threshold: [.00001] }\r\n);\r\n// The element to observe\r\nlet jumps = document.querySelectorAll(\"[data-jumplink]\");\r\n// Attach it to the observer\r\njumps.forEach(function (item) {\r\n\tjumpObserver.observe(item);\r\n});\r\n\r\n\r\n//Horizontal filter scrolling\r\nif (document.querySelector(\".js-horizontalScroll\") != null) {\r\n\tfor (el of document.querySelectorAll(\".js-horizontalScroll\")) {\r\n\t\tif (!el.getAttribute(\"style\")) {\r\n\t\t\tel.setAttribute(\r\n\t\t\t\t\"style\",\r\n\t\t\t\t\"--beforeElementOpacity: 0; --afterElementOpacity: 1\"\r\n\t\t\t);\r\n\t\t}\r\n\t\tel.addEventListener(\"scroll\", (e) => {\r\n\t\t\tif (e.target.scrollLeft == 0) {\r\n\t\t\t\te.target.setAttribute(\r\n\t\t\t\t\t\"style\",\r\n\t\t\t\t\t\"--beforeElementOpacity: 0; --afterElementOpacity: 1\"\r\n\t\t\t\t);\r\n\t\t\t\t//document.documentElement.style.setProperty('--beforeElementOpacity', '1');\r\n\t\t\t} else if (\r\n\t\t\t\te.target.scrollLeft + e.target.offsetWidth ==\r\n\t\t\t\te.target.scrollWidth\r\n\t\t\t) {\r\n\t\t\t\te.target.setAttribute(\r\n\t\t\t\t\t\"style\",\r\n\t\t\t\t\t\"--afterElementOpacity: 0; --beforeElementOpacity: 1;\"\r\n\t\t\t\t);\r\n\t\t\t\t//document.documentElement.style.setProperty('--afterElementOpacity', '0');\r\n\t\t\t} else {\r\n\t\t\t\te.target.setAttribute(\r\n\t\t\t\t\t\"style\",\r\n\t\t\t\t\t\"--afterElementOpacity: 1; --beforeElementOpacity: 1;\"\r\n\t\t\t\t);\r\n\t\t\t\t//document.documentElement.style.setProperty('--afterElementOpacity', '1');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\n//Scrolling Nav logic\r\n\r\n//var lastScrollTop = 100;\r\n\r\n//window.addEventListener(\r\n//\t\"scroll\",\r\n//\tfunction () {\r\n//\t\t// or window.addEventListener(\"scroll\"....\r\n//\t\tif (!document.querySelector(\"hydrated\")) {\r\n//\t\t\tvar st = window.pageYOffset || document.documentElement.scrollTop; //\r\n//\t\t\tconst headerDiv = document.querySelector(\".headers\");\r\n//\t\t\tif (st > lastScrollTop) {\r\n//\t\t\t\theaderDiv.classList.add(\"scrolling\");\r\n//\t\t\t\theaderDiv.classList.remove(\"isSticky\");\r\n//\t\t\t} else if (st < lastScrollTop) {\r\n//\t\t\t\theaderDiv.classList.add(\"isSticky\");\r\n//\t\t\t} // else was horizontal scroll\r\n//\t\t\tlastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling\r\n//\t\t}\r\n//\t},\r\n//\tfalse\r\n//);\r\n\r\n\r\nvar linkHolder = document.querySelector(\".js-jump-links\");\r\n\r\nif (linkHolder) {\r\n\tdocument.addEventListener('DOMContentLoaded', function () {\r\n\r\n\t\tvar linkHolder = document.querySelector(\".js-jump-links\");\r\n\r\n\t\tvar jumpClass = linkHolder.getAttribute(\"data-jump-class\");\r\n\t\tif (jumpClass == undefined || jumpClass == \"\") {\r\n\t\t\tjumpClass = \"js-produuct\";\r\n\t\t}\r\n\t\tvar jumpLinks = document.querySelectorAll(\".\" + jumpClass);\r\n\t\tvar first = true;\r\n\r\n\t\tjumpLinks.forEach(function (lnk) {\r\n\t\t\tvar btn = document.createElement(\"button\");\r\n\t\t\tif (lnk.querySelector(\"h2 p\")) {\r\n\t\t\t\tbtn.innerText = lnk.querySelector(\"h2 p\").textContent;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tbtn.innerText = lnk.querySelector(\"h2\").textContent;\r\n\t\t\t}\r\n\t\t\tbtn.classList.add(\"jump-lnk\");\r\n\t\t\tif (first) {\r\n\t\t\t\tbtn.classList.add(\"active\");\r\n\t\t\t\tfirst = false;\r\n\t\t\t}\r\n\t\t\tlinkHolder.append(btn);\r\n\t\t});\r\n\r\n\t}, false);\r\n}\r\n\r\n//Compare Table CTA logic\r\n\r\nfunction mobileButtonDisplay(activeColumn) {\r\n\tconst compareTable = document.querySelector(\".compare-table\");\r\n\r\n\tif (compareTable) {\r\n\t\tconst buttonToMove = compareTable.querySelector(\r\n\t\t\t`.table > table > tbody > tr:last-of-type td:nth-child(${Number(activeColumn) + 1\r\n\t\t\t})`\r\n\t\t);\r\n\t\tif (buttonToMove) {\r\n\t\t\tconst MBD = compareTable.querySelector(\".mobileButtonDisplay\");\r\n\t\t\tMBD.innerHTML = buttonToMove.innerHTML;\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\tmobileButtonDisplay(1);\r\n});\r\n\r\n\r\n//Comparison Table Pagination Dots Extravaganza\r\n//           --Now in Smell-o-vision!\r\n\r\nconst updateDots = (base) => {\r\n\tconst dots = base.parentNode.querySelectorAll('.pagination-dots .dot');\r\n\tdots.forEach((dot) => {\r\n\t\tif (dot.dataset.col == base.dataset.col) {\r\n\t\t\tdot.classList.add('active')\r\n\t\t} else {\r\n\t\t\tdot.classList.remove('active')\r\n\t\t}\r\n\t})\r\n}\r\n\r\nif (charts) {\r\n\tcharts.forEach((chart) => {\r\n\t\tconst paginationDots = chart.querySelector('.pagination-dots');\r\n\t\tif (paginationDots) {\r\n\t\t\tconst numCols = (chart.querySelector('tr').childNodes.length - 1)\r\n\r\n\t\t\tif (numCols > 1) {\r\n\t\t\t\tfor (let index = 0; index < numCols; index++) {\r\n\t\t\t\t\tconst dot = document.createElement('button');\r\n\t\t\t\t\tdot.classList.add('dot');\r\n\t\t\t\t\tdot.dataset.col = (index + 1)\r\n\r\n\t\t\t\t\tpaginationDots.append(dot);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tupdateDots(paginationDots.parentNode.querySelector('.compare-table'));\r\n\t\t}\r\n\t})\r\n\r\n}\r\n\r\n////add links to main pages on mobile\r\n\r\n//document.addEventListener('DOMContentLoaded', () => {\r\n//\tconst navHeaders = document.querySelectorAll('.mobile-nav .nav-header');\r\n\r\n//\tnavHeaders.forEach((menu) => {\r\n//\t\tconst newEl = document.createElement('li');\r\n//\t\tconst text = menu.innerText.toLowerCase();\r\n//\t\tif (text == \"explore sbsi\") {\r\n//\t\t\tnewEl.innerHTML = `<a href=\"/${text.replace(/ /g, \"-\")}\">Explore SBSI</a>`;\r\n//\t\t} else {\r\n//\t\t\tnewEl.innerHTML = `<a style=\"text-transform: capitalize\" href=\"/${text.replace(/ /g, \"-\")}\">Explore ${text}</a>`;\r\n//\t\t}\r\n\r\n//\t\tmenu.parentNode.querySelector('.main-links').prepend(newEl);\r\n\r\n//\t})\r\n//})\r\n\r\n////Sticky Jump Nav Observer\r\n//const sidebarNav = document.querySelector(\".sidebar\");\r\n\r\n//if (sidebarNav) {\r\n//\tdocument.addEventListener(\"scroll\", (e) => {\r\n//\t\tsidebarNav.classList.toggle(\"is-sticky\", sidebarNav.offsetTop <= window.scrollY);\r\n//\t});\r\n//}\r\n\r\n/*** STICKY JUMP NAV ***/\r\nlet sideBarObserver = new IntersectionObserver(function (entries) {\r\n\tentries.forEach(function (entry) {\r\n\t\tif (entry.target.matches(\".sidebar\")) {\r\n\t\t\tconst rect = entry.target.getBoundingClientRect();\r\n\t\t\tif (!entry.isIntersecting) {\r\n\t\t\t\tif (rect.y < 200) {\r\n\t\t\t\t\tentry.target.classList.add(\"is-sticky\");\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tentry.target.classList.remove(\"is-sticky\");\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}, { threshold: 1 });\r\nlet sideNavs = document.querySelectorAll(\".sidebar\");\r\nsideNavs.forEach(function (item) {\r\n\tsideBarObserver.observe(item);\r\n});\r\n\r\n\r\n\r\n\r\n\r\n/**** COMPARE CHARTS *****/\r\nconst compareCharts = document.querySelectorAll('.compare-chart');\r\n\r\nfunction alignRows(chart) {\r\n\r\n\tconst headers = chart.querySelectorAll('.headers li');\r\n\tconst columns = chart.querySelectorAll('.column');\r\n\r\n\tconst numRows = columns[0].childElementCount;\r\n\r\n\tlet rowHeight = \"\";\r\n\r\n\tif ((chart.querySelector(\".chart-container\").offsetWidth - 64) < 250) {\r\n\t\tslides = chart.querySelectorAll(\".splide__slide\");\r\n\t\tslides.forEach((el) => {\r\n\t\t\tel.style = `flex: 1 0 ${chart.querySelector(\".chart-container\").offsetWidth - 15}px`;\r\n\t\t});\r\n\t} else {\r\n\t\tslides = chart.querySelectorAll(\".splide__slide\");\r\n\t\tslides.forEach((el) => {\r\n\t\t\tel.style = `flex: 1 0 250px`;\r\n\t\t});\r\n\t}\r\n\r\n\t//go through each row\r\n\tfor (let x = 0; x < numRows; x++) {\r\n\t\t//set rowheight to header row height\r\n\t\tlet rowHeight = headers[x].offsetHeight;\r\n\r\n\t\t//go through each column on that row and check against the rowheight\r\n\t\tfor (let c = 0; c < columns.length; c++) {\r\n\t\t\tconst currentRow = columns[c].querySelectorAll(':scope > li')[x];\r\n\t\t\tconst currentRowHeight = currentRow.offsetHeight;\r\n\t\t\tconsole.log(currentRowHeight + \" - \" + rowHeight);\r\n\t\t\trowHeight = (currentRowHeight > rowHeight) ? currentRowHeight : rowHeight;\r\n\t\t}\r\n\r\n\t\t//set the header of that row and each row of each column to that height\r\n\t\theaders[x].style.height = rowHeight + \"px\";\r\n\t\tfor (let c = 0; c < columns.length; c++) {\r\n\t\t\tconst currentRow = columns[c].querySelectorAll(\":scope > li\")[x];\r\n\t\t\tcurrentRow.style.height = rowHeight + \"px\";\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\nlet mutObserver = new MutationObserver(setCompareSize);\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\tcompareCharts.forEach((chart) => {\r\n\r\n\t\tvar splide = new Splide(chart.querySelector(\".container\"), {\r\n\t\t\tmediaQuery: \"min\",\r\n\t\t\t//perPage: 1,\r\n\t\t\t// perMove: 1,\r\n\t\t\tfocus: 0,\r\n\t\t\tpagination: true,\r\n\t\t\tarrows: true,\r\n\t\t\tautoWidth: false,\r\n\t\t\ttrimSpace: true,\r\n\t\t\tgap: \"0\",\r\n\t\t\tpadding: '.5em',\r\n\t\t\t// type: \"\",\r\n\t\t\tdraggable: false,\r\n\t\t\tomitEnd: true,\r\n\t\t\tbreakpoints: {\r\n\t\t\t\t900: {\r\n\t\t\t\t\tperPage: 1,\r\n\t\t\t\t\tperMove: 1,\r\n\t\t\t\t\tpadding: '2em',\r\n\t\t\t\t\t//autoWidth: true,\r\n\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tvar Components = splide.Components;\r\n\r\n\t\tsplide.on(\"resized\", function () {\r\n\t\t\tvar isOverflow = Components.Layout.isOverflow();\r\n\t\t\tvar list = Components.Elements.list;\r\n\t\t\tvar lastSlide = Components.Slides.getAt(splide.length - 1);\r\n\r\n\t\t\tif (lastSlide) {\r\n\t\t\t\t// Toggles `justify-content: center`\r\n\t\t\t\tlist.style.justifyContent = isOverflow ? \"\" : \"center\";\r\n\r\n\t\t\t\t// Remove the last margin\r\n\t\t\t\tif (!isOverflow) {\r\n\t\t\t\t\tlastSlide.slide.style.marginRight = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tsplide.mount();\r\n\r\n\t\tdocument.addEventListener(\"click\", (e) => {\r\n\t\t\tif (e.target.matches(\".js-compare-prev\")) {\r\n\t\t\t\tsplide.go('-1');\r\n\t\t\t}\r\n\t\t\telse if (e.target.matches(\".js-compare-next\")) {\r\n\t\t\t\tsplide.go('+1');\r\n\t\t\t}\r\n\t\t});\r\n\t\t//window.addEventListener(\"resize\", () => {\r\n\r\n\t\t//\talignRows(chart);\r\n\t\t//});\r\n\r\n\t\talignRows(chart);\r\n\r\n\r\n\t\tmutObserver.observe(chart, {\r\n\t\t\tattributes: true,\r\n\t\t\tchildList: true,\r\n\t\t\tattributeFilter: ['style', 'class']\r\n\t\t});\r\n\t})\r\n});\r\n\r\nfunction setCompareSize(mutations) {\r\n\t// do something here\r\n\tif (mutations[0].target.style.display != \"none\") {\r\n\t\talignRows(mutations[0].target);\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\n//const iconSections = document.querySelectorAll('.icon-section');\r\n\r\n//iconSections.foreach(el => {\r\n//\tadjustGrid(el);\r\n//})\r\n//function adjustGrid(cardSection) {\r\n//\tlet cards = cardSection.querySelector('.icons').children;\r\n//\tif (window.innerWidth < 900) {\r\n//\t\tcards[0].parentNode.style.gridTemplateColumns = \"1fr\";\r\n//\t} else {\r\n//\t\tlet maxWidth = '200px';\r\n//\t\tif (cards[0].classList.contains('max-wrap-small')) {\r\n//\t\t\tmaxWidth = \"315px\";\r\n//\t\t} else if (cards[0].classList.contains('max-wrap-medium')) {\r\n//\t\t\tmaxWidth = \"400px\";\r\n//\t\t} else if (cards[0].classList.contains('max-wrap-large')) {\r\n//\t\t\tmaxWidth = \"525px\";\r\n//\t\t}\r\n//\t\tif (cards.length == 4) {\r\n//\t\t\tif (((cards[0].offsetWidth + 55) * cards.length) > window.innerWidth) {\r\n//\t\t\t\tcards[0].parentNode.style.gridTemplateColumns = `minmax(240px, ${maxWidth}) minmax(320px, min(28vw,${maxWidth}))`\r\n//\t\t\t} else {\r\n//\t\t\t\tcards[0].parentNode.style.gridTemplateColumns = `repeat(auto-fit, minmax(320px, min(28vw,${maxWidth})))`\r\n//\t\t\t}\r\n//\t\t} else {\r\n//\t\t\tcards[0].parentNode.style.gridTemplateColumns = `repeat(auto-fit, minmax(320px, min(28vw,${maxWidth})))`\r\n//\t\t}\r\n//\t}\r\n//}\r\n\r\n///////////////////////////////////////////////////////////////\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t //\r\n//\t\t\tMortgage lenders direct link logic\t\t\t\t //\r\n//\t\t\t\t\t\t\t\tby troy.\t\t\t\t\t //\r\n///////////////////////////////////////////////////////////////\r\n\r\n//const isDirectoryIndex = document.querySelector('.directory-index');\r\n\r\n//if (isDirectoryIndex) {\r\n//\tdocument.addEventListener('DOMContentLoaded', () => {\r\n//\t\tconst queryString = window.location.search;\r\n//\t\tconst urlParams = new URLSearchParams(queryString);\r\n//\t\tconst category = urlParams.get('category')\r\n\r\n//\t\tif (category) {\r\n//\t\t\tconst filter = document.querySelector('.js-expertise');\r\n//\t\t\tfilter.value = category;\r\n\r\n//\t\t\tconst event = new Event('change');\r\n\r\n//\t\t\t// Dispatch it.\r\n//\t\t\tfilter.dispatchEvent(event);\r\n\r\n//\t\t}\r\n//\t})\r\n//}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// For showing\r\nfunction openAppModal(modalElement) {\r\n\tlet modalContent = modalElement.querySelector(\".modal-content\");\r\n\tlet modalShroud = modalElement.querySelector(\".modal-shroud\");\r\n\tmodalElement.classList.add(\"shown\");\r\n\tsetTimeout(() => {\r\n\t\tmodalContent.classList.add(\"active\");\r\n\t\tmodalShroud.classList.add(\"active\");\r\n\t\tfocusFirst(modalElement);\r\n\t}\r\n\t\t, \"10\");\r\n}\r\n\r\n// For closing\r\nfunction closeAppModal(modalElement) {\r\n\tlet modalContent = modalElement.querySelector(\".modal-content\");\r\n\tlet modalShroud = modalElement.querySelector(\".modal-shroud\");\r\n\tmodalContent.classList.remove(\"active\");\r\n\tmodalShroud.classList.remove(\"active\");\r\n\tsetTimeout(() => {\r\n\t\tmodalElement.classList.remove(\"shown\");\r\n\t}\r\n\t\t, \"201\");\r\n}\r\n\r\n// Click event handlers\r\ndocument.addEventListener(\"click\", function (event) {\r\n\t// If either personal or business\r\n\tif (event.target.matches(\"[class*=js-app-modal-open-]\")) {\r\n\t\tlet modalType = \"\";\r\n\t\tif (event.target.classList.contains(\"js-app-modal-open-personal\")) {\r\n\t\t\tmodalType = \"personal\";\r\n\t\t} else if (event.target.classList.contains(\"js-app-modal-open-business\")) {\r\n\t\t\tmodalType = \"business\";\r\n\t\t}\r\n\t\tlet appDownloadModal = document.getElementById(\"app-download-modal-\" + modalType);\r\n\t\tif (appDownloadModal) {\r\n\t\t\t// If exists, just open\r\n\t\t\topenAppModal(appDownloadModal);\r\n\t\t} else {\r\n\t\t\t// If doesn't exist, initialize and then open\r\n\r\n\t\t\t// The icon is fine, but make the text, links, and QR codes into objects.\r\n\t\t\tlet modalIcon = '<img width=\"49\" height=\"49\" src=\"https://wp-fwd.resultspw.com/wp-content/uploads/2024/10/fpo-modal-download.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" decoding=\"async\" loading=\"lazy\" />';\r\n\t\t\tlet modalMessage = {\r\n\t\t\t\tpersonal: 'Scan the QR code with your phone&#039;s camera to instantly download our mobile app, or use the links below to install the app to your device.',\r\n\t\t\t\tbusiness: 'Scan the QR code with your phone&#039;s camera to instantly download our mobile app, or use the links below to install the app to your device.',\r\n\t\t\t\tuniversal: 'Scan the QR code with your phone&#039;s camera to instantly download our mobile app, or use the links below to install the app to your device.',\r\n\t\t\t};\r\n\t\t\tlet modalLink = {\r\n\t\t\t\tpersonal: {\r\n\t\t\t\t\tapple: 'https://itunes.apple.com/us/app/forward-bank-mobile-banking/id1247589822?mt=8',\r\n\t\t\t\t\tandroid: 'https://play.google.com/store/apps/details?id=com.malauzai.DH26050&hl=en'\r\n\t\t\t\t},\r\n\t\t\t\tbusiness: {\r\n\t\t\t\t\tapple: 'https://apps.apple.com/us/app/forward-bank-business-banking/id1502465776',\r\n\t\t\t\t\tandroid: 'https://play.google.com/store/apps/details?id=com.malauzai.DH26050biz&hl=en_US'\r\n\t\t\t\t},\r\n\t\t\t\tuniversal: 'https://uqr.to/1kb0b'\r\n\t\t\t};\r\n\t\t\tlet modalQR = {\r\n\t\t\t\tpersonal: {\r\n\t\t\t\t\tapple: '<img width=\"121\" height=\"121\" src=\"https://wp-fwd.resultspw.com/wp-content/uploads/2024/10/apple-qr.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" decoding=\"async\" />',\r\n\t\t\t\t\tandroid: '<img width=\"121\" height=\"121\" src=\"https://wp-fwd.resultspw.com/wp-content/uploads/2024/10/google-qr.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" decoding=\"async\" />'\r\n\t\t\t\t},\r\n\t\t\t\tbusiness: {\r\n\t\t\t\t\tapple: '<img width=\"121\" height=\"121\" src=\"https://wp-fwd.resultspw.com/wp-content/uploads/2024/10/apple-qr.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" decoding=\"async\" />',\r\n\t\t\t\t\tandroid: '<img width=\"121\" height=\"121\" src=\"https://wp-fwd.resultspw.com/wp-content/uploads/2024/10/google-qr.svg\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" decoding=\"async\" />'\r\n\t\t\t\t},\r\n\t\t\t\tuniversal: '<img width=\"121\" height=\"121\" src=\"/Content/Images/mobile-app-download-universal.png\" class=\"attachment-full size-full\" alt=\"\" loading=\"lazy\" decoding=\"async\" />'\r\n\t\t\t};\r\n\r\n\t\t\tlet theBody = document.querySelector(\"body\");\r\n\t\t\tlet theFooter = document.querySelector(\"footer\");\r\n\t\t\tconst newModalElement = document.createElement(\"div\");\r\n\t\t\tnewModalElement.setAttribute(\"id\", \"app-download-modal-\" + modalType);\r\n\t\t\tnewModalElement.classList.add(\"js-app-modal\");\r\n\t\t\tnewModalElement.classList.add(\"tablock\");\r\n\t\t\tlet modalMarkup = '<div class=\"modal-content\"><div class=\"modal-header\"><button class=\"js-app-modal-close\" type=\"button\" aria-label=\"Close This Mobile App Download Modal\"><span class=\"button-symbol\"></span></button></div><ul class=\"items\"><li class=\"icon\">' + modalIcon + '</li><li class=\"text\">' + modalMessage[modalType].universal + '</li><li class=\"qr\"><a href=\"' + modalLink[modalT+ype].universal  +'\" target=\"_blank\">' + modalQR[modalType].universal + '</a></li></ul></div><div class=\"modal-shroud\"></div>';\r\n\t\t\tnewModalElement.innerHTML = modalMarkup;\r\n\t\t\ttheBody.insertBefore(newModalElement, theFooter);\r\n\r\n\t\t\t// ESC bind\r\n\t\t\tnewModalElement.addEventListener(\"keyup\", function (event) {\r\n\t\t\t\tif (event.keyCode === 27) {\r\n\t\t\t\t\tcloseAppModal(newModalElement);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\topenAppModal(newModalElement);\r\n\t\t}\r\n\t} else if (event.target.matches(\".js-app-modal-close\")) {\r\n\t\tcloseAppModal(event.target.closest(\"[id*=app-download-modal-]\"));\r\n\t}\r\n});","//Closest Branch logic\r\nfunction distance(lat1, lon1, lat2, lon2) {\r\n    if ((lat1 == lat2) && (lon1 == lon2)) {\r\n        return 0;\r\n    } else {\r\n        var radlat1 = Math.PI * lat1 / 180;\r\n        var radlat2 = Math.PI * lat2 / 180;\r\n        var theta = lon1 - lon2;\r\n        var radtheta = Math.PI * theta / 180;\r\n        var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);\r\n        if (dist > 1) {\r\n            dist = 1;\r\n        }\r\n        dist = Math.acos(dist);\r\n        dist = dist * 180 / Math.PI;\r\n        dist = dist * 60 * 1.1515;\r\n        return dist;\r\n    }\r\n}\r\n\r\nasync function displayClosest() {\r\n\r\n    if (document.querySelector('.js-closest-locations')) {\r\n        let closestLocations = [];\r\n        const destination = document.querySelector('.js-closest-locations');\r\n\r\n        const allLocations = document.querySelectorAll('.js-location-data');\r\n\r\n        if (getCookie('locationID')) {\r\n            const locationCookie = getCookie(\"locationID\");\r\n            let cookieLatLon;\r\n            let homeLocation;\r\n            allLocations.forEach((element, id) => {\r\n                if (element.dataset.locationid == locationCookie) {\r\n                    //const el = Array.from(allLocations).splice(id, 1);\r\n                    //closestLocations.unshift(el);\r\n                    homeLocation = element;\r\n                    cookieLatLon = homeLocation.dataset.latlon.split(',');\r\n                } else {\r\n                    closestLocations.push(allLocations[id])\r\n                }\r\n            })\r\n            for (let x = 0; x < closestLocations.length; x++) {\r\n                if (!closestLocations[x].querySelector(`[data-locationid=\"${locationCookie}\"]`)) {\r\n                    addElement(closestLocations[x], destination);\r\n                }\r\n            }\r\n            let locations = [];\r\n            document.querySelectorAll('.js-closest-locations > .js-location-data').forEach((el) => locations.push(el));\r\n            let sortedLocations;\r\n            locations = determineDistance(locations, cookieLatLon[0], cookieLatLon[1]);\r\n            sortedLocations = sortList(locations);\r\n            destination.innerHTML = '';\r\n            sortedLocations.forEach((el, id) => {\r\n                if (id < 2) {\r\n                    addElement(el, destination);\r\n                }\r\n            })\r\n            addElement(homeLocation, destination, true);\r\n\r\n        } else {\r\n            if (navigator.geolocation) {\r\n                navigator.geolocation.getCurrentPosition(getLocationsByIP);\r\n            }\r\n        }\r\n\r\n    }\r\n\r\n}\r\n\r\ndocument.addEventListener(\"click\", function (e) {\r\n    if (e.target.matches(\".js-initial\")) {\r\n        var initial = document.querySelector(\".initial\");\r\n        initial.style.display = \"block\";\r\n\r\n        var pins = document.querySelector(\".pins\");\r\n        pins.style.display = \"none\";\r\n    }\r\n    return;\r\n});\r\n\r\nfunction getLocationsByIP(position) {\r\n    const destination = document.querySelector('.js-closest-locations');\r\n    let allLocations = document.querySelectorAll('.js-location-data');\r\n    var closestDiv = document.querySelector(\".closestLocations\");\r\n    allLocations.forEach((el, x) => {\r\n        addElement(el, destination);\r\n    })\r\n    let locations = [];\r\n    document.querySelectorAll('.js-closest-locations > .js-location-data').forEach((el) => locations.push(el));\r\n    let sortedLocations;\r\n    /*await sortBranches(position.coords.latitude, position.coords.longitude, '.js-closest-locations > .js-location-data');*/\r\n    /*console.log(locations);*/\r\n    locations = determineDistance(locations, position.coords.latitude, position.coords.longitude);\r\n    sortedLocations = sortList(locations);\r\n\r\n    destination.innerHTML = '';\r\n    sortedLocations.forEach((el, id) => {\r\n        if (id < 3) {\r\n            addElement(el, destination);\r\n        }\r\n    });\r\n    vSlideDown(closestDiv);\r\n}\r\n\r\nfunction addElement(el, container, prepend = false) {\r\n    let div = document.createElement(\"div\");\r\n    div.innerHTML = el.innerHTML;\r\n    div.classList = el.classList;\r\n    div.dataset.latlon = el.dataset.latlon;\r\n    if (prepend) {\r\n        container.prepend(div);\r\n    } else {\r\n        container.appendChild(div);\r\n    }\r\n}\r\n\r\n\r\nfunction sortList(arrayToSort) {\r\n    arrayToSort.\r\n        sort(function (a, b) {\r\n            if (Number(a.dataset.distance.replace(\" Miles Away\", \"\")) < Number(b.dataset.distance.replace(\" Miles Away\", \"\"))) {\r\n                return -1;\r\n            }\r\n            else {\r\n                return 1;\r\n            }\r\n        })\r\n    return arrayToSort;\r\n}\r\n\r\nfunction determineDistance(nodeArray, addressLat, addressLon) {\r\n    Array.from(nodeArray).forEach(function (loc) {\r\n        if (loc.getAttribute(\"data-latlon\") != null && loc.getAttribute(\"data-latlon\").indexOf(\",\") != -1) {\r\n            var sp = loc.getAttribute('data-latlon').split(',');\r\n            lat = Number(sp[0].trim());\r\n            lon = Number(sp[1].trim());\r\n            dist = distance(addressLat, addressLon, lat, lon);\r\n            loc.setAttribute('data-distance', dist);\r\n            if (loc.querySelector('.js-distance')) {\r\n                loc.querySelector(\".js-distance\").textContent = (Math.round(dist * 10) / 10) + \" Miles Away\";\r\n            }\r\n\r\n        }\r\n    });\r\n    return nodeArray;\r\n}\r\n\r\n\r\n\r\n\r\n/*** ALL LOCATIONS PAGE */\r\nvar stateFilter = document.querySelector(\".js-state-filter\");\r\nif (stateFilter) {\r\n    var states = document.querySelectorAll(\".state-section\");\r\n\r\n    stateFilter.addEventListener(\"change\", function (e) {\r\n        if (e.target.value == \"all\") {\r\n            states.forEach(function (it) {\r\n                it.style.display = \"block\";\r\n            });\r\n        }\r\n        else {\r\n            states.forEach(function (it) {\r\n                if (it.getAttribute(\"data-state\") != e.target.value) {\r\n                    it.style.display = \"none\";\r\n                }\r\n                else {\r\n                    it.style.display = \"block\";\r\n                }\r\n            });\r\n\r\n        }\r\n    });\r\n\r\n    if (window.location.hash) {\r\n        const hash = window.location.hash.replaceAll(\"<\", \"\").replaceAll(\">\", \"\").substring(1);\r\n\r\n        stateFilter.querySelectorAll('option').forEach((el, index)=> {\r\n            if (hash.toLowerCase() == el.text.toLowerCase()) {\r\n                stateFilter.selectedIndex = index;\r\n                stateFilter.dispatchEvent(new Event('change'));\r\n            }\r\n        })\r\n    }\r\n    \r\n}\r\n","//const tourMarkup = document.querySelector('.tour');\r\n//const urlParams = window.location.search;\r\n\r\n//if (tourMarkup) {\r\n//    // if (!localStorage.getItem('tourDismissed') || urlParams.indexOf('tour') != -1) {\r\n//    loadTour(tourMarkup);\r\n//    // localStorage.setItem('tourDismissed', 'true');\r\n//    // }\r\n//}\r\n\r\n//function loadSlide(current, slides, dots) {\r\n//    const prevArrow = tourMarkup.querySelector('.prev-button');\r\n//    const nextArrow = tourMarkup.querySelector('.next-button');\r\n//    const tourArrow = tourMarkup.querySelector(\"#tour-arrow\");\r\n\r\n//    slides[0].parentNode.classList.remove('visible');\r\n//    tourArrow.classList.add('hide');\r\n\r\n//    slides.forEach(slide => {\r\n//        if (slide.dataset.slide == current) {\r\n//            slide.style.display = \"grid\";\r\n//            slide.classList.add('active');\r\n//        } else {\r\n//            slide.style.display = \"none\";\r\n//            slide.classList.remove('active');\r\n\r\n//        }\r\n\r\n//    })\r\n//    dots.forEach(dot => {\r\n//        if (dot.dataset.slide == current) {\r\n//            dot.classList.add('active');\r\n//        } else {\r\n//            dot.classList.remove('active');\r\n//        }\r\n//    })\r\n//    if (current == 0) {\r\n//        prevArrow.disabled = true;\r\n//    } else {\r\n//        prevArrow.disabled = false;\r\n//    }\r\n//    if (current == (slides.length - 1)) {\r\n//        nextArrow.disabled = true;\r\n//    } else {\r\n//        nextArrow.disabled = false;\r\n//    }\r\n\r\n//    if (current == 2) {\r\n//        const iconBanner = document.querySelector('.icon-banner');\r\n//        iconBanner.scrollIntoView({\r\n//            behavior: \"smooth\",\r\n//            block: \"end\"\r\n//        });\r\n//    } else if (current == 4) {\r\n//        const photoSplit = document.querySelector('.photo-split');\r\n//        photoSplit.scrollIntoView({\r\n//            behavior: \"smooth\",\r\n//            block: \"end\"\r\n//        });\r\n//    } else {\r\n//        window.scroll({ top: 0, behavior: \"smooth\" });\r\n//    }\r\n\r\n//    setTimeout(() => {\r\n//        slides[0].parentNode.classList.add('visible');\r\n//        tourArrow.classList.remove('hide')\r\n//    }, 200)\r\n//}\r\n\r\n//function loadTour(tour) {\r\n//    tour.classList.add('visible');\r\n//    const closeBtn = tour.querySelectorAll('.js-close-tour');\r\n//    const slides = tour.querySelectorAll('.slide-content');\r\n//    const dotNav = tour.querySelector('.dot-nav');\r\n//    const dots = [];\r\n//    const prevArrow = tourMarkup.querySelector('.prev-button');\r\n//    const nextArrow = tourMarkup.querySelector('.next-button');\r\n\r\n//    slides[0].parentNode.classList.add('visible');\r\n//    nextArrow.remove();\r\n//    slides.forEach((slide, index) => {\r\n//        const newEl = document.createElement('button');\r\n//        newEl.classList.add('dn-dot');\r\n//        newEl.setAttribute('data-slide', index);\r\n//        newEl.innerHTML = `<span class=\"visuallyhidden\">${index}</span>`;\r\n//        dotNav.appendChild(newEl);\r\n//        dots.push(newEl);\r\n//    })\r\n\r\n//    dotNav.appendChild(nextArrow);\r\n\r\n//    loadSlide(0, slides, dots);\r\n//    closeBtn.forEach(btn => {\r\n//        btn.addEventListener('click', () => {\r\n//            tour.classList.remove('visible');\r\n//        })\r\n//    })\r\n\r\n//    dots.forEach(dot => {\r\n//        dot.addEventListener('click', (e) => {\r\n//            loadSlide(e.target.dataset.slide, slides, dots)\r\n//        })\r\n//    })\r\n\r\n//    prevArrow.addEventListener('click', () => {\r\n//        const current = tourMarkup.querySelector('.dn-dot.active');\r\n//        loadSlide((Number(current.dataset.slide) - 1), slides, dots);\r\n//    })\r\n//    nextArrow.addEventListener('click', () => {\r\n//        const current = tourMarkup.querySelector('.dn-dot.active');\r\n//        loadSlide((Number(current.dataset.slide) + 1), slides, dots);\r\n//    })\r\n\r\n//    //document.addEventListener('click', (e) => {\r\n//    //    e.stopPropagation();\r\n//    //    if (tourMarkup.classList.contains('visible') && e.target.classList.contains('pg-internal')) {\r\n//    //        tour.classList.remove('visible');\r\n//    //    }\r\n//    //})\r\n//    tour.querySelector('#take-tour').addEventListener('click', () => {\r\n//        loadSlide(1, slides, dots);\r\n//    })\r\n//    tour.querySelector('#js-replay-tour').addEventListener('click', () => {\r\n//        loadSlide(0, slides, dots);\r\n//    })\r\n\r\n//    window.scrollTo(0, 0);\r\n\r\n//}\r\n\r\nconst tour = document.querySelector('.tour')\r\n\r\nif (tour) {\r\n\r\n    document.querySelector(\"body\").addEventListener('click', (e) => {\r\n        if (document.querySelector('body').classList.contains('tour-active') && !e.classList.contains('pop-window')) {\r\n            document.querySelector('body').classList.remove('tour-active');\r\n            $(\".showOnTour\").removeClass(\"showOnTour\");\r\n        }\r\n    })\r\n    document.addEventListener(\"DOMContentLoaded\", () => {\r\n\r\n        var currentSlide = 0;\r\n\r\n        //let cook = localStorage.getItem('tourDismissed');\r\n\r\n        if ($(window).width() > 1100) {\r\n            document.querySelector('body').classList.add('showTour');\r\n            //if (!cook) {\r\n            initDotNav();\r\n\r\n            let headerHeight = 0;\r\n\r\n            if (document.querySelector(\".alerts-holder\")) {\r\n                headerHeight += $('.alerts-holder').height();\r\n            }\r\n            if (document.querySelector(\".fdic-banner\")) {\r\n                headerHeight += $(\".fdic-banner\").height();\r\n            }\r\n            if (document.querySelector(\".headers\")) {\r\n                headerHeight += $('.headers').height();\r\n            }\r\n\r\n            $(\".tour\").css(\"top\", headerHeight)\r\n\r\n            $(\".tour\").show();\r\n            window.scroll({ top: 0, behavior: \"smooth\" })\r\n            loadTourSlide(0)\r\n                //localStorage.setItem('tourDismissed', 'true');\r\n            //}\r\n\r\n        }\r\n\r\n        function initDotNav() {\r\n            const slides = tour.querySelectorAll('.tour-slide');\r\n            const dotNav = tour.querySelectorAll('.dot-nav');\r\n\r\n            slides.forEach((slide, index) => {\r\n                const dotNav = slide.querySelector('.dot-nav');\r\n                const nextArrow = slide.querySelector('.next-button');\r\n                nextArrow.remove();\r\n                for (let x = 0; x < slides.length; x++) {\r\n                    const newEl = document.createElement('button');\r\n                    newEl.classList.add('dn-dot');\r\n                    newEl.setAttribute('data-slide', x);\r\n                    newEl.innerHTML = `<span class=\"visuallyhidden\">${x}</span>`;\r\n                    dotNav.appendChild(newEl);\r\n                }\r\n              \r\n                dotNav.appendChild(nextArrow);\r\n\r\n            })\r\n            \r\n        }\r\n\r\n        \r\n        function loadTourSlide(spot) {\r\n            const slides = tour.querySelectorAll('.tour-slide');\r\n            const dots = tour.querySelectorAll('.dn-dot');\r\n            const prevArrow = tour.querySelectorAll('.prev-button');\r\n            const nextArrow = tour.querySelectorAll('.next-button');\r\n             $(\".tour-arrow\").removeClass(\"hide\");\r\n            $(\".tour-slide[data-slide='\" + currentSlide + \"']\").fadeOut(\"fast\", function () {\r\n                document.querySelectorAll(\".showOnTour\").forEach((e) => {\r\n                    e.classList.remove(\"showOnTour\");\r\n                }\r\n                )\r\n               \r\n                $(this).removeClass(\"active\");\r\n                currentSlide = Number(spot);\r\n                setPosition(currentSlide);\r\n                $(\".tour-slide[data-slide='\" + currentSlide + \"']\").fadeIn(\"fast\", function () {\r\n                    $(this).addClass(\"active\");\r\n                    $(\".tour-arrow\").addClass('visible')\r\n                    $(\"body\").addClass(\"tour-active\").attr(\"data-slide\", currentSlide);\r\n                });\r\n            });\r\n            dots.forEach(dot => {\r\n                if (dot.dataset.slide == spot) {\r\n                    dot.classList.add('active');\r\n                } else {\r\n                    dot.classList.remove('active');\r\n                }\r\n            })\r\n            if (spot == 0) {\r\n                prevArrow.forEach(arrow => {\r\n                    arrow.disabled = true;\r\n                })\r\n                \r\n            } else {\r\n                prevArrow.forEach(arrow => {\r\n                    arrow.disabled = false;\r\n                })\r\n            }\r\n            if (spot == (slides.length - 1)) {\r\n                nextArrow.forEach(arrow => {\r\n                    arrow.disabled = true;\r\n                })\r\n            } else {\r\n                nextArrow.forEach(arrow => {\r\n                    arrow.disabled = false;\r\n                })\r\n            }\r\n            setTimeout(() => {\r\n                $(\".tour-arrow\").addClass('visible')\r\n            }, 200)\r\n        }\r\n\r\n        function setPosition(spot) {\r\n            console.log(spot);\r\n            //document.querySelector('.headers').classList.remove('showOnTour');\r\n            //document.querySelector('.headers').classList.remove('highlightNav');\r\n            //tour.classList.remove('noBG');\r\n            //body.classList.remove('nav-open');\r\n            //document.querySelector('.headers .main-nav a[href=\"/personal\"').parentNode.classList.remove('tour-open');\r\n            const centered = (window.innerWidth - $(`.tour-slide[data-slide=\"${spot}\"`).width()) / 2;\r\n\r\n            let headerHeight = 0;\r\n\r\n            if (document.querySelector(\".alerts-holder\")) {\r\n                headerHeight += $('.alerts-holder').height();\r\n            }\r\n            else {\r\n                headerHeight += 69;\r\n            }\r\n            if (document.querySelector(\".fdic-banner\")) {\r\n                headerHeight += $(\".fdic-banner\").height();\r\n            }\r\n            if (document.querySelector(\".headers\")) {\r\n                headerHeight += $('.headers').height();\r\n            }\r\n\r\n            switch (Number(spot)) {\r\n                case 0:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    document.querySelector(\".headers\").classList.remove('highlightNav');\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", 0 + \"px\").css(\"left\", centered);\r\n                    break;\r\n                case 1:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    //document.querySelector(\".headers\").classList.add('showOnTour');\r\n                    document.querySelector(\".headers\").classList.add('highlightNav');\r\n                    var width = $(`.tour-slide[data-slide=\"${spot}\"`).width()\r\n                    var posX = $(\".headers .login-btn\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $('.headers .login-btn').offset().top - $(window)['scrollTop']();\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", (posX - width) + \"px\");\r\n                    break;\r\n                case 2:\r\n                    document.querySelector('.icon-banner').scrollIntoView({\r\n                        behavior: \"smooth\",\r\n                        block: \"end\"\r\n                    });\r\n                    document.querySelector(\".headers\").classList.remove('highlightNav');\r\n                    /*                    document.querySelector('.headers .loginBtn').classList.add('showOnTour');*/\r\n                    var posX = $(\".icon-banner\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $(window)['scrollTop']();\r\n                    //$(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", posX + \"px\").css(\"height\", \"unset\");\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", \"calc(40vw + -415.08px)\").css(\"left\", \"calc(50vw - 70%)\").css(\"height\", \"unset\");\r\n                    break;\r\n                case 3:\r\n                    //banking center slide\r\n                    document.querySelector(\".headers\").classList.add('highlightNav');\r\n                    window.scrollTo({ top: 0, behavior: \"smooth\" });\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", 75 + \"px\").css(\"left\", centered);\r\n                    break;\r\n                case 4:\r\n                    //connect slide\r\n                    document.querySelector(\".headers\").classList.remove('highlightNav');\r\n                    document.querySelector('.photo-split').scrollIntoView({\r\n                        behavior: \"smooth\",\r\n                        block: \"end\"\r\n                    });\r\n                    var posX = $(\".photo-split\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $(window)['scrollTop']();\r\n                    //$(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", centered);\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", \"calc(41vw)\").css(\"left\", centered);\r\n                    break;\r\n                case 5:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    //document.querySelector(\".headers\").classList.add('showOnTour');\r\n                    document.querySelector(\".headers\").classList.add('highlightNav');\r\n                    var width = $(`.tour-slide[data-slide=\"${spot}\"`).width()\r\n                    var posX = $(\".headers .login-btn\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $('.headers .login-btn').offset().top - $(window)['scrollTop']();\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", (posX - width) + \"px\");\r\n                    break;\r\n                case 6:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    //document.querySelector(\".headers\").classList.add('showOnTour');\r\n                    document.querySelector(\".headers\").classList.add('highlightNav');\r\n                    var width = $(`.tour-slide[data-slide=\"${spot}\"`).width()\r\n                    var posX = $(\".headers .login-btn\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $('.headers .login-btn').offset().top - $(window)['scrollTop']();\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", (posX - width) + \"px\");\r\n                    break;\r\n                case 7:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    //document.querySelector(\".headers\").classList.add('showOnTour');\r\n                    document.querySelector(\".headers\").classList.add('highlightNav');\r\n                    var width = $(`.tour-slide[data-slide=\"${spot}\"`).width()\r\n                    var posX = $(\".headers .login-btn\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $('.headers .login-btn').offset().top - $(window)['scrollTop']();\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", (posX - width) + \"px\");\r\n                    break;\r\n                case 8: \r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    //document.querySelector(\".headers\").classList.add('showOnTour');\r\n                    document.querySelector(\".headers\").classList.add('highlightNav');\r\n                    var width = $(`.tour-slide[data-slide=\"${spot}\"`).width()\r\n                    var posX = $(\".headers .locations-btn\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $('.headers .locations-btn').offset().top - $(window)['scrollTop']();\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", (posX - width) + \"px\");\r\n                    break;\r\n                case 9:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    //document.querySelector(\".headers\").classList.add('showOnTour');\r\n                    document.querySelector(\".headers\").classList.add('highlightNav');\r\n                    var width = $(`.tour-slide[data-slide=\"${spot}\"`).width()\r\n                    var posX = $(\".headers .search-btn\").offset().left + $(window)['scrollLeft']();\r\n                    var posY = $('.headers .search-btn').offset().top - $(window)['scrollTop']();\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", posY + \"px\").css(\"left\", (posX - width) + \"px\");\r\n                    break;\r\n                case 10:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    document.querySelector(\".headers\").classList.remove('highlightNav');\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", 0 + \"px\").css(\"left\", centered);\r\n                    break;\r\n                case 11:\r\n                    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n                    document.querySelector(\".headers\").classList.remove('highlightNav');\r\n                    $(`.tour-slide[data-slide=\"${spot}\"`).css(\"top\", 0 + \"px\").css(\"left\", centered);\r\n                    break;\r\n            }\r\n        }\r\n\r\n        $(window).on(\"scroll\", function () {\r\n            if (document.querySelector('body').classList.contains('tour-active')) {\r\n                setPosition(currentSlide);\r\n            }\r\n\r\n        });\r\n        $(window).on(\"resize\", function () {\r\n            if (document.querySelector('body').classList.contains('tour-active')) {\r\n                setPosition(currentSlide);\r\n            }\r\n        });\r\n\r\n\r\n        $(\".dn-dot\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            loadTourSlide($(this).attr(\"data-slide\"));\r\n        });\r\n\r\n        $(\".prev-button\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            loadTourSlide(currentSlide - 1);\r\n        });\r\n        $(\".next-button\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            loadTourSlide(currentSlide + 1);\r\n        });\r\n\r\n\r\n        $(\"#take-tour\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            loadTourSlide(1);\r\n        });\r\n        $(\".js-start-tour,#js-replay-tour\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            loadTourSlide(0);\r\n        });\r\n        $(\".js-close-tour,.js-skip-tour\").on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            $(\".tour\").hide();\r\n            $(\"body\").removeClass(\"tour-active\").removeClass('nav-open').removeAttr(\"data-slide\", currentSlide);\r\n        });\r\n        $(\".tour\").on(\"click\", function (e) {\r\n            $(this).hide();\r\n            document.querySelector('.headers').classList.remove('showOnTour');\r\n            document.querySelector('.headers').classList.remove('highlightNav');\r\n            $(\"body\").removeClass(\"tour-active\").removeClass('nav-open').removeAttr(\"data-slide\", currentSlide);\r\n        });\r\n\r\n        $(\".tour-slide\").on(\"click\", function (e) {\r\n            e.stopPropagation();\r\n        });\r\n    })\r\n\r\n}"]}