{"version":3,"sources":["app.js","career-cards.js","career-video.js","data-table-init.js","choicesinit.js","enquiry-list.js","eval-form.js","header-video.js","machinery-card.js","map.js","menu.js","pagination.js","site-search-modal.js","search.js","sliderinit.js","sticky.js","summary.js","view-toggle.js"],"names":["autosize","document","querySelectorAll","vh","window","innerHeight","contactFill","e","outerArticle","currentTarget","closest","articleTitle","querySelector","textContent","articleRef","messageContent","concat","formSelector","messageTextarea","value","addEventListener","setTimeout","update","scrollIntoView","checkStickyHeight","domNode","classList","contains","console","warn","log","nodeHeight","offsetHeight","getElementById","add","remove","documentElement","style","setProperty","arrive","existing","productEnquire","i","length","isMastheadHidden","stickyElms","filters","forEach","stickyElm","modals","filter","f11y","components","Accordion","onAfterClose","onAfterOpen","showMultiple","observers","modalElm","Layer","onOpen","masthead","body","onClose","newElm","intersectionCallback","entries","entry","intersectionRatio","target","careerCardRows","careerCards","x","careerCardIntersection","card","observerOptions","rootMargin","threshold","thresholdSets","push","IntersectionObserver","observe","careerVideoContainer","_loop","vimeoElm","vimeoElmURL","getAttribute","videoShape","videoPoster","videoAction","requestURL","loadVimeoResponse","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","vimeoHTML","wrap","_context","prev","next","fetch","res","sent","json","responseJSON","html","insertAdjacentHTML","t0","error","stop","_x","apply","this","arguments","row_brand_filter_choices","row_type_filter_choices","content_brand_filter_choices","content_type_filter_choices","select_args","allowHTML","itemSelectText","searchEnabled","row_brand_filter_element","row_type_filter_element","content_brand_filter_element","content_type_filter_element","dataTableContainers","Choices","passedElement","element","event","detail","setChoiceByValue","dataTableElms","y","dataTableElm","dataTableElmHeadTds","dataTableColNumbers","dataTableColTitles","cellIndex","dataTable","simpleDatatables","DataTable","labels","perPage","nextText","prevText","sortable","columns","select","render","data","td","rowIndex","setAttribute","on","args","input","parentElement","pagers","p","children","perPageFilter","wrapper","row","preventDefault","dataTableRows","JSON","parse","localStorage","getItem","setItem","openEnquiryListInitiator","enquiryFocusableElements","enquiryList","firstFocusableEnquiryElement","focusableEnquiryContent","lastFocusableEnquiryElement","products","getElementsByClassName","enquiryUL","noItems","createElement","enquiryListFragment","DocumentFragment","openEnquirySidebar","docBody","focus","closeEnquirySidebar","enquirylistcount","count","elementCount","addEnquiryItem","enquiryitem","index","enquiryListCard","enquiryListCardImgContainer","itemID","enquiryListCardImg","enquiryListCardInfo","itemImg","append","dataItems","itemdata","enquiryListCardActions","label","item","enquiryListCardInfoItemName","enquiryListCardInfoItemValue","lowerCaseName","data_item","toLowerCase","enquiryListCardInfoItem","enquiryListCardDelete","enquiryListCardDeleteIcon","firstListCard","appendChild","firstChild","insertBefore","onclick","latestEnquiryList","sidebar","itemIndex","deletedItem","splice","stringify","cardItem","pageItem","cardItemAddButton","removeAttribute","pageItemAddButton","otherItems","hasChildNodes","parentNode","search","nameKey","myArray","createDataArray","product","exists","existsnotification","prepend","infoItems","itemCardImg","itemCardLink","itemPageLink","location","pathname","itemPageImg","itemLink","infoLabel","infoData","machineryItem","isTabPressed","key","keyCode","shiftKey","activeElement","productAdd","closeEnquirySidebarButton","enquirySidebarOverlay","openEnquirySidebarButton","populateEnquiryList","len","isEnquiryListEmpty","fillEnquireNowFrom","finalEnquiryList","enquiryItem","modelTitle","refNo","dataLabel","closeMainMenu","onload","evalForm","fieldsetToggleOnKeydown","hasAttribute","toggleFieldset","fieldsetAction","dataPrev","currentFieldset","firstFocusableEvalElement","dataCurrent","dataNext","nextFieldset","behavior","prevFieldset","fieldsetActionButtons","umbracoFieldsetHeaders","prevButton","nextButton","fireOnAttributesModification","videoActionSlides","initMachineryCards","MicroModal","init","awaitOpenAnimation","awaitCloseAnimation","slider","sliderIdentifier","sliderElm","dataset","id","Swiper","slidesPerView","centeredSlides","spaceBetween","a11y","loop","grabCursor","watchSlidesProgress","navigation","nextEl","prevEl","preloadImages","lazy","keyboard","enabled","onlyInViewport","breakpoints","1024","videoActionSlide","headerFigure","videoActionButton","returnButton","videoURL","mobileVideoURL","videoDomainHostname","URL","hostname","replace","innerWidth","videoElement","play","pause","err","map","timer","mapMarkers","mapWindows","initMap","google","maps","Map","center","lat","lng","zoom","streetViewControl","mapTypeControl","styles","elementType","stylers","color","visibility","featureType","iconBase","icons","info","icon","current","GMAPFeatures","loadGMAPitems","url","jsonres","jsonList","createFeatures","GMAPItems","GMAPItem","parseFloat","feature","is_location","location_slug","slug","position","LatLng","type","content","title","tel","prev_infowindow","prev_marker","marker","infowindow","Marker","marker_slug","InfoWindow","window_slug","addListener","setIcon","setCenter","getPosition","close","open","anchor","shouldFocus","mapJSONUrl","initPrimary","primaryDepotBox","depotSlug","updatePrimaryJSON","_ref2","_callee2","_context2","updatePrimaryDepot","_x2","_x3","changeMarker","changeWindow","JSONList","primaryDepotTitle","primaryDepotTel","primaryDepotEmail","primaryDepotAddress","primaryDepotOpeningHours","openingHoursVals","hasFriday","depotOpenHoursHTML","email","address","opening_hours","monfri","fri","Fri","sat","Sat","sun","Sun","dateOfWeek","Object","keys","hoursOfDate","values","labelValue","innerHTML","depotList","openSubMenu","menuItem","sub_menu","sub_menu_toggle","closeSubMenu","toggleSubMenu","stopPropagation","subMenu","toggled","mouseoverToggle","clearTimeout","mouseoutToggle","depotButtons","menuItemsWithChildren","highlightFocusable","removeEventListener","openMenuItem","mobileMenuToggle","openMobileMenu","toggle","siteMenu","toggleIcon","closeMobileMenu","menuFocusableElements","firstFocusableMenuElement","focusableMenuContent","lastFocusableMenuElement","indexInParent","node","childNodes","num","nodeType","CLASS_DISABLED","CLASS_ACTIVE","CLASS_SIBLING_ACTIVE","initPagination","pagination","activeItem","initIndex","paginationItem","paginationItemClick","data_index","itemParent","changePage","navigateSinglePage","active_index","parseInt","change_by","paginationParent","paginationItems","target_index","sibling_index","activeSiblingItem","targetItem","paginationContainers","openSiteSearchInitiator","searchBar","doSearch","clearSearch","resultContainer","loadjsonListItems","JSONurl","displayList","direction","mousewheel","freeMode","sticky","display","searchString","noResults","filteredList","jsonListItem","searchableContent","l","includes","jsonListItems","htmlString","content_type","targetvalue","openTags","isexternal","thumbnail","singular_name","childtargetvalue","join","searchFocusableElements","siteSearch","firstFocusableSearchElement","focusableSearchContent","lastFocusableSearchElement","openSiteSearch","closeSiteSearch","searchBg","closeSearchButton","openSearchButtons","buildHomepageheaderSlider","watchOverflow","allHomepageheaderSliders","buildNewsSlider","600","1420","allNewsSliders","buildTypesSlider","allTypesSliders","buildEvalSlider","externalSlideLinks","evalSwiper","goToSlide","slides","slideTargetIndex","slideTo","allEvalSliders","buildUmbracoEvalSlider","slideClass","allUmbracoEvalSliders","buildUsedSlider","externalSlideThumbs","mainSwiper","realIndex","allUsedSliders","Sticky","_classCallCheck","documentElm","prevScroll","scrollY","scrollTop","currentScroll","headerHeight","prevDirection","stickyHeader","stickyOffset","offsetTop","headerBar","header","checkOffset","bind","checkScroll","toggleBeforeHeader","setMargin","headerElm","beforeHeader","maxHeight","scrollHeight","toggleHeader","headerBarHeight","marginTop","infoContentText","summaryContent","summaryParaElement","truncatedSummary","infoContent","sectionHeadings","substring","summarySidebar","goToNav","goToList","goToListHeading","goToListHeadingButton","sectionHeading","goToListItem","goToListItemSpan","MenuButtonLinks","buttonNode","menuNode","menuitemNodes","firstMenuitem","lastMenuitem","firstChars","onButtonKeydown","onButtonClick","nodes","menuitem","tabIndex","trim","onMenuitemKeydown","onMenuitemMouseover","onFocusin","onFocusout","onBackgroundMousedown","newMenuitem","setFocusToMenuitem","currentMenuitem","indexOf","char","start","startIndex","isOpen","flag","openPopup","setFocusToFirstMenuitem","closePopup","setFocusToLastMenuitem","tgt","isPrintableCharacter","str","match","ctrlKey","altKey","metaKey","setFocusByFirstCharacter","href","setFocusToPreviousMenuitem","setFocusToNextMenuitem","summaryContentSection","menuButtons","numSteps","prevRatio","oldScrollValue","newScrollValue","createObserver","options","root","buildThresholdList","handleIntersect","thresholds","observer","pageYOffset","infoSidebar","top","viewCheck","onloadCheck","contentDisplayContainer","idCheck","viewBtnId","viewToggles"],"mappings":"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","file":"bundle.min.js","sourcesContent":["autosize(document.querySelectorAll('textarea'));\n\n// First we get the viewport height and we multiple it by 1% to get a value for a vh unit\nlet vh = window.innerHeight * 0.01;\n// Then we set the value in the --vh custom property to the root of the document\ndocument.documentElement.style.setProperty('--vh', `${vh}px`);\n\n// We listen to the resize event\nwindow.addEventListener('resize', () => {\n // We execute the same script as before\n let vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n});\n\ndocument.arrive('.used-product-item', { existing: true }, function() {\n let productEnquire = document.querySelectorAll('.view-enquire')\n for (var i = 0; i < productEnquire.length; i++) {\n productEnquire[i].addEventListener('click', contactFill, false);\n }\n});\n\n\nfunction contactFill(e){\n let outerArticle = e.currentTarget.closest('article');\n let articleTitle = outerArticle.querySelector('.info-item[data-label=\"model\"] .item-data').textContent;\n let articleRef = outerArticle.querySelector('.info-item[data-label=\"serialno\"] .item-data').textContent;\n\n let messageContent;\n messageContent = `Hello, I would like to enquire about the following: ${articleTitle} - Serial No: ${articleRef}`;\n let formSelector = document.querySelector('#section-contact-enquire');\n\n let messageTextarea = formSelector.querySelector('.message');\n messageTextarea.value = messageContent;\n autosize(messageTextarea);\n\n document.addEventListener('DOMContentLoaded', function() {\n setTimeout(function() {\n autosize.update(messageTextarea)\n }, 200);\n }, false);\n\n formSelector.scrollIntoView();\n}\n\nfunction checkStickyHeight(domNode){\n if(!domNode.classList.contains('is-sticky')){\n console.warn('No .is-sticky class on passed DOM Node.');\n }\n\n console.log('sdfsdf');\n const nodeHeight = domNode.offsetHeight;\n const windowHeight = window.innerHeight;\n const siteHeaderHeight = document.getElementById('masthead').offsetHeight;\n const availableHeight = windowHeight - siteHeaderHeight - 30;\n\n if(nodeHeight > availableHeight){\n domNode.classList.add('no-sticky');\n return true\n }else{\n domNode.classList.remove('no-sticky');\n return false\n }\n}\n\nconst stickyElms = document.querySelectorAll(\".is-sticky\"); \nstickyElms.forEach( function (stickyElm) {\n checkStickyHeight(stickyElm);\n});\n\n/**\n * filter Accordions\n */\nconst filters = document.querySelectorAll(\".filter--js\");\nfilters.forEach(function (filter) {\n new f11y.components.Accordion(\n filter,\n {\n onAfterClose: function() {\n const stickyElms = document.querySelectorAll(\".is-sticky\");\n \n stickyElms.forEach( function (stickyElm) {\n checkStickyHeight(stickyElm);\n });\n },\n onAfterOpen: function() {\n const stickyElms = document.querySelectorAll(\".is-sticky\");\n stickyElms.forEach( function (stickyElm) {\n checkStickyHeight(stickyElm);\n });\n },\n showMultiple: true,\n }\n );\n});\n\n\nconst modals = document.querySelectorAll(\".layer--js\");\n\nlet isMastheadHidden;\n\nmodals.forEach(function (modalElm) {\n new f11y.components.Layer(\n modalElm,\n {\n onOpen: function(){\n const masthead = document.querySelector(\"#masthead\");\n document.body.classList.add('has-layer-open');\n \n if(!masthead.classList.contains('hide')){\n masthead.classList.add('hide');\n isMastheadHidden = true\n }else{\n isMastheadHidden = false\n }\n },\n onClose: function(){\n if(isMastheadHidden === true){\n masthead.classList.remove('hide');\n }\n document.body.classList.remove('has-layer-open');\n },\n }\n );\n});\n\ndocument.arrive(\n \".layer--js\", \n function(newElm) {\n new f11y.components.Layer(\n newElm,\n {}\n );\n }\n);","\nlet observers = [];\n\nfunction intersectionCallback(entries){\n entries.forEach((entry) => {\n let intersectionAmount = entry.intersectionRatio;\n if(intersectionAmount > 0.65){\n entry.target.classList.add('active');\n }else{\n entry.target.classList.remove('active');\n }\n });\n};\n\nlet careerCardRows = document.querySelectorAll(\".section-career-card-row\");\nif (typeof(careerCardRows) != 'undefined' && careerCardRows != null) { \n for (let i = 0; i < careerCardRows.length; i++) {\n let careerCards = careerCardRows[i].querySelectorAll(\".career-card-scene\");\n for (let x = 0; x < careerCards.length; x++) {\n careerCardIntersection(careerCards[x]);\n }\n }\n}\n\nfunction careerCardIntersection(card){\n let observerOptions = {\n //root: null,\n rootMargin: \"-20% 0px -20% 0px\",\n threshold: [],\n };\n\n let thresholdSets = [\n []\n ];\n\n for (let i = 0; i <= 1.0; i += 0.01) {\n thresholdSets[0].push(i);\n }\n\n observerOptions.threshold = thresholdSets[0];\n observers[i] = new IntersectionObserver(\n intersectionCallback,\n observerOptions\n );\n observers[i].observe(card);\n}","const careerVideoContainer = document.querySelectorAll('.career-video-container');\n\nif (typeof(careerVideoContainer) != 'undefined' && careerVideoContainer != null) {\n for (let i = 0; i < careerVideoContainer.length; i++) {\n const vimeoElm = careerVideoContainer[i].querySelector('.career-vimeo-player')\n const vimeoElmURL = careerVideoContainer[i].querySelector('.career-vimeo-player').getAttribute('data-vimeo-url');\n const videoShape = careerVideoContainer[i].querySelector('.shape-container');\n const videoPoster = careerVideoContainer[i].querySelector('.career-poster');\n const videoAction = careerVideoContainer[i].querySelector('.career-video-action');\n\n let requestURL = 'https://vimeo.com/api/oembed.json?url=' + vimeoElmURL;\n\n const loadVimeoResponse = async(requestURL) => {\n try {\n const res = await fetch(requestURL);\n responseJSON = await res.json();\n let vimeoHTML = responseJSON.html;\n vimeoElm.insertAdjacentHTML('beforeend' , vimeoHTML);\n videoShape.remove();\n videoPoster.remove();\n videoAction.remove();\n \n } catch (err) {\n console.error(err);\n }\n };\n\n videoAction.addEventListener(\"click\", function() {\n loadVimeoResponse(requestURL);\n });\n }\n}","let dataTableContainers = document.querySelectorAll('.has-data-table');\n\nfor (let i = 0; i < dataTableContainers.length; i++) {\n\n let dataTableElms = dataTableContainers[i].querySelectorAll('table');\n\n for (let y = 0; y < dataTableElms.length; y++) {\n\n let dataTableElm = dataTableElms[y];\n\n let dataTableElmHead = dataTableElm.querySelector('thead');\n let dataTableElmHeadTds = dataTableElmHead.querySelectorAll('th');\n\n let dataTableColNumbers = [];\n let dataTableColTitles = [];\n\n for (let x = 0; x < dataTableElmHeadTds.length; x++){\n dataTableColNumbers.push(dataTableElmHeadTds[x].cellIndex);\n dataTableColTitles.push(dataTableElmHeadTds[x].textContent);\n }\n\n let dataTable = new simpleDatatables.DataTable(dataTableElm, {\n labels: {\n perPage: ``,\n },\n nextText: `next page`,\n prevText: `prev page`,\n perPage: 10,\n sortable: false,\n columns: [\n {\n select: dataTableColNumbers,\n render: function(data, td, rowIndex, cellIndex) {\n td.setAttribute('data-label' , dataTableColTitles[td.cellIndex]);\n return `${data}`;\n }\n }\n ]\n });\n\n dataTable.on('datatable.init', function(args) {\n this.input.parentElement.classList.add('field-group');\n this.pagers[0].classList.add('sj--pagination');\n for (let p = 0; p < this.pagers[0].children.length; p++){\n this.pagers[0].children[p].classList.add('page');\n }\n let perPageFilter = this.wrapper.querySelector('.dataTable-selector');\n let perPageFilterChoices = new Choices(perPageFilter, {searchEnabled: false});\n });\n\n dataTable.on('datatable.selectrow', function(row, event) {\n event.preventDefault();\n let dataTableRows = dataTableElm.querySelectorAll('tr');\n for (let x = 0; x < dataTableRows.length; x++){\n dataTableRows[x].classList.remove('selected');\n }\n if(row.classList.contains('selected')){\n row.classList.remove('selected');\n }else{\n row.classList.add('selected');\n }\n }); \n \n }\n}\n\n\n\n\n","// Function that builds Choices\nconst select_args = {\n allowHTML: true,\n itemSelectText: '',\n searchEnabled: false,\n}\n\nlet row_brand_filter_element = document.querySelector('#row-brand-filter');\nlet row_type_filter_element = document.querySelector('#row-type-filter');\nlet content_brand_filter_element = document.querySelector('#content-brand-filter');\nlet content_type_filter_element = document.querySelector('#content-type-filter');\n\nif (typeof(row_brand_filter_element) != 'undefined' && row_brand_filter_element != null) {\n var row_brand_filter_choices = new Choices(row_brand_filter_element, select_args);\n\n row_brand_filter_choices.passedElement.element.addEventListener(\n 'change',\n function(event) {\n // do something creative here...\n console.log(event.detail.value);\n content_brand_filter_choices.setChoiceByValue(event.detail.value);\n },\n false,\n );\n}\n\nif (typeof(row_type_filter_element) != 'undefined' && row_type_filter_element != null) {\n var row_type_filter_choices = new Choices(row_type_filter_element, select_args);\n\n row_type_filter_choices.passedElement.element.addEventListener(\n 'change',\n function(event) {\n // do something creative here...\n console.log(event.detail.value);\n content_type_filter_choices.setChoiceByValue(event.detail.value);\n },\n false,\n );\n}\n\nif (typeof(content_brand_filter_element) != 'undefined' && content_brand_filter_element != null) {\n var content_brand_filter_choices = new Choices(content_brand_filter_element, select_args);\n\n content_brand_filter_choices.passedElement.element.addEventListener(\n 'change',\n function(event) {\n // do something creative here...\n console.log(event.detail.value);\n row_brand_filter_choices.setChoiceByValue(event.detail.value);\n },\n false,\n );\n}\n\nif (typeof(content_type_filter_element) != 'undefined' && content_type_filter_element != null) {\n var content_type_filter_choices = new Choices(content_type_filter_element, select_args);\n\n content_type_filter_choices.passedElement.element.addEventListener(\n 'change',\n function(event) {\n // do something creative here...\n console.log(event.detail.value);\n row_type_filter_choices.setChoiceByValue(event.detail.value);\n },\n false,\n );\n}","document.addEventListener(\"DOMContentLoaded\", function() {\n var enquiryList = JSON.parse(localStorage.getItem(\"enquirylist\") || \"[]\");\n if (enquiryList == null || undefined) {\n localStorage.setItem('enquirylist', '[]');\n }\n});\n\nconst enquiryFocusableElements = ['input' , 'button' , '[href]', 'select', 'textarea', '[tabindex]:not([tabindex=\"-1\"])'];\nlet enquiryList = document.querySelector('.enquiry-list');\nlet firstFocusableEnquiryElement = enquiryList.querySelectorAll(enquiryFocusableElements)[0];\nlet focusableEnquiryContent = enquiryList.querySelectorAll(enquiryFocusableElements);\nlet lastFocusableEnquiryElement = focusableEnquiryContent[focusableEnquiryContent.length - 1];\nvar openEnquiryListInitiator;\n\nlet products = document.getElementsByClassName(\"product-card\");\nlet enquiryUL = document.getElementById(\"enquiry-list-ul\");\nlet noItems = document.createElement(\"p\");\nnoItems.classList.add('weight-medium', 'medium-body' , 'sj-bw-e0e');\nnoItems.textContent = 'There are no items in your used machinery enquiry list.';\n\nlet enquiryListFragment = new DocumentFragment();\n\nconst openEnquirySidebar = (e) => {\n openEnquiryListInitiator = e.currentTarget;\n let enquiryList = document.querySelector('.enquiry-list');\n let docBody = document.body;\n enquiryList.classList.add('is-open');\n docBody.classList.add('overflow-hidden');\n let firstfocusableElement = enquiryList.querySelector('.close-enquiry-sidebar');\n firstfocusableElement.focus();\n}\n\nconst closeEnquirySidebar = (e) => {\n let enquiryList = document.querySelector('.enquiry-list');\n let docBody = document.body;\n enquiryList.classList.remove('is-open');\n docBody.classList.remove('overflow-hidden');\n document.querySelector('.open-enquiry-list').focus();\n openEnquiryListInitiator.focus();\n}\n\ndocument.addEventListener('keydown', function(e) {\n if(enquiryList.classList.contains('is-open')){\n let isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n\n let isEscPressed = e.key === 'Escape' || e.keyCode === 27;\n\n if(isEscPressed){\n closeEnquirySidebar();\n }\n \n if (!isTabPressed) {\n return;\n }\n \n if (e.shiftKey) { // if shift key pressed for shift + tab combination\n if (document.activeElement === firstFocusableEnquiryElement) {\n lastFocusableEnquiryElement.focus(); // add focus for the last focusable element\n e.preventDefault();\n }\n } else { // if tab key is pressed\n if (document.activeElement === lastFocusableEnquiryElement) { // if focused has reached to last focusable element then focus first focusable element after pressing tab\n firstFocusableEnquiryElement.focus(); // add focus for the first focusable element\n e.preventDefault();\n }\n }\n }\n});\n\nfunction enquirylistcount() {\n let latestEnquiryList = JSON.parse(localStorage.getItem(\"enquirylist\") || \"[]\");\n let count = latestEnquiryList.length;\n let elementCount = document.getElementById(\"enquiry-list-count\");\n if(count == '0'){\n elementCount.textContent = '0';\n } else{\n elementCount.textContent = count;\n }\n}\n\nfunction addEnquiryItem(enquiryitem, index) {\n noItems.remove();\n let enquiryListCard = document.createElement(\"li\");\n enquiryListCard.classList.add(\"enquiry-list-card\");\n enquiryListCard.setAttribute('data-item-index', index);\n enquiryListCard.setAttribute('item-id', enquiryitem.itemID);\n\n let enquiryListCardImgContainer = document.createElement(\"figure\");\n enquiryListCardImgContainer.classList.add(\"enquiry-list-card-img\");\n let enquiryListCardImg = document.createElement(\"img\");\n enquiryListCardImg.setAttribute('src', enquiryitem.itemImg);\n enquiryListCardImgContainer.append(enquiryListCardImg);\n enquiryListCard.append(enquiryListCardImgContainer);\n\n let enquiryListCardInfo = document.createElement(\"div\");\n enquiryListCardInfo.classList.add(\"enquiry-list-card-info\" , \"machine-info\");\n\n let dataItems = enquiryitem.itemdata\n\n let labelsToRetrieve = ['model' , 'brand' , 'price' , 'reference' , 'serialno'];\n\n labelsToRetrieve.forEach(function(label) {\n\n dataItems.forEach(function(item) {\n let lowerCaseName = item.data_item[0].toLowerCase();\n if(label == lowerCaseName){\n let enquiryListCardInfoItem = document.createElement(\"div\");\n enquiryListCardInfoItem.classList.add(\"info-item\");\n\n let enquiryListCardInfoItemName = document.createElement(\"h6\");\n enquiryListCardInfoItemName.textContent = item.data_item[0];\n\n let enquiryListCardInfoItemValue = document.createElement(\"span\");\n enquiryListCardInfoItemValue.textContent = item.data_item[1];\n \n enquiryListCardInfoItem.append(enquiryListCardInfoItemName);\n enquiryListCardInfoItem.append(enquiryListCardInfoItemValue);\n \n enquiryListCardInfo.append(enquiryListCardInfoItem);\n }\n \n });\n });\n\n let enquiryListCardActions = document.createElement(\"div\");\n enquiryListCardActions.classList.add('item-actions');\n\n let enquiryListCardDelete = document.createElement(\"button\");\n let enquiryListCardDeleteIcon = document.createElement(\"i\");\n enquiryListCardDeleteIcon.classList.add('sj--icon-x');\n \n enquiryListCardDelete.textContent = 'Delete';\n enquiryListCardDelete.classList.add('delete-item');\n enquiryListCardDelete.setAttribute('data-item-index', index);\n /*\n let enquiryListCardLink = document.createElement(\"a\");\n let enquiryListCardLinkIcon = document.createElement(\"i\");\n enquiryListCardLinkIcon.classList.add('sj--icon-double-arrow-right');\n enquiryListCardLink.textContent = 'View';\n enquiryListCardLink.classList.add('item-link');\n enquiryListCardLink.setAttribute('href', enquiryitem.itemLink);\n */\n enquiryListCardActions.appendChild(enquiryListCardDelete);\n /*enquiryListCardActions.appendChild(enquiryListCardLink);*/\n enquiryListCardDelete.appendChild(enquiryListCardDeleteIcon);\n /*enquiryListCardLink.appendChild(enquiryListCardLinkIcon);*/\n enquiryListCard.append(enquiryListCardInfo);\n enquiryListCard.appendChild(enquiryListCardActions);\n\n let firstListCard = enquiryListFragment.firstChild\n enquiryListFragment.insertBefore(enquiryListCard , firstListCard);\n\n enquiryListCardDelete.onclick = function(e) {\n let latestEnquiryList = JSON.parse(localStorage.getItem(\"enquirylist\") || \"[]\");\n let sidebar = document.querySelector(\".enquiry-list-sidebar\");\n sidebar.classList.add(\"deleting\");\n\n let itemIndex = e.currentTarget.getAttribute('data-item-index');\n let itemID = e.currentTarget.closest('.enquiry-list-card[item-id]').getAttribute('item-id');\n latestEnquiryList.splice(itemIndex, 1);\n localStorage.setItem('enquirylist', JSON.stringify(latestEnquiryList));\n\n let deletedItem = document.querySelector('li[data-item-index=\"' + itemIndex + '\"]');\n\n let cardItem = document.querySelector('.block-used-machine-card[item-id=\"' + itemID + '\"]');\n\n let pageItem = document.querySelector('article.used-product-item[item-id=\"' + itemID + '\"]');\n\n if (typeof(cardItem) != 'undefined' && cardItem != null) {\n let cardItemAddButton = cardItem.querySelector('.list-add');\n\n cardItemAddButton.removeAttribute(\"disabled\", \"\");\n cardItemAddButton.querySelector('span').textContent = \"Add To Enquiry List\";\n cardItemAddButton.querySelector('i').classList.remove('sj--icon-enquiry');\n cardItemAddButton.querySelector('i').classList.add('sj--icon-plus');\n }\n\n if (typeof(pageItem) != 'undefined' && pageItem != null) {\n let pageItemAddButton = pageItem.querySelector('.list-add');\n\n pageItemAddButton.removeAttribute(\"disabled\", \"\");\n pageItemAddButton.querySelector('span').textContent = \"Add To Enquiry List\";\n pageItemAddButton.querySelector('i').classList.remove('sj--icon-enquiry');\n pageItemAddButton.querySelector('i').classList.add('sj--icon-plus');\n }\n\n setTimeout(function() {\n deletedItem.remove();\n enquirylistcount();\n\n var otherItems = document.querySelectorAll(\".enquiry-list-card\");\n\n for (var y = 0; y < otherItems.length; y++) {\n otherItems[y].setAttribute(\"data-item-index\", y);\n otherItems[y].querySelector(\"button\").setAttribute(\"data-item-index\", y);\n }\n\n sidebar.classList.remove(\"deleting\");\n\n if (!enquiryUL.hasChildNodes()) {\n enquiryUL.parentNode.append(noItems);\n };\n\n }, 750);\n };\n\n}\n\n\nfunction search(nameKey, myArray) {\n for (var i = 0; i < myArray.length; i++) {\n if (myArray[i].itemID === nameKey) {\n return true;\n }\n }\n}\n\n\nfunction createDataArray (e) {\n let product = e.currentTarget.closest('article[item-id]');\n let itemID = product.getAttribute(\"item-id\");\n\n let newEnquiryList = JSON.parse(localStorage.getItem(\"enquirylist\") || \"[]\");\n if (!search(itemID, newEnquiryList)) {\n let data = [];\n let infoItems = product.querySelectorAll('.info-item');\n const itemCardImg = product.querySelector('img');\n const itemCardLink = product.querySelector('.bottom-button-content a.view-enquire');\n const itemPageLink = window.location.pathname;\n const itemPageImg = document.querySelector('img');\n let itemImg;\n let itemLink;\n\n if (typeof(itemCardImg) != 'undefined' && itemCardImg != null) {\n itemImg = itemCardImg.getAttribute('src');\n } else if(typeof(itemPageImg) != 'undefined' && itemPageImg != null) {\n itemImg = document.querySelector('.thumb-wrapper .thumb img').getAttribute('src');\n } else{\n itemImg = document.querySelector('img').getAttribute('src');\n }\n\n if (typeof(itemCardLink) != 'undefined' && itemCardLink != null) {\n itemLink = itemCardLink.getAttribute('href');\n } else if(typeof(itemPageLink) != 'undefined' && itemPageLink != null) {\n itemLink = itemPageLink;\n } else{\n itemLink ='';\n }\n \n for (var i = 0; i < infoItems.length; ++i) {\n let infoLabel = infoItems[i].getAttribute('data-label').toLowerCase();\n let infoData = infoItems[i].querySelector(\".item-data\").textContent;\n\n let dataArray = [infoLabel, infoData];\n\n let dataItem = { \"data_item\": dataArray };\n\n data.push(dataItem);\n }\n\n let machineryItem = {\n \"itemID\": itemID,\n \"itemLink\": itemLink,\n \"itemImg\": itemImg,\n \"itemdata\": '',\n }\n\n machineryItem.itemdata = data;\n\n let latestEnquiryList = JSON.parse(localStorage.getItem(\"enquirylist\") || \"[]\");\n let itemIndex = latestEnquiryList.length;\n addEnquiryItem(machineryItem, itemIndex);\n\n latestEnquiryList.push(machineryItem);\n\n localStorage.setItem('enquirylist', JSON.stringify(latestEnquiryList));\n\n e.currentTarget.setAttribute(\"disabled\", \"\");\n e.currentTarget.querySelector('span').textContent = \"Added!\";\n e.currentTarget.querySelector('i').classList.remove('sj--icon-plus');\n e.currentTarget.querySelector('i').classList.add('sj--icon-enquiry');\n\n enquirylistcount();\n\n enquiryUL.appendChild(enquiryListFragment);\n\n } else {\n let exists = document.querySelector('.enquiry-list-card[item-id=\"' + itemID + '\"]');\n exists.classList.add('highlighted');\n let existsnotification = document.createElement(\"span\");\n existsnotification.classList.add('existing-item');\n existsnotification.textContent = \"Product is already on your enquiry list\";\n exists.prepend(existsnotification);\n\n exists.scrollIntoView(true);\n\n setTimeout(function() {\n existsnotification.remove();\n exists.classList.remove('highlighted');\n }, 5000);\n }\n\n};\n\n\ndocument.arrive('.list-add', { existing: true }, function() {\n let productAdd = document.querySelectorAll(\".list-add\");\n for (var i = 0; i < productAdd.length; i++) {\n productAdd[i].addEventListener('click', createDataArray, false);\n productAdd[i].addEventListener('click', openEnquirySidebar, false);\n }\n});\n\nlet closeEnquirySidebarButton = document.querySelector('.close-enquiry-sidebar');\nlet enquirySidebarOverlay = document.querySelector('.enquiry-bg-overlay');\nif (typeof(closeEnquirySidebarButton) != 'undefined' && closeEnquirySidebarButton != null) {\n closeEnquirySidebarButton.addEventListener('click', closeEnquirySidebar, false);\n enquirySidebarOverlay.addEventListener('click', closeEnquirySidebar, false);\n\n}\n\nlet openEnquirySidebarButton = document.querySelector('.open-enquiry-list');\nif (typeof(openEnquirySidebarButton) != 'undefined' && openEnquirySidebarButton != null) {\n openEnquirySidebarButton.addEventListener('click', closeMainMenu, false);\n openEnquirySidebarButton.addEventListener('click', openEnquirySidebar, false);\n}\n\nfunction populateEnquiryList() {\n let latestEnquiryList = JSON.parse(localStorage.getItem(\"enquirylist\") || \"[]\");\n\n for (var i = 0, len = latestEnquiryList.length; i < len; i++) {\n let enquiryItem = latestEnquiryList[i];\n let itemIndex = i;\n\n addEnquiryItem(enquiryItem, itemIndex);\n }\n}\n\n\nfunction isEnquiryListEmpty() {\n if (!enquiryUL.hasChildNodes()) {\n enquiryUL.parentNode.append(noItems);\n } else {\n noItems.remove();\n }\n}\n\nwindow.onload = function() {\n enquirylistcount();\n populateEnquiryList();\n enquiryUL.appendChild(enquiryListFragment);\n isEnquiryListEmpty();\n}\n\n\nfunction fillEnquireNowFrom(formSelector) {\n let finalEnquiryList = JSON.parse(localStorage.getItem(\"enquirylist\") || \"[]\");\n if(finalEnquiryList.length == 0){\n return;\n }\n \n let messageContent;\n messageContent = \"Hello, I would like to enquire about the following: \";\n\n for (let i = 0; i < finalEnquiryList.length; i++) {\n let enquiryItem = finalEnquiryList[i];\n let modelTitle,\n refNo;\n for (let i = 0; i < enquiryItem.itemdata.length; i++) {\n let dataLabel = enquiryItem.itemdata[i].data_item[0];\n\n if(dataLabel == 'model'){\n modelTitle = enquiryItem.itemdata[i].data_item[1];\n }\n if(dataLabel == 'serialno'){\n refNo = enquiryItem.itemdata[i].data_item[1];\n }\n }\n\n messageContent = `${messageContent}\\r\\n${modelTitle} - Serial No: ${refNo}, `;\n }\n let messageTextarea = formSelector.querySelector('.message');\n messageTextarea.value = messageContent;\n autosize(messageTextarea);\n\n document.addEventListener('DOMContentLoaded', function() {\n setTimeout(function() {\n autosize.update(messageTextarea)\n }, 200);\n }, false);\n}","const evalForm = document.querySelector('.umbraco-forms-evaluationV3');\n\nif (typeof(evalForm) != 'undefined' && evalForm != null) {\n\n const fieldsetToggleOnKeydown = (e) => {\n let key = event.key;\n\n switch (key) {\n case \" \":\n case \"Enter\":\n case \"Space\":\n if(e.currentTarget.parentElement.hasAttribute('open')){\n e.currentTarget.parentElement.removeAttribute('open' , '');\n }else{\n e.currentTarget.parentElement.setAttribute('open', '');\n }\n break;\n\n default:\n break;\n }\n }\n\n const toggleFieldset = (e) => {\n if(e.currentTarget.parentElement.hasAttribute('open')){\n e.currentTarget.parentElement.removeAttribute('open' , '');\n }else{\n e.currentTarget.parentElement.setAttribute('open', '');\n }\n }\n\n const fieldsetAction = (e) => {\n //If Next Section Button is the current Target Event\n if(e.currentTarget.classList.contains('eval-next')){\n const dataCurrent = e.currentTarget.getAttribute('data-current');\n const dataNext = e.currentTarget.getAttribute('data-next');\n const evalFocusableElements = ['input' , 'button' , '[href]', 'select', 'textarea', '[tabindex]:not([tabindex=\"-1\"])'];\n const currentFieldset = evalForm.querySelector('.umbraco-forms-fieldset[data-id=\"' + dataCurrent + '\"]');\n const nextFieldset = evalForm.querySelector('.umbraco-forms-fieldset[data-id=\"' + dataNext + '\"]');\n let firstFocusableEvalElement = nextFieldset.querySelectorAll(evalFocusableElements)[0];\n currentFieldset.removeAttribute('open');\n nextFieldset.setAttribute('open' , '');\n nextFieldset.scrollIntoView({\n behavior: \"auto\"\n });\n firstFocusableEvalElement.focus();\n } \n //If Prev Section Button is the current Target Event\n else if(e.currentTarget.classList.contains('eval-prev')){\n const dataCurrent = e.currentTarget.getAttribute('data-current');\n const dataPrev = e.currentTarget.getAttribute('data-prev');\n const evalFocusableElements = ['input' , 'button' , '[href]', 'select', 'textarea', '[tabindex]:not([tabindex=\"-1\"])'];\n const currentFieldset = evalForm.querySelector('.umbraco-forms-fieldset[data-id=\"' + dataCurrent + '\"]');\n const prevFieldset = evalForm.querySelector('.umbraco-forms-fieldset[data-id=\"' + dataPrev + '\"]');\n let firstFocusableEvalElement = prevFieldset.querySelectorAll(evalFocusableElements)[0];\n currentFieldset.removeAttribute('open');\n prevFieldset.setAttribute('open' , '');\n prevFieldset.scrollIntoView({\n behavior: \"auto\"\n });\n firstFocusableEvalElement.focus();\n }\n }\n\n const fieldsetActionButtons = evalForm.querySelectorAll('.evaluation__form__controls a');\n\n for (let i = 0; i < fieldsetActionButtons.length; i++) {\n fieldsetActionButtons[i].addEventListener('click', fieldsetAction, false);\n }\n\n const umbracoFieldsetHeaders = evalForm.querySelectorAll('.umbraco-forms-fieldset > header');\n\n for (let i = 0; i < umbracoFieldsetHeaders.length; i++) {\n umbracoFieldsetHeaders[i].setAttribute('tabindex', '0');\n umbracoFieldsetHeaders[i].parentElement.setAttribute('data-id' , i);\n\n const prevButton = umbracoFieldsetHeaders[i].parentElement.querySelector('.eval-prev');\n if (typeof(prevButton) != 'undefined' && prevButton != null) {\n prevButton.setAttribute('data-prev' , i - 1);\n prevButton.setAttribute('data-current' , i);\n }\n\n const nextButton = umbracoFieldsetHeaders[i].parentElement.querySelector('.eval-next');\n if (typeof(nextButton) != 'undefined' && nextButton != null) {\n nextButton.setAttribute('data-next' , i + 1);\n nextButton.setAttribute('data-current' , i);\n }\n\n umbracoFieldsetHeaders[i].addEventListener('click', toggleFieldset, false);\n umbracoFieldsetHeaders[i].addEventListener('keydown', fieldsetToggleOnKeydown, false);\n }\n\n evalForm.arrive('.field-validation-error', { fireOnAttributesModification: true, existing: true }, function() {\n this.closest('.umbraco-forms-fieldset').setAttribute('open', '');\n });\n \n}","const videoActionSlides = document.querySelectorAll('#homepage-content-header .swiper-slide');\n\nvideoActionSlides.forEach(function(videoActionSlide) {\n const headerFigure = videoActionSlide.querySelector('.header-visual-content');\n const videoActionButton = videoActionSlide.querySelector('.video-action');\n const returnButton = videoActionSlide.querySelector('.return-button');\n const videoURL = headerFigure.getAttribute('data-video-url');\n const mobileVideoURL = headerFigure.getAttribute('data-mobilevideo-url');\n\n try {\n const videoDomain = (new URL(videoURL));\n const videoDomainHostname = videoDomain.hostname.replace('www.','');\n\n let responseJSON = '';\n\n let urlWithDimensions = window.innerWidth < 768 ? `${mobileVideoURL}&width=700&height=350` : `${videoURL}&width=1920&height=1080`;\n let requestURL = 'https://vimeo.com/api/oembed.json?url=' + urlWithDimensions;\n\n if(videoDomainHostname == 'vimeo.com' && videoActionButton != null){\n videoActionButton.addEventListener(\"click\", function() {\n if(videoActionSlide.classList.contains('generated')){\n videoActionSlide.classList.add('open');\n }else{\n const loadVimeoResponse = async(requestURL) => {\n try {\n const res = await fetch(requestURL);\n responseJSON = await res.json();\n let vimeoHTML = responseJSON.html;\n headerFigure.insertAdjacentHTML('beforeend' , vimeoHTML);\n \n } catch (err) {\n console.error(err);\n }\n };\n loadVimeoResponse(requestURL);\n //play vimeo video\n videoActionSlide.classList.add('generated' , 'open' , 'iframe');\n }\n });\n returnButton.addEventListener(\"click\", function() {\n if(videoActionSlide.classList.contains('open')){\n videoActionSlide.classList.remove('open');\n //pause vimeo video\n } \n });\n }else{\n videoActionButton.addEventListener(\"click\", function() {\n if(videoActionSlide.classList.contains('generated')){\n videoActionSlide.classList.add('open');\n const videoElement = headerFigure.querySelector('.header-video');\n videoElement.play();\n } else{\n const videoElement = document.createElement(\"video\");\n videoElement.classList.add('header-video');\n videoElement.setAttribute(\"autoplay\", \"autoplay\");\n videoElement.setAttribute(\"loop\", \"loop\");\n videoElement.setAttribute(\"muted\", \"muted\");\n videoElement.setAttribute(\"playsinline\", \"playsinline\");\n videoElement.setAttribute(\"preload\", \"preload\");\n videoElement.setAttribute(\"controls\", \"controls\");\n videoElement.setAttribute(\"src\", videoURL);\n headerFigure.appendChild(videoElement);\n \n videoActionSlide.classList.add('generated' , 'open');\n }\n });\n\n returnButton.addEventListener(\"click\", function() {\n if(videoActionSlide.classList.contains('open')){\n const videoElement = headerFigure.querySelector('.header-video');\n videoElement.pause();\n videoActionSlide.classList.remove('open');\n } \n });\n }\n }\n catch(err) {\n console.log('Do Nothing, LeBron...');\n }\n});","function initMachineryCards(){\n\n MicroModal.init({\n awaitOpenAnimation: true,\n awaitCloseAnimation: true\n });\n \n // Function that builds Types Sliders\n const buildImgSlider = sliderElm => {\n const sliderIdentifier = sliderElm.dataset.id;\n return new Swiper(`.img-slider[data-id=\"${sliderIdentifier}\"]`, {\n slidesPerView: 1,\n centeredSlides: false,\n spaceBetween: 20,\n a11y: true,\n loop: false,\n grabCursor: true,\n watchSlidesProgress: true,\n \n navigation: {\n nextEl: `.button-next-${sliderIdentifier}`,\n prevEl: `.button-prev-${sliderIdentifier}`,\n },\n \n preloadImages: false,\n lazy: true,\n \n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n breakpoints: {\n 1024: {\n slidesPerView: 2,\n },\n },\n });\n }\n \n // Get all of the types sliders on the page\n const allImgSliders = document.querySelectorAll('.img-slider');\n \n // Loop over all of the fetched sliders and apply Swiper on each one.\n allImgSliders.forEach(slider => buildImgSlider(slider));\n\n let productEnquire = document.querySelectorAll('.view-enquire')\n for (var i = 0; i < productEnquire.length; i++) {\n productEnquire[i].addEventListener('click', contactFill, false);\n }\n};\n\ninitMachineryCards();","let mapMarkers = [];\nlet mapWindows = [];\n\nlet map;\nfunction initMap() {\n\n map = new google.maps.Map(document.getElementById(\"map\"), {\n center: {\n lat: 55.86634446616404,\n lng: -4.2180701859773\n },\n zoom: 7,\n streetViewControl: false,\n mapTypeControl: false,\n styles: [{\n \"elementType\": \"geometry\",\n \"stylers\": [{\n \"color\": \"#333333\"\n }]\n }, {\n \"elementType\": \"labels.icon\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#757575\"\n }]\n }, {\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [{\n \"color\": \"#212121\"\n }]\n }, {\n \"featureType\": \"administrative\",\n \"elementType\": \"geometry\",\n \"stylers\": [{\n \"color\": \"#757575\"\n }]\n }, {\n \"featureType\": \"administrative.country\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#9e9e9e\"\n }]\n }, {\n \"featureType\": \"administrative.land_parcel\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"featureType\": \"administrative.locality\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#bdbdbd\"\n }]\n }, {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#757575\"\n }]\n }, {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry\",\n \"stylers\": [{\n \"color\": \"#181818\"\n }]\n }, {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#616161\"\n }]\n }, {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [{\n \"color\": \"#1b1b1b\"\n }]\n }, {\n \"featureType\": \"road\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [{\n \"color\": \"#2c2c2c\"\n }]\n }, {\n \"featureType\": \"road\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#8a8a8a\"\n }]\n }, {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"geometry\",\n \"stylers\": [{\n \"color\": \"#373737\"\n }]\n }, {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry\",\n \"stylers\": [{\n \"color\": \"#3c3c3c\"\n }]\n }, {\n \"featureType\": \"road.highway.controlled_access\",\n \"elementType\": \"geometry\",\n \"stylers\": [{\n \"color\": \"#4e4e4e\"\n }]\n }, {\n \"featureType\": \"road.local\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#616161\"\n }]\n }, {\n \"featureType\": \"transit\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#757575\"\n }]\n }, {\n \"featureType\": \"water\",\n \"elementType\": \"geometry\",\n \"stylers\": [{\n \"color\": \"#111111\"\n }]\n }, {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#202020\"\n }]\n }],\n });\n\n const iconBase = \"assets/img/svg/icons/\";\n\n const icons = {\n info: {\n icon: iconBase + \"indicator.svg\",\n },\n current: {\n icon: iconBase + \"currentindicator.svg\",\n }\n };\n\n const GMAPList = [];\n const GMAPFeatures = [];\n\n const loadGMAPitems = async(url) => {\n const jsonres = await fetch(url);\n jsonList = await jsonres.json();\n createFeatures(jsonList);\n }\n\n const createFeatures = (GMAPItems) => {\n const features = GMAPItems.map((GMAPItem) => {\n let lat = parseFloat(GMAPItem.lat);\n let lng = parseFloat(GMAPItem.lng);\n let feature = {\n \"is_location\": GMAPItem.location,\n \"location_slug\": GMAPItem.slug,\n \"position\": new google.maps.LatLng(lat, lng),\n \"type\": GMAPItem.type,\n \"content\": `\n

${GMAPItem.title}

\n
\n Tel:\n ${GMAPItem.tel}\n
\n `\n };\n GMAPFeatures.push(feature);\n });\n\n let prev_infowindow = false; \n let prev_marker = false; \n\n for (let i = 0; i < GMAPFeatures.length; i++) {\n if(GMAPFeatures[i].is_location && GMAPFeatures[i].is_location.length){\n const marker = new google.maps.Marker({\n marker_slug: GMAPFeatures[i].location_slug,\n position: GMAPFeatures[i].position,\n icon: icons.info.icon,\n map: map,\n });\n\n mapMarkers.push(marker);\n\n const infowindow = new google.maps.InfoWindow({\n content: GMAPFeatures[i].content,\n window_slug: GMAPFeatures[i].location_slug,\n });\n\n mapWindows.push(infowindow);\n\n marker.addListener(\"click\", () => {\n for (i in mapMarkers){\n mapMarkers[i].setIcon(icons.info.icon);\n }\n marker.setIcon(icons.current.icon);\n map.setCenter(marker.getPosition())\n if( prev_infowindow ) {\n prev_infowindow.close();\n };\n\n if( prev_marker ) {\n prev_marker.setIcon(icons.info.icon);\n };\n\n prev_infowindow = infowindow;\n prev_marker = marker;\n\n infowindow.open({\n anchor: marker,\n map,\n shouldFocus: false,\n });\n\n google.maps.event.addListener(map, 'click', function() {\n infowindow.close();\n marker.open = false;\n });\n });\n }\n }\n };\n loadGMAPitems(mapJSONUrl);\n}\n\n\nfunction initPrimary(event) {\n const primaryDepotBox = document.querySelector('.depot-contact-box.primary');\n const depotSlug = event.currentTarget.getAttribute('data-slug');\n\n const updatePrimaryJSON = async(mapJSONUrl , depotSlug) => {\n const jsonres = await fetch(mapJSONUrl);\n jsonList = await jsonres.json();\n updatePrimaryDepot(jsonList , depotSlug);\n }\n \n changeMarker(depotSlug);\n changeWindow(depotSlug);\n updatePrimaryJSON(mapJSONUrl , depotSlug);\n\n if(event.currentTarget.classList.contains('buttonClick')){\n primaryDepotBox.scrollIntoView({\n behavior: \"auto\"\n });\n }\n\n}\n\nfunction changeMarker(marker_slug){\n for (let i = 0; i < mapMarkers.length; i++){\n mapMarkers[i].setIcon('assets/img/svg/icons/indicator.svg');\n if(mapMarkers[i].marker_slug == marker_slug){\n mapMarkers[i].setIcon('assets/img/svg/icons/currentindicator.svg');\n map.setCenter(mapMarkers[i].getPosition())\n }\n }\n}\n\nfunction changeWindow(window_slug){\n for (let i = 0; i < mapWindows.length; i++){\n if(mapWindows[i].window_slug == window_slug){\n mapWindows[i].close();\n }\n }\n}\n\nfunction updatePrimaryDepot(JSONList , depotSlug) {\n const primaryDepotBox = document.querySelector('.depot-contact-box');\n for (let i = 0; i < JSONList.length; i++) {\n if(JSONList[i].slug == depotSlug){\n const primaryDepotTitle = primaryDepotBox.querySelector('.depot-title');\n const primaryDepotTel = primaryDepotBox.querySelector('.depot-tel-value');\n const primaryDepotEmail = primaryDepotBox.querySelector('.depot-email-value');\n const primaryDepotAddress = primaryDepotBox.querySelector('.depot-address-value');\n const primaryDepotOpeningHours = primaryDepotBox.querySelector('.depot-opening-hours');\n\n const openingHoursVals = [];\n\n let hasFriday = false;\n\n primaryDepotTitle.textContent = JSONList[i].title;\n primaryDepotTel.textContent = JSONList[i].tel;\n primaryDepotEmail.textContent = JSONList[i].email;\n primaryDepotAddress.textContent = JSONList[i].address;\n\n if(JSONList[i].opening_hours.monfri){\n openingHoursVals.push({'monfri':JSONList[i].opening_hours.monfri});\n }\n if(JSONList[i].opening_hours.fri){\n hasFriday = true;\n openingHoursVals.push({'Fri':JSONList[i].opening_hours.monfri});\n }\n if(JSONList[i].opening_hours.sat){\n openingHoursVals.push({'Sat':JSONList[i].opening_hours.sat});\n }\n if(JSONList[i].opening_hours.sun){\n openingHoursVals.push({'Sun':JSONList[i].opening_hours.sun});\n }\n\n let depotOpenHoursHTML = '';\n\n for (let y = 0; y < openingHoursVals.length; y++) {\n let dateOfWeek = Object.keys(openingHoursVals[y])[0];\n let hoursOfDate = Object.values(openingHoursVals[y])[0];\n let labelValue\n if(dateOfWeek == 'monfri' && hasFriday == true){\n labelValue = 'Mon - Thur';\n }else if(dateOfWeek == 'monfri' && hasFriday != true){\n labelValue = 'Mon - Fri';\n }else{\n labelValue = dateOfWeek;\n }\n \n let depotItemHTML = `\n
\n \n ${labelValue}:\n ${hoursOfDate}\n
\n `;\n\n depotOpenHoursHTML = depotOpenHoursHTML + depotItemHTML;\n }\n primaryDepotOpeningHours.innerHTML = '';\n primaryDepotOpeningHours.insertAdjacentHTML(\n 'beforeend',\n depotOpenHoursHTML,\n );\n }\n }\n\n const depotList = document.querySelectorAll('.depot-slide[data-primary]');\n for (let i = 0; i < depotList.length; i++) {\n depotList[i].setAttribute('data-primary' , '')\n }\n\n const primaryDepot = document.querySelector('.depot-slide[data-slug=\"' + depotSlug + '\"]');\n primaryDepot.setAttribute('data-primary' , 'true');\n}\n\n\ndocument.arrive('.depot-location', { existing: true }, function() {\n const depotButtons = document.querySelectorAll('.depot-location');\n for (let i = 0; i < depotButtons.length; i++) {\n depotButtons[i].addEventListener('click', (event) => {\n initPrimary(event);\n const primaryDepotBox = document.querySelector('.depot-contact-box');\n primaryDepotBox.scrollIntoView({\n behavior: \"auto\"\n });\n });\n }\n});\n","let timer;\n\nfunction openSubMenu(menuItem) {\n const sub_menu = menuItem.querySelector('.sub-menu');\n const sub_menu_toggle = menuItem.querySelector('.dropdown-toggle');\n\n menuItem.classList.add('toggled');\n\n sub_menu.setAttribute('aria-expanded', \"true\");\n sub_menu.classList.add('toggled');\n\n sub_menu_toggle.setAttribute('aria-expanded', \"true\");\n sub_menu_toggle.classList.add('toggled');\n}\n\nfunction closeSubMenu(menuItem) {\n const sub_menu = menuItem.querySelector('.sub-menu');\n const sub_menu_toggle = menuItem.querySelector('.dropdown-toggle');\n\n menuItem.classList.remove('toggled');\n\n sub_menu.setAttribute('aria-expanded', \"false\");\n sub_menu.classList.remove('toggled');\n\n sub_menu_toggle.setAttribute('aria-expanded', \"false\");\n sub_menu_toggle.classList.remove('toggled');\n}\n\nfunction toggleSubMenu(e) {\n e.stopPropagation();\n const menuItem = e.currentTarget.parentNode;\n const subMenu = menuItem.querySelector('.sub-menu');\n const toggled = document.querySelectorAll('#site-menu .toggled');\n\n if(menuItem.classList.contains('toggled')){\n menuItem.classList.remove('toggled');\n }else{\n for (let i = 0; i < toggled.length; i++) {\n toggled[i].classList.remove('toggled');\n }\n menuItem.classList.add('toggled');\n }\n\n if(subMenu.classList.contains('toggled')){ //If the menu is already toggled...\n e.target.classList.remove('toggled');\n e.target.setAttribute('aria-expanded', \"false\");\n subMenu.classList.remove('toggled');\n }else{ // If the submenu isnt toggled...\n for (let i = 0; i < toggled.length; i++) {\n toggled[i].classList.remove('toggled');\n }\n e.target.classList.add('toggled');\n e.target.setAttribute('aria-expanded', \"true\");\n subMenu.classList.add('toggled');\n }\n}\n\nfunction mouseoverToggle(e) {\n \n const menuItem = this;\n const toggled = document.querySelectorAll('#site-menu .toggled');\n for (let i = 0; i < toggled.length; i++) {\n toggled[i].classList.remove('toggled');\n }\n openSubMenu(menuItem);\n clearTimeout(timer); //reset the timeout used below on mouseout\n \n}\n\nfunction mouseoutToggle(e) {\n const menuItem = this;\n timer = setTimeout(function(){ //Set a timeout to accomodate any mouse inaccuracies from users\n closeSubMenu(menuItem);\n const toggled = document.querySelectorAll('#site-menu .toggled');\n for (let i = 0; i < toggled.length; i++) {\n toggled[i].classList.remove('toggled');\n }\n }, 650);\n}\n\n\nconst menuItemsWithChildren = document.querySelectorAll('.menu-item.has-children');\n\nfor (let i = 0; i < menuItemsWithChildren.length; i++) {\n const dropdownToggle = menuItemsWithChildren[i].querySelector('.dropdown-toggle');\n dropdownToggle.addEventListener(\"click\", toggleSubMenu, false);\n\n const highlightFocusable = menuItemsWithChildren[i].querySelectorAll('a');\n\n const lastFocusableEl = highlightFocusable[highlightFocusable.length - 1];\n\n lastFocusableEl.addEventListener('keydown', function handleTabOff(e) {\n if (!e.shiftKey && e.keyCode === 9) {\n closeSubMenu(menuItemsWithChildren[i]);\n }\n });\n\n \n if (window.innerWidth > 950){\n menuItemsWithChildren[i].addEventListener(\"mouseover\", mouseoverToggle, false);\n menuItemsWithChildren[i].addEventListener(\"mouseout\", mouseoutToggle, false);\n }\n window.addEventListener(\"resize\", function() {\n if (window.innerWidth > 950){\n menuItemsWithChildren[i].addEventListener(\"mouseover\", mouseoverToggle, false);\n menuItemsWithChildren[i].addEventListener(\"mouseout\", mouseoutToggle, false);\n } else if (window.innerWidth < 950){\n menuItemsWithChildren[i].removeEventListener(\"mouseover\", mouseoverToggle, false);\n menuItemsWithChildren[i].removeEventListener(\"mouseout\", mouseoutToggle, false);\n }\n });\n}\n\n//Listen for clicks outside of the toggled submenu, and close the menu if found\ndocument.addEventListener('click', function handleClickOutsideBox(event) {\n const openMenuItem = document.querySelector('.menu-item.toggled');\n if (typeof(openMenuItem) != 'undefined' && openMenuItem != null) {\n if (!openMenuItem.contains(event.target)) {\n openMenuItem.querySelector('.dropdown-toggle.toggled').setAttribute('aria-expanded', \"false\");\n openMenuItem.querySelector('.dropdown-toggle.toggled').classList.remove('toggled');\n openMenuItem.classList.remove('toggled');\n openMenuItem.querySelector('.sub-menu').classList.remove('toggled');\n }\n }\n});\n\n\nconst mobileMenuToggle = document.querySelector('#mobile-menu-toggle');\n\nmobileMenuToggle.addEventListener(\"click\" , openMobileMenu , false);\n\n\nfunction openMobileMenu(event) {\n let docBody = document.body;\n let toggle = document.querySelector('#mobile-menu-toggle');\n let siteMenu = document.querySelector('#site-menu');\n let toggleIcon = toggle.querySelector('i');\n docBody.classList.add('overflow-hidden');\n siteMenu.classList.add('toggled' , 'is-mobile');\n toggleIcon.classList.remove('sj--icon-list');\n toggleIcon.classList.add('sj--icon-x');\n toggle.removeEventListener(\"click\" , openMobileMenu , false);\n toggle.addEventListener(\"click\" , closeMobileMenu , false);\n}\n\nfunction closeMobileMenu(event) {\n let docBody = document.body;\n let toggle = document.querySelector('#mobile-menu-toggle');\n let siteMenu = document.querySelector('#site-menu');\n let toggleIcon = toggle.querySelector('i');\n docBody.classList.remove('overflow-hidden');\n siteMenu.classList.remove('toggled' , 'is-mobile');\n toggleIcon.classList.remove('sj--icon-x');\n toggleIcon.classList.add('sj--icon-list');\n toggle.removeEventListener(\"click\" , closeMobileMenu , false);\n toggle.addEventListener(\"click\" , openMobileMenu , false);\n}\n\n\nfunction closeMainMenu() {\n let docBody = document.body;\n let siteMenu = document.querySelector('#site-menu');\n let toggle = document.querySelector('#mobile-menu-toggle');\n let toggleIcon = toggle.querySelector('i');\n docBody.classList.remove('overflow-hidden');\n siteMenu.classList.remove('toggled');\n toggleIcon.classList.remove('sj--icon-x');\n toggleIcon.classList.add('sj--icon-list');\n toggle.removeEventListener(\"click\" , closeMobileMenu , false);\n toggle.addEventListener(\"click\" , openMobileMenu , false);\n}\n\n\nconst siteMenu = document.querySelector('#site-menu');\nconst menuFocusableElements = ['input' , 'button' , '[href]', 'select', 'textarea', '[tabindex]:not([tabindex=\"-1\"])'];\nlet firstFocusableMenuElement = siteMenu.querySelectorAll(menuFocusableElements)[0];\nlet focusableMenuContent = siteMenu.querySelectorAll(menuFocusableElements);\nlet lastFocusableMenuElement = siteMenu[focusableMenuContent.length - 1];\n\ndocument.addEventListener('keydown', function(e) {\n if(siteMenu.classList.contains('toggled')){\n let isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n\n let isEscPressed = e.key === 'Escape' || e.keyCode === 27;\n\n if(isEscPressed){\n closeMobileMenu();\n }\n \n if (!isTabPressed) {\n return;\n }\n \n if (e.shiftKey) { // if shift key pressed for shift + tab combination\n if (document.activeElement === firstFocusableMenuElement) {\n mobileMenuToggle.focus();\n e.preventDefault();\n }\n } else { // if tab key is pressed\n if (document.activeElement === mobileMenuToggle) {\n firstFocusableMenuElement.focus();\n e.preventDefault();\n }\n }\n }\n});\n\n\nwindow.addEventListener(\"resize\", function() {\n if (window.innerWidth > 950){\n closeMobileMenu();\n } else if (window.innerWidth < 950){\n closeMobileMenu();\n }\n});","function indexInParent(node) {\n var children = node.parentNode.childNodes;\n var num = 0;\n for (var i=0; i {\n openSiteSearchInitiator = e.currentTarget;\n let siteSearch = document.querySelector('.search-container');\n let docBody = document.body;\n siteSearch.classList.add('is-open');\n docBody.classList.add('overflow-hidden');\n let firstfocusableElement = siteSearch.querySelector('.close-search');\n firstfocusableElement.focus()\n}\n\nconst closeSiteSearch = (e) => {\n let siteSearch = document.querySelector('.search-container');\n let docBody = document.body;\n siteSearch.classList.remove('is-open');\n docBody.classList.remove('overflow-hidden');\n openSiteSearchInitiator.focus();\n}\n\nlet searchBg = document.querySelector('.search-bg');\nif (typeof(searchBg) != 'undefined' && searchBg != null) {\n searchBg.addEventListener('click', closeSiteSearch, false);\n}\n\nlet closeSearchButton = document.querySelector('.close-search');\nif (typeof(closeSearchButton) != 'undefined' && closeSearchButton != null) {\n closeSearchButton.addEventListener('click', closeSiteSearch, false);\n}\n\nlet openSearchButtons = document.querySelectorAll('.open-site-search');\nfor (var i = 0, l = openSearchButtons.length; i < l; i++) {\n openSearchButtons[i].addEventListener('click', closeMainMenu, false);\n openSearchButtons[i].addEventListener('click', openSiteSearch, false);\n}\n\ndocument.addEventListener('keydown', function(e) {\n if(siteSearch.classList.contains('is-open')){\n let isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n\n let isEscPressed = e.key === 'Escape' || e.keyCode === 27;\n\n if(isEscPressed){\n closeSiteSearch();\n }\n \n if (!isTabPressed) {\n return;\n }\n \n if (e.shiftKey) { // if shift key pressed for shift + tab combination\n if (document.activeElement === firstFocusableSearchElement) {\n lastFocusableSearchElement.focus(); // add focus for the last focusable element\n e.preventDefault();\n }\n } else { // if tab key is pressed\n if (document.activeElement === lastFocusableSearchElement) { // if focused has reached to last focusable element then focus first focusable element after pressing tab\n firstFocusableSearchElement.focus(); // add focus for the first focusable element\n e.preventDefault();\n }\n }\n }\n});","let searchBar = document.getElementById('content-search');\nlet doSearch = document.getElementById('do-search');\nlet clearSearch = document.getElementById('clear-search');\nlet resultContainer = document.getElementById('result-container');\n\nlet jsonList = [];\nconst loadjsonListItems = async(JSONurl) => {\n try {\n const res = await fetch(JSONurl);\n jsonList = await res.json();\n displayList(jsonList);\n\n //For the depot Finder List\n const swiper = new Swiper('.depot-swiper', {\n direction: 'vertical',\n loop: false,\n slidesPerView: 'auto',\n a11y: true,\n grabCursor: true,\n mousewheel: true,\n freeMode: {\n enabled: true,\n sticky: true,\n },\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n\n navigation: {\n nextEl: `.button-next-depot-swiper`,\n prevEl: `.button-prev-depot-swiper`,\n },\n\n });\n\n } catch (err) {\n console.error(err);\n }\n};\n\nif (typeof(doSearch) != 'undefined' && doSearch != null) {\n doSearch.onclick = function() {\n resultContainer.scrollIntoView({\n behavior: \"auto\"\n });\n };\n}\n\nif (typeof(clearSearch) != 'undefined' && clearSearch != null) {\n clearSearch.onclick = function() {\n searchBar.value = '';\n displayList(jsonList);\n this.style.display = \"none\";\n };\n}\n\nif (typeof(searchBar) != 'undefined' && searchBar != null) {\n searchBar.addEventListener('keyup', (e) => {\n\n const searchString = e.target.value.toLowerCase();\n\n if (e.key === 'Enter') {\n resultContainer.scrollIntoView({\n behavior: \"auto\"\n });\n return;\n }\n\n\n if (e.target.value) {\n clearSearch.style.display = \"inline-flex\";\n } else {\n clearSearch.style.display = \"none\";\n }\n\n\n setTimeout(() => {\n if (!resultContainer.hasChildNodes()) {\n const noResults = document.createElement(\"p\");\n noResults.classList.add('no-results');\n noResults.textContent = 'Sorry, no results match your search...';\n resultContainer.appendChild(noResults);\n }\n }, 100);\n\n\n\n const filteredList = jsonList.filter((jsonListItem) => {\n let searchableContent = '';\n searchableContent += jsonListItem.title.toLowerCase();\n searchableContent += ' ';\n if(jsonListItem.children){\n for (var i = 0, l = jsonListItem.children.length; i < l; i++) {\n searchableContent += jsonListItem.children[i].title.toLowerCase();\n searchableContent += ' ';\n }\n }\n return (\n searchableContent.includes(searchString)\n );\n });\n\n displayList(filteredList);\n\n });\n}\n\n\nconst displayList = (jsonListItems) => {\n const htmlString = jsonListItems.map(\n (jsonListItem) => {\n let html = `Empty`;\n if(jsonListItem.content_type == 'depot'){\n html = `\n
\n
\n ${jsonListItem.title}\n
\n
\n ${jsonListItem.tel}\n
\n \n
\n `;\n }\n else if(jsonListItem.content_type == 'machinery'){\n\n if(jsonListItem.children && jsonListItem.children.length){\n let targetvalue = '';\n if(jsonListItem.isexternal == true){\n targetvalue = '_blank'\n }\n const openTags = `\n
\n
\n
\n
\n \n
\n
\n

${jsonListItem.title}

\n
\n \n
\n
\n
\n
\n
\n \n

View ${jsonListItem.singular_name} Types

\n
\n
\n
`; \n \n let children = '';\n\n for (var i = 0, l = jsonListItem.children.length; i < l; i++) {\n let childtargetvalue = '';\n if(jsonListItem.children[i].isexternal == true){\n childtargetvalue = '_blank'\n }\n const childCard = `\n \n
\n \n
\n
${jsonListItem.children[i].title}
\n \n
\n `;\n children += childCard;\n }\n \n const endTags = `\n
\n
\n
\n
\n
\n
\n
`;\n\n html = openTags + children + endTags;\n } else {\n let targetvalue = '';\n if(jsonListItem.isexternal == true){\n targetvalue = '_blank'\n }\n html = `\n
\n \n
\n `;\n }\n } else if(jsonListItem.content_type == 'contact'){\n html = `\n
\n

${jsonListItem.title}

\n
\n
\n
\n \n ${jsonListItem.tel}\n
\n \n
\n \n ${jsonListItem.email}\n
\n \n
\n \n ${jsonListItem.address}\n
\n\n
\n
\n \n Mon - Fri:\n ${jsonListItem.opening_hours.monfri}\n
\n
\n \n Sat:\n ${jsonListItem.opening_hours.sat}\n
\n
\n \n Sun:\n ${jsonListItem.opening_hours.sun}\n
\n
\n
\n
\n `;\n }\n return html;\n }\n ).join('');\n if (typeof(resultContainer) != 'undefined' && resultContainer != null) {\n resultContainer.innerHTML = htmlString;\n }\n};","// Function that builds News Sliders\nconst buildHomepageheaderSlider = sliderElm => {\n const sliderIdentifier = sliderElm.dataset.id;\n return new Swiper(`.homepage-header-swiper[data-id=\"${sliderIdentifier}\"]`, {\n slidesPerView: 1,\n spaceBetween: 0,\n centeredSlides: true,\n a11y: true,\n loop: false,\n grabCursor: true,\n watchSlidesProgress: true,\n watchOverflow: true,\n\n preloadImages: false,\n lazy: true,\n\n navigation: {\n nextEl: `.button-next-${sliderIdentifier}`,\n prevEl: `.button-prev-${sliderIdentifier}`,\n },\n\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n });\n}\n\n// Get all of the news sliders on the page\nconst allHomepageheaderSliders = document.querySelectorAll('.homepage-header-swiper');\n\n// Loop over all of the fetched sliders and apply Swiper on each one.\nallHomepageheaderSliders.forEach(slider => buildHomepageheaderSlider(slider));\n\n\n\n\n// Function that builds News Sliders\nconst buildNewsSlider = sliderElm => {\n const sliderIdentifier = sliderElm.dataset.id;\n return new Swiper(`.news-swiper[data-id=\"${sliderIdentifier}\"]`, {\n slidesPerView: 1,\n spaceBetween: 17,\n centeredSlides: true,\n a11y: true,\n loop: true,\n grabCursor: true,\n watchSlidesProgress: true,\n\n preloadImages: false,\n lazy: true,\n\n navigation: {\n nextEl: `.button-next-${sliderIdentifier}`,\n prevEl: `.button-prev-${sliderIdentifier}`,\n },\n\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n\n breakpoints: {\n 600: {\n slidesPerView: 2,\n centeredSlides: false,\n },\n 1024: {\n slidesPerView: 3,\n centeredSlides: false,\n },\n 1420: {\n slidesPerView: 'auto',\n centeredSlides: false,\n },\n },\n });\n}\n\n// Get all of the news sliders on the page\nconst allNewsSliders = document.querySelectorAll('.news-swiper');\n\n// Loop over all of the fetched sliders and apply Swiper on each one.\nallNewsSliders.forEach(slider => buildNewsSlider(slider));\n\n\n// Function that builds Types Sliders\nconst buildTypesSlider = sliderElm => {\n const sliderIdentifier = sliderElm.dataset.id;\n return new Swiper(`.children-types-swiper[data-id=\"${sliderIdentifier}\"]`, {\n slidesPerView: \"auto\",\n centeredSlides: false,\n spaceBetween: 17,\n a11y: true,\n loop: false,\n grabCursor: true,\n watchSlidesProgress: true,\n\n preloadImages: false,\n lazy: true,\n\n navigation: {\n nextEl: `.button-next-${sliderIdentifier}`,\n prevEl: `.button-prev-${sliderIdentifier}`,\n },\n\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n });\n}\n\n// Get all of the types sliders on the page\nconst allTypesSliders = document.querySelectorAll('.children-types-swiper');\n\n// Loop over all of the fetched sliders and apply Swiper on each one.\nallTypesSliders.forEach(slider => buildTypesSlider(slider));\n\n\n// Function that builds Evaluation image Sliders\nconst buildEvalSlider = sliderElm => {\n const sliderIdentifier = sliderElm.dataset.id;\n const externalSlideLinks = document.querySelectorAll('.img-example-link');\n let evalSwiper = new Swiper(`.eval-swiper[data-id=\"${sliderIdentifier}\"]`, {\n slidesPerView: 1,\n centeredSlides: false,\n spaceBetween: 5,\n a11y: true,\n loop: false,\n grabCursor: true,\n watchSlidesProgress: true,\n\n preloadImages: false,\n lazy: true,\n\n navigation: {\n nextEl: `.button-next-${sliderIdentifier}`,\n prevEl: `.button-prev-${sliderIdentifier}`,\n },\n\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n\n breakpoints: {\n 600: {\n slidesPerView: 2,\n },\n 1024: {\n slidesPerView: 3,\n },\n },\n });\n\n const goToSlide = (e) => {\n for (var i = 0; i < evalSwiper.slides.length; i++) {\n evalSwiper.slides[i].classList.remove('highlighted');\n }\n \n const slideTargetIndex = e.currentTarget.getAttribute('data-slide');\n evalSwiper.slideTo(slideTargetIndex);\n evalSwiper.slides[slideTargetIndex].classList.add('highlighted');\n let evalSwiperElement = document.querySelector('.eval-swiper');\n evalSwiperElement.scrollIntoView(true);\n\n setTimeout(function() {\n evalSwiper.slides[slideTargetIndex].classList.remove('highlighted');\n }, 5000);\n }\n\n for (var i = 0; i < externalSlideLinks.length; i++) {\n externalSlideLinks[i].addEventListener('click', goToSlide, false);\n }\n\n return evalSwiper;\n}\n\n// Get all of the evaluation image sliders on the page\nconst allEvalSliders = document.querySelectorAll('.eval-swiper');\n\n// Loop over all of the fetched sliders and apply Swiper on each one.\nallEvalSliders.forEach(slider => buildEvalSlider(slider));\n\n\n\n\n// Function that builds Evaluation image Sliders with Umbraco Markup\nconst buildUmbracoEvalSlider = sliderElm => {\n const sliderIdentifier = sliderElm;\n const externalSlideLinks = document.querySelectorAll('.umbraco-forms-field-wrapper .file__upload');\n let evalSwiper = new Swiper(`#slider`, {\n slidesPerView: 1,\n centeredSlides: false,\n spaceBetween: 5,\n a11y: true,\n loop: false,\n grabCursor: true,\n watchSlidesProgress: true,\n slideClass: 'evaluation__slider__item',\n\n preloadImages: false,\n lazy: true,\n\n navigation: {\n nextEl: `#eval-slider-next`,\n prevEl: `#eval-slider-prev`,\n },\n\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n\n breakpoints: {\n 600: {\n slidesPerView: 2,\n },\n 1024: {\n slidesPerView: 3,\n },\n },\n });\n\n\n\n const goToSlide = (e) => {\n e.preventDefault();\n for (var i = 0; i < evalSwiper.slides.length; i++) {\n evalSwiper.slides[i].classList.remove('highlighted');\n }\n \n const slideTargetIndex = e.currentTarget.getAttribute('data-slide');\n evalSwiper.slideTo(slideTargetIndex);\n evalSwiper.slides[slideTargetIndex].classList.add('highlighted');\n let evalSwiperElement = document.querySelector('.imageslider');\n evalSwiperElement.scrollIntoView(true);\n\n setTimeout(function() {\n evalSwiper.slides[slideTargetIndex].classList.remove('highlighted');\n }, 5000);\n }\n\n for (let i = 0; i < externalSlideLinks.length; i++) {\n externalSlideLinks[i].setAttribute('data-slide' , i);\n externalSlideLinks[i].querySelector('span').textContent = 'View Example';\n externalSlideLinks[i].addEventListener('click', goToSlide, false);\n }\n\n return evalSwiper;\n}\n\n// Get all of the evaluation image sliders on the page\nconst allUmbracoEvalSliders = document.querySelectorAll('#slider');\n\n// Loop over all of the fetched sliders and apply Swiper on each one.\nallUmbracoEvalSliders.forEach(slider => buildUmbracoEvalSlider(slider));\n\n\n\n// Function that builds Used Images Sliders\nconst buildUsedSlider = sliderElm => {\n const sliderIdentifier = sliderElm.dataset.id;\n const externalSlideThumbs = document.querySelectorAll('.thumb-wrapper .thumb');\n let mainSwiper = new Swiper(`.used-images-swiper[data-id=\"${sliderIdentifier}\"]`, {\n slidesPerView: \"auto\",\n centeredSlides: false,\n spaceBetween: 0,\n a11y: true,\n loop: false,\n grabCursor: true,\n\n preloadImages: false,\n lazy: true,\n\n navigation: {\n nextEl: `.button-next-${sliderIdentifier}`,\n prevEl: `.button-prev-${sliderIdentifier}`,\n },\n\n keyboard: {\n enabled: true,\n onlyInViewport: false,\n },\n });\n\n mainSwiper.on('transitionEnd', function() {\n for (var i = 0; i < externalSlideThumbs.length; i++) {\n externalSlideThumbs[i].classList.remove('active');\n const thumbIndex = externalSlideThumbs[i].getAttribute('data-slide');\n if(thumbIndex == mainSwiper.realIndex){\n externalSlideThumbs[i].classList.add('active');\n }\n }\n });\n\n const goToSlide = (e) => {\n for (var i = 0; i < mainSwiper.slides.length; i++) {\n mainSwiper.slides[i].classList.remove('highlighted');\n }\n \n const slideTargetIndex = e.currentTarget.getAttribute('data-slide');\n mainSwiper.slideTo(slideTargetIndex);\n mainSwiper.slides[slideTargetIndex].classList.add('highlighted');\n let mainSwiperElement = document.querySelector('.used-images-swiper');\n mainSwiperElement.scrollIntoView(true);\n\n setTimeout(function() {\n mainSwiper.slides[slideTargetIndex].classList.remove('highlighted');\n }, 5000);\n }\n\n for (var i = 0; i < externalSlideThumbs.length; i++) {\n externalSlideThumbs[i].addEventListener('click', goToSlide, false);\n }\n\n return mainSwiper;\n}\n\n// Get all of the used images sliders on the page\nconst allUsedSliders = document.querySelectorAll('.used-images-swiper');\n\n// Loop over all of the fetched sliders and apply Swiper on each one.\nallUsedSliders.forEach(slider => buildUsedSlider(slider));","\nclass Sticky {\n\tconstructor(domNode) {\n\t\tthis.documentElm = document.documentElement;\n\t\tthis.window = window;\n\t\tthis.prevScroll = this.window.scrollY || this.documentElm.scrollTop;\n\t\tthis.currentScroll;\n\t\tthis.headerHeight;\n\t\tthis.direction = 0;\n\t\tthis.prevDirection = 0;\n\t\tthis.stickyHeader = domNode;\n\t\tthis.stickyOffset = domNode.offsetTop;\n\t\tthis.headerBar = this.stickyHeader.querySelector('.header-bar');\n\t\tthis.header;\n\n\t\tthis.checkOffset = this.checkOffset.bind(this);\n\t\twindow.addEventListener(\n\t\t\t'scroll',\n\t\t\tthis.checkOffset\n\t\t);\n\n\t\tthis.checkScroll = this.checkScroll.bind(this)\n\t\twindow.addEventListener(\n\t\t\t'scroll',\n\t\t\tthis.checkScroll\n\t\t);\n\n\t\tthis.toggleBeforeHeader = this.toggleBeforeHeader.bind(this)\n\t\twindow.addEventListener(\n\t\t\t'scroll',\n\t\t\tthis.toggleBeforeHeader\n\t\t);\n\n\t\tthis.setMargin = this.setMargin.bind(this)\n\t\tdocument.addEventListener(\n\t\t\t'DOMContentLoaded',\n\t\t\tthis.setMargin\n\t\t);\n\t\twindow.addEventListener(\n\t\t\t'resize',\n\t\t\tthis.setMargin\n\t\t);\n\t}\n\n\tcheckOffset() {\n\t\tconst headerElm = this.stickyHeader;\n\t\tconst stickyOffset = this.stickyOffset;\n\t\tconst pageOffset = window.scrollY;\n\n\t\tif (pageOffset > stickyOffset) {\n\t\t\theaderElm.classList.add(\"sticky\");\n\t\t} else {\n\t\t\theaderElm.classList.remove(\"sticky\");\n\t\t}\n\t}\n\n\ttoggleHeader(direction, currentScroll) {\n\t\tconst headerElm = this.stickyHeader;\n\n\t\tif (direction === 2 && currentScroll > this.headerHeight) {\n\t\t\theaderElm.classList.add('hide');\n\t\t\tdocument.body.classList.remove('sticky-masthead-visible');\n\t\t\tthis.prevDirection = direction;\n\t\t}else if (direction === 1) {\n\t\t\theaderElm.classList.remove('hide');\n\t\t\tdocument.body.classList.add('sticky-masthead-visible');\n\t\t\tthis.prevDirection = direction;\n\t\t}\n\t}\n\n\ttoggleBeforeHeader() {\n let beforeHeader = document.querySelector('.before-header-bar');\n\n if (window.scrollY < '250') {\n beforeHeader.style.maxHeight = \"calc(\" + beforeHeader.scrollHeight + \"px + 4em)\";\n }else {\n beforeHeader.style.maxHeight = null;\n }\n }\n\n\tcheckScroll() {\n\t\t//Find the direction of scroll: 0 = initial, 1 = up, 2 = down\n\t\tlet currentScroll = this.window.scrollY || this.documentElm.scrollTop;\n\t\tlet direction = this.direction;\n\t\tlet prevScroll = this.prevScroll;\n\t\tlet prevDirection = this.prevDirection;\n\n\t\tif (currentScroll > prevScroll) { //Scrolling Up\n\t\t\tdirection = 2;\n\t\t}\n\t\telse if (currentScroll < prevScroll) { //Scrolling Down\n\t\t\tdirection = 1;\n\t\t}\n\n\t\tif (direction !== prevDirection) {\n\t\t\tthis.toggleHeader(direction, currentScroll);\n\t\t}\n\n\t\tthis.prevScroll = currentScroll;\n\t}\n\n\tsetMargin() {\n\t\tlet headerHeight = this.stickyHeader.offsetHeight;\n\t\tlet headerBarHeight = this.headerBar.offsetHeight;\n\t\tthis.documentElm.style.marginTop = headerHeight + 'px';\n\t\tthis.documentElm.style.setProperty('--masthead-height', headerHeight + 'px');\n\t\tthis.documentElm.style.setProperty('--header-bar-height', headerBarHeight + 'px');\n\t\tthis.headerHeight = headerHeight;\n\t}\n}\n\n/** @type {HTMLElement[]} */\nconst masthead = document.querySelector(\"#masthead\");\nnew Sticky(masthead);\n\n","const infoContent = document.querySelector(\".main-info-content\");\n\nif (typeof infoContent != \"undefined\" && infoContent != null) {\n\tconst infoContentText = infoContent.textContent;\n\tconst summaryContent = document.querySelector(\".main-page-summary-content\");\n\tif (typeof summaryContent != \"undefined\" && summaryContent != null) {\n\t\tconst summaryParaElement = document.createElement(\"p\");\n\t\tconst truncatedSummary = infoContentText.substring(0, 300);\n\t\tsummaryParaElement.textContent = truncatedSummary;\n\t\tsummaryContent.appendChild(summaryParaElement);\n\t}\n}\n\n//Go To Section\n\nconst sectionHeadings = document.querySelectorAll(\".section-heading h2\");\nconst summarySidebar = document.querySelector(\".sidebar-page-summary-content\");\n\nif (typeof summarySidebar != \"undefined\" && summarySidebar != null) {\n\tconst goToNav = document.createElement(\"nav\");\n\tconst goToList = document.createElement(\"ol\");\n\tgoToNav.setAttribute(\"aria-label\", \"Table of Contents\");\n\tgoToNav.classList.add(\"content-nav\");\n\tgoToList.setAttribute(\"id\", \"table-contents\");\n\tgoToList.setAttribute(\"role\", \"menu\");\n\tgoToList.setAttribute(\"aria-labelledby\", \"contents-toggle\");\n\n\tif (typeof sectionHeadings != \"undefined\" && sectionHeadings != null) {\n\t\tconst goToListHeading = document.createElement(\"h3\");\n\t\tconst goToListHeadingButton = document.createElement(\"button\");\n\t\tgoToListHeadingButton.setAttribute(\"type\", \"button\");\n\t\tgoToListHeadingButton.setAttribute(\"id\", \"contents-toggle\");\n\t\tgoToListHeadingButton.setAttribute(\"aria-haspopup\", \"true\");\n\t\tgoToListHeadingButton.setAttribute(\"aria-controls\", \"table-contents\");\n\t\tgoToListHeadingButton.textContent = \"Go To Section\";\n\n\t\tgoToListHeading.appendChild(goToListHeadingButton);\n\t\tgoToNav.appendChild(goToListHeading);\n\n\t\tfor (var i = 0; i < sectionHeadings.length; ++i) {\n\t\t\tconst sectionHeading = sectionHeadings[i];\n\t\t\tlet goToListItem = document.createElement(\"li\");\n\t\t\tlet goToListItemSpan = document.createElement(\"span\");\n\n\t\t\tgoToListItem.setAttribute(\"role\", \"menuitem\");\n\t\t\t// goToListItemSpan.setAttribute('role' , 'menuitem');\n\n\t\t\tgoToListItemSpan.textContent = sectionHeading.textContent;\n\t\t\tgoToListItem.appendChild(goToListItemSpan);\n\t\t\tgoToList.appendChild(goToListItem);\n\t\t\tgoToListItem.addEventListener(\"click\", (event) => {\n\t\t\t\tsectionHeading.scrollIntoView({\n\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t});\n\t\t\t});\n\t\t\tgoToListItem.addEventListener(\"keydown\", (event) => {\n\t\t\t\tif (event.key === \"Enter\") {\n\t\t\t\t\tsectionHeading.scrollIntoView({\n\t\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tgoToNav.appendChild(goToList);\n\tsummarySidebar.appendChild(goToNav);\n}\n\nclass MenuButtonLinks {\n\tconstructor(domNode) {\n\t\tthis.domNode = domNode;\n\t\tthis.buttonNode = domNode.querySelector(\"button\");\n\t\tthis.menuNode = domNode.querySelector('[role=\"menu\"]');\n\t\tthis.menuitemNodes = [];\n\t\tthis.firstMenuitem = false;\n\t\tthis.lastMenuitem = false;\n\t\tthis.firstChars = [];\n\n\t\tthis.buttonNode.addEventListener(\n\t\t\t\"keydown\",\n\t\t\tthis.onButtonKeydown.bind(this)\n\t\t);\n\t\tthis.buttonNode.addEventListener(\"click\", this.onButtonClick.bind(this));\n\n\t\tvar nodes = domNode.querySelectorAll('[role=\"menuitem\"]');\n\n\t\tfor (var i = 0; i < nodes.length; i++) {\n\t\t\tvar menuitem = nodes[i];\n\t\t\tthis.menuitemNodes.push(menuitem);\n\t\t\tmenuitem.tabIndex = -1;\n\t\t\tthis.firstChars.push(menuitem.textContent.trim()[0].toLowerCase());\n\n\t\t\tmenuitem.addEventListener(\n\t\t\t\t\"click\",\n\t\t\t\tfunction () {\n\t\t\t\t\tdomNode.classList.remove(\"is-open\");\n\t\t\t\t\tdomNode.querySelector(\"button\").classList.remove(\"is-open\");\n\t\t\t\t\tdomNode.querySelector('[role=\"menu\"]').classList.remove(\"is-open\");\n\t\t\t\t\tdomNode.querySelector(\"button\").removeAttribute(\"aria-expanded\");\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\n\t\t\tmenuitem.addEventListener(\"keydown\", this.onMenuitemKeydown.bind(this));\n\n\t\t\tmenuitem.addEventListener(\n\t\t\t\t\"mouseover\",\n\t\t\t\tthis.onMenuitemMouseover.bind(this)\n\t\t\t);\n\n\t\t\tif (!this.firstMenuitem) {\n\t\t\t\tthis.firstMenuitem = menuitem;\n\t\t\t}\n\t\t\tthis.lastMenuitem = menuitem;\n\t\t}\n\n\t\tdomNode.addEventListener(\"focusin\", this.onFocusin.bind(this));\n\t\tdomNode.addEventListener(\"focusout\", this.onFocusout.bind(this));\n\n\t\twindow.addEventListener(\n\t\t\t\"mousedown\",\n\t\t\tthis.onBackgroundMousedown.bind(this),\n\t\t\ttrue\n\t\t);\n\t}\n\n\tsetFocusToMenuitem(newMenuitem) {\n\t\tthis.menuitemNodes.forEach(function (item) {\n\t\t\tif (item === newMenuitem) {\n\t\t\t\titem.tabIndex = 0;\n\t\t\t\tnewMenuitem.focus();\n\t\t\t} else {\n\t\t\t\titem.tabIndex = -1;\n\t\t\t}\n\t\t});\n\t}\n\n\tsetFocusToFirstMenuitem() {\n\t\tthis.setFocusToMenuitem(this.firstMenuitem);\n\t}\n\n\tsetFocusToLastMenuitem() {\n\t\tthis.setFocusToMenuitem(this.lastMenuitem);\n\t}\n\n\tsetFocusToPreviousMenuitem(currentMenuitem) {\n\t\tvar newMenuitem, index;\n\n\t\tif (currentMenuitem === this.firstMenuitem) {\n\t\t\tnewMenuitem = this.lastMenuitem;\n\t\t} else {\n\t\t\tindex = this.menuitemNodes.indexOf(currentMenuitem);\n\t\t\tnewMenuitem = this.menuitemNodes[index - 1];\n\t\t}\n\n\t\tthis.setFocusToMenuitem(newMenuitem);\n\n\t\treturn newMenuitem;\n\t}\n\n\tsetFocusToNextMenuitem(currentMenuitem) {\n\t\tvar newMenuitem, index;\n\n\t\tif (currentMenuitem === this.lastMenuitem) {\n\t\t\tnewMenuitem = this.firstMenuitem;\n\t\t} else {\n\t\t\tindex = this.menuitemNodes.indexOf(currentMenuitem);\n\t\t\tnewMenuitem = this.menuitemNodes[index + 1];\n\t\t}\n\t\tthis.setFocusToMenuitem(newMenuitem);\n\n\t\treturn newMenuitem;\n\t}\n\n\tsetFocusByFirstCharacter(currentMenuitem, char) {\n\t\tvar start, index;\n\n\t\tif (char.length > 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tchar = char.toLowerCase();\n\n\t\t// Get start index for search based on position of currentItem\n\t\tstart = this.menuitemNodes.indexOf(currentMenuitem) + 1;\n\t\tif (start >= this.menuitemNodes.length) {\n\t\t\tstart = 0;\n\t\t}\n\n\t\t// Check remaining slots in the menu\n\t\tindex = this.firstChars.indexOf(char, start);\n\n\t\t// If not found in remaining slots, check from beginning\n\t\tif (index === -1) {\n\t\t\tindex = this.firstChars.indexOf(char, 0);\n\t\t}\n\n\t\t// If match was found...\n\t\tif (index > -1) {\n\t\t\tthis.setFocusToMenuitem(this.menuitemNodes[index]);\n\t\t}\n\t}\n\n\t// Utilities\n\n\tgetIndexFirstChars(startIndex, char) {\n\t\tfor (var i = startIndex; i < this.firstChars.length; i++) {\n\t\t\tif (char === this.firstChars[i]) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\n\t// Popup menu methods\n\n\topenPopup() {\n\t\tthis.menuNode.classList.add(\"is-open\");\n\t\tthis.buttonNode.setAttribute(\"aria-expanded\", \"true\");\n\t}\n\n\tclosePopup() {\n\t\tif (this.isOpen()) {\n\t\t\tthis.buttonNode.removeAttribute(\"aria-expanded\");\n\t\t\tthis.menuNode.classList.remove(\"is-open\");\n\t\t}\n\t}\n\n\tisOpen() {\n\t\treturn this.buttonNode.getAttribute(\"aria-expanded\") === \"true\";\n\t}\n\n\t// Menu event handlers\n\n\tonFocusin() {\n\t\tthis.domNode.classList.add(\"focus\");\n\t}\n\n\tonFocusout() {\n\t\tthis.domNode.classList.remove(\"focus\");\n\t}\n\n\tonButtonKeydown(event) {\n\t\tvar key = event.key,\n\t\t\tflag = false;\n\n\t\tswitch (key) {\n\t\t\tcase \" \":\n\t\t\tcase \"Enter\":\n\t\t\tcase \"ArrowDown\":\n\t\t\tcase \"Down\":\n\t\t\t\tthis.openPopup();\n\t\t\t\tthis.setFocusToFirstMenuitem();\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"Esc\":\n\t\t\tcase \"Escape\":\n\t\t\t\tthis.closePopup();\n\t\t\t\tthis.buttonNode.focus();\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"Up\":\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tthis.openPopup();\n\t\t\t\tthis.setFocusToLastMenuitem();\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (flag) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonButtonClick(event) {\n\t\tif (this.isOpen()) {\n\t\t\tthis.closePopup();\n\t\t\tthis.buttonNode.focus();\n\t\t} else {\n\t\t\tthis.openPopup();\n\t\t\tthis.setFocusToFirstMenuitem();\n\t\t}\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n\n\tonMenuitemKeydown(event) {\n\t\tvar tgt = event.currentTarget,\n\t\t\tkey = event.key,\n\t\t\tflag = false;\n\n\t\tfunction isPrintableCharacter(str) {\n\t\t\treturn str.length === 1 && str.match(/\\S/);\n\t\t}\n\n\t\tif (event.ctrlKey || event.altKey || event.metaKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.shiftKey) {\n\t\t\tif (isPrintableCharacter(key)) {\n\t\t\t\tthis.setFocusByFirstCharacter(tgt, key);\n\t\t\t\tflag = true;\n\t\t\t}\n\n\t\t\tif (event.key === \"Tab\") {\n\t\t\t\tthis.buttonNode.focus();\n\t\t\t\tthis.closePopup();\n\t\t\t\tflag = true;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (key) {\n\t\t\t\tcase \" \":\n\t\t\t\t\twindow.location.href = tgt.href;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Esc\":\n\t\t\t\tcase \"Escape\":\n\t\t\t\t\tthis.closePopup();\n\t\t\t\t\tthis.buttonNode.focus();\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Up\":\n\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\tthis.setFocusToPreviousMenuitem(tgt);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"ArrowDown\":\n\t\t\t\tcase \"Down\":\n\t\t\t\t\tthis.setFocusToNextMenuitem(tgt);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Home\":\n\t\t\t\tcase \"PageUp\":\n\t\t\t\t\tthis.setFocusToFirstMenuitem();\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"End\":\n\t\t\t\tcase \"PageDown\":\n\t\t\t\t\tthis.setFocusToLastMenuitem();\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Tab\":\n\t\t\t\t\tthis.closePopup();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"Enter\":\n\t\t\t\t\tthis.closePopup();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (isPrintableCharacter(key)) {\n\t\t\t\t\t\tthis.setFocusByFirstCharacter(tgt, key);\n\t\t\t\t\t\tflag = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (flag) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonMenuitemMouseover(event) {\n\t\tvar tgt = event.currentTarget;\n\t\ttgt.focus();\n\t}\n\n\tonBackgroundMousedown(event) {\n\t\tif (!this.domNode.contains(event.target)) {\n\t\t\tif (this.isOpen()) {\n\t\t\t\tthis.closePopup();\n\t\t\t\tthis.buttonNode.focus();\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Initialize menu buttons\ndocument.arrive(\".content-nav\", { existing: true }, function () {\n\tlet menuButtons = document.querySelectorAll(\".content-nav\");\n\tfor (let i = 0; i < menuButtons.length; i++) {\n\t\tnew MenuButtonLinks(menuButtons[i]);\n\t}\n});\n\nconst summaryContentSection = document.querySelector(\".page-summary-content\");\n\nconst numSteps = 20.0;\nlet prevRatio = 0.0;\nlet oldScrollValue = 0;\nlet newScrollValue = 0;\n\nwindow.addEventListener(\n\t\"load\",\n\t(event) => {\n\t\tif (\n\t\t\ttypeof summaryContentSection != \"undefined\" &&\n\t\t\tsummaryContentSection != null\n\t\t) {\n\t\t\tcreateObserver(summaryContentSection);\n\t\t}\n\t},\n\tfalse\n);\n\nfunction createObserver(element) {\n\tlet observer;\n\n\tlet options = {\n\t\troot: null,\n\t\trootMargin: \"0px\",\n\t\tthreshold: buildThresholdList(),\n\t};\n\n\tobserver = new IntersectionObserver(handleIntersect, options);\n\tobserver.observe(element);\n}\n\nfunction buildThresholdList() {\n\tlet thresholds = [];\n\tlet numSteps = 20;\n\n\tfor (let i = 1.0; i <= numSteps; i++) {\n\t\tlet ratio = i / numSteps;\n\t\tthresholds.push(ratio);\n\t}\n\n\tthresholds.push(0);\n\treturn thresholds;\n}\n\nfunction handleIntersect(entries, observer) {\n\tentries.forEach((entry) => {\n\t\tif (entry.intersectionRatio > 0.01) {\n\t\t\tif (typeof summaryContentSection != \"undefined\" && summaryContentSection != null) {\n\t\t\t\tsummaryContentSection.classList.remove(\"outOfView\");\n\t\t\t\tsummaryContentSection.classList.remove(\"animate-in\");\n\t\t\t}\n\t\t} else if (entry.intersectionRatio < 0.01) {\n\t\t\tif (typeof summaryContentSection != \"undefined\" && summaryContentSection != null) {\n\t\t\t\tsummaryContentSection.classList.add(\"outOfView\");\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsummaryContentSection.classList.add(\"animate-in\");\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t}\n\t});\n}\n\nwindow.addEventListener(\"scroll\", (e) => {\n\tnewScrollValue = window.pageYOffset;\n\tconst infoSidebar = document.querySelector(\".sidebar-cta-card\");\n\tif (oldScrollValue < newScrollValue) {\n\t\tif (typeof summaryContentSection != \"undefined\" && summaryContentSection != null) {\n\t\t\tsummaryContentSection.classList.add(\"going-down\");\n\t\t\tsummaryContentSection.classList.remove(\"going-up\");\n\t\t}\n\t\tif (typeof infoSidebar != \"undefined\" && infoSidebar != null) {\n\t\t\tinfoSidebar.style.top = \"\";\n\t\t}\n\t} else if (oldScrollValue > newScrollValue) {\n\t\tif (typeof infoSidebar != \"undefined\" && infoSidebar != null) {\n\t\t\tinfoSidebar.style.top = \"7rem\";\n\t\t}\n\t\tif (typeof summaryContentSection != \"undefined\" &&summaryContentSection != null) {\n\t\t\tsummaryContentSection.classList.add(\"going-up\");\n\t\t\tsummaryContentSection.classList.remove(\"going-down\");\n\t\t}\n\t}\n\toldScrollValue = newScrollValue;\n});\n","//VIEW SELECT\nlet viewCheck = localStorage.getItem('itemView');\n\nconst onloadCheck = function() {\n const contentDisplayContainer = document.querySelector('.content-display-container');\n if (viewCheck == null || undefined) {\n localStorage.setItem('itemView', 'grid');\n document.body.classList.add('grid-view');\n } else if (viewCheck == 'grid') {\n document.body.classList.add('grid-view');\n document.body.classList.remove('list-view');\n if (typeof(contentDisplayContainer) != 'undefined' && contentDisplayContainer != null) {\n document.getElementById(\"grid-view-toggle\").classList.add('selected');\n document.getElementById(\"list-view-toggle\").classList.remove('selected');\n }\n } else if (viewCheck == 'list') {\n document.body.classList.add('list-view');\n document.body.classList.remove('grid-view');\n if (typeof(contentDisplayContainer) != 'undefined' && contentDisplayContainer != null) {\n document.getElementById(\"list-view-toggle\").classList.add('selected');\n document.getElementById(\"grid-view-toggle\").classList.remove('selected');\n }\n }\n}\n\nconst idCheck = function() {\n let viewBtnId = this.getAttribute('id');\n\n const contentDisplayContainer = document.querySelector('.content-display-container');\n \n if (viewBtnId === 'grid-view-toggle') {\n localStorage.setItem('itemView', 'grid');\n this.classList.add('selected');\n if (typeof(contentDisplayContainer) != 'undefined' && contentDisplayContainer != null) {\n document.getElementById(\"list-view-toggle\").classList.remove('selected');\n }\n document.body.classList.remove('list-view');\n document.body.classList.add('grid-view');\n } else {\n localStorage.setItem('itemView', 'list');\n this.classList.add('selected');\n\n if (typeof(contentDisplayContainer) != 'undefined' && contentDisplayContainer != null) {\n document.getElementById(\"grid-view-toggle\").classList.remove('selected');\n }\n document.body.classList.remove('grid-view');\n document.body.classList.add('list-view');\n }\n}\n\nconst viewToggles = document.querySelectorAll('.view-toggle');\nif (typeof(viewToggles) != 'undefined' && viewToggles != null) {\n for (var i = 0; i < viewToggles.length; ++i) {\n viewToggles[i].addEventListener('click', idCheck, false);\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', onloadCheck, false);"]}