{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/bootstrap.native/dist/components/modal-native.js","webpack:///./node_modules/bootstrap.native/dist/polyfill.js","webpack:///./js/_blogSub.js","webpack:///./js/_contact.js","webpack:///./node_modules/bootstrap.native/dist/components/tooltip-native.js","webpack:///./js/_eventsSub.js","webpack:///./js/_footer.js","webpack:///./js/_gdpr.js","webpack:///./js/_insightsmkForm.js","webpack:///./js/_main.js","webpack:///./js/_rad.js","webpack:///./js/_reqdemo.js","webpack:///./js/_request-a-demo.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","passiveHandler","result","opts","document","addEventListener","wrap","removeEventListener","e","passive","transitionEndEvent","head","style","supportTransition","transitionDuration","transitionProperty","getElementTransitionDuration","element","computedStyle","getComputedStyle","duration","parseFloat","isNaN","emulateTransitionEnd","handler","called","transitionEndWrapper","setTimeout","queryElement","selector","parent","lookUp","Element","querySelector","bootstrapCustomEvent","eventName","componentName","eventProperties","OriginalCustomEvent","CustomEvent","cancelable","keys","forEach","dispatchCustomEvent","customEvent","this","dispatchEvent","setFocus","focus","setActive","options","modal","showCustomEvent","shownCustomEvent","hideCustomEvent","hiddenCustomEvent","scrollBarWidth","overlay","overlayDelay","fixedItems","self","relatedTarget","ops","setScrollbar","widthValue","scrollDiv","openModal","body","classList","contains","bodyPad","parseInt","paddingRight","bodyOverflow","documentElement","clientHeight","scrollHeight","modalOverflow","createElement","className","appendChild","offsetWidth","clientWidth","removeChild","length","map","fixed","itemPad","removeOverlay","getElementsByClassName","remove","toggleEvents","action","window","update","dismissHandler","keyHandler","beforeShow","display","add","setAttribute","triggerShow","isAnimating","triggerHide","force","clickHandler","clickTarget","target","modalID","getAttribute","targetAttrValue","elemAttrValue","modalTrigger","show","preventDefault","ref","which","keyboard","hide","hasData","parentWithData","closest","backdrop","toggle","defaultPrevented","newOverlay","currentOpen","Modal","animation","setContent","content","innerHTML","dispose","checkModal","Array","from","concat","trim","factory","toStr","isCallable","maxSafeInteger","toLength","toString","fn","Math","pow","len","number","Number","isFinite","floor","abs","toInteger","min","max","arrayLike","C","items","TypeError","T","mapFn","arguments","kValue","A","k","matches","webkitMatchesSelector","oMatchesSelector","msMatchesSelector","mozMatchesSelector","node","SVGElement","parentNode","parentElement","Event","Window","Document","type","eventInitDict","Error","event","bubbles","undefined","createEvent","initEvent","createEventObject","detail","Node","el","require","$","html","MktoForms2","loadForm","form","onSuccess","getFormElem","jQuery","$form","$link","on","$value","currentTarget","val","$mktoButton","$company","$howdid","css","position","includes","attr","addClass","removeClass","whenReady","setValues","mouseHoverEvents","mouseClickEvents","styleTip","link","topPosition","leftPosition","arrowTop","arrowLeft","arrowWidth","arrowHeight","elementDimensions","offsetHeight","windowWidth","windowHeight","rect","getBoundingClientRect","scroll","y","pageYOffset","scrollTop","x","pageXOffset","scrollLeft","offsetLeft","offsetTop","linkDimensions","right","left","bottom","top","isPopover","arrow","halfTopExceed","halfLeftExceed","halfRightExceed","halfBottomExceed","topExceed","leftExceed","bottomExceed","rightExceed","indexOf","replace","titleString","animationData","placementData","delayData","containerData","containerElement","containerDataElement","navbarFixedTop","navbarFixedBottom","placementClass","tooltip","timer","getTitle","touchHandler","toggleAction","showAction","hideAction","container","clearTimeout","template","tooltipMarkup","firstChild","tooltipArrow","tooltipInner","createToolTip","placement","delay","removeAttribute","Tooltip","ga","title","menu","not","$this","$icon","find","$menu","next","$next","slideToggle","toggleClass","hasClass","ready","is","ev","each","_index","$element","href","$nav","$burgerMenuToggler","$burgerMenu","$body","$icon1","$icon2","$icon3","first","radFormTop","offset","outerHeight","animate","isInViewport","elementTop","elementBottom","viewportTop","viewportBottom","height","$btn","click","burgerMenu","burgerMenuPosition","width","$collapsedMenuItem","$collapsedMenuItemA","eq","$alert","$header","stickyHeader","MSInputMethodContext","documentMode","reApplyTimes","reApplyStickyHeader","setInterval","clearInterval","scrollToAnchor","startsWith","$target","$href","$primary","location","hash","$hash","target_area","submenutrigger","querySelectorAll","dropBackground","mainNav","nav","indicator","activeSub","dropdownPos","navPos","pos","setProperty","navLinkCenter","transform","opacity","deactiveSub","trigger","openTrigger2","navLinkCenter2","index","Vimeo","Player","pause","currentModal","src","countUp","commaSeparateNumber","test","countTo","countNum","easing","step","text","console","log","complete","onValidate","vals","submittable","honeypot","modalFocus","$modal","$page","lastFocus","$drift","$cookies","inert","modalWindow","loadModal","prop","setFieldValues","cookieName","cookieValue","cookieArray","decodeURIComponent","cookie","split","substring","getCookie","nameValue","parts","parts2","clientIDValue","sessionIDValue","input","GAFormSubmissionEvent","lblGA","getElementById","rad_form_id","other_form_id","showSecondForm","submitCount","pathname","domain_name","munchkin_id","prepend","$mktoButtonLabel","onSubmit","stuff","source","getId","history","pushState","field_val","getValues","values","followUpUrl","whenRendered","mktoForm","arrayify","getSelection","slice","formEl","fieldName","checkbox","primaryLabel","id","secondaryLabel","_key","insertBefore"],"mappings":"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","file":"/js/script.js","sourcesContent":[" \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 = 47);\n","/*!\n * Native JavaScript for Bootstrap Modal v3.0.14 (https://thednp.github.io/bootstrap.native/)\n * Copyright 2015-2020 © dnp_theme\n * Licensed under MIT (https://github.com/thednp/bootstrap.native/blob/master/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Modal = factory());\n}(this, (function () { 'use strict';\n\n var supportPassive = (function () {\n var result = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n result = true;\n }\n });\n document.addEventListener('DOMContentLoaded', function wrap(){\n document.removeEventListener('DOMContentLoaded', wrap, opts);\n }, opts);\n } catch (e) {}\n return result;\n })();\n\n var passiveHandler = supportPassive ? { passive: true } : false;\n\n var transitionEndEvent = 'webkitTransition' in document.head.style ? 'webkitTransitionEnd' : 'transitionend';\n\n var supportTransition = 'webkitTransition' in document.head.style || 'transition' in document.head.style;\n\n var transitionDuration = 'webkitTransition' in document.head.style ? 'webkitTransitionDuration' : 'transitionDuration';\n\n var transitionProperty = 'webkitTransition' in document.head.style ? 'webkitTransitionProperty' : 'transitionProperty';\n\n function getElementTransitionDuration(element) {\n var computedStyle = getComputedStyle(element),\n property = computedStyle[transitionProperty],\n duration = supportTransition && property && property !== 'none'\n ? parseFloat(computedStyle[transitionDuration]) : 0;\n return !isNaN(duration) ? duration * 1000 : 0;\n }\n\n function emulateTransitionEnd(element,handler){\n var called = 0, duration = getElementTransitionDuration(element);\n duration ? element.addEventListener( transitionEndEvent, function transitionEndWrapper(e){\n !called && handler(e), called = 1;\n element.removeEventListener( transitionEndEvent, transitionEndWrapper);\n })\n : setTimeout(function() { !called && handler(), called = 1; }, 17);\n }\n\n function queryElement(selector, parent) {\n var lookUp = parent && parent instanceof Element ? parent : document;\n return selector instanceof Element ? selector : lookUp.querySelector(selector);\n }\n\n function bootstrapCustomEvent(eventName, componentName, eventProperties) {\n var OriginalCustomEvent = new CustomEvent( eventName + '.bs.' + componentName, {cancelable: true});\n if (typeof eventProperties !== 'undefined') {\n Object.keys(eventProperties).forEach(function (key) {\n Object.defineProperty(OriginalCustomEvent, key, {\n value: eventProperties[key]\n });\n });\n }\n return OriginalCustomEvent;\n }\n\n function dispatchCustomEvent(customEvent){\n this && this.dispatchEvent(customEvent);\n }\n\n function setFocus (element){\n element.focus ? element.focus() : element.setActive();\n }\n\n function Modal(element,options) {\n options = options || {};\n var self = this, modal,\n showCustomEvent,\n shownCustomEvent,\n hideCustomEvent,\n hiddenCustomEvent,\n relatedTarget = null,\n scrollBarWidth,\n overlay,\n overlayDelay,\n fixedItems,\n ops = {};\n function setScrollbar() {\n var openModal = document.body.classList.contains('modal-open'),\n bodyPad = parseInt(getComputedStyle(document.body).paddingRight),\n bodyOverflow = document.documentElement.clientHeight !== document.documentElement.scrollHeight\n || document.body.clientHeight !== document.body.scrollHeight,\n modalOverflow = modal.clientHeight !== modal.scrollHeight;\n scrollBarWidth = measureScrollbar();\n modal.style.paddingRight = !modalOverflow && scrollBarWidth ? (scrollBarWidth + \"px\") : '';\n document.body.style.paddingRight = modalOverflow || bodyOverflow ? ((bodyPad + (openModal ? 0:scrollBarWidth)) + \"px\") : '';\n fixedItems.length && fixedItems.map(function (fixed){\n var itemPad = getComputedStyle(fixed).paddingRight;\n fixed.style.paddingRight = modalOverflow || bodyOverflow ? ((parseInt(itemPad) + (openModal?0:scrollBarWidth)) + \"px\") : ((parseInt(itemPad)) + \"px\");\n });\n }\n function resetScrollbar() {\n document.body.style.paddingRight = '';\n modal.style.paddingRight = '';\n fixedItems.length && fixedItems.map(function (fixed){\n fixed.style.paddingRight = '';\n });\n }\n function measureScrollbar() {\n var scrollDiv = document.createElement('div'), widthValue;\n scrollDiv.className = 'modal-scrollbar-measure';\n document.body.appendChild(scrollDiv);\n widthValue = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return widthValue;\n }\n function createOverlay() {\n var newOverlay = document.createElement('div');\n overlay = queryElement('.modal-backdrop');\n if ( overlay === null ) {\n newOverlay.setAttribute('class', 'modal-backdrop' + (ops.animation ? ' fade' : ''));\n overlay = newOverlay;\n document.body.appendChild(overlay);\n }\n return overlay;\n }\n function removeOverlay () {\n overlay = queryElement('.modal-backdrop');\n if ( overlay && !document.getElementsByClassName('modal show')[0] ) {\n document.body.removeChild(overlay); overlay = null;\n }\n overlay === null && (document.body.classList.remove('modal-open'), resetScrollbar());\n }\n function toggleEvents(action) {\n action = action ? 'addEventListener' : 'removeEventListener';\n window[action]( 'resize', self.update, passiveHandler);\n modal[action]( 'click',dismissHandler,false);\n document[action]( 'keydown',keyHandler,false);\n }\n function beforeShow() {\n modal.style.display = 'block';\n setScrollbar();\n !document.getElementsByClassName('modal show')[0] && document.body.classList.add('modal-open');\n modal.classList.add('show');\n modal.setAttribute('aria-hidden', false);\n modal.classList.contains('fade') ? emulateTransitionEnd(modal, triggerShow) : triggerShow();\n }\n function triggerShow() {\n setFocus(modal);\n modal.isAnimating = false;\n toggleEvents(1);\n shownCustomEvent = bootstrapCustomEvent('shown', 'modal', { relatedTarget: relatedTarget });\n dispatchCustomEvent.call(modal, shownCustomEvent);\n }\n function triggerHide(force) {\n modal.style.display = '';\n element && (setFocus(element));\n overlay = queryElement('.modal-backdrop');\n if (force !== 1 && overlay && overlay.classList.contains('show') && !document.getElementsByClassName('modal show')[0]) {\n overlay.classList.remove('show');\n emulateTransitionEnd(overlay,removeOverlay);\n } else {\n removeOverlay();\n }\n toggleEvents();\n modal.isAnimating = false;\n hiddenCustomEvent = bootstrapCustomEvent('hidden', 'modal');\n dispatchCustomEvent.call(modal, hiddenCustomEvent);\n }\n function clickHandler(e) {\n if ( modal.isAnimating ) { return; }\n var clickTarget = e.target,\n modalID = \"#\" + (modal.getAttribute('id')),\n targetAttrValue = clickTarget.getAttribute('data-target') || clickTarget.getAttribute('href'),\n elemAttrValue = element.getAttribute('data-target') || element.getAttribute('href');\n if ( !modal.classList.contains('show')\n && (clickTarget === element && targetAttrValue === modalID\n || element.contains(clickTarget) && elemAttrValue === modalID) ) {\n modal.modalTrigger = element;\n relatedTarget = element;\n self.show();\n e.preventDefault();\n }\n }\n function keyHandler(ref) {\n var which = ref.which;\n if (!modal.isAnimating && ops.keyboard && which == 27 && modal.classList.contains('show') ) {\n self.hide();\n }\n }\n function dismissHandler(e) {\n if ( modal.isAnimating ) { return; }\n var clickTarget = e.target,\n hasData = clickTarget.getAttribute('data-dismiss') === 'modal',\n parentWithData = clickTarget.closest('[data-dismiss=\"modal\"]');\n if ( modal.classList.contains('show') && ( parentWithData || hasData\n || clickTarget === modal && ops.backdrop !== 'static' ) ) {\n self.hide(); relatedTarget = null;\n e.preventDefault();\n }\n }\n self.toggle = function () {\n if ( modal.classList.contains('show') ) {self.hide();} else {self.show();}\n };\n self.show = function () {\n if (modal.classList.contains('show') && !!modal.isAnimating ) {return}\n showCustomEvent = bootstrapCustomEvent('show', 'modal', { relatedTarget: relatedTarget });\n dispatchCustomEvent.call(modal, showCustomEvent);\n if ( showCustomEvent.defaultPrevented ) { return; }\n modal.isAnimating = true;\n var currentOpen = document.getElementsByClassName('modal show')[0];\n if (currentOpen && currentOpen !== modal) {\n currentOpen.modalTrigger && currentOpen.modalTrigger.Modal.hide();\n currentOpen.Modal && currentOpen.Modal.hide();\n }\n if ( ops.backdrop ) {\n overlay = createOverlay();\n }\n if ( overlay && !currentOpen && !overlay.classList.contains('show') ) {\n overlay.offsetWidth;\n overlayDelay = getElementTransitionDuration(overlay);\n overlay.classList.add('show');\n }\n !currentOpen ? setTimeout( beforeShow, overlay && overlayDelay ? overlayDelay:0 ) : beforeShow();\n };\n self.hide = function (force) {\n if ( !modal.classList.contains('show') ) {return}\n hideCustomEvent = bootstrapCustomEvent( 'hide', 'modal');\n dispatchCustomEvent.call(modal, hideCustomEvent);\n if ( hideCustomEvent.defaultPrevented ) { return; }\n modal.isAnimating = true;\n modal.classList.remove('show');\n modal.setAttribute('aria-hidden', true);\n modal.classList.contains('fade') && force !== 1 ? emulateTransitionEnd(modal, triggerHide) : triggerHide();\n };\n self.setContent = function (content) {\n queryElement('.modal-content',modal).innerHTML = content;\n };\n self.update = function () {\n if (modal.classList.contains('show')) {\n setScrollbar();\n }\n };\n self.dispose = function () {\n self.hide(1);\n if (element) {element.removeEventListener('click',clickHandler,false); delete element.Modal; }\n else {delete modal.Modal;}\n };\n element = queryElement(element);\n var checkModal = queryElement( element.getAttribute('data-target') || element.getAttribute('href') );\n modal = element.classList.contains('modal') ? element : checkModal;\n fixedItems = Array.from(document.getElementsByClassName('fixed-top'))\n .concat(Array.from(document.getElementsByClassName('fixed-bottom')));\n if ( element.classList.contains('modal') ) { element = null; }\n element && element.Modal && element.Modal.dispose();\n modal && modal.Modal && modal.Modal.dispose();\n ops.keyboard = options.keyboard === false || modal.getAttribute('data-keyboard') === 'false' ? false : true;\n ops.backdrop = options.backdrop === 'static' || modal.getAttribute('data-backdrop') === 'static' ? 'static' : true;\n ops.backdrop = options.backdrop === false || modal.getAttribute('data-backdrop') === 'false' ? false : ops.backdrop;\n ops.animation = modal.classList.contains('fade') ? true : false;\n ops.content = options.content;\n modal.isAnimating = false;\n if ( element && !element.Modal ) {\n element.addEventListener('click',clickHandler,false);\n }\n if ( ops.content ) {\n self.setContent( ops.content.trim() );\n }\n if (element) {\n modal.modalTrigger = element;\n element.Modal = self;\n } else {\n modal.Modal = self;\n }\n }\n\n return Modal;\n\n})));\n","/*!\n * Native JavaScript for Bootstrap Polyfill v3.0.10 (https://thednp.github.io/bootstrap.native/)\n * Copyright 2015-2020 © dnp_theme\n * Licensed under MIT (https://github.com/thednp/bootstrap.native/blob/master/LICENSE)\n */\n \"use strict\";\nif (!Array.from) {\n Array.from = (function () {\n var toStr = Object.prototype.toString;\n var isCallable = function (fn) {\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n };\n var toInteger = function (value) {\n var number = Number(value);\n if (isNaN(number)) { return 0; }\n if (number === 0 || !isFinite(number)) { return number; }\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n };\n var maxSafeInteger = Math.pow(2, 53) - 1;\n var toLength = function (value) {\n var len = toInteger(value);\n return Math.min(Math.max(len, 0), maxSafeInteger);\n };\n return function from(arrayLike) {\n var C = this, items = Object(arrayLike);\n if (arrayLike == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n }\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined, T;\n if (typeof mapFn !== 'undefined') {\n if (!isCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n if (arguments.length > 2) {\n T = arguments[2];\n }\n }\n var len = toLength(items.length);\n var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n var k = 0;\n var kValue;\n while (k < len) {\n kValue = items[k];\n if (mapFn) {\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n } else {\n A[k] = kValue;\n }\n k += 1;\n }\n A.length = len;\n return A;\n }\n }());\n}\n\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.webkitMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector;\n}\n\nif (!Element.prototype.closest) {\n Element.prototype.closest = function closest(selector) {\n var node = this;\n while (node) {\n if (node.matches(selector)) { return node; }\n else { node = 'SVGElement' in window && node instanceof SVGElement ? node.parentNode : node.parentElement; }\n }\n return null;\n };\n}\n\nif (!window.Event || !Window.prototype.Event) {\n window.Event = Window.prototype.Event = Document.prototype.Event = Element.prototype.Event = function Event(type, eventInitDict) {\n if (!type) { throw new Error('Not enough arguments'); }\n var event,\n bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false,\n cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;\n if ( 'createEvent' in document ) {\n event = document.createEvent('Event');\n event.initEvent(type, bubbles, cancelable);\n } else {\n event = document.createEventObject();\n event.type = type;\n event.bubbles = bubbles;\n event.cancelable = cancelable;\n }\n return event;\n };\n}\n\nif ( !window.CustomEvent || !Window.prototype.CustomEvent) {\n window.CustomEvent = Window.prototype.CustomEvent = Document.prototype.CustomEvent = Element.prototype.CustomEvent = function CustomEvent(type, eventInitDict) {\n if (!type) {\n throw Error('TypeError: Failed to construct \"CustomEvent\": An event name must be provided.');\n }\n var event = new Event(type, eventInitDict);\n event.detail = eventInitDict && eventInitDict.detail || null;\n return event;\n };\n}\n\nif (!Node.prototype.contains) {\n Node.prototype.contains = function (el) {\n while (el = el.parentNode) {\n if (el === this) { return true; }\n }\n return false;\n };\n}\n","/* global jQuery, MktoForms2, ga */\nrequire( 'bootstrap.native/dist/polyfill' );\n\n( ( $ ) => {\n\n const $blogContainer = $( '#blogModalFormContainer' );\n \n if (!$blogContainer.length) {\n return;\n }\n\n\t\t$( '#blogModalFormContainer' ).html(\n\t\t\t'
'\n\t\t);\n\n\t\tMktoForms2.loadForm(\n\t\t\t'//connect.phreesia.com',\n\t\t\t'508-AHM-437',\n\t\t\t1494,\n\t\t\t( form ) => {\n \n\t\t\t\t// Add an onSuccess handler\n\t\t\t\tform.onSuccess( () => { // values, followUpUrl.\n\n\t\t\t\t\t// Get the form's jQuery element and hide it\n\t\t\t\t\tform.getFormElem().hide();\n\t\t\t\t\t$( '#formsubmitted_modal' ).show();\n\t\t\t\t\t// Return false to prevent the submission handler from taking the lead to the follow up url\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n \n \n} )( jQuery );\n\n\n\n","/* global jQuery */\n\nrequire('bootstrap.native/dist/polyfill');\nimport Modal from 'bootstrap.native/dist/components/modal-native';\n\n( ( $ ) => {\n\tconst $form = $( '.new-contact-form' );\n const $link = $( '.contact-us' );\n\n\tif ( ! $form.length ) {\n\t\treturn;\n\t}\n\n\n $form.on( 'change', '#contact_us_form_department', ( event ) => {\n\t\tconst $value = $( 'option:selected', event.currentTarget ).val();\n\t\tconst $mktoButton = $( 'button.mktoButton', $form );\n\t\tconst $company = $( '#Company', $form );\n\t\tconst $howdid = $( '#howdidyouhear', $form );\n\t\t\n\n\t\t$mktoButton.css( {\n\t\t\tdisplay: $value ? 'block' : 'none',\n\t\t\tposition: 'relative',\n\t\t} );\n\n\t\tif (\n\t\t\t[ 'Sales' ].includes( $value )\n\t\t) {\n \n $( '.privacy-policy-text' ).attr( 'style', 'display: block !important' );\n $mktoButton.css( 'display', 'block' );\n\t\t\t$company.parent().parent().parent().addClass(\"otherField\");\n\t\t\t$howdid.parent().parent().parent().addClass(\"otherField2\");\n \t\t$howdid.attr(\"style\", \"height:auto!important\");\n\n\t\t}\n\n\t\telse if (\n\t\t\t[ 'Life Sciences', 'Marketing', 'Media', 'Partnerships' ].includes( $value )\n\t\t) {\n \n $( '.privacy-policy-text' ).attr( 'style', 'display: block !important' );\n $mktoButton.css( 'display', 'block' );\n\t\t\t$company.parent().parent().parent().removeClass(\"otherField\");\n\t\t\t$howdid.parent().parent().parent().removeClass(\"otherField2\");\n \t\t$howdid.attr(\"style\", \"height:50px!important\");\n\t\t}\n \n else {\n \n $( '.privacy-policy-text' ).attr( 'style', 'display: none !important' );\n\n\t\t\t$mktoButton.css( 'display', 'none' );\n \n }\n\n\n\t} );\n\n \n if ( $link.length ) {\n \n MktoForms2.whenReady(function(form){\n $link.on('click', function() {\n form.setValues({'contact_us_form_department':'Patient'});\n });\n});\n }\n \n} )( jQuery );\n","/*!\n * Native JavaScript for Bootstrap Tooltip v3.0.14 (https://thednp.github.io/bootstrap.native/)\n * Copyright 2015-2020 © dnp_theme\n * Licensed under MIT (https://github.com/thednp/bootstrap.native/blob/master/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Tooltip = factory());\n}(this, (function () { 'use strict';\n\n var mouseHoverEvents = ('onmouseleave' in document) ? [ 'mouseenter', 'mouseleave'] : [ 'mouseover', 'mouseout' ];\n\n var mouseClickEvents = { down: 'mousedown', up: 'mouseup' };\n\n var supportPassive = (function () {\n var result = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n result = true;\n }\n });\n document.addEventListener('DOMContentLoaded', function wrap(){\n document.removeEventListener('DOMContentLoaded', wrap, opts);\n }, opts);\n } catch (e) {}\n return result;\n })();\n\n var passiveHandler = supportPassive ? { passive: true } : false;\n\n var transitionEndEvent = 'webkitTransition' in document.head.style ? 'webkitTransitionEnd' : 'transitionend';\n\n var supportTransition = 'webkitTransition' in document.head.style || 'transition' in document.head.style;\n\n var transitionDuration = 'webkitTransition' in document.head.style ? 'webkitTransitionDuration' : 'transitionDuration';\n\n var transitionProperty = 'webkitTransition' in document.head.style ? 'webkitTransitionProperty' : 'transitionProperty';\n\n function getElementTransitionDuration(element) {\n var computedStyle = getComputedStyle(element),\n property = computedStyle[transitionProperty],\n duration = supportTransition && property && property !== 'none'\n ? parseFloat(computedStyle[transitionDuration]) : 0;\n return !isNaN(duration) ? duration * 1000 : 0;\n }\n\n function emulateTransitionEnd(element,handler){\n var called = 0, duration = getElementTransitionDuration(element);\n duration ? element.addEventListener( transitionEndEvent, function transitionEndWrapper(e){\n !called && handler(e), called = 1;\n element.removeEventListener( transitionEndEvent, transitionEndWrapper);\n })\n : setTimeout(function() { !called && handler(), called = 1; }, 17);\n }\n\n function queryElement(selector, parent) {\n var lookUp = parent && parent instanceof Element ? parent : document;\n return selector instanceof Element ? selector : lookUp.querySelector(selector);\n }\n\n function bootstrapCustomEvent(eventName, componentName, eventProperties) {\n var OriginalCustomEvent = new CustomEvent( eventName + '.bs.' + componentName, {cancelable: true});\n if (typeof eventProperties !== 'undefined') {\n Object.keys(eventProperties).forEach(function (key) {\n Object.defineProperty(OriginalCustomEvent, key, {\n value: eventProperties[key]\n });\n });\n }\n return OriginalCustomEvent;\n }\n\n function dispatchCustomEvent(customEvent){\n this && this.dispatchEvent(customEvent);\n }\n\n function getScroll() {\n return {\n y : window.pageYOffset || document.documentElement.scrollTop,\n x : window.pageXOffset || document.documentElement.scrollLeft\n }\n }\n\n function styleTip(link,element,position,parent) {\n var tipPositions = /\\b(top|bottom|left|right)+/,\n elementDimensions = { w : element.offsetWidth, h: element.offsetHeight },\n windowWidth = (document.documentElement.clientWidth || document.body.clientWidth),\n windowHeight = (document.documentElement.clientHeight || document.body.clientHeight),\n rect = link.getBoundingClientRect(),\n scroll = parent === document.body ? getScroll() : { x: parent.offsetLeft + parent.scrollLeft, y: parent.offsetTop + parent.scrollTop },\n linkDimensions = { w: rect.right - rect.left, h: rect.bottom - rect.top },\n isPopover = element.classList.contains('popover'),\n arrow = element.getElementsByClassName('arrow')[0],\n halfTopExceed = rect.top + linkDimensions.h/2 - elementDimensions.h/2 < 0,\n halfLeftExceed = rect.left + linkDimensions.w/2 - elementDimensions.w/2 < 0,\n halfRightExceed = rect.left + elementDimensions.w/2 + linkDimensions.w/2 >= windowWidth,\n halfBottomExceed = rect.top + elementDimensions.h/2 + linkDimensions.h/2 >= windowHeight,\n topExceed = rect.top - elementDimensions.h < 0,\n leftExceed = rect.left - elementDimensions.w < 0,\n bottomExceed = rect.top + elementDimensions.h + linkDimensions.h >= windowHeight,\n rightExceed = rect.left + elementDimensions.w + linkDimensions.w >= windowWidth;\n position = (position === 'left' || position === 'right') && leftExceed && rightExceed ? 'top' : position;\n position = position === 'top' && topExceed ? 'bottom' : position;\n position = position === 'bottom' && bottomExceed ? 'top' : position;\n position = position === 'left' && leftExceed ? 'right' : position;\n position = position === 'right' && rightExceed ? 'left' : position;\n var topPosition,\n leftPosition,\n arrowTop,\n arrowLeft,\n arrowWidth,\n arrowHeight;\n element.className.indexOf(position) === -1 && (element.className = element.className.replace(tipPositions,position));\n arrowWidth = arrow.offsetWidth; arrowHeight = arrow.offsetHeight;\n if ( position === 'left' || position === 'right' ) {\n if ( position === 'left' ) {\n leftPosition = rect.left + scroll.x - elementDimensions.w - ( isPopover ? arrowWidth : 0 );\n } else {\n leftPosition = rect.left + scroll.x + linkDimensions.w;\n }\n if (halfTopExceed) {\n topPosition = rect.top + scroll.y;\n arrowTop = linkDimensions.h/2 - arrowWidth;\n } else if (halfBottomExceed) {\n topPosition = rect.top + scroll.y - elementDimensions.h + linkDimensions.h;\n arrowTop = elementDimensions.h - linkDimensions.h/2 - arrowWidth;\n } else {\n topPosition = rect.top + scroll.y - elementDimensions.h/2 + linkDimensions.h/2;\n arrowTop = elementDimensions.h/2 - (isPopover ? arrowHeight*0.9 : arrowHeight/2);\n }\n } else if ( position === 'top' || position === 'bottom' ) {\n if ( position === 'top') {\n topPosition = rect.top + scroll.y - elementDimensions.h - ( isPopover ? arrowHeight : 0 );\n } else {\n topPosition = rect.top + scroll.y + linkDimensions.h;\n }\n if (halfLeftExceed) {\n leftPosition = 0;\n arrowLeft = rect.left + linkDimensions.w/2 - arrowWidth;\n } else if (halfRightExceed) {\n leftPosition = windowWidth - elementDimensions.w*1.01;\n arrowLeft = elementDimensions.w - ( windowWidth - rect.left ) + linkDimensions.w/2 - arrowWidth/2;\n } else {\n leftPosition = rect.left + scroll.x - elementDimensions.w/2 + linkDimensions.w/2;\n arrowLeft = elementDimensions.w/2 - ( isPopover ? arrowWidth : arrowWidth/2 );\n }\n }\n element.style.top = topPosition + 'px';\n element.style.left = leftPosition + 'px';\n arrowTop && (arrow.style.top = arrowTop + 'px');\n arrowLeft && (arrow.style.left = arrowLeft + 'px');\n }\n\n function Tooltip(element,options) {\n options = options || {};\n var self = this,\n tooltip = null, timer = 0, titleString,\n animationData,\n placementData,\n delayData,\n containerData,\n showCustomEvent,\n shownCustomEvent,\n hideCustomEvent,\n hiddenCustomEvent,\n containerElement,\n containerDataElement,\n modal,\n navbarFixedTop,\n navbarFixedBottom,\n placementClass,\n ops = {};\n function getTitle() {\n return element.getAttribute('title')\n || element.getAttribute('data-title')\n || element.getAttribute('data-original-title')\n }\n function removeToolTip() {\n ops.container.removeChild(tooltip);\n tooltip = null; timer = null;\n }\n function createToolTip() {\n titleString = getTitle();\n if ( titleString ) {\n tooltip = document.createElement('div');\n if (ops.template) {\n var tooltipMarkup = document.createElement('div');\n tooltipMarkup.innerHTML = ops.template.trim();\n tooltip.className = tooltipMarkup.firstChild.className;\n tooltip.innerHTML = tooltipMarkup.firstChild.innerHTML;\n queryElement('.tooltip-inner',tooltip).innerHTML = titleString.trim();\n } else {\n var tooltipArrow = document.createElement('div');\n tooltipArrow.classList.add('arrow');\n tooltip.appendChild(tooltipArrow);\n var tooltipInner = document.createElement('div');\n tooltipInner.classList.add('tooltip-inner');\n tooltip.appendChild(tooltipInner);\n tooltipInner.innerHTML = titleString;\n }\n tooltip.style.left = '0';\n tooltip.style.top = '0';\n tooltip.setAttribute('role','tooltip');\n !tooltip.classList.contains('tooltip') && tooltip.classList.add('tooltip');\n !tooltip.classList.contains(ops.animation) && tooltip.classList.add(ops.animation);\n !tooltip.classList.contains(placementClass) && tooltip.classList.add(placementClass);\n ops.container.appendChild(tooltip);\n }\n }\n function updateTooltip() {\n styleTip(element, tooltip, ops.placement, ops.container);\n }\n function showTooltip() {\n !tooltip.classList.contains('show') && ( tooltip.classList.add('show') );\n }\n function touchHandler(e){\n if ( tooltip && tooltip.contains(e.target) || e.target === element || element.contains(e.target)) ; else {\n self.hide();\n }\n }\n function toggleAction(action){\n action = action ? 'addEventListener' : 'removeEventListener';\n document[action]( 'touchstart', touchHandler, passiveHandler );\n window[action]( 'resize', self.hide, passiveHandler );\n }\n function showAction() {\n toggleAction(1);\n dispatchCustomEvent.call(element, shownCustomEvent);\n }\n function hideAction() {\n toggleAction();\n removeToolTip();\n dispatchCustomEvent.call(element, hiddenCustomEvent);\n }\n function toggleEvents(action) {\n action = action ? 'addEventListener' : 'removeEventListener';\n element[action](mouseClickEvents.down, self.show,false);\n element[action](mouseHoverEvents[0], self.show,false);\n element[action](mouseHoverEvents[1], self.hide,false);\n }\n self.show = function () {\n clearTimeout(timer);\n timer = setTimeout( function () {\n if (tooltip === null) {\n dispatchCustomEvent.call(element, showCustomEvent);\n if (showCustomEvent.defaultPrevented) { return; }\n if(createToolTip() !== false) {\n updateTooltip();\n showTooltip();\n !!ops.animation ? emulateTransitionEnd(tooltip, showAction) : showAction();\n }\n }\n }, 20 );\n };\n self.hide = function () {\n clearTimeout(timer);\n timer = setTimeout( function () {\n if (tooltip && tooltip.classList.contains('show')) {\n dispatchCustomEvent.call(element, hideCustomEvent);\n if (hideCustomEvent.defaultPrevented) { return; }\n tooltip.classList.remove('show');\n !!ops.animation ? emulateTransitionEnd(tooltip, hideAction) : hideAction();\n }\n }, ops.delay);\n };\n self.toggle = function () {\n if (!tooltip) { self.show(); }\n else { self.hide(); }\n };\n self.dispose = function () {\n toggleEvents();\n self.hide();\n element.setAttribute('title', element.getAttribute('data-original-title'));\n element.removeAttribute('data-original-title');\n delete element.Tooltip;\n };\n element = queryElement(element);\n element.Tooltip && element.Tooltip.dispose();\n animationData = element.getAttribute('data-animation');\n placementData = element.getAttribute('data-placement');\n delayData = element.getAttribute('data-delay');\n containerData = element.getAttribute('data-container');\n showCustomEvent = bootstrapCustomEvent('show', 'tooltip');\n shownCustomEvent = bootstrapCustomEvent('shown', 'tooltip');\n hideCustomEvent = bootstrapCustomEvent('hide', 'tooltip');\n hiddenCustomEvent = bootstrapCustomEvent('hidden', 'tooltip');\n containerElement = queryElement(options.container);\n containerDataElement = queryElement(containerData);\n modal = element.closest('.modal');\n navbarFixedTop = element.closest('.fixed-top');\n navbarFixedBottom = element.closest('.fixed-bottom');\n ops.animation = options.animation && options.animation !== 'fade' ? options.animation : animationData || 'fade';\n ops.placement = options.placement ? options.placement : placementData || 'top';\n ops.template = options.template ? options.template : null;\n ops.delay = parseInt(options.delay || delayData) || 200;\n ops.container = containerElement ? containerElement\n : containerDataElement ? containerDataElement\n : navbarFixedTop ? navbarFixedTop\n : navbarFixedBottom ? navbarFixedBottom\n : modal ? modal : document.body;\n placementClass = \"bs-tooltip-\" + (ops.placement);\n titleString = getTitle();\n if ( !titleString ) { return; }\n if (!element.Tooltip) {\n element.setAttribute('data-original-title',titleString);\n element.removeAttribute('title');\n toggleEvents(1);\n }\n element.Tooltip = self;\n }\n\n return Tooltip;\n\n})));\n","/* global jQuery, MktoForms2, ga */\nrequire( 'bootstrap.native/dist/polyfill' );\n\n( ( $ ) => {\n\n\n \t$( '.events-sub-btn' ).on( 'click', () => loadMktoEventsForm() );\n\n\tfunction loadMktoEventsForm() {\n\n\t\t/*$( '#formisimoTracking' ).remove();\n\t\t$( '#formisimoConversion' ).remove();*/\n\t\t$( '#eventsModalFormContainer' ).html(\n\t\t\t''\n\t\t);\n\n\t\tMktoForms2.loadForm(\n\t\t\t'//connect.phreesia.com',\n\t\t\t'508-AHM-437',\n\t\t\t2024,\n\t\t\t( form ) => {\n \n\t\t\t\t/*\n\t\t\t\tconst s\t= document.createElement( 'script' );\n\t\t\t\ts.type\t= 'text/javascript';\n\t\t\t\ts.id\t= 'formisimoTracking';\n\t\t\t\ts.src\t= '//cdn-static.formisimo.com/tracking/js/tracking.js';\n\t\t\t\tdocument.getElementsByTagName( 'body' )[ 0 ].appendChild( s );\n \n \n*/\n \n\t\t\t\t// Add an onSuccess handler\n\t\t\t\tform.onSuccess( () => { // values, followUpUrl.\n\t\t\t\t\t// Commented hotjar as this event is no longer supported https://help.hotjar.com/hc/en-us/articles/360052316594-Hotjar-Forms-and-Funnels-have-been-retired\n\t\t\t\t\t// window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};\n\t\t\t\t\t// hj('vpv', '/blog-subscription-completed/');\n\n\t\t\t\t\t/*\n\t\t\t\t\t// Track form conversion on formisimo\n\t\t\t\t\tconst c\t= document.createElement( 'script' );\n\t\t\t\t\tc.type\t= 'text/javascript';\n\t\t\t\t\tc.id\t= 'formisimoConversion';\n\t\t\t\t\tc.src\t= '//cdn-static.formisimo.com/tracking/js/conversion.js';\n\t\t\t\t\tdocument.getElementsByTagName( 'body' )[ 0 ].appendChild( c );\n*/\n\t\t\t\t\t// Track form submission on GA\n\t\t\t\t\tga( 'send', 'event', 'Events Subscription', 'Subscribe', document.title );\n\t\t\t\t\t// Get the form's jQuery element and hide it\n\t\t\t\t\tform.getFormElem().hide();\n\t\t\t\t\t$( '#formsubmitted_modal' ).show();\n\t\t\t\t\t// Return false to prevent the submission handler from taking the lead to the follow up url\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\t}\n\n \n} )( jQuery );\n\n\n\n","/* global jQuery */\n/**\n * File navigation.js.\n *\n * Handles toggling the navigation menu for small screens and enables TAB key\n * navigation support for dropdown menus.\n */\n( ( $ ) => {\n\tconst menu = '.site-footer__menu';\n\n\t$( menu ).not( '.site-footer__menu--last' ).css( 'display', 'none' );\n\n\t$( '.site-footer__heading', document ).on( 'click', ( event ) => {\n\t\tconst $this = $( event.currentTarget );\n\t\tconst $icon = $this.find( '.fas' );\n\t\tconst $menu = $this.next( menu );\n\t\tconst $next = $this.parent().next();\n\n\t\t$menu.slideToggle();\n\t\t$icon.toggleClass( 'fa-chevron-down fa-chevron-up' );\n\n\t\tif ( $next.hasClass( 'solutions-col-2' ) ) {\n\t\t\t$next.find( menu ).slideToggle();\n\t\t}\n\t} );\n} )( jQuery );\n","/* global jQuery */\n/**\n * GDPR box positioning and states\n * \n * Checks wheter the GDPR box is open or not, and handles\n * the events in order to accommodate other elements in the page.\n */\n\n$( document ).ready( () => {\n if ( $( '#cookie-law-info-bar' ).length > 0 && $( '#cookie-law-info-bar' ).is( ':visible' ) )\n {\n $( 'body' ).addClass( 'gdpr-box-open' );\n $( '.cookie_action_close_header, .cli_setting_save_button' ).on( 'click', ( ev ) => {\n $( 'body' ).removeClass( 'gdpr-box-open' );\n });\n }\n});","/* global jQuery, MktoForms2, ga */\n\nrequire('bootstrap.native/dist/polyfill');\n\n( ( $ ) => {\n \n const $insightsContainer = $( '#insightsModalFormContainer' );\n \n if (!$insightsContainer.length) {\n return;\n }\n\n\t\t\t$( '#insightsModalFormContainer' ).html(\n\t\t\t\t''\n\t\t\t);\n\n\t\t\tMktoForms2.loadForm(\n\t\t\t\t'//connect.phreesia.com',\n\t\t\t\t'508-AHM-437',\n\t\t\t\t2000,\n\t\t\t\t( form ) => {\n\n\t\t\t\t\t// Add an onSuccess handler\n\n\t\t\t\t\tform.onSuccess( () => { // values, followUpUrl\n\n\t\t\t\t\t\t// Get the form's jQuery element and hide it\n\t\t\t\t\t\tform.getFormElem().hide();\n\t\t\t\t\t\t$( 'div#formsubmitted' ).show();\n\t\t\t\t\t\t$( '.radhthree' ).remove();\n\t\t\t\t\t\t// Return false to prevent the submission handler from taking the lead to the follow up url\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\t\t\t);\n\n} )( jQuery );\n","/* global jQuery, require, Vimeo, ga */\nrequire('bootstrap.native/dist/polyfill');\n\nimport Tooltip from 'bootstrap.native/dist/components/tooltip-native';\nimport Modal from 'bootstrap.native/dist/components/modal-native';\n\n/**\n * File _main.js.\n */\n\n(($) => {\n // init rad modal\n $('[href=\"#request-a-demo\"]').each((_index, element) => {\n const $element = $(element);\n const href = $element.attr('href');\n\n const $header = $('.site-branding', document);\n const $nav = $('.site-header', document);\n const $burgerMenuToggler = $('.burger-menu-toggler', document);\n const $burgerMenu = $('.menu-burger-menu-container', document);\n const $body = $('body', document);\n\n const $icon1 = $('.icon-1', document);\n const $icon2 = $('.icon-2', document);\n const $icon3 = $('.icon-3', document);\n\n $element.on('click', (event) => {\n event.preventDefault();\n\n if ($(href, document).length > 0) {\n // Don't open the modal until the submit button was written in the DOM\n const theRequestModal = $(href);\n if (theRequestModal.find('button.mktoButton').length < 0) {\n return;\n }\n\n new Modal(href, {\n keyboard: false\n }).toggle();\n\n const currentModal = $(href)[0];\n currentModal.addEventListener('hidden.bs.modal', () => {\n $('[href=\"#request-a-demo\"]').first().focus();\n });\n\n \n } else if ($('#static-request-a-demo').length > 0) {\n \n if ( $burgerMenu.hasClass('burger-opened') ) {\n $burgerMenu.slideToggle();\n $icon1.removeClass('a');\n $icon2.removeClass('b');\n $icon3.removeClass('c');\n $burgerMenuToggler.attr('aria-expanded', 'false');\n $burgerMenuToggler.attr('aria-label', 'Open menu');\n $burgerMenu.removeClass('burger-opened');\n $body.removeClass('no-scroll'); \n }\n \n if (!$nav.hasClass('active')) {\n $nav.removeClass('withBackground');\n }\n\n\n const radFormTop = $('.pattern#static-request-a-demo').offset().top;\n let scrollTop = 0;\n // scrollTop += ( $( '.covid-alert' ).length > 0 ) ? $( '.covid-alert' ).outerHeight() : 0; // has covid alert\n scrollTop += ($('.site-wide-notification.sticky').length > 0) ? $('.site-wide-notification.sticky').outerHeight() : 0; // has notificationbanner\n scrollTop += ($('.site-header').length > 0) ? $('.site-header').outerHeight() : 0; // has site header\n //scrollTop += ( $( '.sticky-menu' ).length > 0 ) ? $( '.sticky-menu' ).outerHeight() : 0; // has sticky menu\n\n $('body, html').animate({\n scrollTop: radFormTop - scrollTop,\n }, 300, function(){\n $('#request-a-demo-form').find('button, a, input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])').first().focus();\n \n return false;\n });\n }\n });\n });\n\n // init tooltips\n $.each(\n $('[data-toggle=\"tooltip\"]'),\n (_index, value) => new Tooltip(value)\n );\n\n // check if element is in viewport\n $.fn.isInViewport = function () {\n const elementTop = $(this).offset().top;\n const elementBottom = elementTop + $(this).outerHeight();\n const viewportTop = $(window).scrollTop();\n const viewportBottom = viewportTop + $(window).height();\n\n return elementBottom > viewportTop && elementTop < viewportBottom;\n };\n\n // do infinite scroll\n const infiniteScroll = () => {\n $(window).on('resize scroll', () => {\n const $element = $('.no-load-more .facetwp-facet-load_more', document);\n\n if (!$element.length) {\n return;\n }\n\n $element.css('visibility', 'hidden');\n\n if ($element.hasClass('is-loading')) {\n return;\n }\n\n const $btn = $('.facetwp-load-more', $element);\n\n if (!$btn) {\n return;\n }\n\n if ($element.isInViewport()) {\n $btn.click();\n }\n });\n };\n\n infiniteScroll();\n \n\n//Create burger menu\n const burgerMenu = () => {\n const $burgerMenuToggler = $('.burger-menu-toggler', document);\n const $burgerMenu = $('.menu-burger-menu-container', document);\n const $header = $('.site-branding', document);\n const $nav = $('.site-header', document);\n const $body = $('body', document);\n\n const $icon1 = $('.icon-1', document);\n const $icon2 = $('.icon-2', document);\n const $icon3 = $('.icon-3', document);\n\n $burgerMenuToggler.on('click', (event) => {\n event.preventDefault();\n $burgerMenu.slideToggle();\n $burgerMenu.toggleClass('burger-opened');\n $icon1.toggleClass('a');\n $icon2.toggleClass('b');\n $icon3.toggleClass('c');\n \n if ( $burgerMenu.hasClass('burger-opened') ) {\n $burgerMenuToggler.attr('aria-expanded', 'true');\n $burgerMenuToggler.attr('aria-label', 'Close menu');\n $body.addClass('no-scroll'); \n $nav.addClass('withBackground'); \n burgerMenuPosition();\n }\n else {\n $burgerMenuToggler.attr('aria-expanded', 'false');\n $burgerMenuToggler.attr('aria-label', 'Open menu');\n $body.removeClass('no-scroll'); \n if (!$nav.hasClass('active')) {\n $nav.removeClass('withBackground'); \n }\n \n }\n \n });\n \n $(window).on('resize', function(){ \n var win = $(this); //this = window\n \n if ( (win.width() >= 1200) && ($burgerMenu.hasClass(\"burger-opened\")) ) {\n $burgerMenu.slideToggle();\n $icon1.toggleClass('a');\n $icon2.toggleClass('b');\n $icon3.toggleClass('c');\n $burgerMenuToggler.attr('aria-expanded', 'false');\n $burgerMenuToggler.attr('aria-label', 'Open menu');\n $burgerMenu.removeClass('burger-opened');\n $body.removeClass('no-scroll');\n \n if (!$nav.hasClass('active')) {\n $nav.removeClass('withBackground'); \n }\n \n }\n });\n \n \n\n // if href = # do nothing\n //$('a[href=\"#\"]', $burgerMenu).on('click', (event) => event.preventDefault());\n\n const $collapsedMenuItem = $('.menu-item.is-collapsed', $burgerMenu);\n const $collapsedMenuItemA = $('> a', $collapsedMenuItem)\n \n $collapsedMenuItemA.attr('role', 'button');\n $collapsedMenuItemA.attr('aria-expanded', 'false');\n $collapsedMenuItemA.attr('aria-haspopup', 'menu');\n $collapsedMenuItem.attr('tabindex',-1);\n\n // hide sub-menu\n $('> .sub-menu', $collapsedMenuItem).toggle();\n\n $collapsedMenuItemA.on('click', (event) => {\n event.preventDefault();\n\n // show / hide sub-menu\n $(event.target).next('.sub-menu').eq(0).slideToggle();\n\n const $this = $(event.currentTarget);\n const $icon = $this.find('.fas');\n $this.attr('aria-expanded', ($this.attr('aria-expanded') == \"false\" ? true : false));\n\n $icon.toggleClass('fa-chevron-down fa-chevron-up');\n\n });\n };\n\n burgerMenu();\n \n \n\n//Burger menu positioning\n const burgerMenuPosition = () => {\n const $burgerMenu = $('.menu-burger-menu-container', document);\n const $nav = $('.site-header', document);\n // const $alert = $( '.covid-alert', document ).eq( 0 );\n const $alert = $( '.site-wide-notification', document ).eq( 0 );\n const $header = $('.site-header', document).eq(0);\n\n if (!$burgerMenu.length) {\n return;\n }\n\n let top = 0;\n\n //For non-sticky alert option, take into account alert positioning only if it is visible above nav\n if ($alert.length && !$alert.hasClass('sticky') && !$nav.hasClass('active')) {\n \t\t\ttop += $alert.outerHeight();\n \t}\n\n //For sticky alert option, always take into account alert positioning\n if ($alert.length && $alert.hasClass('sticky')) {\n top += $alert.outerHeight();\n }\n\n if ($header.length) {\n top += $header.outerHeight();\n }\n\n $burgerMenu.css('top', top);\n };\n\n burgerMenuPosition();\n $(window).on('resize scroll', burgerMenuPosition);\n\n //Sticky header\n const stickyHeader = () => {\n // return because the sticky-menu will calculate this values.\n if ($('.sticky-menu').length) {\n return;\n }\n\n // const $alert = $( '.covid-alert', document ).eq( 0 );\n const $alert = $( '.site-wide-notification.sticky', document ).eq( 0 );\n const $header = $('.site-header', document).eq(0);\n const $burgerMenu = $('.menu-burger-menu-container', document);\n\n let top = 0;\n\n if (!$header.length) {\n return;\n }\n\n if ( $alert.length ) {\n \t\t\ttop = $alert.outerHeight();\n \t\t}\n\n // IE11 fix for the Klas Banner\n const isIE11 = !!window.MSInputMethodContext && !!document.documentMode;\n\n if (isIE11) {\n $alert.addClass('position-fixed');\n }\n\n $header.css('top', top);\n\n $(window).on(' scroll', (event) => {\n\n if ( $(window).scrollTop() > 50 ) {\n $header.addClass('active');\n $header.addClass('withBackground');\n }\n else {\n $header.removeClass('withBackground');\n $header.removeClass('active');\n if ( $burgerMenu.hasClass('burger-opened') ) {\n $header.addClass('withBackground');\n \n }\n }\n\n\n });\n };\n\n // calculate header position\n stickyHeader();\n $(window).on('resize', stickyHeader);\n\n // Re apply the function because there's some JS processes\n // that are dragging the loading time and ignoring\n // this one in some pages.\n var reApplyTimes = 0;\n var reApplyLimit = 5;\n const reApplyStickyHeader = setInterval(() => {\n stickyHeader();\n reApplyTimes++;\n if (reApplyLimit == reApplyTimes) {\n clearInterval(reApplyStickyHeader);\n }\n }, 1000);\n\n // scroll to anchor\n const scrollToAnchor = () => {\n // const $alert = $( '.covid-alert', document ).eq( 0 );\n const $alert = $( '.site-wide-notification.sticky', document ).eq( 0 );\n const $header = $('.site-header', document).eq(0);\n const $menu = $('.sticky-menu', document).eq(0);\n let scrollTop = 0;\n\n // has alert\n \tif ( $alert.length ) {\n \t\t\tscrollTop += $alert.outerHeight();\n \t\t}\n\n // has site header\n if ($header.length) {\n scrollTop += $header.outerHeight();\n }\n\n // has sticky menu\n if ($menu.length) {\n scrollTop += $menu.outerHeight();\n }\n\n $('a[href^=\"#\"]').each((_index, element) => {\n const $element = $(element);\n const href = $element.attr('href');\n\n // if is accordion or modal\n if (\n !href\n || href === '#'\n || href.startsWith('#accordion')\n || href.startsWith('#careers-accordion')\n || href.startsWith('#modal-')\n || href.startsWith('#request-a-demo')\n || href.startsWith('#image-carousel')\n || href.startsWith('#slide')\n || href.startsWith('#primary')\n || href.startsWith('#areyouapatient')\n \n ) {\n return;\n }\n\n $element.on('click', (event) => {\n \n \n event.preventDefault();\n const $this = $(event.currentTarget);\n\n const $target = $(href);\n const $href = $this.attr('href');\n\n\n // no target element\n if (!$target.length) {\n return;\n }\n \n\n $([document.documentElement, document.body]).animate({\n scrollTop: (($target.offset() && $target.offset().top) || 0) - scrollTop,\n }, 300, function(){\n if ($href == '#lets-talk') {\n $('#static-contact-us').find('button, a, input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])').first().focus();\n\n }\n\n else {\n $target.find('button, a, input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])').first().focus();\n }\n return false;\n });\n\n \n });\n \n \n });\n\n //Make sure Skip Link focuses on main element and not nav//\n \n $('[href=\"#primary\"]').on('click keydown', (event) => {\n \n if (event.type === 'click' || (event.type === 'keydown' && event.key === ' ')) {\n \n event.preventDefault();\n const $this = $(event.currentTarget);\n const $primary = $('#primary');\n const $alert = $( '.site-wide-notification.sticky', document ).eq( 0 );\n const $header = $('.site-header', document).eq(0);\n const $menu = $('.sticky-menu', document).eq(0);\n let scrollTop = 0;\n\n // has alert\n if ( $alert.length ) {\n scrollTop += $alert.outerHeight();\n }\n\n // has site header\n if ($header.length) {\n scrollTop += $header.outerHeight();\n }\n\n // has sticky menu\n if ($menu.length) {\n scrollTop += $menu.outerHeight();\n }\n\n // no target element\n if (!$this.length) {\n return;\n }\n \n\n $([document.documentElement, document.body]).animate({\n scrollTop: (($primary.offset() && $primary.offset().top) || 0) - scrollTop,\n }, 300, function(){\n $primary.find('button:not([tabindex=\"-1\"]), a:not([tabindex=\"-1\"]), input:not([type=\"hidden\"]), select:visible, textarea:visible, [tabindex]:not([tabindex=\"-1\"])').first().focus();\n \n return false;\n });\n }\n\n \n });\n\n if (window.location.hash) {\n const $hash = window.location.hash;\n const target_area = $( $hash );\n\n if ($hash.length) {\n \n if ( ($hash.indexOf(\"slide\") == 1) || ($hash.indexOf(\"modal\") == 1) ) {\n return;\n }\n \n else {\n // don't scroll on load\n setTimeout(function() {\n $([document.documentElement, document.body]).animate({\n scrollTop: ((target_area.offset() && target_area.offset().top) || 0) - scrollTop\n }, 300, function(){\n });\n }, 200 );\n \n }\n \n }\n }\n \n\n\n };\n\n scrollToAnchor();\n \n //Meganav dropdown\n\n /*JS to change dropdown width*/\n const submenutrigger = document.querySelectorAll(\".menu-primary-menu-container > .menu > .menu-item-has-children\");\n const dropBackground = document.querySelector(\".dropdownBackground\");\n const mainNav = document.querySelector(\".menu-primary-menu-container\");\n const nav = document.querySelector(\".main-navigation\");\n const indicator = document.querySelector(\".tip\");\n \n $('a[href=\"#\"]', mainNav).attr('tabindex',-1);\n $('.empty-link a').attr('tabindex',-1);\n \n \n \n /*activate submenu*/\n function activeSub() {\n\n this.classList.add(\"trigger-enter\");\n setTimeout(\n () =>\n this.classList.contains(\"trigger-enter\")\n && this.classList.add(\"trigger-enter-active\"),\n 50\n );\n \n this.setAttribute('aria-expanded', 'true');\n \n \n /*get position on mouseover*/\n const dropdown = this.querySelector(\".sub-menu\");\n const dropdownPos = dropdown.getBoundingClientRect();\n const navPos = nav.getBoundingClientRect();\n const pos = {\n height: dropdownPos.height,\n width: dropdownPos.width,\n top: (dropdownPos.top - navPos.top),\n left: dropdownPos.left - navPos.left,\n };\n /*set position of the arrow and submenu on mouseover*/\n dropBackground.style.setProperty(\"width\", `${pos.width}px`);\n dropBackground.style.setProperty(\"height\", `${pos.height}px`);\n dropBackground.style.setProperty(\n \"transform\",\n `translate(${pos.left}px, ${pos.top}px)`\n );\n \n dropBackground.classList.add(\"open\");\n \n const navLinkCenter = Math.floor( this.offsetLeft + this.clientWidth / 2 )-315;\n indicator.style.transform = `translateX(${navLinkCenter}px)`;\n indicator.style.opacity = \"1\";\n }\n \n \n /*deactivate submenu*/\n function deactiveSub() {\n\n this.classList.remove(\"trigger-enter\", \"trigger-enter-active\");\n dropBackground.classList.remove(\"open\");\n indicator.style.opacity = \"0\";\n this.setAttribute('aria-expanded', 'false');\n \n }\n \n /*deactivate submenu*/\n function loseFocus() {\n requestAnimationFrame(() => {\n // Check if the new focused element is a child of the original container\n if (!this.contains(document.activeElement)) {\n // Do blur logic here!\n this.classList.remove(\"trigger-enter\", \"trigger-enter-active\");\n dropBackground.classList.remove(\"open\");\n indicator.style.opacity = \"0\";\n this.setAttribute('aria-expanded', 'false');\n }\n });\n}\n \n function rotateSub() {\n //Reposition dropdown arrow and hide if mobile\n if ( $('.menu-primary-menu-container .menu-item-has-children').hasClass('trigger-enter') ) {\n const openTrigger2 = document.querySelector('.trigger-enter');\n const navLinkCenter2 = Math.floor( openTrigger2.offsetLeft + openTrigger2.clientWidth / 2 )-315;\n indicator.style.transform = `translateX(${navLinkCenter2}px)`; \n \n if ( $(\".burger-menu-toggler.d-xxl-none\").is( ':hidden' ) ){\n indicator.style.opacity = \"1\";\n dropBackground.classList.add(\"open\");\n } else {\n indicator.style.opacity = \"0\";\n dropBackground.classList.remove(\"open\");\n }\n } \n \n }\n \n\n \n /*mouse events*/\n submenutrigger.forEach(function( trigger ) {\n trigger.setAttribute('tabindex', '0');\n trigger.setAttribute('aria-haspopup', 'true');\n trigger.setAttribute('aria-expanded', 'false');\n \n trigger.addEventListener(\"mouseenter\", activeSub);\n trigger.addEventListener(\"mouseleave\", deactiveSub);\n trigger.addEventListener(\"click\", activeSub);\n trigger.addEventListener(\"focus\", activeSub);\n trigger.addEventListener('focusout', e => {\n //Don't focusout if tabbing into submenu\n const leavingParent = !trigger.contains(e.relatedTarget);\n if (leavingParent) {\n trigger.classList.remove(\"trigger-enter\", \"trigger-enter-active\");\n dropBackground.classList.remove(\"open\");\n indicator.style.opacity = \"0\";\n trigger.setAttribute('aria-expanded', 'false');\n }\n });\n \n\n });\n \n\n $( window ).on( 'resize', rotateSub );\n \n //Fixes bug where dropdown is open when clicking back button\n $(window).on('pageshow', function(){\n \n if ( $('.menu-primary-menu-container .menu-item-has-children').hasClass('trigger-enter') ) {\n $('.menu-primary-menu-container .menu-item-has-children').removeClass('trigger-enter', 'trigger-enter-active');\n indicator.style.opacity = \"0\";\n dropBackground.classList.remove(\"open\");\n } \n });\n\n\n // Check for vimeo and youtube videos and stop them when exiting.\n if ( ($('div[id^=\"modal-block\"]').length > 0) ) {\n \n $('div[id^=\"modal-block\"]').each((index, object) => {\n \n if ( ( $(object).find('.is-provider-vimeo').length > 0 ) ) {\n const currentModal = $(object)[0];\n currentModal.addEventListener('hidden.bs.modal', () => {\n const video = $(object).find('iframe').eq(0);\n\n if (video) {\n const player = new Vimeo.Player($(object).find('iframe').eq(0));\n player.pause();\n }\n });\n }\n \n if ( ( $(object).find('.is-provider-youtube').length > 0 ) ) {\n const currentModal = $(object)[0];\n currentModal.addEventListener('hidden.bs.modal', () => {\n const video = $(object).find('iframe');\n\n var src = video.attr('src');\n $(object).find('iframe').attr('src', \"\");\n $(object).find('iframe').attr('src', src);\n });\n \n currentModal.addEventListener('shown.bs.modal', () => {\n $(object).find('iframe').attr('src', $(object).find('iframe').attr('src'));\n });\n }\n\n });\n }\n\n\n/* GA Tracking for Login Button*/\n $('[href*=\"login.phreesia.net\"]').on('click', () => {\n if (window.ga || ga) {\n // track_practice_login_click.\n ga('send', 'event', 'Login', 'Login Nav Click', 'Phreesia Portal');\n }\n });\n\n \n \n/* COUNTER ANIMATION WHEN SCROLLED INTO VIEW*/\n const countUp = () => {\n \n const $element = $('.counterBox', document);\n\n if ( ! $element.length )\n\t\t {\n\t\t\t return;\n\t\t }\n \n $(window).on('scroll', () => {\n\n $element.each(function() {\n \n if ( $(this).isInViewport() ) {\n var thisNumber = $(this).find(\".counter\");\n \n thisNumber.each(function() {\n var $this = $(this),\n countTo = $this.attr('data-count');\n $({ countNum: 0}).animate({\n countNum: countTo\n },\n\n {\n\n duration: 1000,\n easing:'swing',\n step: function() {\n /*$this.text(Math.floor(this.countNum));*/\n $this.text(commaSeparateNumber(Math.floor(this.countNum)));\n if ($this.text() == null) {\n console.log(\"error\");\n }\n },\n complete: function() {\n /*$this.text(this.countNum);*/\n $this.text(commaSeparateNumber(this.countNum));\n $this.removeClass(\"counter\");\n }\n \n\n }); \n \n\n });\n \n\n }\n \n });\n \n\n function commaSeparateNumber(val) {\n while (/(\\d+)(\\d{3})/.test(val.toString())) {\n val = val.toString().replace(/(\\d+)(\\d{3})/, '$1' + ',' + '$2');\n }\n return val;\n }\n \n });\n \n };\n\n countUp();\n \n\n\n \n/*HONEYPOT FOR MARKETO FORMS*/\n const mktoHoneypot = () => {\n if (!window.MktoForms2) {\n return;\n }\n\n window.MktoForms2.whenReady((form) => {\n form.onValidate(() => {\n const vals = form.vals();\n\n form.submittable(!!(vals.honeypot === ''));\n });\n });\n };\n\n mktoHoneypot();\n \n //KEEPS FOCUS INSIDE MODAL WINDOWS WHEN OPEN \n\n const modalFocus = () => {\n const $modal = document.querySelectorAll('.modal'); // select the modal by it's id \n const $page = document.querySelector('#page'); // select page\n \n \n if ( $modal.length > 0) { \n \n $modal.forEach(function( element ) {\n\n document.body.appendChild(element);\n\n var lastFocus;\n\n \n element.addEventListener('show.bs.modal', function(e) {\n lastFocus = $(':focus-visible');\n\n });\n\n element.addEventListener('shown.bs.modal', function(e) {\n const $drift = document.querySelector('#drift-frame-controller'); // select drift \n const $cookies = document.querySelector('#cookie-notice'); // select cookies pop-up\n\n $page.inert = true;\n\n if ($drift){\n $drift.inert = true;\n }\n if ($cookies){\n $cookies.inert = true;\n }\n\n });\n\n element.addEventListener('hidden.bs.modal', function(e) {\n const $drift = document.querySelector('#drift-frame-controller'); // select drift \n const $cookies = document.querySelector('#cookie-notice'); // select cookies pop-up\n $page.inert = false;\n\n if ($drift){\n $drift.inert = false;\n }\n if ($cookies){\n $cookies.inert = false;\n }\n if(lastFocus) {\n lastFocus.focus();\n }\n\n });\n \n \n \n\n });\n }\n };\n\n modalFocus();\n\n \n \n\n})(jQuery);\n","/* global jQuery */\nrequire('bootstrap.native/dist/polyfill');\nimport Modal from 'bootstrap.native/dist/components/modal-native';\n\n(($) => {\n const $form = $('#static-request-a-demo, #static-contact-us, #modal-request-a-demo, .form-container');\n let modalWindow = false;\n\n if ( !$form.length ) {\n return;\n }\n\n function loadModal() {\n \n const href = '#patient-popup';\n \n new Modal(href, {\n keyboard: false\n }).toggle();\n \n\n // Uncheck are you a patient when closing modal\n const currentModal = $(href)[0];\n currentModal.addEventListener('hidden.bs.modal', () => {\n \n if ( modalWindow === true ) {\n $('#modal-request-a-demo #areyouapatient').prop('checked', false);\n $(\"#modal-request-a-demo #Organization_Type__c\").prop(\"selectedIndex\", 0);\n new Modal('#request-a-demo', {\n keyboard: false\n }).toggle();\n }\n\n else {\n $('#areyouapatient').prop('checked', false);\n $(\"#Organization_Type__c\").prop(\"selectedIndex\", 0);\n }\n });\n }\n\n\n //FIX FORM FIELDS TO ACCOUNT FOR HIDDEN OTHER ORGANIZATION FIELD - Overwrite initial CSS\n setTimeout(function () {\n $(\"#Company\").parent().parent().parent().addClass(\"otherField\");\n $(\"#howdidyouhear\").parent().parent().parent().addClass(\"otherField2\");\n }, 3000); // 3 seconds delay \n\n $form.each((_index, element) => {\n const $element = $(element);\n\n //PATIENT SELECTION MEANS UNABLE TO SUBMIT FORM\n $element.on('change', '#Organization_Type__c', (event) => {\n const $value = $('option:selected', event.currentTarget).val();\n const $company = $( '#Company', $element );\n\t\t const $howdid = $( '#howdidyouhear', $element );\n\n if ($element.attr(\"id\") === \"modal-request-a-demo\" ) {\n modalWindow = true;\n } else {\n modalWindow = false;\n }\n\n if ('None of the above - I am a patient' === $value) {\n loadModal();\n $company.parent().parent().parent().addClass(\"otherField\");\n\t\t\t $howdid.parent().parent().parent().addClass(\"otherField2\");\n \t\t $howdid.attr(\"style\", \"height:auto!important\");\n }\n\n //FIX FORM FIELDS TO ACCOUNT FOR HIDDEN OTHER ORGANIZATION FIELD - CHANGE CSS DEPENDING ON FORM SELECTION\n else if ( ('Other' === $value) ){\n $company .parent().parent().parent().removeClass(\"otherField\");\n $howdid.parent().parent().parent().removeClass(\"otherField2\");\n $howdid.attr(\"style\", \"height:50px!important\");\n }\n\n else {\n $company.parent().parent().parent().addClass(\"otherField\");\n\t\t\t $howdid.parent().parent().parent().addClass(\"otherField2\");\n \t\t $howdid.attr(\"style\", \"height:auto!important\");\n \n } \n\n\n });\n \n \n //OPEN MODAL IF THEY ARE A PATIENT\n $element.on('click', '#areyouapatient', (event) => {\n \n if ( $('#areyouapatient').is(':checked')) {\n\n if ($element.attr(\"id\") === \"modal-request-a-demo\" ) {\n modalWindow = true;\n } else {\n modalWindow = false;\n }\n \n loadModal();\n \n } else {\n return;\n }\n \n \n });\n});\n\n\n\n// FUNCTIONS TO FILL HIDDEN FIELDS WITH COOKIE INFO TO SEND TO GA\n \n // Function to retrieve cookie value by name \n function getCookie(cookieName) {\n const name = `${cookieName}=`;\n const decodedCookie = decodeURIComponent(document.cookie);\n const cookieArray = decodedCookie.split(';');\n\n for (let i = 0; i < cookieArray.length; i++) {\n let cookie = cookieArray[i].trim();\n if (cookie.indexOf(name) === 0) {\n return cookie.substring(name.length);\n }\n }\n return '';\n }\n\n // Function to set field values based on cookie values \n function setFieldValues(cookieName) {\n const cookieValue = getCookie(cookieName);\n let nameValue = '';\n\n // Perform client-side manipulation if necessary \n switch (cookieName) {\n case '_ga':\n const parts = cookieValue.split('.');\n if (parts.length >= 4) { // Ensure enough parts exist \n nameValue = `${parts[2]}.${parts[3]}`;\n }\n break;\n case '_ga_KLVG4XHYYM':\n const parts2 = cookieValue.split('.');\n if (parts2.length >= 3) { // Ensure enough parts exist \n nameValue = parts2[2];\n }\n break;\n // Add more cases as needed \n default:\n break;\n }\n\n return nameValue;\n }\n \n\n // Execute after the page has fully loaded \n window.addEventListener('load', function () {\n // Set field values after a short delay \n setTimeout(function () {\n const clientIDValue = setFieldValues('_ga');\n const sessionIDValue = setFieldValues('_ga_KLVG4XHYYM');\n\n // Set values for existing hidden input fields with names \"clientID\" and \"sessionID\" \n const hiddenInputs = document.querySelectorAll('input[type=\"hidden\"][name=\"clientID\"], input[type=\"hidden\"][name=\"sessionID\"]');\n hiddenInputs.forEach(function (input) {\n switch (input.getAttribute('name')) {\n case 'clientID':\n input.value = clientIDValue;\n break;\n case 'sessionID':\n input.value = sessionIDValue;\n break;\n default:\n break;\n }\n });\n }, 3000); // 3 seconds delay \n });\n\n})(jQuery);\n","/* global jQuery, MktoForms2, ga, require */\n\nrequire( 'bootstrap.native/dist/polyfill' );\n\nfunction GAFormSubmissionEvent() {\n\t// Track form submission on GA\n\tlet lblGA = document.getElementById( 'mktoga_hRetsSCHkvKZ' ).value;\n\tif ( lblGA === 'Static Bar' ) {\n\t\tlblGA = lblGA + ' - ' + document.title;\n\t}\n\tga( 'send', 'event', 'Request a Demo', 'Submit', lblGA );\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction formisimoTrackingCode() {\n\tconst s\t= document.createElement( 'script' );\n\ts.type\t= 'text/javascript';\n\ts.id\t= 'formisimoTracking';\n\ts.src\t= '//cdn-static.formisimo.com/tracking/js/tracking.js';\n\n\tdocument.getElementsByTagName( 'body' )[ 0 ].appendChild( s );\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction formisimoConversionCode() {\n\t// Track form conversion on formisimo\n\tconst c\t= document.createElement( 'script' );\n\tc.type\t= 'text/javascript';\n\tc.id\t= 'formisimoConversion';\n\tc.src\t= '//cdn-static.formisimo.com/tracking/js/conversion.js';\n\n\tdocument.getElementsByTagName( 'body' )[ 0 ].appendChild( c );\n}\n\n( ( $ ) => {\n\tfunction loadMktoFormPage() {\n\t\t$( '#formisimoTracking' ).remove();\n\t\t$( '#formisimoConversion' ).remove();\n\n\t\tif ( $( window ).width() <= 861 ) {\n\t\t\t//alert('mobile');\n\t\t\t$( '#demoFormContainerPage' ).html(\n\t\t\t\t''\n\t\t\t);\n\n\t\t\tMktoForms2.loadForm(\n\t\t\t\t'//connect.phreesia.com',\n\t\t\t\t'508-AHM-437',\n\t\t\t\t2146,\n\t\t\t\t( form ) => {\n\t\t\t\t\t// This formisimo thingy apparently was taken down. CDN no longer responds.\n\t\t\t\t\t// formisimoTrackingCode();\n\n\t\t\t\t\tform.onSubmit( ( stuff ) => {\n\t\t\t\t\t\tlet source = false;\n\t\t\t\t\t\tif ( stuff.getId() === '2144' ) {\n\t\t\t\t\t\t\tsource = 'rad-desktop';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( stuff.getId() === '2146' ) {\n\t\t\t\t\t\t\tsource = 'rad-mobile';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( source ) {\n\t\t\t\t\t\t\twindow.history.pushState(\n\t\t\t\t\t\t\t\t'object or string',\n\t\t\t\t\t\t\t\t'Title',\n\t\t\t\t\t\t\t\t'/#' + source\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Add an onSuccess handler\n\t\t\t\t\tform.onSuccess( () => { // values, followUpUrl\n\t\t\t\t\t\t// formisimoConversionCode();\n\t\t\t\t\t\tGAFormSubmissionEvent();\n\t\t\t\t\t\t// Get the form's jQuery element and hide it\n\t\t\t\t\t\tform.getFormElem().hide();\n\t\t\t\t\t\t$( '.mkto-disclaimer' ).hide();\n\t\t\t\t\t\t$( '#requestademo-thank-you' ).show();\n\t\t\t\t\t\t$( '.radhthree' ).remove();\n\t\t\t\t\t\t// Return false to prevent the submission handler from taking the lead to the follow up url\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\t//alert('desktop');\n\t\t\t$( '#demoFormContainerPage' ).html(\n\t\t\t\t''\n\t\t\t);\n\n\t\t\tMktoForms2.loadForm(\n\t\t\t\t'//connect.phreesia.com',\n\t\t\t\t'508-AHM-437',\n\t\t\t\t2144,\n\t\t\t\t( form ) => {\n\t\t\t\t\t// This formisimo thingy apparently was taken down. CDN no longer responds.\n\t\t\t\t\t// formisimoTrackingCode();\n\t\t\t\t\tlet tabindx = 200,\n\t\t\t\t\t\tsecondcolindx = 209;\n\t\t\t\t\t$( '#mktoForm_' + form.getId() + ' input:not([type=hidden]), #mktoForm_' + form.getId() + ' select, #mktoForm_' + form.getId() + ' textarea, #mktoForm_' + form.getId() + ' button.mktoButton' ).each( ( _key, value ) => {\n\t\t\t\t\t\tconst prt = $( value ).closest( 'div.mktoFormCol' );\n\n\t\t\t\t\t\tif ( prt.is( ':first-child' ) ) {\n\t\t\t\t\t\t\t$( value ).attr( 'tabindex', tabindx );\n\t\t\t\t\t\t\ttabindx++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$( value ).attr( 'tabindex', secondcolindx );\n\t\t\t\t\t\t\tsecondcolindx++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\tform.onSubmit( ( stuff ) => {\n\t\t\t\t\t\tlet source = false;\n\t\t\t\t\t\tif ( stuff.getId() === '2144' ) {\n\t\t\t\t\t\t\tsource = 'rad-desktop';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( stuff.getId() === '2146' ) {\n\t\t\t\t\t\t\tsource = 'rad-mobile';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( source ) {\n\t\t\t\t\t\t\twindow.history.pushState(\n\t\t\t\t\t\t\t\t'object or string',\n\t\t\t\t\t\t\t\t'Title',\n\t\t\t\t\t\t\t\t'/#' + source\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\t// Add an onSuccess handler\n\t\t\t\t\tform.onSuccess( () => { // values, followUpUrl\n\t\t\t\t\t\t// formisimoConversionCode();\n\t\t\t\t\t\tGAFormSubmissionEvent();\n\t\t\t\t\t\t// Get the form's jQuery element and hide it\n\t\t\t\t\t\tform.getFormElem().hide();\n\t\t\t\t\t\t$( '.mkto-disclaimer' ).hide();\n\t\t\t\t\t\t$( '#requestademo-thank-you' ).show();\n\t\t\t\t\t\t$( '.radhthree' ).remove();\n\t\t\t\t\t\t// Return false to prevent the submission handler from taking the lead to the follow up url\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t// $( document ).ready( () => loadMktoFormPage() );\n} )( jQuery );\n","// eslint-disable-next-line no-unused-vars\n/* global jQuery, MktoForms2, GAFormSubmissionEvent, ga, require */\n\nrequire( 'bootstrap.native/dist/polyfill' );\n\nfunction GAFormSubmissionEvent() {\n/*\n * Commented this because the whole function was commented in _reqdemo.js.\n * Tried to globalize the function on _reqdemo.js but for some reason it doesn't\n * take that one, even though it loads prior to this file.\n*/\n\t// Track form submission on GA\n\tlet lblGA = document.getElementById( 'mktoga_hRetsSCHkvKZ' ).value;\n\tif ( lblGA === 'Static Bar' ) {\n\t\tlblGA = lblGA + ' - ' + document.title;\n\t}\n\t/*ga( 'send', 'event', 'Request a Demo', 'Submit', lblGA );*/\n ga( 'send', 'event', 'Request a Demo', 'Submit', document.title );\n}\n\nfunction loadMktoForm() {\n\t( ( $ ) => {\n\t\t// Commented hotjar as this event is no longer supported https://help.hotjar.com/hc/en-us/articles/360052316594-Hotjar-Forms-and-Funnels-have-been-retired\n\t\t// window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};\n\t\t// hj('vpv', '/rad-open/');\n\n\n\t\tlet rad_form_id = 3579;\n let other_form_id = 2840;\n let showSecondForm = false;\n let submitCount = 0;\n \n let articleBody = document.querySelector(\"#primary article\");\n\n\n\t\tswitch ( window.location.pathname ) {\n\t\t\tdefault: \n other_form_id = $( '#otherFormContainer').attr(\"data-value\");\n\t\t\t\trad_form_id = 3579;\n domain_name = '//connect.phreesia.com';\n munchkin_id = '508-AHM-437';\n\t\t\t\tbreak;\n case '/company/contact-us/':\n\t\t\t\tother_form_id = 2840;\n rad_form_id = 3579;\n domain_name = '//connect.phreesia.com';\n munchkin_id = '508-AHM-437';\n\t\t\t\tbreak;\n \n\t\t}\n \n /*if (articleBody.classList.contains('tag-payer')) {\n other_form_id = $( '#otherFormContainer').attr(\"data-value\");\n rad_form_id = 3579;\n domain_name = '//memberconnect.phreesia.com';\n munchkin_id = '753-LZD-147';\n }*/\n\n\t\t$( '#demoFormContainer' ).prepend(\n\t\t\t''\n\t\t);\n \n $( '#otherFormContainer' ).prepend(\n\t\t\t''\n\t\t);\n \n\n\t\tMktoForms2.loadForm(\n\t\t\tdomain_name,\n\t\t\tmunchkin_id,\n\t\t\trad_form_id,\n\t\t\t( form ) => {\n \n \n const $mktoButton = $( '#demoFormContainer button.mktoButton');\n const $mktoButtonLabel = $mktoButton.text();\n\n \n\t\t\t\tform.onSubmit( ( stuff ) => {\n\t\t\t\t\tlet source = false;\n \n\t\t\t\t\tif ( stuff.getId() === '3579' ) {\n\t\t\t\t\t\tsource = 'rad-desktop';\n\t\t\t\t\t}\n\t\t\t\t\tif ( stuff.getId() === '2146' ) {\n\t\t\t\t\t\tsource = 'rad-mobile';\n\t\t\t\t\t}\n\t\t\t\t\tif ( source ) {\n\t\t\t\t\t\twindow.history.pushState(\n\t\t\t\t\t\t\t'object or string',\n\t\t\t\t\t\t\t'Title',\n\t\t\t\t\t\t\t'/#' + source\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n \n // IF ORGANIZATION TYPE MEETS CRITERIA, SET VARIABLE TO CONTROL WHAT THE SUBMIT BUTTON WILL DO\n \n var field_val = form.getValues()['Organization_Type__c'];\n \n if ( (field_val === 'Medical Practice') || (field_val === 'Health System') || (field_val === 'Hospital') || (field_val === 'Surgery Center') || (field_val === 'Ambulatory Provider') || (field_val === 'Broker/FMO') || (field_val === 'Custodial Care Services') || (field_val === 'Emergency Department') || (field_val === 'Government') || (field_val === 'Service Providers') || (field_val === 'Private Equity') ) {\n showSecondForm = true;\n\n\t\t }\n\n \n //Counts how many times Submit was clicked\n submitCount++;\n form.vals({\"chiliPiperRADSubmitTracker\": submitCount});\n });\n\n\t\t\t\t// Add an onSuccess handler\n\t\t\t\tform.onSuccess( (values, followUpUrl) => { // values, followUpUrl\n \n \n\t\t\t\t\t\n if ( showSecondForm === true ) {\n // RESET SUBMIT BUTTON\n $mktoButton.prop(\"disabled\", false);\n $mktoButton.attr('aria-disabled', 'false');\n $mktoButton.text($mktoButtonLabel);\n \n // UPDATE VALUES\n form.vals({\"chiliPiperRADStage1\":\"Yes\"});\n \n //Change to False so that default onSuccess behavior will happen on second submit\n showSecondForm = false;\n \n return false;\n \n }\n \n\n else {\n\n // Use the default URL that is set up in Marketo\n location.href = followUpUrl;\n \n \n if ( GAFormSubmissionEvent ) {\n\t\t\t\t\t\t GAFormSubmissionEvent();\n\t\t\t\t\t }\n \n return false;\n\n }\n \n\n });\n }\n \n\n\t\t);\n \n MktoForms2.loadForm(\n\t\t\tdomain_name,\n\t\t\tmunchkin_id,\n\t\t\tother_form_id,\n\t\t\t( form ) => {\n\n\t\t\t\t\n\t\t\t\t// Add an onSuccess handler\n\t\t\t\tform.onSuccess( () => { // values, followUpUrl\n \n\t\t\t\t\tif ( GAFormSubmissionEvent ) {\n\t\t\t\t\t\tGAFormSubmissionEvent();\n\t\t\t\t\t}\n \n // Use the default URL that is set up in Marketo\n // location.href = followUpUrl;\n \n \n\t\t\t\t} );\n\t\t\t}\n\t\t);\n \n /*REMOVE EXTRA LABEL FROM CHECKBOXES TO MARKETO FORMS FOR ADA COMPLACENCY AND SET TABINDEX TO 0*/\n MktoForms2.whenRendered(function(mktoForm){\n const arrayify = getSelection.call.bind([].slice);\n const tabbableInputStor = \"input:not([type='hidden']), select, textarea, button\"\n let formEl = mktoForm.getFormElem()[0];\n \n /*Give the input fields a tabindex so they can be focusable via keyboard*/\n /*arrayify(formEl.querySelectorAll(tabbableInputStor))*/\n// .forEach(function(input) {\n// input.setAttribute('tabindex', '0');\n// });\n \n /* the Checkbox field/s you want to alter */\n const labelEl = arrayify(formEl.querySelectorAll(\"input[type='checkbox']\")).map(function(el){\n return el.name;\n });\n \n /* no need to touch below this line. This removes the extra label created by Marketo */\n labelEl.forEach(function(fieldName){\n let checkbox = formEl.querySelector(\"input[name='\" + fieldName + \"']\"),\n primaryLabel = formEl.querySelector(\"label[for='\" + checkbox.id + \"'].mktoLabel\"),\n secondaryLabel = formEl.querySelector(\"label[for='\" + checkbox.id + \"']:not(.mktoLabel)\");\n\n if (primaryLabel){\n if(primaryLabel.getAttribute(\"data-content-migration-state\") !== \"done\"){\n secondaryLabel.innerHTML = primaryLabel.innerHTML;\n primaryLabel.setAttribute(\"data-content-migration-state\", \"done\");\n primaryLabel.remove();\n }\n else {\n return;\n }\n }\n \n });\n \n /* Move Patient label before the toggle box*/ \n if ($(\"input#areyouapatient\").length){\n \n $(\"input#areyouapatient\").each( ( _key, value ) => {\n $( value ).find(\"+ label span.patient-text\").insertBefore($( value ));\n });\n }\n \n\n});\n \n\n\n \n \n \n\n\n\t\t// Language switch in the disclaimer message\n\t\t//$( 'a.disclaimer-text-switch' ).on( 'click', ( ev ) => {\n//\t\t\tev.preventDefault();\n//\n//\t\t\tif ( $( ev.currentTarget ).attr( 'id' ) == 'disclaimer-text-button-spanish' )\n//\t\t\t{\n//\t\t\t\t$( '#disclaimer-text-english' ).hide();\n// if ( '#disclaimer-text-english-contact' ) {\n// $( '#disclaimer-text-english-contact' ).hide();\n// }\n//\t\t\t\t$( '#disclaimer-text-spanish' ).show();\n// if ( '#disclaimer-text-spanish-contact' ) {\n// $( '#disclaimer-text-spanish-contact' ).show();\n// }\n//\t\t\t}\n//\t\t\telse if ( $( ev.currentTarget ).attr( 'id' ) == 'disclaimer-text-button-english' )\n//\t\t\t{\n//\t\t\t\t$( '#disclaimer-text-spanish' ).hide();\n// if ( '#disclaimer-text-spanish-contact' ) {\n// $( '#disclaimer-text-spanish-contact' ).hide();\n// }\n//\t\t\t\t$( '#disclaimer-text-english' ).show();\n// \n// if ( '#disclaimer-text-english-contact' ) {\n// $( '#disclaimer-text-english-contact' ).show();\n// }\n//\t\t\t}\n//\t\t} );\n\n\t} )( jQuery );\n}\n\n// Init the marketo form on page load\nloadMktoForm();\n"],"sourceRoot":""}