{"version":3,"names":[],"mappings":"","sources":["main.js"],"sourcesContent":["var requestObject = null;\r\nvar lastCheckedSearch = null;\r\nvar queryChangeInterval = null;\r\nvar globalSearchInput = null;\r\nvar resourceLandingSearchInput = null;\r\n\r\n$(document).ready(function () {\r\n\r\n globalSearchInput = $('#resultsSearch');\r\n resourceLandingSearchInput = $('#resourceSearch');\r\n\r\n $('.main-nav').multilevelNav({\r\n 'hoverIntent': true,\r\n 'hoverIntentTimeout': 300,\r\n 'topLevelWholeLinkToggler': true,\r\n 'toggleOnClickOnly': true,\r\n 'menuCloseOnInPageAnchorClick': true,\r\n 'keepMenuOpenOnFocusOut': false,\r\n // 'keepMenuOpenOnFocusOut': true,\r\n });\r\n\r\n // Speedbump\r\n $(function () {\r\n\r\n // Initialize speedbump\r\n $.fn.speedBumpModal({\r\n 'speedBumpTitle': 'You\\'re now leaving SELCO\\'s site.',\r\n 'speedBumpSummary': 'Thanks for visiting. Please note, SELCO isn\\'t responsible for the overall content or any info you may share on the following site.',\r\n 'speedBumpContinueLink': 'Continue to Site',\r\n 'speedBumpCancelLink': 'Go Back',\r\n 'speedBumpHeadingTag': '

',\r\n // 'speedBumpCloseIconClass': 'btn-close',\r\n 'speedBumpIgnoreArray': safeListArray,\r\n });\r\n });\r\n\r\n // headroom\r\n const header = document.querySelector(\"header\");\r\n\r\n const headroom = new Headroom(header, {\r\n offset: 100,\r\n tolerance: 10,\r\n onUnpin: function () {\r\n $('#searchCollapse').collapse('hide');\r\n // $('#loginCollapse').collapse('hide');\r\n if ($(window).width() > 992) {\r\n $('#loginCollapse').collapse('hide');\r\n }\r\n },\r\n });\r\n headroom.init();\r\n\r\n $('.glossary__alpha-nav-prev').on('click', moveGlossaryFilterRight);\r\n $('.glossary__alpha-nav-next').on('click', moveGlossaryFilterLeft);\r\n $('.glossary__alpha-nav-list-wrap').on('scroll', checkGlossaryFilterArrows);\r\n\r\n\r\n $('.eduction-filter').on('click', function(){\r\n\r\n var $activeFilter = $(this);\r\n var $listingRoot = $('#education-article-results-wrap');\r\n \r\n $.ajax({\r\n url: $('#educationCategoryDropdown').data('url'),\r\n contentType: \"application/html; charset=utf-8\",\r\n type: \"GET\",\r\n data: { cat: $activeFilter.data('value'), ajax: \"true\" },\r\n dataType: \"html\",\r\n cache: false,\r\n success: function (results, status) {\r\n var $content = $(results);\r\n $listingRoot.html($content);\r\n }\r\n });\r\n });\r\n\r\n $('.event-filter').on('click', function(){\r\n var $activeFilter = $(this);\r\n var $listingRoot = $('#event-listing-results-wrap');\r\n \r\n $.ajax({\r\n url: $('#eventsCategoryDropdown').data('url'),\r\n contentType: \"application/html; charset=utf-8\",\r\n type: \"GET\",\r\n data: { cat: $activeFilter.data('value'), ajax: \"true\" },\r\n dataType: \"html\",\r\n cache: false,\r\n success: function (results, status) {\r\n var $content = $(results);\r\n $listingRoot.html($content);\r\n }\r\n });\r\n });\r\n\r\n $('.region-filter').on('click', function(){\r\n var $activeFilter = $(this);\r\n \r\n if($activeFilter.data('value') == '0'){\r\n $(this).closest(\".bio-grid-block\").find('.bio-grid-item').each(function(){\r\n $(this).show();\r\n });\r\n }\r\n else{\r\n $(this).closest(\".bio-grid-block\").find('.bio-grid-item').each(function(){\r\n var regions = $(this).data('regions');\r\n\r\n if(regions.includes($activeFilter.data('value'))){\r\n $(this).show();\r\n }\r\n else{\r\n $(this).hide();\r\n }\r\n });\r\n }\r\n });\r\n\r\n $('#chat-form').on('submit', function(e){\r\n \r\n e.preventDefault();\r\n var accountValid = false;\r\n var userValid = false;\r\n var reg = new RegExp('^[0-9]+$');\r\n\r\n var chat_user = $(\"#FullName\").val();\r\n\r\n var chat_workgroup = $(\"#ChatQueue\").val();\r\n\r\n \r\n var chat_acctnum = $(\"#AccountNumber\").val();\r\n\r\n var window_url = 'https://chat.selco.org/WebChat/Start.html?' // default value to be over-written below\r\n\r\n\r\n window_url = window_url + \"chatUsername=\" + chat_user + \"&\";\r\n\r\n window_url = window_url + \"interactionType=Chat&\";\r\n\r\n window_url = window_url + \"target=\" + chat_workgroup + \"&\";\r\n\r\n window_url = window_url + \"targetType=Workgroup\" + \"&\";\r\n\r\n window_url = window_url + \"chatAcctNum=\" + chat_acctnum; //+ \"&\";\r\n\r\n if($(\"#AccountNumber\").val() && !reg.test($(\"#AccountNumber\").val()))\r\n {\r\n accountValid = false;\r\n $('#account_feedback').text(\"Please only use numbers.\");\r\n $('#account_feedback').show();\r\n }\r\n else{\r\n $('#account_feedback').hide();\r\n accountValid = true;\r\n }\r\n\r\n if(!$(\"#FullName\").val())\r\n {\r\n userValid = false;\r\n $('#name_feedback').text(\"Please enter a name.\");\r\n $('#name_feedback').show();\r\n }\r\n else{\r\n $('#name_feedback').hide();\r\n userValid = true;\r\n }\r\n\r\n if(userValid && accountValid){\r\n window.open(window_url,\"Selco Chat\",\"width=700, height= 600\");\r\n }\r\n \r\n });\r\n\r\n globalSearchInput.keyup(function () {\r\n\r\n clearInterval(queryChangeInterval);\r\n\r\n queryChangeInterval = setInterval(function () {\r\n clearInterval(queryChangeInterval);\r\n var currentSearch = globalSearchInput.val();\r\n if (currentSearch === lastCheckedSearch)\r\n return;\r\n\r\n console.log(currentSearch);\r\n lastCheckedSearch = currentSearch;\r\n if (requestObject != null) {\r\n requestObject.abort();\r\n }\r\n\r\n if (currentSearch.length < 4) {\r\n // Hide suggestion section\r\n $('#searchSuggestionActive').removeClass('active');\r\n return;\r\n }\r\n\r\n requestObject = $.ajax({\r\n url: '/find_v2/_autocomplete',\r\n method: 'GET',\r\n dataType: 'HTML',\r\n data: { prefix: currentSearch }\r\n }).done(function (data) {\r\n $('#search-suggestion-wrap').html(\"\");\r\n var results = JSON.parse(data);\r\n $.map(results.hits, function (item)\r\n {\r\n $('#search-suggestion-wrap').append(\r\n '
  • ' +\r\n '' + item.query + '' +\r\n '
  • '\r\n )\r\n });\r\n\r\n if(results.hits.length !== 0){\r\n console.log(\"hit\");\r\n console.log(results.hits.length);\r\n $('#searchSuggestionActive').addClass('active');\r\n }\r\n else{\r\n $('#searchSuggestionActive').removeClass('active');\r\n }\r\n\r\n });\r\n\r\n }, 200);\r\n });\r\n\r\n resourceLandingSearchInput.keyup(function () {\r\n\r\n clearInterval(queryChangeInterval);\r\n\r\n queryChangeInterval = setInterval(function () {\r\n clearInterval(queryChangeInterval);\r\n var currentSearch = resourceLandingSearchInput.val();\r\n if (currentSearch === lastCheckedSearch)\r\n return;\r\n\r\n lastCheckedSearch = currentSearch;\r\n if (requestObject != null) {\r\n requestObject.abort();\r\n }\r\n\r\n if (currentSearch.length < 4) {\r\n // Hide suggestion section\r\n $('#searchSuggestionActive').removeClass('active');\r\n return;\r\n }\r\n\r\n requestObject = $.ajax({\r\n url: '/find_v2/_autocomplete',\r\n method: 'GET',\r\n dataType: 'HTML',\r\n data: { prefix: currentSearch }\r\n }).done(function (data) {\r\n $('#search-suggestion-wrap').html(\"\");\r\n var results = JSON.parse(data);\r\n $.map(results.hits, function (item)\r\n {\r\n $('#search-suggestion-wrap').append(\r\n '
  • ' +\r\n '' + item.query + '' +\r\n '
  • '\r\n )\r\n\r\n if(!$('#searchSuggestionActive').hasClass(\"active\"))\r\n {\r\n $('#searchSuggestionActive').addClass('active');\r\n }\r\n });\r\n\r\n if(results.hits.length === 0){\r\n $('#searchSuggestionActive').removeClass('active');\r\n }\r\n\r\n });\r\n\r\n }, 200);\r\n });\r\n\r\n // close mega menu when search is clicked\r\n $('#searchToggle').on('click', function () {\r\n if ($(window).width() > 992) {\r\n $('.mln__toggle-link[aria-expanded=\"true\"]').trigger('click'); //close mega menus if open\r\n $('#headerSearchInput').focus();\r\n }\r\n });\r\n\r\n // close login collapse if clicking outside it\r\n $(document).mouseup(function (e) {\r\n if (!$(e.target).is('.login-menu__collapse, .login-menu__collapse *')) {\r\n $(\"#loginCollapse\").collapse('hide');\r\n }\r\n });\r\n\r\n // close search collapse if clicking outside it\r\n $(document).mouseup(function (e) {\r\n if (!$(e.target).is('.desktop-search__collapse, .desktop-search__collapse *')) {\r\n $(\"#searchCollapse\").collapse('hide');\r\n }\r\n });\r\n\r\n\r\n\r\n // single click card\r\n $(function () {\r\n\r\n // Clickable CTAs\r\n $('.single-click').each(function () {\r\n var $this = $(this),\r\n imgLink = $this.find('a img'),\r\n down,\r\n up,\r\n link = ($this.find('a').length === 1) ? $this.find('a') : $this.find('.clickable__hyperlink'),\r\n middleClick,\r\n auxClick;\r\n\r\n if (imgLink.length) {\r\n imgLink.unwrap();\r\n }\r\n\r\n if (!link.length) {\r\n $this.removeClass('clickable');\r\n }\r\n\r\n $this.on('mousedown', function (e) {\r\n down = + new Date();\r\n middleClick = (e.which === 2) ? true : false;\r\n auxClick = (e.which === 3) ? true : false;\r\n }).on('mouseup', function () {\r\n up = +new Date();\r\n\r\n if ((up - down) < 200 && auxClick === false) {\r\n link[0].click();\r\n }\r\n });\r\n });\r\n });\r\n\r\n $('.filter-dropdown').each(function (key, dropdown) {\r\n var $dropdown = $(dropdown);\r\n $dropdown.find('.dropdown-toggle').text($dropdown.find('.active').text());\r\n\r\n $dropdown.find('.dropdown-menu button').on('click', function () {\r\n $dropdown.find('.active').removeClass('active');\r\n $(this).addClass('active');\r\n $dropdown.find('.dropdown-toggle').text($(this).text());\r\n });\r\n });\r\n\r\n // Glossary A-Z nav\r\n var scrollPosition;\r\n\r\n function moveGlossaryFilterRight() {\r\n $('.glossary__alpha-nav-next').removeClass('disabled');\r\n var alphaContainerWidth = $('.glossary__alpha-nav-list-wrap').width();\r\n var alphaWidth = $('.glossary__alpha-nav-list-wrap ol').width();\r\n var alphaRatio = alphaWidth / alphaContainerWidth;\r\n if (alphaRatio < 2) {\r\n scrollPosition = 0;\r\n } else {\r\n scrollPosition = $('.glossary__alpha-nav-list-wrap')[0].scrollLeft - alphaContainerWidth + 40;\r\n if (scrollPosition < 0) {\r\n scrollPosition = 0;\r\n }\r\n }\r\n\r\n if (scrollPosition === 0) {\r\n $('.glossary__alpha-nav-prev').addClass('disabled');\r\n }\r\n\r\n $('.glossary__alpha-nav-list-wrap').animate({ scrollLeft: scrollPosition }, 500);\r\n }\r\n\r\n function moveGlossaryFilterLeft() {\r\n $('.glossary__alpha-nav-prev').removeClass('disabled');\r\n var alphaContainerWidth = $('.glossary__alpha-nav-list-wrap').width();\r\n var alphaWidth = $('.glossary__alpha-nav-list-wrap ol').width();\r\n var alphaRatio = alphaWidth / alphaContainerWidth;\r\n var maxScroll = (alphaWidth - alphaContainerWidth);\r\n\r\n if (alphaRatio < 2) {\r\n scrollPosition = maxScroll;\r\n } else {\r\n scrollPosition = alphaContainerWidth + $('.glossary__alpha-nav-list-wrap')[0].scrollLeft - 40;\r\n if (maxScroll < scrollPosition) {\r\n scrollPosition = maxScroll;\r\n }\r\n }\r\n\r\n if (scrollPosition === maxScroll) {\r\n $('.glossary__alpha-nav-next').addClass('disabled');\r\n }\r\n\r\n $('.glossary__alpha-nav-list-wrap').animate({ scrollLeft: scrollPosition }, 500);\r\n }\r\n\r\n function checkGlossaryFilterArrows() {\r\n var alphaScrollLeft = $('.glossary__alpha-nav-list-wrap')[0].scrollLeft;\r\n\r\n if (alphaScrollLeft === 0) {\r\n $('.glossary__alpha-nav-prev').addClass('disabled');\r\n } else {\r\n $('.glossary__alpha-nav-prev').removeClass('disabled');\r\n }\r\n\r\n var alphaNavContainerLeft = Math.round($('.glossary__alpha-nav-list-wrap').offset().left + $('.glossary__alpha-nav-list-wrap').width());\r\n var alphaNavContainer = Math.round($('.glossary__alpha-nav-list-wrap ol').offset().left + $('.glossary__alpha-nav-list-wrap ol').width());\r\n\r\n console.log(alphaNavContainerLeft);\r\n console.log(alphaNavContainer);\r\n\r\n if (alphaNavContainerLeft === alphaNavContainer) {\r\n $('.glossary__alpha-nav-next').addClass('disabled');\r\n } else {\r\n $('.glossary__alpha-nav-next').removeClass('disabled');\r\n }\r\n }\r\n\r\n // Location Search Page ATM Toggle Switch\r\n $(\"#atmToggle\").on(\"click\", function () {\r\n if ($(this).attr('aria-checked') === 'false') {\r\n $(this).attr('aria-checked', 'true');\r\n } else {\r\n $(this).attr('aria-checked', 'false');\r\n }\r\n });\r\n\r\n var newDate = new Date();\r\n var currentDay = newDate.getDay();\r\n\r\n currentDay = currentDay > 0 ? currentDay - 1 : 6; // zero is sunday, not monday in javascript\r\n\r\n $('.lobby-hours-item-js').eq(currentDay).addClass('current-day');\r\n $('.drive-up-hours-item-js').eq(currentDay).addClass('current-day');\r\n\r\n \r\n // Hide search suggestions if clicking outside\r\n $(document).ready(function () {\r\n \twindow.addEventListener('click', function (event) {\r\n \t\tif (!elementOrAncestorHasClass(event.target, 'search-results__search-wrap')) {\r\n \t\t\t\t$('.search-suggestions').addClass('d-none');\r\n \t\t}\r\n \t});\r\n });\r\n\r\n // // step through search suggestions options with up/down arrow keys\r\n\r\n // Assign data-tab-index attr on the fly\r\n function assignDataIndex(el) {\r\n $(el).find('a').each(function (index) {\r\n $(this)\r\n .removeAttr('data-tab-index')\r\n .attr('data-tab-index', index);\r\n });\r\n }\r\n\r\n $('.search-results__bar').each(function () {\r\n var $globalSearch = $(this);\r\n var searchPageInput = $('#resultsSearch');\r\n // Give search input the lowest value\r\n searchPageInput.attr('data-tab-index', '-1');\r\n // Dynamically change the data tab index value as the user types\r\n $('#resultsSearch').on('keydown', function (e) {\r\n assignDataIndex($globalSearch);\r\n });\r\n // Make arrow up/down keys tab through the entries\r\n $globalSearch.on('keydown', function (e) {\r\n var $this = $(this);\r\n var keyPressed = e.which;\r\n var currentFocusData = $(':focus').data('tab-index');\r\n // Down arrow\r\n if (keyPressed === 40) {\r\n e.preventDefault();\r\n $this\r\n .find($('[data-tab-index=' + (currentFocusData + 1) + ']'))\r\n .focus();\r\n }\r\n // Up arrow\r\n if (keyPressed === 38) {\r\n e.preventDefault();\r\n $this\r\n .find($('[data-tab-index=' + (currentFocusData - 1) + ']'))\r\n .focus();\r\n }\r\n });\r\n });\r\n\r\n function elementOrAncestorHasClass(element, className) {\r\n if (!element || element.length == 0) {\r\n return false;\r\n }\r\n var parent = element;\r\n do {\r\n if (parent === document) {\r\n break;\r\n }\r\n if (parent.className.toString().indexOf(className) >= 0) {\r\n return true;\r\n }\r\n } while (parent = parent.parentNode);\r\n return false;\r\n }\r\n\r\n // Cache compare table element\r\n var compareTable = $('.product-comparison-block__table--mobile-wrap');\r\n\r\n // Setup compare table(s). Can have multiple on a page\r\n compareTable.each(function () {\r\n var $thisCompareTable = $(this);\r\n\r\n // Inital cell count var\r\n var cellColumnCount = null;\r\n\r\n // Add some unique identifiers to the table cells associated with the column they are in\r\n $thisCompareTable.find('tr').each(function (index) {\r\n var $tableRow = $(this);\r\n\r\n // Add class to fixed column cells\r\n $tableRow\r\n .find(' > *')\r\n .first()\r\n .addClass('cell-fixed');\r\n\r\n // Add data index to all of the cells\r\n $tableRow\r\n .find(' > *')\r\n .each(function (index) {\r\n $(this).attr('data-cell-index', index);\r\n });\r\n\r\n // Add visible class to first column cells\r\n $tableRow\r\n .find('[data-cell-index=\"1\"]')\r\n .addClass('cell-visible');\r\n\r\n // Define cell count var\r\n cellColumnCount = $tableRow.find(' > *').length;\r\n });\r\n\r\n var chevronSVG = $(`\r\n \r\n `)\r\n\r\n // Build navigation to populate later\r\n $('
    ')\r\n .addClass('compare-table__nav')\r\n .append('