{"version":3,"sources":["app.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_typeof","obj","Symbol","iterator","constructor","prototype","_require","uuidv4","v4","parameterTracking","userJourneyMaxLength","init","self","this","window","userUUID","createUUID","trackUserPath","setWebsiteData","parameterWebsiteData","$","document","on","event","form_id","current_page","populateFormFields","getUUID","storeParameter","getParameter","currentPage","location","pathname","landingPage","loadAndGetWebsiteData","saveAndSetWebsiteData","userJourney","push","shift","paramList","getParameterListAsArray","outputParams","index","uuidField","find","val","websiteDataField","JSON","stringify","getAllWebsiteData","paramsToFill","theParam","field","valueToSet","decodeURI","key","value","saveData","nav","website_data","loadData","getWebsiteData","encodeString","string","btoa","encodedKey","sessionStorage","setItem","parse","getItem","./parameter-tracking.js","uuid","2","hj","q","arguments","getFullPathName","replace","splitFullPathName","split","finalPathName","triggerPathName","hostname","jQuery","submittedId","data","hasClass","3","polyfills","ui","navigation","quoteCarousel","sessionItems","formParams","hotjarScripts","ready","./form-params.js","./hotjar-scripts.js","./navigation.js","./polyfills.js","./quote-carousel.js","./sessionItems.js","./ui.js","4","hoverIntent","over","isMobile","isTablet","addClass","out","removeClass","timeout","parent","toggleClass","preventDefault","freezeScroll","unFreezeScroll","currentTarget","id","focus","click","parents","submit","boxURL","attr","closest","each","gform","addFilter","$targetElem","formId","jquery-hoverintent","5","parameterListVar","parametersToTrack","ind","param","paramValue","getURLParameter","params","getAllURLParameters","getGoogleAnalyticsCookie","cookies","readCookie","name","nameEQ","ca","cookie","charAt","substring","indexOf","encodedParam","addToParameterList","changed","paramArray","includes","join","getParameterList","query","search","vars","output","pair","variable","6","NodeList","forEach","Array","7","slick","infinite","dots","arrows","fade","speed","slick-carousel","8","covidClosed","cookieClosed","9","_","_this","$window","$body","mobileMediaQuery","tabletMediaQuery","tabletClass","mobileClass","touchInputClass","freeze","scrollTop","oldScroll","header","stickyCTA","navigationHeight","outerHeight","headerHeight","completeHeaderHeight","displaySize","detectTouch","debouncedResize","throttle","resize","debouncedScroll","scroll","displayDetection","IntersectionObserver","observer","entries","entry","isIntersecting","rootMargin","querySelectorAll","img","observe","endobserver","_this2","one","matchMedia","matches","wasLargeView","trigger","isInViewport","element","elementTop","offset","top","viewportTop","viewportBottom","height","$collapsedIsiHeight","css","lodash"],"mappings":"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","file":"app.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i self.userJourneyMaxLength) {\n userJourney.shift();\n }\n }\n\n self.saveAndSetWebsiteData('userJourney', userJourney); // The submission page is tracked as the current page, and updated every time\n\n self.saveAndSetWebsiteData('submissionPage', currentPage);\n },\n parameterWebsiteData: function parameterWebsiteData() {\n var self = this; // Get the list of parameters we've tracked\n\n var paramList = parameterTracking.getParameterListAsArray(); // Break out if we have nothing\n\n if (paramList.length == 0) {\n return;\n } // Prepare output object\n\n\n var outputParams = {}; // Get the key : value pairs for the parameters\n\n for (var index = 0; index < paramList.length; index++) {\n if (paramList[index] == 'uuid') {\n continue;\n }\n\n outputParams[paramList[index]] = parameterTracking.getParameter(paramList[index]);\n } // Store it\n\n\n self.setWebsiteData('params', outputParams);\n },\n populateFormFields: function populateFormFields(form_id) {\n var self = this;\n\n if ($('#gform_' + form_id).length < 1) {\n return;\n }\n\n var uuidField = $('#gform_' + form_id).find('.js-param-uuid input');\n\n if (uuidField.length > 0) {\n uuidField.val(self.getUUID());\n }\n\n var websiteDataField = $('#gform_' + form_id).find('.js-all-websitedata input');\n\n if (websiteDataField.length > 0) {\n websiteDataField.val(JSON.stringify(self.getAllWebsiteData()));\n }\n\n var paramsToFill = ['utm_source', 'utm_campaign', 'utm_medium', 'gclid', 'msclkid', 'utm_adgroup', 'utm_term'];\n\n for (var index = 0; index < paramsToFill.length; index++) {\n var theParam = paramsToFill[index];\n var field = $('#gform_' + form_id).find('.js-param-' + theParam + ' input');\n\n if (field.length < 1) {\n continue;\n }\n\n var valueToSet = parameterTracking.getParameter(theParam);\n\n if (valueToSet === null) {\n continue;\n }\n\n field.val(decodeURI(valueToSet));\n }\n },\n\n /**\n * Save an item in storage, then load it into the website data\n * @param {string} key The key\n * @param {string} value The value\n * @return {mixed} The contents of the key\n */\n saveAndSetWebsiteData: function saveAndSetWebsiteData(key, value) {\n var self = this; // Save the data in session storage, then throw it into website data\n\n self.saveData(key, value);\n self.setWebsiteData(key, value);\n },\n\n /**\n * Set website data by key and value\n * @param {string} key The key\n * @param {string} value The value\n */\n setWebsiteData: function setWebsiteData(key, value) {\n if (typeof window.nav === 'undefined' || _typeof(window.nav.website_data) !== 'object') {\n window.nav = {\n website_data: {}\n };\n }\n\n window.nav.website_data[key] = value;\n },\n\n /**\n * Load website data from storage and return it\n * @param {string} key The key to load\n * @return {mixed} The value inside the key\n */\n loadAndGetWebsiteData: function loadAndGetWebsiteData(key) {\n var self = this; // Load from storage, make sure it's loaded in website data, and then get it\n\n var value = self.loadData(key);\n self.setWebsiteData(key, value);\n return self.getWebsiteData(key);\n },\n\n /**\n * Get a specific key from the website data\n * @param {string} key The key name\n * @return {mixed} The value inside the key\n */\n getWebsiteData: function getWebsiteData(key) {\n var self = this;\n return self.getAllWebsiteData()[key];\n },\n\n /**\n * Get all of the website data\n * @return {object} Website data\n */\n getAllWebsiteData: function getAllWebsiteData() {\n if (typeof window.nav === 'undefined' || _typeof(window.nav.website_data) !== 'object') {\n window.nav = {\n website_data: {}\n };\n }\n\n return window.nav.website_data;\n },\n\n /**\n * Encode a string for storage\n * @param {string} string The string to encode\n * @return {string} The encoded string\n */\n encodeString: function encodeString(string) {\n return btoa(string);\n },\n\n /**\n * Save data in session storage\n * @param {string} param The parameter\n * @param {string} param The value to store\n * @return {void} \n */\n saveData: function saveData(key, value) {\n var self = this; // If it is set, store it\n\n if (value !== null && typeof value !== 'undefined') {\n // Encode and save\n var encodedKey = self.encodeString(key);\n sessionStorage.setItem(encodedKey, JSON.stringify(value));\n }\n },\n\n /**\n * Load data from storage\n * @param {string} param The parameter\n * @return {string} \t The value\n */\n loadData: function loadData(key) {\n var self = this;\n var encodedKey = self.encodeString(key);\n return JSON.parse(sessionStorage.getItem(encodedKey));\n }\n};\n\n},{\"./parameter-tracking.js\":5,\"uuid\":\"uuid\"}],2:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = {\n init: function init() {\n //Autotagging HotJar Recordings\n window.hj = window.hj || function () {\n (hj.q = hj.q || []).push(arguments);\n };\n\n if (typeof hj !== 'undefined') {\n //Hotjar to trigger when error page is launched\n if ($('.error404').length > 0) {\n hj('trigger', 'error_page_triggered');\n } //Hotjar to trigger when search results page is launched\n\n\n if ($('.search-results').length > 0) {\n hj('trigger', 'search_page_triggered');\n } //Hotjar to trigger when search no results page is launched\n\n\n if ($('.search-no-results').length > 0) {\n hj('trigger', 'search_page_triggered');\n } //autotag call me back button \n\n\n $(document).on('click', '.load-sticky-form', function () {\n hj('tagRecording', ['CMB click']);\n });\n $(document).on('click', '.collapsed', function () {\n hj('tagRecording', ['CMB click']);\n }); //autotag phone number\n\n $(\"a[href^='tel']\").on(\"click\", function () {\n hj('tagRecording', ['phone click']);\n }); //autotag phone email\n\n $(\"a[href^='mailto']\").on(\"click\", function () {\n hj('tagRecording', ['email click']);\n }); // Trigger for page specific call me back button \n\n $(document).on('click', '.load-sticky-form', function () {\n if ($('.error404').length > 0) {\n hj('trigger', 'cmb-404');\n } else if ($('.search-results').length > 0 || $('.search-no-results').length > 0) {\n hj('trigger', 'cmb-search');\n } else {\n var getFullPathName = window.location.pathname.replace(/^\\/+|\\/+$/g, '');\n var splitFullPathName = getFullPathName.split('/');\n var finalPathName = splitFullPathName[splitFullPathName.length - 1];\n var triggerPathName = finalPathName.length > 0 ? finalPathName : \"home-page\";\n hj('trigger', 'cmb-' + triggerPathName);\n }\n }); // Trigger for page specific call me back button modal \n\n $(document).on('click', '.collapsed', function () {\n if ($('.error404').length > 0) {\n hj('trigger', 'cmb-404');\n } else if ($('.search-results').length > 0 || $('.search-no-results').length > 0) {\n hj('trigger', 'cmb-search');\n } else {\n var getFullPathName = window.location.pathname.replace(/^\\/+|\\/+$/g, '');\n var splitFullPathName = getFullPathName.split('/');\n var finalPathName = splitFullPathName[splitFullPathName.length - 1];\n var triggerPathName = finalPathName.length > 0 ? finalPathName : \"home-page\";\n hj('trigger', 'cmb-' + triggerPathName);\n }\n }); // Track external link clicks here\n\n $(document).on('click', \"a[href^='http']:not([href*='\" + window.location.hostname + \"'])\", function () {\n hj('tagRecording', ['external click']);\n }); // When the form finishes loading, hook in submit triggers\n\n jQuery(document).on('gform_post_render', function (event, form_id, current_page) {\n // On the form submission...\n $('#gform_' + form_id).on('submit', {\n submittedId: form_id // Pass through the form ID\n\n }, function (event) {\n // If we're not actively trying to submit, bail (this fixes a double submission error)\n if (window['gf_submitting_' + event.data.submittedId] == false) {\n return;\n } //Otherwise, report the appropriate tag for submits\n\n\n if ($(this).hasClass('js-sticky-contact-form')) {\n hj('tagRecording', ['CMB form submit']);\n }\n\n if ($(this).hasClass('js-contact-us-form')) {\n hj('tagRecording', ['contact form submit']);\n }\n\n if ($(this).hasClass('js-payer-contact-us-form')) {\n hj('tagRecording', ['payer contact form submit']);\n }\n\n if ($(this).hasClass('js-provider-contact-us-form')) {\n hj('tagRecording', ['provider contact form submit']);\n }\n });\n }); //Hotjar to trigger when search results page is launched\n\n if ($('.search-results').length > 0) {\n hj('tagRecording', ['internal search']);\n } //Autotag when search no results page is launched\n\n\n if ($('.search-no-results').length > 0) {\n hj('tagRecording', ['internal search']);\n } //tags for form visits\n\n\n if ($('.js-contact-us-form').length > 0) {\n hj('tagRecording', ['contact form visit']);\n }\n\n if ($('.js-payer-contact-us-form').length > 0) {\n hj('tagRecording', ['payer form visit']);\n }\n\n if ($('.js-provider-contact-us-form').length > 0) {\n hj('tagRecording', ['provider form visit']);\n }\n }\n }\n};\n\n},{}],3:[function(require,module,exports){\n\"use strict\";\n\n//require('intersection-observer');\nvar polyfills = require('./polyfills.js');\n\nvar ui = require('./ui.js');\n\nvar navigation = require('./navigation.js');\n\nvar quoteCarousel = require('./quote-carousel.js');\n\nvar sessionItems = require('./sessionItems.js');\n\nvar parameterTracking = require('./parameter-tracking.js');\n\nvar formParams = require('./form-params.js');\n\nvar hotjarScripts = require('./hotjar-scripts.js');\n\n$(document).ready(function () {\n polyfills.init();\n ui.init();\n navigation.init();\n quoteCarousel.init();\n sessionItems.init();\n parameterTracking.init();\n formParams.init();\n hotjarScripts.init();\n});\n\n},{\"./form-params.js\":1,\"./hotjar-scripts.js\":2,\"./navigation.js\":4,\"./parameter-tracking.js\":5,\"./polyfills.js\":6,\"./quote-carousel.js\":7,\"./sessionItems.js\":8,\"./ui.js\":9}],4:[function(require,module,exports){\n\"use strict\";\n\nvar hoverIntent = require('jquery-hoverintent'); //const stickybits = require('stickybits');\n\n\nvar ui = require('./ui.js');\n\nmodule.exports = {\n init: function init() {\n var self = this; // navigation dropdowns\n\n $(\"#menu-header-menu > li, .search-icon, .search-btn, .home-btn\").hoverIntent({\n over: function over() {\n if (ui.isMobile == false && ui.isTablet == false) {\n $(this).addClass('active');\n }\n },\n out: function out() {\n if (ui.isMobile == false && ui.isTablet == false) {\n $(this).removeClass('active');\n $(this).find('.sub-menu-wrap').removeClass('overflow');\n }\n },\n timeout: 20\n });\n $(\"#menu-header-menu > li .arrow\").on('click', function () {\n if (ui.isMobile == true || ui.isTablet == true) {\n $(this).parent().toggleClass('active');\n }\n });\n $('.sticky-form .handle, .load-sticky-form').on('click', function (event) {\n event.preventDefault();\n $('.sticky-form').toggleClass('active');\n\n if ($('.sticky-form').hasClass('active')) {\n $('body').addClass('sticky-form-bd');\n\n if (ui.isMobile == true || ui.isTablet == true) {\n ui.freezeScroll();\n }\n } else {\n $('body').removeClass('sticky-form-bd');\n ui.unFreezeScroll();\n }\n });\n $('.burger, .header-banner .search-icon').on('click', function (event) {\n $('.navigation').addClass('active');\n ui.freezeScroll();\n\n if (event.currentTarget.id == 'mobile-nav-search-icon') {\n $(\"#search\").focus();\n }\n });\n $('.mobile-header-cover .close-btn').on('click', function () {\n $('.navigation').removeClass('active');\n ui.unFreezeScroll();\n });\n $('.open-search').on('click', function () {\n $('.search-field').addClass('active');\n });\n $('.search-field .close-btn').on('click', function () {\n $('.search-field').removeClass('active');\n });\n $('.search-icon').click('click', function () {\n $(this).parents('.search-form').submit();\n });\n $('#sticky-phone').click('click', function () {\n var boxURL = $(this).find('.large-number a').attr('href');\n window.location = boxURL;\n });\n $('.gfield input').on('focus', function () {\n $(this).closest('.gfield').addClass('focused');\n });\n $('.gfield input').on('blur', function () {\n if (!$(this).val()) {\n $(this).closest('.gfield').removeClass('focused');\n }\n });\n jQuery(document).on('gform_post_render', function (event, form_id, current_page) {\n $('#gform_' + form_id + ' .gfield input').each(function () {\n if ($(this).val()) {\n $(this).closest('.gfield').addClass('focused');\n }\n });\n });\n gform.addFilter('gform_spinner_target_elem', function ($targetElem, formId) {\n return $('.spinner-container');\n });\n }\n};\n\n},{\"./ui.js\":9,\"jquery-hoverintent\":\"jquery-hoverintent\"}],5:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = {\n // parametersToTrack: [\n // \t{'param': 'utm_source'},\n // \t{'param': 'utm_campaign'},\n // \t{'param': 'utm_medium'},\n // \t{'param': 'gclid'},\n // \t{'param': 'msclkid'}\n // ],\n parameterListVar: 'navParametersTracked',\n init: function init() {\n var self = this; // If we just want to track specific params\n\n if (typeof self.parametersToTrack !== 'undefined') {\n for (var ind = 0; ind < self.parametersToTrack.length; ind++) {\n var param = self.parametersToTrack[ind].param; // Get the parameter value\n\n var paramValue = self.getURLParameter(param);\n self.storeParameter(param, paramValue);\n }\n } else {\n var params = self.getAllURLParameters();\n\n for (var ind = 0; ind < params.length; ind++) {\n self.storeParameter(params[ind][0], params[ind][1]);\n }\n }\n\n self.getGoogleAnalyticsCookie(); // window.getTrackedParameter = self.getParameter;\n },\n\n /**\n * Get the google analytics cookies values\n * @return {void}\n */\n getGoogleAnalyticsCookie: function getGoogleAnalyticsCookie() {\n var self = this;\n var cookies = ['_ga', '_gid'];\n\n for (var index = 0; index < cookies.length; index++) {\n self.storeParameter(cookies[index], self.readCookie(cookies[index]));\n }\n },\n\n /**\n * Get cookie value by name. Shamelessly taken from Stack overflow\n * https://stackoverflow.com/questions/10730362/get-cookie-by-name\n * @param {string} name Name of the cookie\n * @return {string} Cookie value or null\n */\n readCookie: function readCookie(name) {\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n }\n\n return null;\n },\n\n /**\n * Store the parameter\n * @param {string} param The parameter\n * @param {string} param The value to store\n * @return {void} \n */\n storeParameter: function storeParameter(param, value) {\n var self = this; // If it is set, store it\n\n if (value !== null && typeof value !== 'undefined') {\n // Encode and save\n var encodedParam = self.encodeString(param);\n sessionStorage.setItem(encodedParam, value); // And add our param ot the param list\n\n self.addToParameterList(param);\n }\n },\n\n /**\n * Get a parameter from storage\n * @param {string} param The parameter\n * @return {string} \t The value\n */\n getParameter: function getParameter(param) {\n var self = this;\n var encodedParam = self.encodeString(param);\n return sessionStorage.getItem(encodedParam);\n },\n\n /**\n * Add the parameter we saved to a fixed list of all parameters saved. In case we need a plaintext list\n * @param {string} param The parameter we're storing\n */\n addToParameterList: function addToParameterList(param) {\n var self = this;\n var changed = false; // Get the existing list of params\n\n var paramList = sessionStorage.getItem(self.parameterListVar); // If we never had it\n\n if (paramList === null || typeof paramList === 'undefined') {\n // String of just the param we're setting\n paramList = param;\n changed = true;\n } else {\n // Otherwise, split the list on comma\n var paramArray = paramList.split(','); // If we don't have our item, push it and join them back into a new string\n\n if (!paramArray.includes(param)) {\n paramArray.push(param);\n paramList = paramArray.join(',');\n changed = true;\n }\n } // Changed? Store it\n\n\n if (changed) {\n sessionStorage.setItem(self.parameterListVar, paramList);\n }\n },\n\n /**\n * Get the list of parameters saved\n * @return {string} The parameters saved, comma delimited\n */\n getParameterList: function getParameterList() {\n var self = this;\n return sessionStorage.getItem(self.parameterListVar);\n },\n\n /**\n * Get the list of parameters saved, as an array\n * @return {array} The parameters saved. Each index is a string\n */\n getParameterListAsArray: function getParameterListAsArray() {\n var self = this;\n var paramList = self.getParameterList();\n\n if (paramList === null || typeof paramList === 'undefined') {\n return [];\n }\n\n return paramList.split(',');\n },\n\n /**\n * Encode a string for storage\n * @param {string} string The string to encode\n * @return {string} The encoded string\n */\n encodeString: function encodeString(string) {\n return btoa(string);\n },\n\n /**\n * Get all URL parameters.\n * @return {array} Key/Pair Values\n */\n getAllURLParameters: function getQueryVariable() {\n // Get the parameters\n var query = window.location.search.substring(1); // Split them based on the ampersand\n\n var vars = query.split(\"&\");\n var output = []; // If there's a value that we can split on the = sign, grab it\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split(\"=\");\n output.push(pair);\n } // Otherwise, null\n\n\n return output;\n },\n\n /**\n * Get the URL parameter. Taken from https://stackoverflow.com/questions/827368/using-the-get-parameter-of-a-url-in-javascript\n * @param {string} variable The variable to search\n * @return {string} The value\n */\n getURLParameter: function getQueryVariable(variable) {\n // Get the parameters\n var query = window.location.search.substring(1); // Split them based on the ampersand\n\n var vars = query.split(\"&\"); // If there's a value that we can split on the = sign, grab it\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split(\"=\");\n\n if (pair[0] == variable) {\n return pair[1];\n }\n } // Otherwise, null\n\n\n return null;\n }\n};\n\n},{}],6:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = {\n init: function init() {\n // IE 11 polyfill to support forEach on an array\n if (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n }\n }\n};\n\n},{}],7:[function(require,module,exports){\n\"use strict\";\n\nvar slick = require('slick-carousel');\n\nmodule.exports = {\n init: function init() {\n if ($('.carousel').length) {\n $(\".carousel\").slick({\n infinite: true,\n dots: false,\n arrows: true,\n fade: true,\n speed: 1000\n });\n }\n }\n};\n\n},{\"slick-carousel\":\"slick-carousel\"}],8:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = {\n init: function init() {\n var self = this;\n /* COVID BANNER */\n\n var covidClosed = sessionStorage.getItem('covidBanner');\n\n if (!covidClosed) {\n $('.covid-banner').addClass('active');\n }\n\n $('.cookie-notice-box .button').on('click', function (event) {\n event.preventDefault();\n sessionStorage.setItem('covidBanner', true);\n $('.covid-banner').removeClass('active');\n });\n /* COOKIE BANNER */\n\n var cookieClosed = sessionStorage.getItem('cookieBanner');\n\n if (!cookieClosed) {\n $('.cookie-notice-box').addClass('active');\n $('body').addClass('cookie-notice');\n }\n\n $('.cookie-notice-box .button').on('click', function (event) {\n event.preventDefault();\n sessionStorage.setItem('cookieBanner', true);\n $('.cookie-notice-box').removeClass('active');\n $('body').removeClass('cookie-notice');\n });\n }\n};\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\n\nvar _ = require('lodash');\n\nmodule.exports = {\n /**\n * Use this for global UI events, calulations etc\n */\n init: function init() {\n var _this = this;\n\n // Set up some variables\n this.$window = $(window);\n this.$body = $('body');\n this.mobileMediaQuery = \"( max-width: 767px )\";\n this.tabletMediaQuery = \"( max-width: 1023px )\";\n this.isMobile = false;\n this.isTablet = false;\n this.tabletClass = 'isTablet';\n this.mobileClass = 'isMobile';\n this.touchInputClass = 'touchInput';\n this.freeze = false;\n this.scrollTop = 0;\n this.oldScroll = 0;\n this.navigation = $('.navigation');\n this.header = $('#header');\n this.stickyCTA;\n this.navigationHeight = this.navigation.outerHeight();\n this.headerHeight - this.header.outerHeight();\n this.completeHeaderHeight = this.navigationHeight + this.headerHeight; // Get the display size\n\n this.displaySize(); // Detect touch y'all\n\n this.detectTouch();\n /** A debounced resize function */\n\n var debouncedResize = _.throttle(function () {\n _this.resize();\n }, 50); // call the debounced function on resize\n\n\n this.$window.resize(function () {\n debouncedResize();\n });\n /** A debounced scroll function */\n\n var debouncedScroll = _.throttle(function () {\n _this.scroll();\n }, 50); // call the debounced function on resize\n\n\n this.$window.scroll(function () {\n debouncedScroll();\n });\n },\n\n /**\n * Resize triggers go here, this should be debounced in init\n */\n resize: function resize() {\n // Detect if we've hit a display threshold (to/from destop/mobile) and detect the actual size\n this.displayDetection();\n },\n\n /**\n * Scroll triggers go here, this should be debounced in init\n */\n scroll: function scroll() {\n // Probably ISI and sticky header stuff, once we make those\n this.scrollTop = $(window).scrollTop();\n this.headerHeight = this.header.outerHeight();\n\n if (this.scrollTop >= this.headerHeight) {\n $('body').addClass('phone-offscreen');\n } else {\n $('body').removeClass('phone-offscreen');\n }\n\n if (!!window.IntersectionObserver) {\n var observer = new IntersectionObserver(function (entries, observer) {\n entries.forEach(function (entry) {\n if (!entry.isIntersecting) {\n $('body').addClass('fixed-sticky-box-cta');\n } else {\n $('body').removeClass('fixed-sticky-box-cta');\n }\n });\n }, {\n rootMargin: \"-350px 0px 0px 0px\"\n });\n document.querySelectorAll('.sticky-box-cta-holder').forEach(function (img) {\n observer.observe(img);\n });\n var endobserver = new IntersectionObserver(function (entries, observer) {\n entries.forEach(function (entry) {\n if (!entry.isIntersecting) {\n $('body').addClass('fade-sticky');\n } else {\n $('body').removeClass('fade-sticky');\n }\n });\n }, {\n rootMargin: \"-400px 0px 0px 0px\"\n });\n document.querySelectorAll('.sticky-cta').forEach(function (img) {\n endobserver.observe(img);\n });\n } else {}\n },\n\n /**\n * Detects a touch event and add a class to the body, used in conjunction with screen size\n * detection, we should be able to infer mobile devices\n * @author Rob Szpila \n */\n detectTouch: function detectTouch() {\n var _this2 = this;\n\n /** A touch event listener that removes itself */\n $(document).one('touchstart', function () {\n _this2.$body.addClass(_this2.touchInputClass);\n });\n },\n\n /**\n * Using handy matchMeda we can be super accurate in JS about media queries...horray for parity\n * called from displayDetection on resize\n * @author Rob Szpila \n */\n displaySize: function displaySize() {\n if (window.matchMedia(this.tabletMediaQuery).matches) {\n // We're totally not mobile...probably\n this.isMobile = false;\n this.$body.removeClass(this.mobileClass); // We're TABLET!\n\n this.isTablet = true;\n this.$body.addClass(this.tabletClass);\n }\n\n if (window.matchMedia(this.mobileMediaQuery).matches) {\n // We're totally not tablet...definitely\n this.isTablet = false;\n this.$body.removeClass(this.tabletClass); // We're mobile!\n\n this.isMobile = true;\n this.$body.addClass(this.mobileClass);\n }\n\n if (!window.matchMedia(this.mobileMediaQuery).matches && !window.matchMedia(this.tabletMediaQuery).matches) {\n // We're nothing\n this.isTablet = false;\n this.isMobile = false;\n this.$body.removeClass(this.mobileClass).removeClass(this.tabletClass);\n }\n },\n\n /**\n * Emit a thing when we cross display thresholds\n */\n displayDetection: function displayDetection() {\n // Before we determine our size now, were we a larger size before?\n var wasLargeView = !this.isTablet && !this.isMobile; // Get the display size\n\n this.displaySize(); // If we just changed down to tablet or mobile, lets get the user to where they were\n\n if (wasLargeView && (this.isTablet || this.isMobile)) {\n // Let's emit an event, because this is handy\n $(document).trigger('sizedToMobile');\n } // If we just changed up, emit an event\n\n\n if (!wasLargeView && !this.isTablet && !this.isMobile) {\n $(document).trigger('sizedToDesktop');\n }\n },\n isInViewport: function isInViewport(element) {\n var elementTop = $(element).offset().top;\n var elementBottom = elementTop + $(element).outerHeight();\n var viewportTop = $(window).scrollTop();\n var viewportBottom = viewportTop + $(window).height() - this.$collapsedIsiHeight;\n return elementTop < viewportBottom;\n },\n\n /**\n * Check if we're at tablet or lower and set the body to fixed and preserve scroll\n * @author Rob Szpila \n */\n freezeScroll: function freezeScroll() {\n this.scrollTop = $(window).scrollTop();\n this.$body.addClass('fixed');\n this.$body.css('top', this.scrollTop * -1);\n },\n\n /**\n * Check if the scroll is frozen and unfreeze\n * @author Rob Szpila \n */\n unFreezeScroll: function unFreezeScroll() {\n if (this.$body.hasClass('fixed')) {\n this.$body.removeClass('fixed');\n this.$body.css('top', 'auto');\n $(window).scrollTop(this.scrollTop);\n }\n }\n};\n\n},{\"lodash\":\"lodash\"}]},{},[3]);\n"]}