{"version":3,"sources":["site.js"],"names":["forEachAll","array","callback","scope","i","length","call","onReturn","element","addEventListener","e","clickEvt","document","querySelector","$menubtn","$navmenu","preventDefault","classList","contains","add","innerHTML","setTimeout","remove","$navlinks","querySelectorAll","index","inlineBanner","bimg","bimgpath","getAttribute","removeNode","formValidate","form","fields","errorstate","checkfields","value","mbpSubmitClick","formId","formSubmit","event","mbpPost","mbpSubmitEnter","formUser","formPass","postOnEnter","keyCode","formError","user","password","userVal","passwordVal","setAttribute","submit","$","jQuery","html","click","this","tab","tooltip","target","location","pathname","replace","hostname","hash","slice","el","animate","ariaSections","sectionLabel","idbutton","ariaSidebars","idcard","asideLabel"],"mappings":"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","file":"../site.min.js","sourcesContent":["// ------------------------------------------------\r\n// Helper Functions\r\n// ------------------------------------------------\r\n\r\n// Make foreach functions play nice with query selector all\r\nconst forEachAll = function(array, callback, scope) {\r\n for (var i = 0; i < array.length; i++) {\r\n callback.call(scope, i, array[i]); // passes back stuff we need\r\n }\r\n};\r\n\r\nconst onReturn = function(element, callback) {\r\n element.addEventListener('keydown', function(e) {\r\n callback(e);\r\n });\r\n};\r\n\r\n// Event on click\r\nconst clickEvt = (element, callback) => {\r\n element.addEventListener('click', function(e) {\r\n callback(e);\r\n });\r\n};\r\n\r\n// ------------------------------------------------\r\n// Nav Open/Close\r\n// ------------------------------------------------\r\nif (document.querySelector('.sn__btn')) {\r\n const $menubtn = document.querySelector('.sn__btn'),\r\n $navmenu = document.querySelector('.site-nav');\r\n // bind open close to sn__btn\r\n $menubtn.addEventListener('click', function(e) {\r\n e.preventDefault();\r\n\r\n // adding a class to the menu hamburger to\r\n // turn into an x\r\n if ($menubtn.classList.contains('js-open')) {\r\n $menubtn.classList.add('js-close');\r\n $menubtn.querySelector('.txt').innerHTML = 'Menu';\r\n setTimeout(function() {\r\n $menubtn.classList.remove('js-open');\r\n $menubtn.classList.remove('js-close');\r\n }, 400);\r\n } else {\r\n $menubtn.classList.remove('js-close');\r\n $menubtn.classList.add('js-open');\r\n $menubtn.querySelector('.txt').innerHTML = 'Close';\r\n }\r\n // End of hamburger class adding\r\n\r\n if ($navmenu.classList.contains('js-open')) {\r\n $navmenu.classList.add('js-close');\r\n\r\n setTimeout(function() {\r\n $navmenu.classList.remove('js-open');\r\n $navmenu.classList.remove('js-close');\r\n }, 400);\r\n } else {\r\n $navmenu.classList.remove('js-close');\r\n $navmenu.classList.add('js-open');\r\n }\r\n });\r\n\r\n // bind a tags to close on click and then scroll\r\n // close menu when clicking body\r\n\r\n const $navlinks = $navmenu.querySelectorAll('a');\r\n forEachAll($navlinks, index => {\r\n $navlinks[index].addEventListener('click', function() {\r\n $menubtn.classList.remove('js-open');\r\n $menubtn.classList.remove('js-close');\r\n $navmenu.classList.remove('js-open');\r\n $navmenu.classList.remove('js-close');\r\n });\r\n });\r\n}\r\n\r\n// ------------------------------------------------\r\n// Inline Banner Image\r\n// ------------------------------------------------\r\nconst inlineBanner = function(element) {\r\n const bimg = element.querySelector('img'),\r\n bimgpath = bimg.getAttribute('src');\r\n\r\n if (!bimg.removeNode) {\r\n bimg.remove();\r\n } else {\r\n bimg.removeNode();\r\n }\r\n element.style.backgroundImage = 'url(' + bimgpath + ')';\r\n};\r\nif (document.querySelector('.hero-banner-wrapper')) {\r\n inlineBanner(document.querySelector('.hero-banner-wrapper'));\r\n}\r\n\r\n// ------------------------------------------------\r\n// MBP Sign In\r\n// ------------------------------------------------\r\nconst formValidate = function(form) {\r\n const fields = form.querySelectorAll('input[required]');\r\n\r\n let errorstate = true;\r\n\r\n const checkfields = function() {\r\n errorstate = false;\r\n\r\n forEachAll(fields, function(index) {\r\n if (fields[index].value < 1) {\r\n fields[index].parentNode.classList.add('error');\r\n errorstate = true;\r\n } else {\r\n fields[index].parentNode.classList.remove('error');\r\n }\r\n });\r\n };\r\n\r\n checkfields(fields);\r\n\r\n return errorstate;\r\n};\r\n\r\n// intercepts click form submission from fake form and fires mbpPost()\r\nconst mbpSubmitClick = function(formId) {\r\n const form = formId,\r\n formSubmit = form.querySelector('.mbpSubmit');\r\n clickEvt(formSubmit, event => {\r\n event.preventDefault();\r\n let formError = formValidate(form);\r\n\r\n if (formError === false) {\r\n mbpPost(formId);\r\n return false;\r\n }\r\n });\r\n};\r\n\r\n// intercepts enter form submission from fake form and fires mbpPost()\r\nconst mbpSubmitEnter = function(formId) {\r\n const form = formId,\r\n formUser = form.querySelector('input[type=\"text\"]'),\r\n formPass = form.querySelector('input[type=\"password\"]');\r\n\r\n let postOnEnter = function() {\r\n if (event.keyCode === 13) {\r\n let formError = formValidate(form);\r\n event.preventDefault();\r\n\r\n if (!formError) {\r\n mbpPost(formId);\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n onReturn(formUser, function() {\r\n postOnEnter();\r\n });\r\n\r\n onReturn(formPass, function() {\r\n postOnEnter();\r\n });\r\n};\r\n\r\nif (document.querySelector('.mbp__login')) {\r\n mbpSubmitEnter(document.querySelector('#mbpLogin'));\r\n mbpSubmitClick(document.querySelector('#mbpLogin'));\r\n}\r\n\r\n// Collect values from fake login\r\n// creates new hidden form\r\n// submits form and opens mbp\r\n// clears fake form and values\r\nconst mbpPost = function(formId) {\r\n let user = formId.querySelector('input[type=\"text\"]'),\r\n password = formId.querySelector('input[type=\"password\"]'),\r\n userVal = user.value,\r\n passwordVal = password.value;\r\n\r\n let form =\r\n '
';\r\n\r\n document\r\n .querySelector('body')\r\n .appendChild(document.createElement('div'))\r\n .setAttribute('id', 'loginForm');\r\n document.querySelector('#loginForm').innerHTML = form;\r\n\r\n document.querySelector('#loginForm form').submit();\r\n user.value = '';\r\n password.value = '';\r\n userVal = '';\r\n passwordVal = '';\r\n document.querySelector('#loginForm').remove();\r\n};\r\n\r\n// ------------------------------------------------\r\n// jQuery Bits\r\n// ------------------------------------------------\r\njQuery(document).ready(function($) {\r\n $('#myTabs a').click(function(e) {\r\n e.preventDefault();\r\n $(this).tab('show');\r\n });\r\n\r\n $('[data-toggle=\"popover\"]').popover();\r\n\r\n $('[data-toggle=\"tooltip\"]').tooltip({\r\n html: true\r\n });\r\n\r\n // =======================================================\r\n // Smooth Scrolling\r\n // =======================================================\r\n $('a[href*=\"#\"]:not([data-toggle=\"collapse\"])').click(function() {\r\n if (\r\n location.pathname.replace(/^\\//, '') ==\r\n this.pathname.replace(/^\\//, '') &&\r\n location.hostname == this.hostname\r\n ) {\r\n var target = $(this.hash);\r\n target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\r\n if (target.length) {\r\n $('html, body').animate(\r\n {\r\n scrollTop: target.offset().top\r\n },\r\n 1000\r\n );\r\n return false;\r\n }\r\n }\r\n });\r\n});\r\n\r\n// ------------------------------------------------\r\n// Add Aria Labels\r\n// ------------------------------------------------\r\nif (document.querySelector('section[data-placeholder-label]')) {\r\n const ariaSections = document.querySelectorAll(\r\n 'section[data-placeholder-label]:not(.subbanner)'\r\n );\r\n\r\n forEachAll(ariaSections, index => {\r\n let el = ariaSections[index],\r\n sectionLabel = ariaSections[index].getAttribute('data-placeholder-label');\r\n\r\n el.setAttribute('aria-labelledby', sectionLabel);\r\n });\r\n}\r\n\r\nif (document.querySelector('.sidebar-secondary[data-placeholder-label]')) {\r\n const ariaSidebars = document.querySelectorAll(\r\n '.sidebar-secondary[data-placeholder-label]'\r\n );\r\n\r\n forEachAll(ariaSidebars, index => {\r\n let el = ariaSidebars[index],\r\n asideLabel = ariaSidebars[index].getAttribute('data-placeholder-label');\r\n\r\n el.setAttribute('aria-label', asideLabel);\r\n });\r\n}\r\n\r\n// ====---------------====\r\n// ID Card\r\n// ====---------------====\r\nif (document.querySelector('.id-card-controls')) {\r\n const idcard = document.querySelector('.id-card-inner'),\r\n idbutton = document.querySelector('.id-card-controls');\r\n\r\n idbutton.addEventListener('click', function() {\r\n if (document.querySelector('.id-card-inner.front')) {\r\n idcard.classList.remove('front');\r\n idcard.classList.add('back');\r\n } else {\r\n idcard.classList.remove('back');\r\n idcard.classList.add('front');\r\n }\r\n });\r\n}\r\n"]}