{"version":3,"file":"site-modern.js","sources":["../../node_modules/bows/dist/bows.min.js","../js/base/_keyboardFocus.js","../js/base/_smoothScroll.js","../../node_modules/clipboard/dist/clipboard.js","../js/base/_share.js","../js/modern/_scrollTriggers.js","../js/gtm-tracking.js","../js/site-modern.js"],"sourcesContent":["!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var n;\"undefined\"!=typeof window?n=window:\"undefined\"!=typeof global?n=global:\"undefined\"!=typeof self&&(n=self),n.bows=e()}}(function(){return function e(n,o,r){function t(f,d){if(!o[f]){if(!n[f]){var u=\"function\"==typeof require&&require;if(!d&&u)return u(f,!0);if(i)return i(f,!0);var a=new Error(\"Cannot find module '\"+f+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var s=o[f]={exports:{}};n[f][0].call(s.exports,function(e){var o=n[f][1][e];return t(o||e)},s,s.exports,e,n,o,r)}return o[f].exports}for(var i=\"function\"==typeof require&&require,f=0;f=31||t}(),v=null,h=null,y=!1,m={};d&&\"!\"===d[0]&&\"/\"===d[1]&&(y=!0,d=d.slice(1)),h=d&&\"/\"===d[0]&&new RegExp(d.substring(1,d.length-1));for(var b=[\"log\",\"debug\",\"warn\",\"error\",\"info\"],x=0,E=b.length;x1){var v=Array.prototype.slice.call(arguments,1);d=d.concat(v)}return t=a.apply(u.log,d),b.forEach(function(e){t[e]=a.apply(u[e]||t,d)}),t},v.config=function(e){e.padLength&&(p=e.padLength),\"boolean\"==typeof e.padding&&(c=e.padding),e.separator?l=e.separator:!1!==e.separator&&\"\"!==e.separator||(l=\"\")},void 0!==n?n.exports=v:window.bows=v}).call()}).call(this,e(\"_process\"))},{_process:3,andlog:2}],2:[function(e,n,o){!function(){var e=\"undefined\"==typeof window,r=!e&&function(){var e;try{e=window.localStorage}catch(e){}return e}(),t={};if(e||!r)return void(n.exports=console);var i=r.andlogKey||\"debug\";if(r&&r[i]&&window.console)t=window.console;else for(var f=\"assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn\".split(\",\"),d=f.length,u=function(){};d--;)t[f[d]]=u;void 0!==o?n.exports=t:window.console=t}()},{}],3:[function(e,n,o){function r(){}var t=n.exports={};t.nextTick=function(){var e=\"undefined\"!=typeof window&&window.setImmediate,n=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(n){var o=[];return window.addEventListener(\"message\",function(e){var n=e.source;if((n===window||null===n)&&\"process-tick\"===e.data&&(e.stopPropagation(),o.length>0)){o.shift()()}},!0),function(e){o.push(e),window.postMessage(\"process-tick\",\"*\")}}return function(e){setTimeout(e,0)}}(),t.title=\"browser\",t.browser=!0,t.env={},t.argv=[],t.on=r,t.addListener=r,t.once=r,t.off=r,t.removeListener=r,t.removeAllListeners=r,t.emit=r,t.binding=function(e){throw new Error(\"process.binding is not supported\")},t.cwd=function(){return\"/\"},t.chdir=function(e){throw new Error(\"process.chdir is not supported\")}},{}]},{},[1])(1)});","import debug from 'bows/dist/bows.min.js';\n\nconst log = debug('keyboardFocus');\nconst keyboardFocusClass = 'keyboard--focus';\n\n// Internal flag\nlet keyboardFocus = false;\n\nexport function init() {\n\t// Keydown event trigger\n\twindow.addEventListener('keydown', (e) => {\n\t\tif (e.defaultPrevented || keyboardFocus) {\n\t\t\treturn; // Do nothing\n\t\t}\n\t\t// Capture certain keys (or alt key press)\n\t\tif ('Tab' === e.key || 'Enter' === e.key || e.altKey) {\n\t\t\tkeyboardFocus = true;\n\t\t\tdocument.body.classList.add(keyboardFocusClass);\n\t\t\tlog('site.keyboardFocus', keyboardFocus);\n\t\t}\n\t});\n\n\t// Mousedown event cancel\n\twindow.addEventListener('mousedown', (e) => {\n\t\tif (e.defaultPrevented || !keyboardFocus) {\n\t\t\treturn; // Do nothing\n\t\t}\n\t\t// Cancel keyboard active\n\t\tkeyboardFocus = false;\n\t\tdocument.body.classList.remove(keyboardFocusClass);\n\t\tlog('site.keyboardFocus', keyboardFocus);\n\t});\n};\n\nexport default {\n\tinit: init\n};\n","import $ from \"jquery\";\nimport debug from 'bows/dist/bows.min.js';\n\n//const linksToAnchors = $('ul#mega-menu-modern_global a[href*=\"#\"]');\nconst linksToAnchors = $('*:not(.owl-carousel) a[href*=\"#\"]:not(.kt-tab-title)');\n\nconst log = debug(\"scroll\");\nconst $jmm = $('.jump-menu-mobile');\n\nexport function anchorLinkHandler(e) {\n\t\n\t// /alert('whyyy');\n\tlet href = $(this).prop('hash');\n\tlet pathname = $(this).prop('pathname');\n\tlet $where = $(href);\n\tconsole.log('Starting jump element ' + href);\n\tif ($where.length && $($where).hasClass('is-style-modal-content')) {\n\t\t$($where).modal();\n\t\treturn false;\n\t} else if ($where.length) {\n\t\te.preventDefault();\n\t\tconsole.log('Found jump element ' + href);\n\t\tif ($('#mega-menu-wrap-modern_global .mega-menu-toggle').hasClass('mega-menu-open')){\n\t\t\t\n\t\t\t$('#mega-menu-wrap-modern_global .mega-menu-toggle').trigger( \"click\" );\n\t\t}\n\t\tvar elem = document.querySelector(href);\n\t\tvar topDistance = elem.offsetTop;//getBoundingClientRect().top;\n\t\t//let topDistance = $where.offset().top;\n\t\tlet $header = $('#header-modern');\n\t\t/*if ($jmm.css('display') === 'block') {\n\t\t\ttopDistance -= 40;\n\t\t} else {\n\t\t\ttopDistance -= 80;\n\t\t}*/\n\t\tlet $offset = 75;\n\t\tif ($(window).width()<901){\n\t\t\t$offset = 80;\n\t\t}\n\t\ttopDistance = parseInt(topDistance) - $header.height() - $offset;\n\t\t$(window).scrollTop(topDistance);\n\t\tdocument.scrollingElement.scrollTop = topDistance;\n\t\t$('.debug-element').html(topDistance + ' ' +href);\n\t\tconsole.log('vert scroll ' + topDistance);\n\t\t//window.history.hash = href;\n\t\t//if ($(location).attr(\"pathname\") == pathname){\n\n\t\t\twindow.history.pushState(null, null, href);\n\t\t\t/*\n\t\t\t$('html, body').animate({ scrollTop: topDistance }, 500, function () {\n\t\t\t\tlet current = $(`.jump-menu__link[href=\"${href}\"]`);\n\t\t\t\tif (current.length) {\n\t\t\t\t\tlet text = current.eq(0).text();\n\t\t\t\t\t$('.jump-menu-mobile').find('.dropdown__select').text(text);\n\t\t\t\t\t$('.jump-menu__link--mobile').removeClass('jump-menu__link--active');\n\t\t\t\t\t$('.jump-menu__item').children().removeClass('jump-menu__link--active');\n\t\t\t\t\tcurrent.addClass('jump-menu__link--active');\n\t\t\t\t}\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif ($header.hasClass('headroom--not-top') === true) {\n\t\t\t\t\t\t$header.removeClass('headroom--pinned').addClass('headroom--unpinned');\n\t\t\t\t\t}\n\t\t\t\t}, 100);\n\n\t\t\t});*/\n\t\t\t\n\t\t\te.preventDefault();\n\t\t//}\n\t}\n\n\n\t// log(topDistance);\n\t// const distanceToTop = el => Math.floor(el.getBoundingClientRect().top);\n\n\n\t// const targetID = this.getAttribute(\"href\");\n\t// const targetCheck = targetID.split('#');\n\n\t// if (targetCheck[1] === '') { return; }\n\n\t// const targetAnchor = document.querySelector(targetID);\n\t// if (!targetAnchor) return;\n\t// let originalTop = distanceToTop(targetAnchor);\n\n\t// if ($jmm.css('display') === 'block') {\n\n\t// \toriginalTop -= 20;\n\t// }\n\n\t// window.scrollBy({ top: originalTop, left: 0, behavior: \"smooth\" });\n\n\t// const checkIfDone = setInterval(function () {\n\t// \tconst atBottom =\n\t// \t\twindow.innerHeight + window.pageYOffset >= document.body.offsetHeight - 2;\n\t// \tif (distanceToTop(targetAnchor) === 0 || atBottom) {\n\t// \t\ttargetAnchor.tabIndex = \"-1\";\n\t// \t\ttargetAnchor.focus();\n\n\t// \t\twindow.history.pushState(\"\", \"\", targetID);\n\t// \t\tclearInterval(checkIfDone);\n\n\t// \t}\n\t// \ttargetAnchor.addEventListener(\"blur\", function () {\n\t// \t\ttargetAnchor.removeAttribute('tabIndex');\n\n\t// \t});\n\n\t// \tlog('done');\n\t// let current = $(`.jump-menu__link[href=\"${targetID}\"]`);\n\t// if (current.length) {\n\t// \tlet text = current.eq(0).text();\n\t// \t$('.jump-menu-mobile').find('.dropdown__select').text(text);\n\t// \t$('.jump-menu__link--mobile').removeClass('jump-menu__link--active');\n\t// \t$('.jump-menu__item').children().removeClass('jump-menu__link--active');\n\t// \tcurrent.addClass('jump-menu__link--active');\n\t// }\n\t// }, 100);\n}\n\nexport function init() {\n\tconsole.log('init scroll jumpy thing');\n\t//log(`scroll init`);\n\tconsole.log(linksToAnchors);\n\t$(linksToAnchors).off();\n\t$(linksToAnchors).addClass('fancy-jump');\n\tif (linksToAnchors.length) {\n\t\tlinksToAnchors.on('click', anchorLinkHandler);\n\t}\n\t$('.owl-carousel').on('click', 'a[href*=\"#\"]', anchorLinkHandler);\n/*\n\t$(\"ul#mega-menu-modern_global\").on(\"mmm:showMobileMenu\", function() {\n\t\tlet megaAnchors = $('ul#mega-menu-modern_global a[href^=\"#\"]');\n\t\tconsole.log(megaAnchors);\n\t\tif(megaAnchors.length){\n\t\t\tmegaAnchors.on('click', anchorLinkHandler);\n\t\t}\n\t});*/\n}\n\nexport default {\n\tinit: init,\n\tanchorLinkHandler: anchorLinkHandler\n};\n","/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clipboardAction = __webpack_require__(1);\n\nvar _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\nvar _tinyEmitter = __webpack_require__(3);\n\nvar _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\nvar _goodListener = __webpack_require__(4);\n\nvar _goodListener2 = _interopRequireDefault(_goodListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\nvar Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(_tinyEmitter2.default);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\nmodule.exports = Clipboard;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _select = __webpack_require__(2);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\nvar ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\nmodule.exports = ClipboardAction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(5);\nvar delegate = __webpack_require__(6);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(7);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ })\n/******/ ]);\n});","//import $ from \"jquery\";\nimport debug from 'bows/dist/bows.min.js';\nimport ClipboardJS from 'clipboard';\n\nconst elem = document.querySelectorAll(\".share__link--modal\");\nconst log = debug(\"share\");\n\nexport function sharePop(e) {\n\t//elem.addEventListener(\"click\", function(e) {\n\n\tconst href = $(this).attr(\"href\");\n\tconst t = (window.screen.height - 350) / 2;\n\tconst l = (window.screen.width - 550) / 2;\n\tlog(l);\n\tconst opts = [\n\t\t\"scrollbars=yes\",\n\t\t\"resizable=yes\",\n\t\t\"toolbar=no\",\n\t\t\"location=yes\",\n\t\t\"width=550\",\n\t\t\"height=350\",\n\t\t\"top=\" + t,\n\t\t\"left=\" + l\n\t];\n\treturn window.open(href, \"sharer\", opts.join(\",\"));\n\t//});\n}\n\nexport function init() {\n\tlog(`share init`);\n\tif (elem !== undefined) {\n\t\tfor (let i = 0; i < elem.length; i++) {\n\t\t\telem[i].addEventListener(\"click\", sharePop);\n\t\t}\n\t}\n\n\tlet clipboard = new ClipboardJS('[data-clipboard-text]');\n\tlet copied = document.querySelector('.share__copied');\n\n\tclipboard.on('success', function (e) {\n\t\tcopied.textContent = \"Page URL Copied\";\n\t\tcopied.classList.add('share__copied--success');\n\t\tsetTimeout(() => {\n\t\t\tcopied.classList.remove('share__copied--success');\n\t\t}, 3000);\n\t\tsetTimeout(() => {\n\t\t\tcopied.textContent = \"\";\n\t\t}, 3500);\n\t});\n\n\tclipboard.on('error', function (e) {\n\t\tcopied.textContent = \"URL not copied\";\n\t\tcopied.classList.add('share__copied--error');\n\t\tsetTimeout(() => {\n\t\t\tcopied.classList.remove('share__copied--error');\n\t\t}, 1000);\n\t\tsetTimeout(() => {\n\t\t\tcopied.textContent = \"\";\n\t\t}, 1250);\n\t});\n}\n\nexport default {\n\tinit: init,\n\tsharePop: sharePop\n};\n","import debug from 'bows/dist/bows.min.js';\nimport $ from \"jquery\";\n\nconst log = debug(\"scrollTriggers\");\n\n\nexport function init() {\n $(window).on( \"scroll\", function() {\n var s = $(window).scrollTop();\n \n if (s > 456) {\n $('body').addClass('show-jump');\n } else {\n $('body').removeClass('show-jump');\n }\n });\n}\n\nexport default {\n\tinit\n};","import $, { each, isEmptyObject } from \"jquery\";\nimport debug from 'bows/dist/bows.min.js';\n\n\nconst log = debug(\"gtm-tracking\");\nconst body = $('body');\nconst GTM_PUSHED_CLASS = 'gtm-pushed';\n\n\nfunction stripHTML(html) {\n // Create a new div element\n let temporalDivEl = document.createElement(\"div\");\n // Set HTML content using provider\n temporalDivEl.innerHTML = html;\n // Get the text property of the element (browser support)\n return temporalDivEl.textContent || temporalDivEl.innerText || \"\";\n}\n\nexport function init() {\nconsole.log('init please full v2.1');\n //Blog Analytics - OScript \n var getBreadcrumb = function(listItems) {\n var data = [];\n listItems.each(function(idx, li) {\n var li = $(li);\n if(li.find('a').length){\n data.push(li.find('a').text());\n }\n else if(li.find('span.breadcrumb__dots').length) {\n data.push(li.find('span.breadcrumb__dots').text());\n }\n });\n \n return data;\n };\n \n // Coleman Liau Index calculation\n /* To speed the script up, you can set a sampling rate in words. For example, if you set\n * sampleLimit to 1000, only the first 1000 words will be parsed from the input text.\n * Set to 0 to never sample.\n */ \n var sampleLimit = 0;\n\n // Manual rewrite of the textstat Python library (https://github.com/shivam5992/textstat/)\n\n /* \n * Regular expression to identify a sentence. No, it's not perfect. \n * Fails e.g. with abbreviations and similar constructs mid-sentence.\n */\n var sentenceRegex = new RegExp('[.?!]\\\\s[^a-z]', 'g');\n\n /*\n * Regular expression to identify a syllable. No, it's not perfect either.\n * It's based on English, so other languages with different vowel / consonant distributions\n * and syllable definitions need a rewrite.\n * Inspired by https://bit.ly/2VK9dz1\n */\n var syllableRegex = new RegExp('[aiouy]+e*|e(?!d$|ly).|[td]ed|le$', 'g');\n\n // Baseline for FRE - English only\n var freBase = {\n base: 206.835,\n sentenceLength: 1.015,\n syllablesPerWord: 84.6,\n syllableThreshold: 3\n };\n\n var cache = {};\n\n var punctuation = ['!','\"','#','$','%','&','\\'','(',')','*','+',',','-','.','/',':',';','<','=','>','?','@','[',']','^','_','`','{','|','}','~'];\n\n var legacyRound = function(number, precision) {\n var k = Math.pow(10, (precision || 0));\n return Math.floor((number * k) + 0.5 * Math.sign(number)) / k;\n };\n\n var charCount = function(text) {\n if (cache.charCount) return cache.charCount;\n if (sampleLimit > 0) text = text.split(' ').slice(0, sampleLimit).join(' ');\n text = text.replace(/\\s/g, '');\n return cache.charCount = text.length;\n };\n\n var removePunctuation = function(text) {\n return text.split('').filter(function(c) {\n return punctuation.indexOf(c) === -1;\n }).join('');\n };\n\n var letterCount = function(text) {\n if (sampleLimit > 0) text = text.split(' ').slice(0, sampleLimit).join(' ');\n text = text.replace(/\\s/g, '');\n return removePunctuation(text).length;\n };\n\n var lexiconCount = function(text, useCache, ignoreSample) {\n if (useCache && cache.lexiconCount) return cache.lexiconCount;\n if (ignoreSample !== true && sampleLimit > 0) text = text.split(' ').slice(0, sampleLimit).join(' ');\n text = removePunctuation(text);\n var lexicon = text.split(' ').length;\n return useCache ? cache.lexiconCount = lexicon : lexicon;\n };\n\n var getWords = function(text, useCache) {\n if (useCache && cache.getWords) return cache.getWords;\n if (sampleLimit > 0) text = text.split(' ').slice(0, sampleLimit).join(' ');\n text = text.toLowerCase();\n text = removePunctuation(text);\n var words = text.split(' ');\n return useCache ? cache.getWords = words : words;\n }\n\n var syllableCount = function(text, useCache) {\n if (useCache && cache.syllableCount) return cache.syllableCount;\n var count = 0;\n var syllables = getWords(text, useCache).reduce(function(a, c) { \n return a + (c.match(syllableRegex) || [1]).length;\n }, 0);\n return useCache ? cache.syllableCount = syllables : syllables;\n };\n\n var polySyllableCount = function(text, useCache) {\n var count = 0;\n getWords(text, useCache).forEach(function(word) {\n var syllables = syllableCount(word);\n if (syllables >= 3) {\n count += 1;\n }\n });\n return count;\n };\n\n var sentenceCount = function(text, useCache) {\n if (useCache && cache.sentenceCount) return cache.sentenceCount;\n if (sampleLimit > 0) text = text.split(' ').slice(0, sampleLimit).join(' ');\n var ignoreCount = 0;\n var sentences = text.split(sentenceRegex);\n sentences.forEach(function(s) {\n if (lexiconCount(s, true, false) <= 2) { ignoreCount += 1; }\n });\n var count = Math.max(1, sentences.length - ignoreCount);\n return useCache ? cache.sentenceCount = count : count;\n };\n\n var avgSentenceLength = function(text) {\n var avg = lexiconCount(text, true) / sentenceCount(text, true);\n return legacyRound(avg, 2);\n };\n\n var avgSyllablesPerWord = function(text) {\n var avg = syllableCount(text, true) / lexiconCount(text, true);\n return legacyRound(avg, 2);\n };\n\n var avgCharactersPerWord = function(text) {\n var avg = charCount(text) / lexiconCount(text, true);\n return legacyRound(avg, 2);\n };\n\n var avgLettersPerWord = function(text) {\n var avg = letterCount(text, false) / lexiconCount(text, false);\n return legacyRound(avg, 2);\n };\n\n var avgSentencesPerWord = function(text) {\n var avg = sentenceCount(text, false) / lexiconCount(text, false);\n return legacyRound(avg, 2);\n };\n\n var colemanLiauIndex = function(text) {\n\t\t//console.log('CLI - Text');\n\t\t//console.log(text);\n\t var letters = legacyRound(avgLettersPerWord(text) * 100, 2);\n\t\t//console.log('CLI - Letters');\n\t\t//console.log(letters);\n\t var sentences = legacyRound(avgSentencesPerWord(text) * 100, 2);\n\t\t//console.log('CLI - Sentences');\n\t\t//console.log(sentences);\n var coleman = 0.0588 * letters - 0.296 * sentences - 15.8;\n console.log('CLI - Coleman');\n\t\tconsole.log(coleman);\n //console.log('letters: ' + letters);\n //console.log('sentences: ' + sentences);\n //console.log('coleman: ' + coleman);\n return legacyRound(coleman, 2);\n };\n\n var readingTime = function(text) {\n var wordsPerSecond = 4.17;\n // To get full reading time, ignore cache and sample\n return legacyRound(lexiconCount(text, false, true) / wordsPerSecond, 2);\n };\n // [end] // Coleman Liau Index calculation\n \n var getBreakpoint = function () {\n // Media queries\n // xsmall: 0;\n // small: 640;\n // tablet: 768;\n // medium: 960;\n // large: 1024;\n // xlarge: 1200;\n // xxlarge: 1400;\n // xxxlarge: 1920;\n var breakpoints = [480, 640, 768, 960, 1024, 1200, 1400, 1920];\n var breakpoint = 320;\n $.each(breakpoints, function(index, value){\n if (window.matchMedia('(min-width: ' + value + 'px)').matches) {\n breakpoint = value;\n }\n });\n \n return breakpoint;\n };\n \n var getPageType = function (breadcrumb) {\n // Homepage, Site Search, Primary Nav Pages, Secondary Pages, Posts\n var pageType = 'none';\n \n // Compute cgPageType \n if(breadcrumb.length == 2) {\n pageType = 'Primary Nav Pages';\n }\n else if(breadcrumb.length == 3) {\n pageType = 'Secondary Pages';\n }\n \n if (breadcrumb[1] === 'Blog') {\n pageType = 'Posts';\n }\n \n if (window.location.pathname == '/' ){\n pageType = 'Homepage';\n } else if (window.location.pathname == '/search-results/') {\n pageType = 'Site Search';\n }\n \n return pageType;\n };\n \n \n//Page Tracking Scripts\n\n // var cdAuthor = $.trim($('#main article .container .post-meta .post-meta__author a').text());\n // var cdPublishedDate = $.trim($('#main article .container .post-meta .post-meta__date').text());\n // var cmBlogTagCount = $('#main article .container .post-meta .post-meta__terms a').length;\n var wpAdminBar = $('#wpadminbar');\n var cdTrafficType = 'external';\n if (wpAdminBar.length){\n cdTrafficType = 'internal';\n }\n var siteURL = window.location.origin;\n var cdSiteEnv = siteURL;\n var cdWorkEnv = 'local';\n if (cdSiteEnv.indexOf('technoserve.org') > -1) {\n cdWorkEnv = 'production';\n } else if (cdSiteEnv.indexOf('test-technoserve') > -1) {\n cdWorkEnv = 'test';\n } else if (cdSiteEnv.indexOf('dev-technoserve') > -1){\n cdWorkEnv = 'dev';\n }\n var cdAuthor = $.trim($('#main .post-meta__author a').text());\n var cdPublishedDate = $.trim($('#main .post-meta__date').text());\n var cmBlogTagCount = $('#main .post-meta__terms a').length;\n \n var breadcrumbData = getBreadcrumb($('ul.breadcrumb li'));\n var cgSiteSection = 'none';\n var cgBreadcrumb = 'none';\n\n var cdTheme = $('#main article').attr(\"cdTheme\");\n var cdFormat = $('#main article').attr(\"cdFormat\");\n var cdAngle = $('#main article').attr(\"cdAngle\");\n \n if(cdTheme == undefined) { cdTheme = ''; }\n if(cdFormat == undefined) { cdFormat = ''; }\n if(cdAngle == undefined) { cdAngle = ''; }\n\n if (typeof breadcrumbData !== 'undefined') {\n cgSiteSection = breadcrumbData[1];\n cgBreadcrumb = '/' + breadcrumbData.join(' /');\n }\n \n \n var cgPageType = getPageType(breadcrumbData);\n if (cgPageType == 'Homepage'){\n cgSiteSection = 'homepage';\n }\n var content = '';\n if ($('#main article .container').length) {\n content = $('#main article .container').text();\n }\n else {\n content = $('#main').text();\n }\n \n var title = '';\n if ($('#main article .container .article-h1').length) {\n title = $('#main article .container .article-h1').text();\n }\n else {\n title = $('#main h1').text();\n }\n \n var excerpt = '';\n if ($('#main article .container p.h3').length) {\n excerpt = $('#main article .container p.h3').text();\n }\n else {\n excerpt = $('#main .container p.h3').text();\n }\n content = content.replace(/\"']*(((\"[^\"]*\")|('[^']*'))[^\"'>]*)*>/g,\"\");\n content = content.replace(/\\n{2,}\\s*/g, '\\n');\n var cmContentReadingLevel = colemanLiauIndex(content);\n var cmBlogTitleReadingLevel = colemanLiauIndex(title);\n var cmBlogExcerptReadingLevel = colemanLiauIndex(excerpt);\n\n var cdBreakpoint = getBreakpoint();\n var cdWordCount = getWords(content).length;\n\n if ($('body').hasClass('single-post')){\n /* UA Remove */\n window.dataLayer.push({ \n 'event': 'blogDataReady',\n 'cdBreakpoint': cdBreakpoint,\n 'cdWordCount': cdWordCount,\n 'cdAuthor': cdAuthor,\n 'cdPublishedDate': cdPublishedDate,\n 'cdPublishedIn': cgSiteSection,\n 'cgSiteSection': cgSiteSection,\n 'cgPageType': cgPageType,\n 'cgBreadcrumb': cgBreadcrumb,\n 'cmContentReadingLevel': cmContentReadingLevel,\n 'cmBlogTitleReadingLevel': cmBlogTitleReadingLevel,\n 'cmBlogExcerptReadingLevel': cmBlogExcerptReadingLevel,\n 'cmBlogTagCount': cmBlogTagCount,\n 'oana': 'oana'\n });\n /* GA4 */\n window.dataLayer.push({ \n 'event': 'blog_data_ready',\n 'angle': cdAngle,\n 'author': cdAuthor,\n 'breadcrumb': cgBreadcrumb,\n 'breakpoint': cdBreakpoint,\n 'format': cdFormat,\n 'page_type': cgPageType,\n 'published_date': cdPublishedDate,\n 'published_in': cgSiteSection,\n 'reading_level': cmContentReadingLevel,\n 'site_env': cdSiteEnv,\n 'site_section': cgSiteSection,\n 'tag_count': cmBlogTagCount,\n 'theme': cdTheme,\n 'traffic_type': cdTrafficType,\n 'word_count': cdWordCount,\n 'work_env': cdWorkEnv,\n });\n }\n /* UA */\n window.dataLayer.push({ \n 'event': 'pageView',\n 'cdBreakpoint': cdBreakpoint,\n 'cdWordCount': cdWordCount,\n 'cdAuthor': cdAuthor,\n 'cdPublishedDate': cdPublishedDate,\n 'cdPublishedIn': cgSiteSection,\n 'cgSiteSection': cgSiteSection,\n 'cgPageType': cgPageType,\n 'cgBreadcrumb': cgBreadcrumb,\n 'cmContentReadingLevel': cmContentReadingLevel,\n 'cmBlogTitleReadingLevel': cmBlogTitleReadingLevel,\n 'cmBlogExcerptReadingLevel': cmBlogExcerptReadingLevel,\n 'cmBlogTagCount': cmBlogTagCount,\n 'oana': 'oana',\n 'cdTheme': cdTheme,\n 'cdFormat': cdFormat,\n 'cdAngle': cdAngle,\n });\n /* GA4 Update */\n \n\n window.dataLayer.push({ \n 'event': 'page_view',\n 'angle': cdAngle,\n 'author': cdAuthor,\n 'breadcrumb': cgBreadcrumb,\n 'breakpoint': cdBreakpoint,\n 'format': cdFormat,\n 'page_type': cgPageType,\n 'published_date': cdPublishedDate,\n 'published_in': cgSiteSection,\n 'reading_level': cmContentReadingLevel,\n 'site_env': cdSiteEnv,\n 'site_section': cgSiteSection,\n 'tag_count': cmBlogTagCount,\n 'theme': cdTheme,\n 'traffic_type': cdTrafficType,\n 'word_count': cdWordCount,\n 'work_env': cdWorkEnv,\n });\n \n\n //End Blog Analytics\n\n\n\n // EVENT TRACKING - Download Event\n $('a[href$=\".pdf\"]').click(function (event) {\n var text = $(this).text();\n\n if ($(this).closest('.archive-listing__content').find('.archive-listing__title').length) {\n text = $(this).closest('.archive-listing__content').find('.archive-listing__title').text();\n }\n /*\n var lSide = $(window).width() / 2;\n var downloadPosition = event.pageX < lSide ? 1 : 2;\n */\n var allDownloads = $('a[href$=\".pdf\"]');\n var downloadPosition = 1;\n for(let i = 0; i < allDownloads.length; i++){ \n var tempText = $(allDownloads[i]).text();\n if ($(allDownloads[i]).closest('.archive-listing__content').find('.archive-listing__title').length) {\n tempText = $(allDownloads[i]).closest('.archive-listing__content').find('.archive-listing__title').text();\n }\n if (tempText == text){\n i = allDownloads.length;\n }\n downloadPosition++;\n }\n window.dataLayer.push({\n 'event': 'download',\n 'downloadName': text,\n 'downloadPosition': downloadPosition,\n });\n });\n\n //Event tracking - Sidebar nav links\n $('#main a.jump-menu__link').click(function(){\n var anchorContent = $('main h1').text();\n anchorContent = stripHTML(anchorContent);\n var anchorType = 'Left Rail';\n var anchorName = $(this).text();\n anchorName = stripHTML(anchorName);\n window.dataLayer.push({\n 'event': 'anchor',\n 'anchorType': anchorType,\n 'anchorContent': anchorContent,\n 'anchorName': anchorName\n });\n window.dataLayer.push({\n 'event': 'anchor_link',\n 'content_interaction': 'left rail: ' + anchorName,\n });\n });\n\n\n // EVENT TRACKING - Click to Email\n $('a[href^=\"mailto:\"]').click(function(){\n var email = $(this).attr('href').replace('mailto:', '');\n var text = $(this).text();\n\n var currentURL = $(location).attr('pathname');\n var closestHeader = $(this).closest(\"*:has('h1, h2, h3, h4, h5, h6')\");\n \n closestHeader = $(closestHeader).find(\":header\").first();\n\n if ($(closestHeader).children().length == 0){\n closestHeader = $(closestHeader).text();\n } else {\n \n closestHeader = $(closestHeader).text();\n }\n\n if (currentURL.includes('contact-us')){\n text = $(this).parent().parent().find('.large strong').text();\n if (text == ''){\n text = $(this).parent().parent().find('.large b').text();\n }\n } else if ($(this).parent().parent().hasClass('staff-contact') == true){\n\n text = $(this).parent().parent().find('.staff__name').text();\n var staffTitle = $(this).parent().parent().find('.staff__name span').text();\n text = text.replace(staffTitle,'');\n } else if ($(this).hasClass('card__link')){ \n text = $(this).find('.card__title').text();\n } else if (closestHeader !== ''){\n text = closestHeader;\n } else {\n text = $('#main h1').text();\n }\n window.dataLayer.push({\n 'event': 'clickToEmail',\n 'clickToEmailAddress': email,\n 'clickToEmailName': text\n });\n window.dataLayer.push({\n 'event': 'click_email',\n 'content_interaction': text+': ' + email,\n });\n });\n\n // EVENT TRACKING - Click to Call\n $('a[href^=\"tel:\"]').click(function(){\n var phone = $(this).attr('href').replace('tel:', '');\n var text = $(this).text();\n var currentURL = $(location).attr('pathname');\n var closestHeader = $(this).closest(\"*:has('h1, h2, h3, h4, h5, h6')\");\n \n closestHeader = $(closestHeader).find(\":header\").first();\n\n \n if ($(closestHeader).children().length == 0){\n\n closestHeader = $(closestHeader).text();\n } else {\n \n closestHeader = $(closestHeader).text();\n }\n\n if (currentURL.includes('contact-us')){\n text = $(this).parent().parent().find('.large strong').text();\n if (text == ''){\n text = $(this).parent().parent().find('.large b').text();\n }\n } else if ($(this).hasClass('card__link')){ \n text = $(this).find('.card__title').text();\n\n } else if ($(this).parent().parent().hasClass('staff-contact') == true){\n\n text = $(this).parent().parent().find('.staff__name').text();\n\n var staffTitle = $(this).parent().parent().find('.staff__name span').text();\n\n //console.log($(this).parent().parent());\n \n text = text.replace(staffTitle,'');\n } else if (closestHeader !== ''){\n text = closestHeader;\n } else {\n text = $('#main h1').text();\n }\n window.dataLayer.push({\n 'event': 'clickToCall',\n 'clickToCallNumber': phone,\n 'clickToCallName': text\n });\n\n window.dataLayer.push({\n 'event': 'click_call',\n 'content_interaction': text+': ' + phone,\n });\n });\n\n // EVENT TRACKING - Tabs click\n $('.sp-easy-accordion .ea-card .ea-header a.collapsed, ul[role=\"tablist\"] li a').on('click', function () {\n var currentContext = $('main h1').text();\n var tabsName = $(this).text();\n\n window.dataLayer.push({\n 'event': 'tabs',\n 'tabsContent': currentContext,\n 'tabsName': tabsName\n });\n window.dataLayer.push({\n 'event': 'click_tab',\n 'content_interaction': currentContext+ ': ' + tabsName,\n });\n });\n\n /*$('.js-wikit-tabbed ul[role=\"tablist\"] a[role=\"tab\"]').click(function() {\n var currentContext = $('main h1').text();\n var tabsName = $(this).text();\n\n window.dataLayer.push({\n 'event': 'tabs',\n 'tabsContent': currentContext,\n 'tabsName': tabsName\n });\n });*/\n\n // EVENT TRACKING - pagination click\n $('body').on('click', '.pagination__num button, .pagination__nav button', function() {\n var paginationNumber = $(this).data('page');\n var paginationContent = $('main h1').text();\n\n window.dataLayer.push({\n 'event': 'pagination',\n 'paginationContent': paginationContent,\n 'paginationNumber': paginationNumber\n });\n window.dataLayer.push({\n 'event': 'click_pagination',\n 'content_interaction': paginationContent + ': ' + paginationNumber,\n });\n });\n\n // EVENT TRACKING - search pagination click\n $('body').on('click', '.gsc-cursor .gsc-cursor-page', function(){\n var paginationNumber = $(this).text();\n var paginationContent = 'Site Search';\n\n window.dataLayer.push({\n 'event': 'pagination',\n 'paginationContent': paginationContent,\n 'paginationNumber': paginationNumber\n });\n });\n\n // EVENT TRACKING - maps clicking\n /*$('#map, .leaflet-control-zoom-in, .leaflet-control-zoom-out').click(function(){\n window.dataLayer.push({\n 'event': 'map',\n 'mapAction': 'Explore',\n 'mapLocation': ''\n });\n });\n\n $('#map, .leaflet-control-zoom-in, .leaflet-control-zoom-out').click(function(){\n window.dataLayer.push({\n 'event': 'map',\n 'mapAction': 'Explore',\n 'mapLocation': ''\n });\n });*/\n\n $('.btn[data-modal=\"map-modal\"]').on('click', function() {\n window.dataLayer.push({\n 'event': 'map',\n 'mapAction': 'Explore',\n 'mapLocation': ''\n });\n window.dataLayer.push({\n 'event': 'tool_map',\n 'tool_step': 'step 1: map shown',\n });\n });\n\n $('body').on('click', '.map-popup .map-popup__text a', function(){\n var mapLocation = $(this).closest('.map-popup__text').find('.map-popup__title').text();\n\n window.dataLayer.push({\n 'event': 'map',\n 'mapAction': 'Contact',\n 'mapLocation': mapLocation\n });\n window.dataLayer.push({\n 'event': 'tool_map',\n 'tool_step': 'step 3: contact: ' + mapLocation,\n });\n });\n\n // EVENT TRACKING - Related content clicks\n $('body').on('click', '.related__posts .related-post a', function(){\n var relatedPosition = $(this).closest('.related-post').index() + 1;\n var relatedName = $(this).closest('.related-post').find('a.related-post__link').text();\n\n window.dataLayer.push({\n 'event': 'related',\n 'relatedName': relatedName,\n 'relatedPosition': relatedPosition\n });\n window.dataLayer.push({\n 'event': 'click_related_content',\n 'content_interaction': relatedName+ ': ' + relatedPosition,\n });\n });\n\n // EVENT TRACKING - Filters clicks\n $('body').on('click', '.facetwp-type-fselect .fs-option:not(.selected)', function(){\n var filtersContent = $('#main h1').text();\n var filter = $(this).closest('.facetwp-type-fselect').find('select.facetwp-dropdown option:first-of-type').text();\n var selection = $(this).find('.fs-option-label');\n selection.find('span').remove();\n\n var filtersName = filter + ' - ' + $.trim(selection.text());\n\n window.dataLayer.push({\n 'event': 'filters',\n 'filtersContent': filtersContent,\n 'filtersName': filtersName\n });\n window.dataLayer.push({\n 'event': 'drop_down',\n 'content_interaction': filtersContent + ': ' + filtersName,\n });\n });\n\n // EVENT TRACKING - Donation success.\n\tif (body.hasClass('page-id-11084')) {\n\t\t// This is a hubspot form submission success page. Redirects to this page. User can use Paypal\n\t\t// as well so execute push simply on page load.\n\t\t/*dataLayer.push({\n\t\t\t'event': 'formSuccess',\n\t\t\t'formName': 'Donate Now',\n\t\t\t'formSuccessId': '025984357'\n\t\t});*/\n\t}\n\n // EVENT TRACKING - Donate Now page load\n window.addEventListener(\"message\", function(event) {\n //Good for debugging HS events\n //console.log('found message ' + event.data.type);\n //console.log(event);\n if (event.data.accepted == true){\n window.conversionID = event.data.conversionId;\n }\n if(event.data.type == 'hsFormCallback'){\n \n const HS_SIGNUP_ID = 'f027ea34-f0d6-45f9-b623-c22b0120e13f';\n \n const HS_SIGNUP_ID2 = '94ac8955-9128-4670-9782-56796955b887';\n \n //const HS_DONATION_ID = 'a203c6e4-1ce4-4d27-a34f-7810ea87eee5';\n const HS_DONATION_ID = '360debf6-7ee8-45b0-816b-544ae0d9384e';\n \n const HS_FORM_ID = event.data.id;\n\n var hs_event_id = event.data.id;\n var hs_event_name = event.data.eventName;\n var hs_event_type = event.data.type;\n\n // Function to log event for form field name.\n var pushFormFieldEnter = function($form, $elements, formName,formGoal) {\n //console.log('form input init');\n $elements.one('focus', function(){\n var newField = $(this).attr('name');\n var fieldID = $(this).attr('ID');\n if (!$form.hasClass(GTM_PUSHED_CLASS + '-start')) {\n $form.addClass(GTM_PUSHED_CLASS + '-start');\n\n //Tracks form start\n /* UA Remove */\n window.dataLayer.push({\n 'event': 'formStart',\n 'formName': window.formName[HS_FORM_ID],\n 'formGoal': formGoal,\n 'elementID': HS_FORM_ID\n });\n /* GA4 */\n window.dataLayer.push({\n 'event': 'form_start',\n 'form_name': window.formName[HS_FORM_ID],\n 'form_goal': formGoal,\n 'element_id': fieldID\n });\n\n //Tracks donate/e-commerce form start\n if (formName !== 'Sign Up Form' && formName !=='Sign Up' && formName !== 'sign up form' && formName !=='sign up' && formName !== 'Pop Up' && formName !== 'Form' && formName !== 'pop up' && formName !== 'form'){\n window.dataLayer.push({\n 'event': 'checkout2',\n 'ecommerce': {\n 'checkout': {\n 'actionField': {'step': 2, 'option': 'Form Start'},\n 'affiliation': window.formName[HS_FORM_ID],\n 'products': [{\n 'name': formName,\n 'id': hs_event_id\n }]\n }\n },\n 'eventCallback': function() {\n // document.location = '/support-us/thank-you/';\n }\n });\n\n var formVal = $('#amount').val();\n if ($(this).val() && $(this).val().indexOf('$') > -1){\n formVal = $(this).val();\n } \n window.dataLayer.push({\n 'event': 'add_to_cart',\n 'currency': 'USD',\n 'value': formVal,\n 'ecommerce': {\n 'items': {\n 'products': [{\n 'item_name': window.formName[HS_FORM_ID],\n 'item_id': HS_FORM_ID,\n 'price': formVal,\n 'quantity': 1\n }]\n }\n }\n });\n\n }\n } \n\n \n\n /* This check surpesses duplicate focus field triggers that\n can occur due to tabbing out and back into your browser */\n \n \n if(window.lastFocus !== fieldID){\n window.lastFocus = fieldID;\n /* UA Remove */\n window.dataLayer.push({\n 'event': 'formFieldEnter',\n 'formName': window.formName[HS_FORM_ID],\n 'formField': newField,\n 'formGoal': formGoal,\n 'elementID': HS_FORM_ID\n });\n /* GA4 */\n window.dataLayer.push({\n 'event': 'form_field',\n 'form_name': window.formName[HS_FORM_ID],\n 'form_field': newField,\n 'form_goal': formGoal,\n 'element_id': fieldID\n });\n }\n });\n }\n\n // Signup Form GTM event.\n var signUpFormGTM = function() {\n switch (hs_event_name) {\n case 'onFormSubmitted':\n var $container = $('#hs' + HS_FORM_ID);\n /*\n if (!$container.length) {\n $container = $('#hs' + HS_SIGNUP_ID2);\n }\n */\n if ($container.length) {\n var $submit_message = $('.submitted-message', $container);\n\n if ($submit_message.length && !$submit_message.hasClass(GTM_PUSHED_CLASS)) {\n var message = $submit_message.text();\n\n if (message === 'Thanks for signing up.') {\n /* UA Remove */\n window.dataLayer.push({\n 'event': 'formSuccess',\n 'formName': window.formName[HS_FORM_ID],\n 'formSuccessId': window.conversionID,\n 'formGoal': 'email',\n 'elementID': HS_FORM_ID\n });\n \n /* GA4 */\n window.dataLayer.push({\n 'event': 'form_complete',\n 'form_name': window.formName[HS_FORM_ID],\n 'form_success_id': window.conversionID,\n 'form_goal': 'email',\n 'form_selection': 'na',\n 'status': 'success'\n });\n window.dataLayer.push({\n 'event': 'sign_up',\n 'method': 'email newsletter',\n 'status': 'success'\n });\n window.dataLayer.push({\n 'event': 'join_group',\n 'group_id': 'signed up'\n });\n window.conversionID = '';\n }\n\n $submit_message.addClass(GTM_PUSHED_CLASS);\n }\n }\n break;\n default:\n var $form = $('#hsForm_' + HS_FORM_ID)\n\n if (!$form.length) {\n console.log('Cannot find form ' + HS_FORM_ID);\n }\n window.formName[HS_FORM_ID] = 'sign up - ' + HS_FORM_ID;\n pushFormFieldEnter($form, $('input', $form), 'sign up','email');\n \n break;\n }\n \n }\n // Default Form GTM event.\n var defaultFormGTM = function(fName) {\n var $form = $('.hs-form-' + HS_FORM_ID);\n if ($form.length) {\n if (hs_event_name == 'onFormReady'){\n pushFormFieldEnter($form, $('input', $form), fName,'email');\n \n } else if (hs_event_name == 'onFormSubmitted'){\n window.dataLayer.push({\n 'event': 'formSuccess',\n 'formName': window.formName[HS_FORM_ID],\n 'formSuccessId': window.conversionID,\n 'elementID': HS_FORM_ID\n });\n window.conversionID = '';\n }\n }\n };\n // Donation Form GTM event.\n var donationFormGTM = function() {\n var $form = $('.hs-form-' + HS_FORM_ID);\n\n if ($form.length) {\n\n \n\n var $amount = $('input.amount', $form);\n \n if (hs_event_name == 'onFormReady'){\n\n \n // Apply click event to donation amounts.\n $('input[name=\"donation_amounts\"]').on('click', function(){\n $amount.trigger('change');\n });\n\n pushFormFieldEnter($form, $('input', $form), 'donate now', 'donate');\n\n //Does not fire\n } else if (hs_event_name == 'xonFormSubmitted'){\n // console.log('Event Details;')\n //console.log(event.data);\n \n\n window.dataLayer.push({\n 'event': 'formSuccess',\n 'formName': 'Donate Now',\n 'formSuccessId': window.conversionID\n });\n window.conversionID = '';\n\n window.dataLayer.push({\n 'event': 'purchase',\n 'cdDonationSuccessId': '5687251',\n 'ecommerce': {\n 'purchase': {\n 'actionField': {\n 'id': 'T12345', // cdDonationSuccessId\n 'revenue': '200.00' // Total transaction value (incl. tax and shipping)\n },\n 'products': [{ // List of productFieldObjects.\n 'name': 'Donate Now', // name is the Form Name\n 'id': HS_FORM_ID, // id is the Form Id.\n 'price': '200.00', // price is the donation amount selected.\n 'brand': 'One Time', // one time or new monthly donation.\n 'category': 'PayPal', // PayPal or Credit Card\n 'variant': 'In memory of, Make donation anonymous, Help cover processing fees, Receive other communications', \n 'quantity': 1\n }]\n }\n }\n });\n\n }\n \n }\n }\n\n if(hs_event_type === 'hsFormCallback' && hs_event_name === 'onFormSubmitted') {\n //If this is the signup form, trigger the \n if (hs_event_id == HS_SIGNUP_ID || hs_event_id == HS_SIGNUP_ID2){\n console.log('confirm signup form submitted');\n signUpFormGTM();\n\n } else if ($('#donation-embed .hs-form-'+hs_event_id).length > 0){\n \n donationFormGTM();\n } else {\n if ($('.sgpb-main-html-content-wrapper .hs-form-'+hs_event_id).length > 0){\n name = 'pop up';\n } else {\n name = 'form';\n }\n defaultFormGTM(name);\n }\n }\n\n if(hs_event_type === 'hsFormCallback' && hs_event_name === 'onFormReady') {\n var name = '';\n //console.log('ID ' + hs_event_id);\n /*case '360debf6-7ee8-45b0-816b-544ae0d9384e':\n name = 'Donate Now';\n break;\n */\n window.formName = window.formName || {};\n console.log('found form ' + hs_event_id);\n if (hs_event_id == HS_SIGNUP_ID || hs_event_id == HS_SIGNUP_ID2){\n name = 'sign up';\n if (!window.formName[HS_FORM_ID]){\n window.formName[HS_FORM_ID] = 'newsletter signup form - ' + hs_event_id;\n }\n console.log('confirm signup form init');\n signUpFormGTM();\n\n } else if ($('#donation-embed .hs-form-'+hs_event_id).length > 0){\n name = 'donate now';\n if (!window.formName[HS_FORM_ID]){\n window.formName[HS_FORM_ID] = 'donation form - ' + hs_event_id;\n }\n donationFormGTM();\n } else {\n setTimeout(function(){\n\n },3500);\n // console.log('Form ID ' + hs_event_id );\n if ($('.sgpb-popup-builder-content-html .hs-form-'+hs_event_id).length > 0){\n name = 'pop up';\n if (!window.formName[HS_FORM_ID]){\n window.formName[HS_FORM_ID] = 'pop up - ' + hs_event_id;\n }\n } else {\n name = 'form';\n if (!window.formName[HS_FORM_ID]){\n window.formName[HS_FORM_ID] = 'form - ' + hs_event_id;\n }\n }\n defaultFormGTM(name);\n }\n\n if (name == 'donate now') {\n window.dataLayer.push({\n 'event': 'checkout1',\n 'ecommerce': {\n 'checkout': {\n 'actionField': {'step': 1, 'option': 'Page Load'},\n 'affiliation': window.formName[HS_FORM_ID],\n 'products': [{\n 'name': name,\n 'id': hs_event_id\n }]\n }\n },\n 'eventCallback': function() {\n // document.location = '/support-us/thank-you/';\n }\n });\n var formVal = $('#amount').val();\n window.dataLayer.push({\n 'event': 'view_item',\n 'currency': 'USD',\n 'value': formVal,\n 'ecommerce': {\n 'items': {\n 'products': [{\n 'item_name': window.formName[HS_FORM_ID],\n 'item_id': HS_FORM_ID,\n 'price': formVal,\n 'quantity': 1\n }]\n }\n }\n });\n\n }\n }\n }\n });\n\n // EVENT TRACKING - Donate Now form start\n // User inputs a specific amount.\n /*\n $('body').on('focus', '#amount', function(event) {\n \n if($('#amount').val() == 0) {\n console.log(event);\n window.dataLayer.push({\n 'event': 'checkout2',\n 'ecommerce': {\n 'checkout': {\n 'actionField': {'step': 2, 'option': 'Form Start'},\n 'products': [{\n 'name': 'Donate Now',\n 'id': '360debf6-7ee8-45b0-816b-544ae0d9384e'\n }]\n }\n },\n 'eventCallback': function() {\n// document.location = '/support-us/thank-you/';\n }\n });\n }\n });\n */\n // User is selecting a default amount.\n $('body').on('focus', 'input[name=\"donation_amounts\"]', function(event) {\n /*\n if($('#amount').val() == 0) {\n console.log('value trigger?');\n console.log(event);\n window.dataLayer.push({\n 'event': 'checkout2',\n 'ecommerce': {\n 'checkout': {\n 'actionField': {'step': 2, 'option': 'Form Start'},\n 'products': [{\n 'name': 'Donation Form - WP',\n 'id': '360debf6-7ee8-45b0-816b-544ae0d9384e'\n }]\n }\n },\n 'eventCallback': function() {\n// document.location = '/support-us/thank-you/';\n }\n });\n }*/\n });\n\n // EVENT TRACKING: Search Start\n //Google Search Results Page\n $('.main').on('focus', 'input[name^=\"search\"]', function(event) {\n var newField = $(this).attr('name');\n if($(this).val().length == 0) {\n if(window.lastFocus !== newField){\n window.lastFocus = newField;\n window.dataLayer.push({\n 'event': 'searchStart',\n 'searchType': 'Site Search'\n });\n }\n }\n\n });\n //Click top search icon\n $('body').on('click', '.main-nav__search', function(event) {\n var newField = $(this).attr('name');\n if ($(this).attr( \"tabindex\" ) == -1) {\n if(window.lastFocus !== newField){\n window.lastFocus = newField;\n window.dataLayer.push({\n 'event': 'searchStart',\n 'searchType': 'Site Search'\n });\n }\n\n }\n\n });\n //Share on Social\n $('.addtoany_share_save_container').on('click', 'a', function(event) {\n var shareTarget = $(this).attr('title');\n var pageTitle = $(document).find(\"title\").text();\n var contentType = 'page';\n if ($('body').hasClass('single-post')){\n contentType = 'blog post';\n } \n window.dataLayer.push({\n 'event': 'share',\n 'content_type': contentType,\n 'item_id': pageTitle,\n 'method': shareTarget\n });\n });\n \n\n \n\n //Facet Search On Blog\n $('body').on('focus', 'input[class^=\"facetwp-search\"]', function(event) {\n var newField = $(this).attr('name');\n if($(this).val().length == 0) {\n if(window.lastFocus !== newField){\n window.lastFocus = newField;\n var $searchType = '';\n var $placeholder = $(this).attr('placeholder')\n if ($placeholder == 'Search Blogs'){\n $searchType = 'Blog Search';\n } else if ($placeholder == 'Search Resources'){\n $searchType = 'Resources Search';\n } else if ($placeholder == 'Search News'){\n $searchType = 'News Search';\n }\n window.dataLayer.push({\n 'event': 'searchStart',\n 'searchType': $searchType\n });\n console.log('search start 2');\n }\n }\n });\n\n\n // EVENT TRACKING: Search Search\n var getUrlParameter = function getUrlParameter(sParam) {\n var sPageURL = window.location.search.substring(1),\n sURLVariables = sPageURL.split('&'),\n sParameterName,\n i;\n\n for (i = 0; i < sURLVariables.length; i++) {\n sParameterName = sURLVariables[i].split('=');\n\n if (sParameterName[0] === sParam) {\n return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);\n }\n }\n };\n\n // Utility function get data facet search data for reuse.\n var getFacetSearch = function () {\n\t\t// Search for pages at Resources, Blog, and News sections.\n\t\tvar facetSearchTerm = \"\";\n\t\tvar facetSearchType = \"\";\n\t\tvar href = window.location.href;\n\t\tvar validFacetSearch = [\"blog/?fwp_search_blogs=\", \"resources/?fwp_search_resources=\", \"news/?fwp_search_news=\"];\n\t\tvar resultCount = window.FWP_JSON.preload_data.settings.pager.total_rows; // Get the count from the JSON object in the DOM.\n\t\tvar isValidSearch = validFacetSearch.some(function(searchName) {\n\t\t\tvar found = (href.indexOf(searchName) !== -1);\n\t\t\tvar facetName = searchName.split(\"/\").slice(0,1).shift();\n\n\t\t\tfacetSearchType = facetName.charAt(0).toUpperCase() + facetName.slice(1) + ' Search';\n\t\t\tfacetSearchTerm = getUrlParameter(searchName.split(\"/\").slice(1).shift().replace(\"?\", \"\").replace(\"=\", \"\"));\n\n\t\t\treturn found;\n\t\t});\n\n\t\treturn {\n\t\t\tisValidType: isValidSearch,\n\t\t\tterm: facetSearchTerm,\n\t\t\ttype: facetSearchType,\n\t\t\tcount: resultCount,\n\t\t}\n\t};\n\n\t$(document).ready(function() {\n\t\tvar searchTerm = getUrlParameter('search');\n\n\t\tvar searchSearch = function(searchType, searchTerm, resultCount) {\n\t\t\twindow.dataLayer.push({\n\t\t\t\t'event': 'searchSearch',\n\t\t\t\t'searchType': searchType,\n\t\t\t\t'searchTerm': searchTerm,\n\t\t\t\t'searchResults': resultCount\n\t\t\t});\n\t\t}\n\n\t\tif (window.location.href.indexOf('search-results/?search=') > -1 && searchTerm !== '') {\n\t\t\tsetTimeout(function() {\n\t\t\t\tvar resultInfoNo = $('.gsc-result-info').text().replace(',', '').replace('.', '').match(/\\d+/);\n\t\t\t\tvar resultCount = resultInfoNo[0];\n\n\t\t\t\tsearchSearch(\"Site Search\", searchTerm, resultCount);\n\t\t\t}, 2000);\n\t\t}\n\n\n\n $(document).on('facetwp-loaded', function() {\n var facetData = getFacetSearch();\n if (facetData.isValidType && facetData.term !== '') {\n searchSearch(facetData.type, facetData.term, facetData.count);\n\n var $facetResultContainer = $(\".facetwp-template\");\n\n if ($facetResultContainer.length) {\n $facetResultContainer.find(\".archive-listing__link\").on('click', function(e) {\n var contentTitle = $(this).find('.archive-listing__title').text();\n searchClick(facetData.type, facetData.term, facetData.count, contentTitle);\n \n });\n }\n\n }\n \n });\n\t});\n\t// END EVENT TRACKING: Search Search\n\n\n\t// EVENT TRACKING: Search click\n\tvar searchClick = function(searchType, searchTerm, resultCount, contentTitle) {\n /* UA Remove */\n\t\twindow.dataLayer.push({\n\t\t\t'event': 'searchClick',\n\t\t\t'searchType': searchType,\n\t\t\t'searchTerm': searchTerm,\n\t\t\t'searchResults': resultCount,\n 'anchorContent': contentTitle\n\t\t});\n /* GA4 */\n window.dataLayer.push({\n\t\t\t'event': 'select_content',\n\t\t\t'content_type': searchType,\n\t\t\t'search_term': searchTerm,\n 'item_id': contentTitle\n\t\t});\n\t};\n\n\t$(document).ready(function() {\n\t\t\n\t});\n\n $('body').on('click', '.gsc-result a', function() {\n var searchTerm = getUrlParameter('search');\n var searchTerm = $('input.gsc-input').val();\n var resultInfoNo = $('.gsc-result-info').text().replace(',', '').match(/\\d+/);\n var contentTitle = $(this).text();\n var resultCount = resultInfoNo[0];\n\n searchClick('Site Search', searchTerm, resultCount,contentTitle);\n });\n // END EVENT TRACKING: Search click\n\n // EVENT TRACKING: Featured content event click\n $('body').on('click', '.listing__link', function() {\n var section_title = $(this).closest('.listings').find('.listings__heading').text();\n //&& section_title.toLowerCase().indexOf(\"featured\") >= 0\n if (section_title.length > 0 ) {\n var content_title = $(this).find('.listing__title').text();\n var positionCount = $(this).parent().index();\n window.dataLayer.push({\n 'event': 'featured',\n 'featuredType': 'Vertical',\n 'featuredName': section_title + ' - ' + content_title,\n 'featuredPosition': positionCount\n });\n window.dataLayer.push({\n 'event': 'click_featured_content',\n 'content_interaction': 'Vertical: ' + section_title + ' - ' + content_title,\n });\n }\n });\n // EVENT TRACKING: Featured content event click\n\n // EVENT TRACKING: load more\n var resorces_more_clicked = 0;\n $('button#resources-listing-more').on('click', function() {\n var section_title = $(this).closest('section.resources-listing').find('h2.resources-listing__title').text();\n\n if(section_title != '') {\n resorces_more_clicked++;\n\n window.dataLayer.push({\n 'event': 'loadMore',\n 'loadMoreName': section_title,\n 'loadMorePosition': resorces_more_clicked\n });\n window.dataLayer.push({\n 'event': 'load_more',\n 'content_interaction': 'load more: ' + section_title,\n });\n }\n });\n // END EVENT TRACKING: load more\n\n //EVENT TRACKING: Quiz\n\n if ($('body').hasClass('single-post') && $('#main .gform_body').length){\n//Has a quiz!\n var quiz_elem = $('#main .gform_body');\n $('#main .gform_body input').on('click',function(){\n if (!$(quiz_elem).hasClass('started-quiz')) {\n $(quiz_elem).addClass('started-quiz');\n window.dataLayer.push({\n 'event': 'tool_quiz',\n 'tool_step': 'step 1: quiz started',\n });\n }\n var fieldID = $(this).attr('id');\n var fieldLabel = $(quiz_elem).find(\"label[for='\"+fieldID+\"']\").text();\n window.dataLayer.push({\n 'event': 'tool_quiz',\n 'tool_step': 'step 2: answered: ' + fieldLabel,\n });\n });\n }\n\n // EVENT TRACKING: popup content click\n $(window).on('sgpbPopupContentclick', function(e, settings) {\n var popup_content = $('.sg-popup-builder-content:visible');\n\n if(popup_content.html() != '') {\n var popup_title = '';\n var popup_title_tags = ['h1', 'h2', 'h3','h4','h5'];\n\n for(var i in popup_title_tags) {\n var popup_title_tag = popup_content.find(popup_title_tags[i]);\n\n if(popup_title_tag.length > 0) {\n popup_title = popup_title_tag.text();\n break;\n }\n }\n if (popup_title == ''){\n popup_title = $(popup_content).firstChild().attr('class');\n }\n if(popup_title != '') {\n window.dataLayer.push({\n 'event': 'popUp',\n 'popUpAction': 'Click',\n 'popUpName': popup_title\n });\n }\n }\n });\n // END EVENT TRACKING: load more\n\n // EVENT TRACKING: popup impression\n $(window).on('sgpbPopupReload', function(e) {\n //console.log('Detected popup');\n\t\tvar popup_content = $('.sg-popup-builder-content:visible');\n\t\tvar popupHTML = popup_content.html();\n\t\tvar has_popupContent = (popupHTML !== '');\n\n\t\t// Event tracker for the Popup Builder plugin.\n\t\tvar popUpBuilderFormStartGTM = function () {\n\t\t\tvar $popupContainer = $('.sgpb-fadeIn:visible');\n\n\t\t\tif (!$popupContainer.length) {\n\t\t\t\treturn null;\n\t\t\t}\n /*\n\t\t\tvar $form = $('form', $popupContainer);\n\n\t\t\tif ($form.length) {\n\t\t\t\t$('input').on('focus', function() {\n\n\t\t\t\t\t\t$form.addClass(GTM_PUSHED_CLASS);\n\t\t\t\t\tif (!$form.hasClass(GTM_PUSHED_CLASS)) {\n\t\t\t\t\t\twindow.dataLayer.push({\n\t\t\t\t\t\t\t'event': 'formStart',\n\t\t\t\t\t\t\t'formName': 'Pop Up'\n\t\t\t\t\t\t})\n\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}*/\n\t\t}\n \n\n\n\t\tif (popup_content.length && has_popupContent) {\n\t\t\tsetTimeout(function(){\n\t\t\t\t//popUpBuilderFormStartGTM();\n\t\t\t}, 1000);\n\t\t}\n\n\n\t\tif (popup_content.length && has_popupContent) {\n\t\t\tsetTimeout(function(){\n\t\t\t\t//popUpBuilderFormStartGTM();\n\t\t\t}, 1000);\n\t\t}\n\n if(!popup_content.hasClass('gtm-pushed') && has_popupContent) {\n\n var popup_title = '';\n var popup_title_tags = ['h1', 'h2', 'h3','h4','h5'];\n\n for(var i in popup_title_tags) {\n var popup_title_tag = popup_content.find(popup_title_tags[i]);\n\n if(popup_title_tag.length > 0) {\n popup_title = popup_title_tag.text();\n break;\n }\n }\n if (popup_title == ''){\n popup_title = $(popup_content).firstChild().attr('class');\n }\n if(popup_title != '') {\n window.dataLayer.push({\n 'event': 'popUp',\n 'popUpAction': 'Impression',\n 'popUpName': popup_title\n });\n\n popup_content.addClass('gtm-pushed');\n }\n }\n });\n // END EVENT TRACKING: popup impression\n\n\t// Use window on load for Hubspot forms. It will wait for all items to load on a page\n\t// before executing vs JQuery waiting for DOM. It will loop through a setinterval until Hubspot form is loaded.\n\t// https://community.hubspot.com/t5/CMS-Development/Input-forms-JS-improperly-compile-or-conflict-on-page-load/m-p/316176/highlight/true#M15140\n\t$(window).on('load', function () {\n\n function startPopupTracker(){\n var popupContent = $('div[class~=\"eapp-popup-layout-variation-slide-in-right-component-enter-done\"]');\n var popupTitle = $('div[class^=\"TextBlock__TextHTML\"]').first().text();\n var popupButton = $('div[class~=\"eapp-popup-layout-variation-slide-in-right-component-enter-done\"] button')[1];\n console.log('popup ' + popupTitle + ' ' + popupContent + ' but ' + popupButton);\n if ($(popupContent).length){\n window.dataLayer.push({\n 'event': 'pop_up',\n 'content_interaction': popupTitle + ' pop up shown',\n });\n $($('div[class~=\"eapp-popup-layout-variation-slide-in-right-component-enter-done\"] button')[1]).on('click',function(){\n window.dataLayer.push({\n 'event': 'pop_up',\n 'content_interaction': popupTitle + ' click button',\n }); \n });\n } else {\n console.log('No popup found');\n }\n }\n $(window).scroll(function(){\n if (window.popinit !== true){\n window.popinit = true;\n \n setTimeout(function(){\n console.log('popup check');\n if ($('div[class~=\"eapp-popup-layout-variation-slide-in-right-component\"]').length) {\n startPopupTracker();\n \n }\n }, 5000);\n }\n });\n\n\n\n window.qmn_quiz_data\n\t\t// Quiz form GTM events.\n\t\tif ($('.interact_responsive_wrapper').length) {\n\t\t\t//var quizForm = setInterval(quizInterval, 1500);\n\t\t}\n\n\t\tfunction quizInterval () {\n\t\t\tvar $iframe = $(iframe).contents();\n\t\t\tvar $container = $iframe.find('[class*=\"main__container____\"]');\n\n\t\t\tif ($container.length){\n\t\t\t\tclearInterval(quizForm);\n\n\t\t\t\t$('[class*=main__answer-reveal-next___]').on('click', function(){\n\t\t\t\t\tvar $iframe_contents = $(\"iframe\").contents();\n\n\t\t\t\t\tvar $counter = $iframe_contents.find('[class*=main__counter____]');\n\t\t\t\t\tvar $title = $iframe_contents.find('[class*=main__question-title___]');\n\t\t\t\t\tvar $incorrect = $iframe_contents.find('[class*=main__answer-reveal-incorrect___]');\n\t\t\t\t\tvar is_correct = (!$incorrect.length);\n\n\t\t\t\t\t//console.log($counter);\n\t\t\t\t\t//console.log($incorrect.length);\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t\t/**\n\t\t\twindow.dataLayer.push({\n\t\t\t\t'event': 'quiz',\n\t\t\t\t'quizNumber': '1',\n\t\t\t\t'quizQuestion': 'Women account for what percentage of agricultural landholders around the world?',\n\t\t\t\t'quizAnswerCorrect': 'Correct',\n\t\t\t\t'quizAnswer': '12.8%'\n\t\t\t});\n\t\t\t*/\n\t\t}\n\t});\n\n var quizForm = $('form.qsm-quiz-form');\n\n if(quizForm.length > 0) {\n var existCondition = setInterval(function() {\n var next_btn = $('a.mlw_next');\n\n if (next_btn.length > 0) {\n clearInterval(existCondition);\n //console.log('next hook');\n next_btn.on('click', checkAnswer);\n }\n }, 100);\n var existCondition2 = setInterval(function() {\n var submit_btn = $('.qsm-submit-btn');\n\n if (submit_btn.length > 0) {\n clearInterval(existCondition2);\n \n //console.log('submit hook');\n \n submit_btn.on('click', function(){\n if (window.lastQuestion === undefined){\n window.lastQuestion = true;\n checkAnswer();\n return false;\n }\n\n });\n }\n }, 200);\n }\n}\nfunction checkAnswer(){\n var answers_cnt = $('.qmn_radio_answers');\n //console.log('clicky');\n //console.log(window.qmn_quiz_data[Object.keys(window.qmn_quiz_data)[0]]);\n window.$quiz_id = window.qmn_quiz_data[Object.keys(window.qmn_quiz_data)[0]].quiz_id;\n window.$quiz_name = window.qmn_quiz_data[Object.keys(window.qmn_quiz_data)[0]].quiz_name;\n if(window.$question_list === undefined){\n window.$question_list = window.qmn_quiz_data[Object.keys(window.qmn_quiz_data)[0]].question_list;\n }\n\n if(answers_cnt.length > 0) {\n var $active_question = $(\".quiz_section:visible\");\n //console.log($active_question);\n var slide_number = $('input[name=\"slide_number\"]');\n var target_slide = slide_number.val()-1;\n //If we're on the last question, grab the last slide value\n if (window.lastQuestion == true){\n target_slide = slide_number.val();\n }\n //console.log('slide ' + slide_number.val());\n var $checked_radio = $('.slide'+target_slide + ' input.qmn_quiz_radio:checked');\n \n if ($checked_radio.length > 0){\n //console.log($checked_radio);\n //console.log($($checked_radio).attr('id'));\n\n var $radio_id = $($checked_radio).attr('id');\n var $question_id = $radio_id.replace('question','');\n var $id_split = $question_id.split('_');\n $question_id = $id_split[0];\n var $answer_index = $id_split[1] - 1;\n //console.log('Question = ' + $question_id);\n //console.log(window.$question_list[$question_id]);\n\n\n\n //var $quiz_question = window.$question_list[$question_id].question_answer_info;\n var $quiz_question = $('.question-section-id-' + $question_id + ' .mlw_qmn_question').text();\n $quiz_question = stripHTML($quiz_question);\n var $answer_correct = 'Incorrect';\n var $quiz_answer = $($checked_radio).val();\n\n var $question_answers = window.$question_list[$question_id].answers;\n var $selected_answer = $question_answers[$answer_index];\n if ($selected_answer[0] == $quiz_answer) {\n if($selected_answer[2] == 1){\n $answer_correct = 'Correct';\n }\n } else {\n //console.log('Answer mismatch');\n }\n\n \n window.dataLayer.push({\n 'event': 'quiz',\n 'quizNumber': window.$quiz_id,\n 'quizTitle': window.$quiz_name,\n 'quizQuestion': $quiz_question,\n 'quizAnswerCorrect': $answer_correct,\n 'quizAnswer': $quiz_answer\n });\n if (window.lastQuestion == true){\n $('.qsm-submit-btn').click();\n }\n\n }\n /*var visible_quiz_section = ('.quiz_section:visible');\n console.log(visible_quiz_section);\n var checked_radio = $('.quiz_section:visible input.qmn_quiz_radio:checked');\n console.log(checked_radio.val());*/\n }\n}\n\nexport default {\n init\n};\nfunction CookiebotCallback_OnAccept() {\n init();\n console.log('cookie fire');\n }\n console.log('full track');\n\n if ($('.page-template-donate-optimized').length || $('.page-template-home-optimized').length || $('.page-template-about-us-optimized').length){\n init();\n }\n","import $ from \"jquery\";\nimport debug from 'bows/dist/bows.min.js';\nimport keyboardFocus from \"./base/_keyboardFocus\";\nimport smoothScroll from \"./base/_smoothScroll\";\nimport share from \"./base/_share\";\nimport scrollTriggers from \"./modern/_scrollTriggers\";\nimport gtmTracking from './gtm-tracking';\n\nconst $window = $(window);\nconst $document = $(document);\nconst log = debug(\"site\");\n\n\n\nclass Site {\n\tconstructor() {\n\t\tdocument.addEventListener('DOMContentLoaded', () => this.ready());\n\t\twindow.addEventListener('load', () => this.load());\n\t}\n\t\n\tready() {\n\t\t$('html').removeClass('no-js').addClass('js');\n\t\tconst log = debug(\"site:domReady\");\n\t\tconsole.log('site init modern');\n\t\t// tracking.init();\n\n\n\t\tkeyboardFocus.init();\n\t\tsmoothScroll.init();\n\t\tshare.init();\n \n\t\tgtmTracking.init();\n\t\tconst All_Details = document.querySelectorAll('details');\n\n\t\tAll_Details.forEach(deet=>{\n\t\tdeet.addEventListener('toggle', toggleOpenOneOnly)\n\t\t})\n\n\t\tfunction toggleOpenOneOnly(e) {\n\t\tif (this.open) {\n\t\t\tAll_Details.forEach(deet=>{\n\t\t\tif (deet!=this && deet.open) deet.open = false\n\t\t\t});\n\t\t}\n\t\t}\n\t\t$(document).ready(function(){\n\t\t\tscrollTriggers.init();\n\t\t\n\t\t});\n\t\tfunction jumpElement(hashTag){\n\t\t\tvar headerHeight = $('#header-modern').height();\n\t\t\t//var objOffset = $(hashTag).offset().top;\n\t\t\tvar elem = document.querySelector(hashTag);\n\t\t\tvar objOffset = elem.offsetTop;//getBoundingClientRect().top;\n\t\t\t\n\n\t\t\tvar $offset = 75;\n\t\t\tif ($(window).width()<901){\n\t\t\t\t$offset = 80;\n\t\t\t}\n\t\t\tconsole.log('header ' + headerHeight + 'objOffset '+objOffset + ' offset ' +$offset);\n\t\t\tvar yOffset = objOffset - headerHeight - $offset;\n\t\t\t$(window).scrollTop(yOffset);\n\t\t\tdocument.scrollingElement.scrollTop = yOffset;\n\t\t\tconsole.log(\"hash scroll \" + yOffset);\n\t\t\t$('.debug-element').html(yOffset + ' ' +hashTag);\n\t\t}\n\t\t$(window).on('load', function(){\n\n\t\t\tvar hashTag = window.location.hash;\n\t\t\tif (hashTag){\n\t\t\t\t/*var headerHeight = $('#header-modern').height();\n\t\t\t\t//var objOffset = $(hashTag).offset().top;\n\t\t\t\tvar elem = document.querySelector(hashTag);\n\t\t\t\tvar objOffset = elem.getBoundingClientRect().top;\n\n\t\t\t\tvar $offset = 60;\n\t\t\t\tif ($(window).width()<901){\n\t\t\t\t\t$offset = 60;\n\t\t\t\t}\n\t\t\t\tvar yOffset = objOffset - headerHeight - $offset;\n\t\t\t\t$(window).scrollTop(yOffset);\n\t\t\t\tconsole.log(\"init hash scroll \" + yOffset);\n\t\t\t\t$('.debug-element').html(yOffset + ' ' +hashTag);*/\n\t\t\t\tjumpElement(hashTag);\n\t\t\t\t/*setTimeout(function(){\n\t\t\t\t\tvar hashTag = window.location.hash;\n\t\t\t\t\tjumpElement(hashTag);\n\t\t\t\t},700);*/\n\t\t\t}\n\n\t\t\tlet activeJumpURLs = $('ul#mega-menu-modern_global li.mega-current-menu-item a[href*=\"#\"]');\n\t\n\t\t\t\n\t\t\t$(activeJumpURLs).each(function( index ) {\n\t\t\t\tlet inputString = $(this).attr('href');\n\t\t\t\tlet parts = inputString.split('#');\n\t\t\t\tlet hash = $(this).prop('hash');\n\t\t\t\tlet $where = $(hash);\n\t\t\t\t// Return the part after the # character\n\t\t\t\t$(this).attr('href','#'+parts[1]);\n\t\t\t\t$(this).parent().removeClass('mega-current-menu-item');\n\t\t\t\t$(this).on('click',function(e){\n\n\t\t\t\tvar elem = document.querySelector(hash);\n\t\t\t\tvar objOffset = elem.getBoundingClientRect().top;\n\t\t\t\t\tif ($('#mega-menu-wrap-modern_global .mega-menu-toggle').hasClass('mega-menu-open')){\n\t\t\t\t\t\tconsole.log('gogo');\n\t\t\t\t\t\t$('#mega-menu-wrap-modern_global .mega-menu-toggle').trigger( \"click\" );\n\t\t\t\t\t}\n\t\t\t\t\tif (elem){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t/*let topDistance = objOffset;\n\t\t\t\t\t\tlet $header = $('#header-modern');\n\t\t\t\t\t\tlet $offset = 60;\n\t\t\t\t\t\tif ($(window).width()<901){\n\t\t\t\t\t\t\t$offset = 100;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttopDistance = parseInt(topDistance) - $header.height() - $offset;\n\t\t\t\t\t\t$(window).scrollTop(topDistance);\n\t\t\t\t\t\t$('.debug-element').html(topDistance + ' ' + hash);\n\t\t\t\t\t\tconsole.log('vert scroll mega link ' + topDistance);\n\t\t\t\t\t\t//window.history.hash = hash;*/\n\t\t\t\t\t\tjumpElement(hash);\n\t\t\t\t\t\twindow.history.pushState(null, null, hash);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t//Adds classes to all FundraiseUp elements\n\t\t\t// Loop through all iframes on the page\n\t\t\t$('main.site-content iframe').each(function() {\n\t\t\t\tvar iframeTitle = $(this).attr('title');\n\t\t\t\tif (iframeTitle){\n\t\t\t\t\tiframeTitle = iframeTitle.toLowerCase();\n\t\t\t\t\tiframeTitle = iframeTitle.replace(/\\s+/g, '-');\n\t\t\t\t\t$(this).addClass(iframeTitle);\n\t\t\t\t\t//console.log('Title ' + iframeTitle);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t});\n\t\t\t$('.goal-meter').removeAttr('style');\n\t\t});\n\n\t\t//Sticky nav\n\n\t\t//shrink nav\n\t\t$(function(){\n\n\t\t\twindow.shrunknav = false;\n\t\t\tif ($(window).scrollTop() >= 80) { // if equal to or greater than 100 and hasBeenTrigged is set to false.\n\t\t\t\t$('#header-modern').addClass('sticky-nav');\n\t\t\t\twindow.shrunknav = true;\n\t\t\t}\n\t\t\t$(window).scroll(function() {\n\t\t\t\tif ($(this).scrollTop() >= 80) { // if equal to or greater than 100 and hasBeenTrigged is set to false.\n\t\t\t\t\t$('#header-modern').addClass('sticky-nav');\n\t\t\t\t\twindow.shrunknav = true;\n\t\t\t\t} else if(window.shrunknav) {\n\t\t\t\t$('#header-modern').removeClass('sticky-nav');\n\t\t\t\twindow.shrunknav = false;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n // log('document.DOMContentLoaded');\n\t}\n\n\tload() {\n\t\tconst log = debug(\"site:windowLoad\");\n\t\t// log(\"window.onload\");\n\n\t\t// example of ES2015 modules loading & tree shaking\n\t\t// emptyLinks();\n\t}\n\n}\n\nexport default Site;\nwindow.site = new Site();\n"],"names":["require","const","debug","let","$","log","init","this","keyboardFocus"],"mappings":"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"}