{"version":3,"sources":["legacy.js"],"names":["_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","t","_arrayLikeToArray","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","return","isArray","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","ownKeys","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","TypeError","_assertThisInitialized","ReferenceError","Boolean","prototype","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","_typeof","_classCallCheck","_toPropertyKey","key","_createClass","_defineProperties","_toPrimitive","toPrimitive","String","Number","window","location","search","cookieValue","cookieName","date","replace","split","reduce","acc","val","items","keys","trackingParams","_Object$keys","qs","_i","qsValue","queryParams","map","item","toLowerCase","trackerValues","trackingCookieValue","concat","TrackingCookieName","escape","JSON","stringify","join","Date","setTime","CookieTrackingDaysActive","document","CookieTrackingDomain","AutomatedTestCookie","snhuCookie","CookieProvider","queryStringParameters","has","get","includes","URLSearchParams","checkCampaign","BreakpointController","module","exports","addEventListener","checkUrlForTest","setAutomatedTestCookie","win","currentBreakpoint","breakpoints","label","width","checkWindow","ret","w","serialize","list","breakpoint","PopulateCookieFromQueryString","$","trigger","WriteCookie","getBreakpoint","isMobile","IPHONE_LANDSCAPE","SIX_FORTY","IPAD_PORTRAIT","FOURTEEN_HUNDRED","jQuery","SnhuCookieUtil","getCookie","cookieUtil","cookieValues","duration","setCookie","IPHONE_PORTRAIT","PHONE_LANDSCAPE","jsonData","IPAD_LANDSCAPE","cookieString","substring","EcommerceCookie","this","data","resolve","cookieParams","leadid","expires","setBreakpoint","param","cookie","runWithoutFetch","ecommerceCookieController","address","paramNames","expiration","domain","TWELVE_EIGHTY","reqParams","onDocumentReady","splitCookie","getValueAsString","_i2","c","trim","indexOf","toUTCString","fetchedParams","domainString","encodeURIComponent","EcommerceFactory","snhuCookieProvider","currency","deleteCookie","_snhuCookieProvider","snhuProgramCode","snhuAcademicLevel","snhuLocationCode","snhuProgramName","formSubmitCookieValues","getValueAsJson","item_name","item_brand","item_category","snhuSubjectName","item_variant","formType","item_affiliation","setEcommerceCookie","quantity","Promise","form","form_prepopulated","prePopulated","Purchase","_this","leadId","formSource","programCode","programName","degreeLevel","areaOfStudy","programAffiliation","ecommerce","transaction_id","createItems","createForm","AddToCart","decodedCookie","ViewItem","forms","invalidElementclass","validElementclass","validSelectElement","dobMinimumAge","dobNotOldEnoughMessage","dobAutoCompleteValue","ele","wrap","errorcontainer","querySelector","errorelementclass","textContent","classList","remove","invalidclass","add","required","type","validFormGroup","_elementInvalid","overrideMessage","undefined","closest","patternMessage","requiredMessage","fieldlabel","hasAttribute","getAttribute","_EcommerceFactory","badInput","patternMismatch","validity","tooShort","tooLong","rangeUnderflow","rangeOverflow","errorMessage","elementgroup","fieldset","querySelectorAll","_EcommerceFactory2","cbox","checked","isValid","_elementValid","valid","_validateDateOfBirth","getElementById","dateOfBirth","submitter","submitterText","formData","action","errormsg","SnhuFetchUtil","defaultTimeout","thankYouPage","thankyoupage","origin","all","ThankYouCookie","storeThankYouValues","FormSubmitCookie","setFormSubmitCookie","catch","finally","errors","_i3","_Object$entries","entries","_Object$entries$_i","getElementsByName","_checkboxValidity","alert","dob","maxDate","errorTYP","setFullYear","getFullYear","innerHTML","disabled","_validateFormFields","te","entireError","isValidForm","tForm","offsetParent","previousSibling","id","dt","filterDates","dataset","errorMsg","checkValidity","getDay","dateErrorMsg","autocomplete","_submitValidatedForm","FormData","options","selectedIndex","fetcher","success","Message","_validateElementById","elementValid","checkboxValidity","checkInputLabels","validateDateOfBirth","addElementValidation","noelementvalidation","submitValidatedForm","addFormValidation","event","preventDefault","firstChild","nodeValue","formValidator","validateElementById","hideField","filterDateEle","style","validateFormFields","removeValidation","validateCascade","degree","category","expAch","country","allValid","FormsController","ga4Event","formStart","GA4EventFactory","formUtilities","FormStartFactory","getFormType","isPrepopulated","getFormSource","formscontroller","formelements","elements","_i4","removeEventListener","_ga4FormStart","_i5","programNameField","programDropdown","areaOfStudyField","getSelectedIndexText","enrollmentTermField","dropdownField","text","selector","element","experienceachievement","fieldofstudy","enrollmentterm","academiclevel","programcode","categoryId","fieldofstudycode","_hideField","formsource","isIntlStudent","militaryStatus","militarystatus","militarybranch","militaryAffiliation","militaryaffiliation","zipCode","zipcode","_checkInputLabels","_addElementValidation","enrollmentTerm","militaryBranch","FormSubmitFactory","program_name","form_type","program_affiliation","area_of_study","metric","form_submit","FormUtilities","ga4FormStart","formtype","dataFormType","cookieVals","snhuProgramCookie","getEnrollmentTerm","eventType","eventObjects","dataLayer","crumbleCookie","keyvaluepair","cookie_array","gaCookies","utma","utma_array","uniqueid","ftime","ltime","utmb","utmb_array","gifrequest","snhuEconCookie","utmv","utmv_array","utmz","source","medium","term","content","gclid","utmz_array","utms","getDomainHash","domainhash","getUniqueId","getInitialVisitTime","getCurrentVisitTime","stime","getSessionCounter","sessions","getGifRequests","getUserDefinedValue","decodeURIComponent","getCampaignSource","getCampaignMedium","getCampaignName","getCampaignTerm","getCampaignContent","getGclid","inqAppFormCommon","_textCompare","b","Text","toUpperCase","textB","textA","comparison","_sortOrderCompare","sortOA","SortOrder","isNaN","sortOB","isCampus","textCompare","sortOrderCompare","getPageData","rtn","div","innerText","parse","getLocation","expAchData","matches","obj","find","Value","Location","sort","getNursingPrograms","Category","ExperienceAchievement","ProgramGroup","getPreviousCollegeCountry","prvColData","getPreviousVisitTime","Country","defaultSelectedValue","ddl","getSelectedValue","objArray","selection","IsSelected","defaultCountryUS","moveback1","getDropdownText","_getPageData","found","setShowState","selectedCountry","checkIfNursingCategory","selectedExpAch","nursingPrograms","currentExpAchievement","hasNursing","_getLocation","checkIfCampusLocation","selectedLocation","setShowMilitary","selectedMilitaryServed","getPreviousCollegeSchools","state","_defaultCountryUS","State","Code","CEEBCode","SchoolName","_setShowState","validatePreviousCollegeSchool","prevCollegeSchool","_getDropdownText","validatePreviousCollegeYear","chkyear","error","message","maxYear","year","_checkIfNursingCategory","Error","duplicatePreviousCollege","ceebCode","schoolYear","prevCol","exYear","GradYear","newYear","_termRequired","isRequired","termFieldId","getPreviousCollectionSelectionsText","prevCollegeSelections","removePreviousCollege","gradYear","currentSelections","selections","index","splice","termRequired","removeDuplicates","listData","toggleCountryFields","show","_stateField","_regionField","_getPreviousCollegeCountry","togglePrevCollegeFields","_prevCollegeState","toggleMilitaryFields","_militaryBranchField","_militaryStatusField","_defaultSelectedValue","togglePrevHighSchoolFields","_prevHighSchoolState","Group","_toggleMilitaryFields","factory","_togglePrevHighSchoolFields","require","caretTimeoutId","ua","iPhone","chrome","android","mask","definitions","9","_setShowMilitary","*","autoclear","dataName","placeholder","fn","extend","caret","begin","end","range","is","activeElement","each","_getPreviousCollegeSchools","createTextRange","collapse","moveEnd","moveStart","select","setSelectionRange","selectionStart","selectionEnd","createRange","duplicate","unmask","defs","tests","partialPosition","firstNonMaskPos","lastRequiredNonMaskPos","len","oldVal","_mask","settings","completed","RegExp","_validatePreviousCollegeSchool","buffer","getPlaceholder","input","_validatePreviousCollegeYear","charAt","seekNext","pos","minYear","yearsAddForMax","shiftL","j","writeBuffer","blurEvent","focusText","change","clearBuffer","start","checkVal","define","lastMatch","allow","defaultBuffer","one","off","removeData","prop","setTimeout","which","_getSelectedValue","k","on","_checkIfCampusLocation","keyCode","_duplicatePreviousCollege","_getPreviousCollectionSelectionsText","_removePreviousCollege","p","fromCharCode","_removeDuplicates","_toggleCountryFields","tryFireCompleted","proxy","curVal","lastEnteredValue","pos2","keyCounter","allWaypoints","Waypoint","handler","defaults","adapter","Adapter","callback","axis","horizontal","enabled","androidInputEvent","triggerPoint","group","findOrCreate","context","offsetAliases","offset","direction","args","destroy","ctrlKey","disable","enable","refresh","previous","invokeAll","method","waypointKey","allWaypointsArray","disableAll","enableAll","Context","refreshAll","viewportHeight","innerHeight","documentElement","clientHeight","viewportWidth","clientWidth","adapters","continuous","bottom-in-view","outerHeight","right-in-view","outerWidth","requestAnimationFrameShim","contexts","oldWindowLoad","onload","queueTrigger","didResize","oldScroll","x","scrollLeft","waypoints","vertical","waypointContextKey","windowContext","createThrottledResizeHandler","waypoint","checkEmpty","isEmptyObject","verticalEmpty","isWindow","horizontalEmpty","self","resizeHandler","handleResize","scrollHandler","handleScroll","didScroll","destroyAll","isTouch","requestAnimationFrame","axisKey","groupKey","axes","newScroll","forward","backward","scrollTop","y","wasBeforeTriggerPoint","nowAfterTriggerPoint","triggeredGroups","rightInView","innerWidth","createThrottledScrollHandler","contextOffset","left","contextScroll","contextDimension","top","offsetProp","nowAfterScroll","oldTriggerPoint","elementOffset","adjustment","Math","ceil","floor","contextModifier","wasBeforeScroll","freshWaypoint","findOrCreateByElement","crossedForward","crossedBackward","contextId","findByElement","mozRequestAnimationFrame","webkitRequestAnimationFrame","byTriggerPoint","byReverseTriggerPoint","groups","clearTriggerQueues","up","down","right","inArray","triggeredBackward","triggeredForward","triggerQueues","first","last","$element","JQueryAdapter","requestFn","overrides","framework","isFunction","createExtension","Zepto","mc","backdrop","modal","focus","modalCloseBtn","lastFocusable","_lastFocusableTabHandler","_escapeKeyCloseModal","_offClickCloseModal","_closeModal","_modalCloseBtnKeyHandler","target","href","shiftKey","firstFocusable","init","focusables","nextElementSibling","buttons","button","openModal","closeModal","escapeKeyCloseModal","offClickCloseModal","lastFocusableTabHandler","NavigationController","ModalController","_openModal","s","createElement","createElementNS","m","fake","appendChild","styleSheet","cssText","createTextNode","background","overflow","_","parentNode","removeChild","offsetHeight","notFound","CSS","supports","tabKey","enterKey","tabIndex","getComputedStyle","currentStyle","P","modElem","d","g","shift","h","E","baseVal","CSSRule","Modernizr","enableClasses","prefixes","C","S","_version","_config","classPrefix","enableJSClass","usePrefixes","_init","modalCloseBtnKeyHandler","addTest","addAsyncTest","nodeName","className","_cssomPrefixes","atRule","z","_domPrefixes","elem","_q","N","unshift","prefixed","getPropertyValue","aliases","hasOwnProperty","T","gA4EventFactory","ga4EventFactory","link","that","onclick","eventData","NavigationFactory","createClickEventData","parseInt","v","createMySnhuClickEventData","navigationController","header","getElementsByTagName","footer","bindNavClickListener","relatedLinks","getElementsByClassName","breadcrumb","relatedLink","mySnhuLinks","bindMySnhuListener","prepopButtons","prepopButton","programPrepopButtonClick","linkLocation","linkText","navigation_item","PageController","pageView","PageViewFactory","pageViewData","programPageView","PageViewEvent","dimensionWritten","snhuCommunityMemberValue","templateId","page","content_group","program_page_group","online_degrees_section","template_id","resolvedOptions","timeZone","croTestCookieValue","international_student","military_branch","military_affiliation","SkipNavigationController","skipNavButton","removeOverlay","modalDiv","escapeKeyRemoveOverlay","pageViewController","isProgramPage","offClickRemoveOverlay","toLocaleLowerCase","tagName","_i6","scrollTarget","getBoundingClientRect","pageYOffset","behavior","targetItem","setFocusItem","scrollToArea","GlobalTrackingCookieName","VenpubIDCookieName","GlobalTrackingDomain","GlobalTrackingDaysActive","TrackingName","GlobalTrackingParams","getTime","ClickId","ownProps","resArray","qsParam","mobileViewPort","scrollTo","GetQueryStringParameter","match","exec","referrerString","arr","not","showOverlay","RenameSearchEngineClickIds","segment","currentCookie","GetCookieByName","unescape","campaign","gacookie","gaString","ParseReferrerString","err","defaultReferrer","trackerValue","console","log","BuildSNHUReferrerCookie","cookieContents","jsonCookieValues","_cookieValues","cookieStringSplit","_i7","setDate","customRequestSettings","requestSettings","cache","headers","X-Requested-With","requestOptions","fetch","url","then","handleResponse","body","timeoutPromise","response","ok","reject","miliseconds","promise","res","clearTimeout","timeoutId","SnhuUtilities","GetParameterByName","GetCurrentDateTime","today","getDate","mm","yyyy","hours","dd","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","TextCounter","field","cnt","maxlimit","cntfield","mode","SetCookie","cname","cvalue","exdays","path","GetCookie","ca","ExpireCookie","superCookieInit","lastVisitDate","superCookie","load","pageTrack","trackingData","urls","track","URL","code","maxLength","save","prepend","the_cookie","getMonth","cookieExpiresDate","SetDefaults","prog","getMilliseconds","attr","pageLoad","sender","tYFacade","firstNameField","lastNameField","encryptedLeadId","getLastName","getProgramName","encryptedleadid","responsetimeoutinsecond","encodeURI","firstName","lastName","responseTimeout","_snhuCookie","ThankYouFacade","triggerFormSubmitEventPushes","purchase","getCookieValue","formSubmitCreation","formSubmitCookie","dataLayerPushSuccessful","checkCookie","createPurchaseEventPush","ThankYouPageData","readyState","firstLastSameForm","firstNameNode","lastNameNode","programNameNode","firstProgSameForm","lastProgSameForm","targetForm","setAttribute","trackingController","decodeURI","urlParams","formSubmitCookieExists","_i8","params","paramMap","currentValue","keyVal","transport","cookieArray","getQueryParams","values","retrieveParameters","retrieveCookie","queryParam","queryParamObj","cookieParamsAreUpToDate","_domainString","refData","refValue","refSource","endsWith","strAddress","paramPairs","sessionStorage","setItem","VideoController","gTracker","run","gTrackerValue","referrerValue","getItem","getReferrer","refCookie","prepopTracker","prepopLocation","prepopCategory","prepopProgramID","prepopProgramGroupID","recentDegreeVisitTracker","prepopSubjectName","prepopProgramName","parentButton","initialTabTracker","arrayToParamObject","_cookieValue","splitValue","pfLink","degreeLevelCookie","areaOfStudyCookie","locationCookie","paidTracker","adCookieName","adTracker","append"],"mappings":"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","file":"legacy.min.js","sourcesContent":["\"use strict\";\n\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n(function () {\n var TrackingCookieName = \"SNHUAdTracking\";\n var queryParams = [\"adkeyword\", \"admatchtype\", \"addevice\", \"adcampaignid\", \"adgroupid\", \"adcampaignname\", \"adgroupname\", \"adquery\", \"adnetwork\", \"adlocationid\", \"adplacement\"];\n var CookieTrackingDaysActive = 30;\n var CookieTrackingDomain = \"snhu.edu\";\n function WriteCookie(cookieValue, cookieName) {\n var date = new Date();\n date.setTime(date.getTime() + 1000 * 60 * 60 * 24 * CookieTrackingDaysActive);\n document.cookie = \"\".concat(cookieName, \"=\").concat(cookieValue, \";expires=\").concat(date, \";path=/;domain=.\").concat(CookieTrackingDomain, \";\");\n }\n\n // Convert a list of objects into a serialized format for the cookie.\n function serialize(list) {\n return list.map(function (val, i) {\n return \"\".concat(TrackingCookieName).concat(i + 1, \"=\").concat(escape(JSON.stringify(val)));\n }).join('&');\n }\n function PopulateCookieFromQueryString() {\n // if querystring is empty, don't bother.\n if (!window.location.search) {\n return;\n }\n\n // Start with what's on the querystring.\n var qs = window.location.search.replace(/^\\?/, '').split('&').reduce(function (acc, val) {\n var items = val.split('=');\n var k = items[0];\n var v = items[1];\n acc[k] = v;\n return acc;\n }, {});\n var trackingParams = {};\n for (var _i = 0, _Object$keys = Object.keys(qs); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (queryParams.map(function (item) {\n return item.toLowerCase();\n }).indexOf(key.toLowerCase()) > -1) {\n var qsValue = qs[key];\n if (qsValue) {\n trackingParams[key.toLowerCase()] = qsValue;\n }\n }\n }\n if (Object.keys(trackingParams).length > 0) {\n var trackerValues = [];\n trackerValues.push(trackingParams);\n var trackingCookieValue = serialize(trackerValues);\n WriteCookie(trackingCookieValue, TrackingCookieName);\n }\n }\n PopulateCookieFromQueryString();\n})();\n\n/* global CookieProvider */\nvar AutomatedTestCookie = /*#__PURE__*/function () {\n function AutomatedTestCookie() {\n _classCallCheck(this, AutomatedTestCookie);\n }\n return _createClass(AutomatedTestCookie, null, [{\n key: \"setAutomatedTestCookie\",\n value: function setAutomatedTestCookie() {\n var cookieName = 'snhuAutomatedTest';\n var snhuCookie = new CookieProvider();\n if (snhuCookie.checkCookie(cookieName)) {\n return;\n }\n var cookieValue = '1';\n snhuCookie.setCookie(cookieName, cookieValue);\n }\n }, {\n key: \"checkCampaign\",\n value: function checkCampaign(queryStringParameters) {\n if (!queryStringParameters.has('utm_campaign')) {\n return false;\n }\n return queryStringParameters.get('utm_campaign').toLowerCase().includes('automatedtest');\n }\n\n /***\r\n * Test the following to indicate an automated test:\r\n * ?utm_campaign=automatedtest\r\n * ?automatedTest\r\n * ?utm_campaign=automatedtestsubmission\r\n */\n }, {\n key: \"checkUrlForTest\",\n value: function checkUrlForTest() {\n var queryStringParameters = new URLSearchParams(window.location.search);\n if (queryStringParameters.has('automatedTest') || AutomatedTestCookie.checkCampaign(queryStringParameters) === true) {\n return true;\n }\n return false;\n }\n }]);\n}(); // export as a module for unit testing\nif (typeof exports !== 'undefined') {\n module.exports = AutomatedTestCookie;\n}\nwindow.addEventListener('load', function () {\n if (AutomatedTestCookie.checkUrlForTest()) {\n AutomatedTestCookie.setAutomatedTestCookie();\n }\n});\nvar BreakpointController = function ($) {\n var ret = {},\n IPHONE_PORTRAIT = 320,\n IPHONE_LANDSCAPE = 480,\n PHONE_LANDSCAPE = 736,\n SIX_FORTY = 640,\n IPAD_PORTRAIT = 768,\n IPAD_LANDSCAPE = 1024,\n TWELVE_EIGHTY = 1280,\n FOURTEEN_HUNDRED = 1400,\n win,\n currentBreakpoint,\n breakpoints = [{\n label: \"iphone-portrait\",\n width: IPHONE_PORTRAIT\n }, {\n label: \"iphone-landscape\",\n width: IPHONE_LANDSCAPE\n }, {\n label: \"phone-landscape\",\n width: PHONE_LANDSCAPE\n }, {\n label: \"six-forty\",\n width: SIX_FORTY\n }, {\n label: \"ipad-portrait\",\n width: IPAD_PORTRAIT\n }, {\n label: \"ipad-landscape\",\n width: IPAD_LANDSCAPE\n }, {\n label: \"twelve-eighty\",\n width: TWELVE_EIGHTY\n }, {\n label: \"fourteen-hundred\",\n width: FOURTEEN_HUNDRED\n }];\n function onDocumentReady() {\n win = $(window);\n win.on('resize', checkWindow);\n checkWindow();\n }\n function checkWindow() {\n var w = win.width(),\n ret;\n for (var i = 0; i < breakpoints.length; i++) {\n var breakpoint = breakpoints[i];\n if (w >= breakpoint.width) {\n ret = breakpoint.width;\n } else {\n break;\n }\n }\n setBreakpoint(ret);\n }\n function setBreakpoint(breakpoint) {\n if (breakpoint !== currentBreakpoint) {\n currentBreakpoint = breakpoint;\n $(BreakpointController).trigger('crossBreakpoint');\n } else {\n currentBreakpoint = breakpoint;\n }\n }\n function isMobile() {\n // return $(window).outerWidth() <= PHONE_LANDSCAPE;\n // Instead of checking the device width which can be misleading, check a special body class that is added from the server to determine mobile vs. desktop.\n return $(\"body\").hasClass('mobile-device');\n }\n // function isTablet() {\n // \t// var width = $(window).outerWidth();\n // \t// return width > PHONE_LANDSCAPE && width <= IPAD_LANDSCAPE;\n // \treturn $(\"body\").hasClass('mobile-device');\n // }\n // function isDesktop() {\n // \t// return $(window).outerWidth() > PHONE_LANDSCAPE;\n // \treturn !$(\"body\").hasClass('mobile-device');\n // }\n\n ret = {\n getBreakpoint: function getBreakpoint() {\n return currentBreakpoint;\n },\n isMobile: isMobile,\n // isTablet: isTablet,\n // isDesktop: isDesktop,\n IPHONE_PORTRAIT: IPHONE_PORTRAIT,\n IPHONE_LANDSCAPE: IPHONE_LANDSCAPE,\n PHONE_LANDSCAPE: PHONE_LANDSCAPE,\n SIX_FORTY: SIX_FORTY,\n IPAD_PORTRAIT: IPAD_PORTRAIT,\n IPAD_LANDSCAPE: IPAD_LANDSCAPE,\n TWELVE_EIGHTY: TWELVE_EIGHTY,\n FOURTEEN_HUNDRED: FOURTEEN_HUNDRED\n };\n $(onDocumentReady);\n return ret;\n}(jQuery);\n\n/* eslint-disable class-methods-use-this */\n/* global SnhuCookieUtil */\nvar CookieProvider = /*#__PURE__*/function () {\n function CookieProvider() {\n _classCallCheck(this, CookieProvider);\n }\n return _createClass(CookieProvider, [{\n key: \"getValueAsString\",\n value: function getValueAsString(name) {\n if (!name) {\n return '';\n }\n return new SnhuCookieUtil(name).getCookie();\n }\n }, {\n key: \"getValueAsJson\",\n value: function getValueAsJson(name) {\n if (!name) {\n return {};\n }\n var cookieUtil = new SnhuCookieUtil(name);\n cookieUtil.getCookieValues();\n return cookieUtil.cookieValues;\n }\n }, {\n key: \"getCookieValue\",\n value: function getCookieValue(name, value) {\n if (!name) {\n return {};\n }\n var cookieUtil = new SnhuCookieUtil(name);\n cookieUtil.getCookieValues();\n return cookieUtil.getCookieValue(value);\n }\n }, {\n key: \"setCookie\",\n value: function setCookie(name, value, duration) {\n new SnhuCookieUtil(name).setCookie(value, duration);\n }\n }, {\n key: \"setCookieFromJson\",\n value: function setCookieFromJson(name, jsonData) {\n if (!name || !jsonData) {\n return '';\n }\n var cookieString = '';\n Object.keys(jsonData).forEach(function (key) {\n cookieString += ',' + key + ':' + jsonData[key];\n });\n if (cookieString.length < 0) {\n return '';\n }\n this.setCookie(name, cookieString.substring(1));\n return cookieString.substring(1);\n }\n }, {\n key: \"checkCookie\",\n value: function checkCookie(name) {\n var cookieExists = new SnhuCookieUtil(name).getCookie();\n return cookieExists;\n }\n }, {\n key: \"deleteCookie\",\n value: function deleteCookie(name) {\n var expiration = -1;\n new SnhuCookieUtil(name).setCookie('', expiration);\n }\n }]);\n}(); // Export as a module for unit testing\nif (typeof exports !== 'undefined') {\n module.exports = CookieProvider;\n}\n\n/* global ecommerceCookieController */\nvar EcommerceCookie = /*#__PURE__*/function () {\n function EcommerceCookie() {\n _classCallCheck(this, EcommerceCookie);\n }\n return _createClass(EcommerceCookie, null, [{\n key: \"setEcommerceCookie\",\n value:\n /* set the cookie for the ecommerce cookie - google\r\n 11/23/2021 - this was moved out of the _submitValidatedForm and now returns a promise. No additional updates. */\n function setEcommerceCookie(data) {\n return new Promise(function (resolve) {\n // Build ecommerce cookie after action, if the appropriate fields are provided\n if (data.leadid > 0) {\n var cookieDomain = \"snhu.edu\";\n var cookieParams = ['leadid', 'conversionid', 'stagenum', 'formsource', 'academiclevel', 'programcode', 'location'];\n var cookieName = 'snhuEconTransation';\n var expires = new Date();\n expires.setDate(expires.getDate() + 1);\n var cookie = new ecommerceCookieController(window.location, cookieParams, cookieName, expires, cookieDomain);\n // Build cookie value\n var cookieValue = '';\n cookieParams.forEach(function (param) {\n if (param !== 'location') {\n cookieValue += \"\".concat(param, \":\").concat(data[param], \",\");\n }\n });\n cookieValue += \"location:\".concat(data.location === 'ded' ? 'online' : 'campus');\n\n // Sets the document.cookie\n cookie.runWithoutFetch(cookieValue);\n }\n resolve(data);\n });\n }\n }]);\n}();\n/* istanbul ignore next */\nif (typeof exports !== 'undefined') {\n module.exports = EcommerceCookie;\n}\n/**\r\n * Ecommerce Cookie Controller class sets, gets and deletes cookie.\r\n */\nvar ecommerceCookieController = /*#__PURE__*/function () {\n /**\r\n * Constructor for ecommerceCookieController\r\n * @param {location} address\r\n * @param {array} paramNames\r\n * @param {String} cookieName\r\n * @param {date} expiration\r\n * @param {String} domain\r\n */\n function ecommerceCookieController(address, paramNames, cookieName, expiration, domain) {\n _classCallCheck(this, ecommerceCookieController);\n this.address = address;\n this.reqParams = paramNames;\n this.cookieName = cookieName;\n this.expiration = expiration;\n this.domain = domain;\n }\n\n /**\r\n * Returns a cookie's values with the given name, if not found, returns -1.\r\n */\n return _createClass(ecommerceCookieController, [{\n key: \"getCookie\",\n value: function getCookie() {\n var name = this.cookieName + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var splitCookie = decodedCookie.split(';');\n for (var _i2 = 0; _i2 < splitCookie.length; _i2++) {\n var c = splitCookie[_i2];\n c = c.trim();\n if (c.indexOf(name) === 0) {\n return c.split('=')[1];\n }\n }\n return '';\n }\n /**\r\n * delete the cookie by giving it an expiration date in the past\r\n */\n }, {\n key: \"deleteCookie\",\n value: function deleteCookie() {\n document.cookie = this.cookieName + \"=; deleted=true;expires=\" + this.expiration.toUTCString() + \";path=/; domain=\" + this.domain + \";\";\n }\n\n /**\r\n * Performs cookie checks and overwrites variables based on input\r\n * @param {String} cookieValue\r\n */\n }, {\n key: \"runWithoutFetch\",\n value: function runWithoutFetch(cookieValue) {\n this.fetchedParams = cookieValue;\n this.setCookie(this.fetchedParams, this.domain);\n }\n\n /**\r\n * Sets a cookie for the document based on the given parameters.\r\n * @param {string} cookieValues\r\n * @param {string} domain\r\n */\n }, {\n key: \"setCookie\",\n value: function setCookie(cookieValues, domain) {\n var expires = \"expires=\" + this.expiration.toUTCString();\n var domainString = domain === \"\" ? domain : \"domain=\" + domain + \";\";\n document.cookie = this.cookieName + \"=\" + encodeURIComponent(cookieValues) + \";\" + expires + \";path=/;\" + domainString;\n }\n }]);\n}(); // export as a module for unit testing\nif (typeof exports !== 'undefined') {\n module.exports = ecommerceCookieController;\n}\n\n/* global CookieProvider */\nvar EcommerceFactory = /*#__PURE__*/function () {\n function EcommerceFactory(snhuCookieProvider) {\n _classCallCheck(this, EcommerceFactory);\n /* istanbul ignore next */\n this.value = 0;\n this.currency = 'USD';\n var cookieName = 'formSubmitCookie';\n var _snhuCookieProvider = snhuCookieProvider || new CookieProvider();\n this.snhuProgramCode = _snhuCookieProvider.getValueAsString(\"SNHUProgramCode\");\n this.snhuAcademicLevel = _snhuCookieProvider.getValueAsString(\"RecentDegreeLevelVisited\");\n this.snhuLocationCode = _snhuCookieProvider.getValueAsString(\"SNHULocationCode\");\n this.snhuProgramName = _snhuCookieProvider.getValueAsString(\"SNHUProgramName\");\n this.snhuSubjectName = _snhuCookieProvider.getValueAsString(\"SNHUSubjectName\");\n this.formSubmitCookieValues = _snhuCookieProvider.getValueAsJson(cookieName);\n }\n return _createClass(EcommerceFactory, [{\n key: \"createItems\",\n value: function createItems() {\n return {\n \"items\": [{\n \"item_id\": this.snhuProgramCode,\n \"item_name\": this.snhuProgramName,\n \"item_brand\": this.snhuAcademicLevel,\n \"item_category\": this.snhuSubjectName,\n \"item_variant\": this.formSubmitCookieValues.formType || '',\n \"item_affiliation\": this.snhuLocationCode,\n \"quantity\": 1\n }]\n };\n }\n }, {\n key: \"createForm\",\n value: function createForm() {\n return {\n \"form\": {\n \"form_prepopulated\": this.formSubmitCookieValues.prePopulated || false\n }\n };\n }\n }]);\n}();\nvar Purchase = /*#__PURE__*/function (_EcommerceFactory) {\n function Purchase(snhuCookieProvider) {\n var _this;\n _classCallCheck(this, Purchase);\n _this = _callSuper(this, Purchase, [snhuCookieProvider]);\n _this.leadid = _this.formSubmitCookieValues.leadId || '';\n _this.formSource = _this.formSubmitCookieValues.formSource || '';\n\n // The cookies that viewitem and addtocart use may not be populated\n // as they only fire on program pages that have a parent program.\n // Here, the values need to be overriden because the form submit\n // cookie with be available with the correct values\n _this.snhuProgramCode = _this.formSubmitCookieValues.programCode || '';\n _this.snhuProgramName = _this.formSubmitCookieValues.programName || '';\n _this.snhuAcademicLevel = _this.formSubmitCookieValues.degreeLevel || '';\n _this.snhuSubjectName = _this.formSubmitCookieValues.areaOfStudy || '';\n _this.snhuLocationCode = _this.formSubmitCookieValues.programAffiliation || '';\n return _this;\n }\n _inherits(Purchase, _EcommerceFactory);\n return _createClass(Purchase, [{\n key: \"create\",\n value: function create() {\n return {\n \"ecommerce\": _objectSpread(_objectSpread({\n \"transaction_id\": this.leadid,\n \"value\": this.value,\n \"currency\": this.currency,\n \"coupon\": this.formSource\n }, this.createItems()), this.createForm())\n };\n }\n }]);\n}(EcommerceFactory);\nvar AddToCart = /*#__PURE__*/function (_EcommerceFactory2) {\n function AddToCart() {\n _classCallCheck(this, AddToCart);\n return _callSuper(this, AddToCart, arguments);\n }\n _inherits(AddToCart, _EcommerceFactory2);\n return _createClass(AddToCart, [{\n key: \"create\",\n value: function create() {\n return {\n \"ecommerce\": _objectSpread(_objectSpread({\n \"value\": this.value,\n \"currency\": this.currency\n }, this.createItems()), this.createForm())\n };\n }\n }]);\n}(EcommerceFactory);\nvar ViewItem = /*#__PURE__*/function (_EcommerceFactory3) {\n function ViewItem() {\n _classCallCheck(this, ViewItem);\n return _callSuper(this, ViewItem, arguments);\n }\n _inherits(ViewItem, _EcommerceFactory3);\n return _createClass(ViewItem, [{\n key: \"create\",\n value: function create() {\n return {\n \"ecommerce\": _objectSpread(_objectSpread({\n \"value\": this.value,\n \"currency\": this.currency\n }, this.createItems()), this.createForm())\n };\n }\n }]);\n}(EcommerceFactory);\n/* istanbul ignore next */\nif (typeof exports !== \"undefined\") {\n module.exports = [ViewItem, AddToCart, Purchase];\n}\n/* global SnhuFetchUtil */\n/* global ThankYouCookie */\n/* global EcommerceCookie */\n/* global FormSubmitCookie */\n\nvar forms = function () {\n var invalidclass = \"invalid-feedback\";\n var errorelementclass = \"error\";\n var invalidElementclass = \"invalidElement\";\n var validElementclass = \"validElement\";\n var validFormGroup = \"valid-form-group\";\n var validSelectElement = \"valid-multi-col-select\";\n var dobMinimumAge = 16;\n var dobNotOldEnoughMessage = \"You must be at least \" + dobMinimumAge + \" years old to attend SNHU\";\n var dobAutoCompleteValue = \"bday\";\n\n // ***Remove validtion of cascading dropdowns ***\n function _removeValidation(id) {\n var ele = document.getElementById(id);\n var wrap = ele.closest('div.form-group');\n wrap.classList.remove(validFormGroup);\n wrap.classList.remove(validSelectElement);\n ele.classList.remove(validElementclass);\n var errorcontainer = wrap.querySelector('span.' + errorelementclass);\n errorcontainer.textContent = '';\n errorcontainer.classList.remove(invalidclass);\n ele.classList.remove(invalidElementclass);\n }\n\n // ***VALID Element ***\n function _elementValid(ele) {\n //get the wrapping div\n var wrap = ele.closest('div.form-group');\n\n //get the error container\n var errorcontainer = wrap.querySelector('span.' + errorelementclass);\n if (errorcontainer !== null) {\n errorcontainer.textContent = '';\n errorcontainer.classList.remove(invalidclass);\n ele.classList.remove(invalidElementclass);\n ele.classList.add(validElementclass);\n if (ele.required && !(ele.type === 'checkbox' || ele.type === 'radio')) {\n wrap.classList.add(validFormGroup);\n if (ele.type === 'select-one') {\n wrap.classList.add(validSelectElement);\n }\n }\n }\n }\n\n // ***NOT VALID Element ***\n function _elementInvalid(ele) {\n var overrideMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n //get the wrapping div\n var wrap = ele.closest('div.form-group');\n var patternMessage = 'Invalid data \\n';\n var requiredMessage = '';\n var fieldlabel = '';\n if (ele.hasAttribute('placeholder')) {\n fieldlabel = ele.getAttribute('placeholder');\n } else if (wrap.querySelector('label') !== null) {\n fieldlabel = wrap.querySelector(\"label\").textContent;\n }\n if (ele.hasAttribute('data-invalidRequired')) {\n requiredMessage = ele.getAttribute('data-invalidRequired') + '\\n';\n } else if (ele.hasAttribute('required')) {\n //add onto the invalid message\n requiredMessage = fieldlabel + ' is required. \\n';\n } else {\n requiredMessage = fieldlabel + ' is required.';\n }\n if (ele.hasAttribute('data-invalidPattern')) {\n patternMessage = ele.getAttribute('data-invalidPattern') + '\\n';\n }\n var errorMessage = requiredMessage;\n //get the error container\n var errorcontainer = wrap.querySelector('span.' + errorelementclass);\n\n //add onto the invalid message\n if (ele.validity.badInput || ele.validity.patternMismatch || ele.validity.tooShort || ele.validity.tooLong || ele.validity.rangeUnderflow || ele.validity.rangeOverflow) {\n errorMessage = patternMessage;\n }\n errorcontainer.textContent = overrideMessage !== '' ? overrideMessage : errorMessage;\n errorcontainer.classList.add(invalidclass);\n ele.classList.remove(validElementclass);\n ele.classList.add(invalidElementclass);\n if (ele.required && !(ele.type === 'checkbox' || ele.type === 'radio')) {\n wrap.classList.remove(validFormGroup);\n wrap.classList.remove(validSelectElement);\n }\n return errorMessage;\n }\n\n // ***CHECKBOX/RADIO Validation ***\n function _checkboxValidity(ele) {\n var wrap = ele.closest('div.form-group');\n var fieldset = wrap.querySelector('fieldset');\n var errorMessage = '';\n var elementgroup = fieldset !== null ? fieldset.querySelectorAll('input') : null;\n if (fieldset !== null && elementgroup.length > 1) {\n var isValid = false;\n elementgroup.forEach(function (cbox) {\n if (cbox.checked) {\n isValid = true;\n }\n });\n if (isValid) {\n _elementValid(ele);\n elementgroup.forEach(function (cbox) {\n cbox.classList.remove(invalidElementclass);\n cbox.classList.add(validElementclass);\n });\n } else {\n errorMessage = _elementInvalid(ele);\n elementgroup.forEach(function (cbox) {\n cbox.classList.remove(validElementclass);\n cbox.classList.add(invalidElementclass);\n });\n }\n } else {\n //is a single check box - check validity and be done\n if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n errorMessage = _elementInvalid(ele);\n }\n }\n return errorMessage;\n }\n function _checkInputLabels(form) {\n var tForm = form;\n tForm.querySelectorAll('input').forEach(function (ele) {\n if (ele.type === 'text' || ele.type === 'tel' || ele.type === 'email') {\n if (ele.value.length > 0) {\n if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n }\n }\n });\n tForm.querySelectorAll('textarea').forEach(function (ele) {\n if (ele.value.length > 0) {\n if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n }\n });\n }\n function _validateDateOfBirth(dateOfBirth) {\n if (dateOfBirth) {\n var dob = new Date(dateOfBirth);\n var maxDate = new Date();\n maxDate.setFullYear(maxDate.getFullYear() - dobMinimumAge);\n if (dob <= maxDate) {\n return true;\n }\n }\n return false;\n }\n\n // ***ELEMENT inline validation ***\n function _addElementValidation(form) {\n var tForm = form;\n if (tForm.dataset.noelementvalidation !== \"true\") {\n tForm.querySelectorAll('input:not([type=\"hidden\"]):not([data=\"hpfield\"])').forEach(function (ele) {\n ele.addEventListener('input', function () {\n if ((ele.type === 'checkbox' || ele.type === 'radio') && ele.hasAttribute('required')) {\n //extra checking for checkboxes to determine if group\n _checkboxValidity(ele);\n } else if (ele.autocomplete === dobAutoCompleteValue) {\n if (!ele.validity.valid) {\n _elementInvalid(ele);\n } else if (!_validateDateOfBirth(ele.value)) {\n _elementInvalid(ele, dobNotOldEnoughMessage);\n } else {\n _elementValid(ele);\n }\n } else if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n });\n ele.addEventListener('blur', function () {\n if ((ele.type === 'checkbox' || ele.type === 'radio') && ele.hasAttribute('required')) {\n //extra checking for checkboxes to determine if group\n _checkboxValidity(ele);\n } else if (ele.autocomplete === dobAutoCompleteValue) {\n if (!ele.validity.valid) {\n _elementInvalid(ele);\n } else if (!_validateDateOfBirth(ele.value)) {\n _elementInvalid(ele, dobNotOldEnoughMessage);\n } else {\n _elementValid(ele);\n }\n } else if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n });\n });\n tForm.querySelectorAll('select').forEach(function (ele) {\n ele.addEventListener('input', function () {\n if (ele.checkValidity() && (!ele.hasAttribute('required') || ele.hasAttribute('required') && ele.options[ele.selectedIndex].value !== '')) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n });\n ele.addEventListener('blur', function () {\n if (ele.checkValidity() && (!ele.hasAttribute('required') || ele.hasAttribute('required') && ele.options[ele.selectedIndex].value !== '')) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n });\n });\n tForm.querySelectorAll('textarea').forEach(function (ele) {\n ele.addEventListener('input', function () {\n if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n });\n ele.addEventListener('blur', function () {\n if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n });\n });\n }\n }\n\n // ***FORM SUBMIT VALID FORM ***\n function _submitValidatedForm(form, submitter, submitterText) {\n var formData = new FormData(form);\n var action = form.getAttribute(\"action\");\n var errormsg = \"\\n\";\n var fetcher = new SnhuFetchUtil({\n defaultTimeout: 11000\n });\n fetcher.post(action, formData).then(function (data) {\n if (!data.success) {\n if (data.errors !== undefined && data.errors !== null) {\n for (var _i3 = 0, _Object$entries = Object.entries(data.errors); _i3 < _Object$entries.length; _i3++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i3], 2),\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n errormsg += \"\\n\" + value;\n var ele = document.getElementsByName(key);\n if (ele.length > 0) {\n if (ele[0].type === 'checkbox' || ele[0].type === 'radio') {\n _checkboxValidity(ele[0]);\n } else {\n _elementInvalid(ele[0]);\n }\n }\n }\n }\n if (submitter !== null) {\n submitter.innerHTML = submitterText;\n submitter.disabled = false;\n }\n alert('Form submit failed. Try again.' + errormsg); /* eslint-disable-line no-alert */\n } else {\n //set the thankYouPage here in case we error. We still want to send to TY page if there is an error\n var thankYouPage = data.thankyoupage;\n\n //if there's no thank you page defined, set it to the generic one\n if (!thankYouPage) {\n thankYouPage = window.location.origin + '/thankyou';\n }\n Promise.all([ThankYouCookie.storeThankYouValues(form, data), EcommerceCookie.setEcommerceCookie(data), FormSubmitCookie.setFormSubmitCookie(form, data)]).catch(function () {\n window.location.replace(thankYouPage);\n }).finally(function () {\n window.location.replace(thankYouPage);\n });\n }\n return data;\n }).catch(function () {\n var errorTYP = document.getElementById('errorTYP') ? document.getElementById('errorTYP').textContent : null;\n if (errorTYP !== null && errorTYP !== '') {\n window.location.replace(errorTYP);\n } else {\n alert('Sorry, there has been an error with this page. Please try again later or call 888.387.0864 for assistance.'); /* eslint-disable-line no-alert */\n\n if (submitter !== null) {\n submitter.innerHTML = submitterText;\n submitter.disabled = false;\n }\n }\n });\n }\n\n //validate all fields in the form\n //pass the form or object to be validated\n function _validateFormFields(form) {\n var tForm = form;\n var te = \"\";\n var entireError = \"\";\n var isValidForm = true;\n tForm.querySelectorAll('span.error.invalid-feedback').forEach(function (ele) {\n if (ele.offsetParent !== null && ele.nextSibling === null && ele.previousSibling === null && ele.offsetParent.id !== 'prevCollege') {\n isValidForm = false;\n entireError += ele.textContent + '\\n';\n }\n });\n tForm.querySelectorAll('input:not([type=\"hidden\"]):not([data=\"hpfield\"]):not([disabled])').forEach(function (ele) {\n if (ele.hasAttribute('required')) {\n if (ele.type === 'checkbox' || ele.type === 'radio') {\n //extra checking for checkboxes to determine if group\n if (ele.offsetParent !== null) {\n te = _checkboxValidity(ele);\n if (entireError.indexOf(te) < 0) {\n entireError += te;\n isValidForm = false;\n }\n }\n } else if (ele.validity.valid) {\n _elementValid(ele);\n } else {\n if (ele.offsetParent !== null) {\n isValidForm = false;\n te = _elementInvalid(ele);\n if (entireError.indexOf(te) < 0) {\n entireError += te;\n }\n }\n }\n }\n\n // hardcoded holiday and weekend validation for visit form\n if (ele.hasAttribute('data-weekday-picker') && ele.value !== '' && ele.offsetParent !== null) {\n var filterDateEle = document.querySelector('[data-weekday-dates]'); //hidden element with the dates\n var filterDates = filterDateEle.value; // list of holidays and other closed dates\n var dateErrorMsg = filterDateEle.dataset.errorMsg; // error message\n\n // check against the list of dates\n if (filterDates !== null) {\n if (filterDates.includes(ele.value)) {\n _elementInvalid(ele);\n entireError += dateErrorMsg + ' \\n';\n isValidForm = false;\n }\n }\n\n // check weekends\n var dt = new Date(ele.value);\n var sunday = 0;\n var saturday = 6;\n if (dt.getDay() === sunday || dt.getDay() === saturday) {\n _elementInvalid(ele);\n entireError += dateErrorMsg + ' \\n';\n isValidForm = false;\n }\n\n // check past dates\n if (dt < new Date()) {\n _elementInvalid(ele);\n entireError += dateErrorMsg + ' \\n';\n isValidForm = false;\n }\n }\n\n //date of birth field validation\n if (ele.autocomplete === dobAutoCompleteValue) {\n if (!_validateDateOfBirth(ele.value)) {\n _elementInvalid(ele, dobNotOldEnoughMessage);\n entireError += dobNotOldEnoughMessage + ' \\n';\n isValidForm = false;\n }\n }\n });\n tForm.querySelectorAll('select').forEach(function (ele) {\n if (ele.checkValidity() && (!ele.hasAttribute('required') || ele.hasAttribute('required') && ele.options[ele.selectedIndex].value !== '')) {\n _elementValid(ele);\n } else if (ele.offsetParent !== null) {\n isValidForm = false;\n entireError += _elementInvalid(ele);\n }\n });\n tForm.querySelectorAll('textarea:not([disabled])').forEach(function (ele) {\n if (ele.validity.valid) {\n _elementValid(ele);\n } else if (ele.offsetParent !== null) {\n isValidForm = false;\n entireError += _elementInvalid(ele);\n }\n });\n return {\n \"isValidForm\": isValidForm,\n \"Message\": entireError\n };\n }\n\n // ***FORM inline validation ***\n function _addFormValidation(form) {\n var tForm = form;\n tForm.addEventListener('submit', function (event) {\n event.preventDefault();\n var isValidForm = true;\n var entireError = \"\";\n var submitter = tForm.querySelector('button[type=\"submit\"]');\n var submitterText = submitter.firstChild.nodeValue;\n submitter.disabled = true;\n submitter.innerHTML = '';\n var formValidator = _validateFormFields(tForm);\n isValidForm = formValidator.isValidForm;\n entireError = formValidator.Message;\n if (isValidForm) {\n _submitValidatedForm(tForm, submitter, submitterText);\n } else {\n submitter.innerHTML = submitterText;\n submitter.disabled = false;\n alert(entireError + '\\n'); /* eslint-disable-line no-alert */\n }\n });\n }\n\n // ***Validate element by ID***\n function _validateElementById(id) {\n var ele = document.getElementById(id);\n if (ele) {\n if (ele.type === 'select-one') {\n if (ele.checkValidity() && (!ele.hasAttribute('required') || ele.hasAttribute('required') && ele.options[ele.selectedIndex].value !== '')) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n }\n if (ele.type === 'text') {\n if (ele.checkValidity()) {\n _elementValid(ele);\n } else {\n _elementInvalid(ele);\n }\n }\n }\n }\n function _validateCascade(location, degree, category, expAch, country) {\n var allValid = true;\n if (location !== \"\" && document.getElementById(location).value !== \"\") {\n _validateElementById(location);\n } else {\n allValid = false;\n }\n if (degree !== \"\" && document.getElementById(degree).value !== \"\") {\n _validateElementById(degree);\n } else {\n allValid = false;\n }\n if (category !== \"\" && document.getElementById(category).value !== \"\") {\n _validateElementById(category);\n } else {\n allValid = false;\n }\n if (expAch !== \"\" && document.getElementById(expAch).value !== \"\") {\n _validateElementById(expAch);\n } else {\n allValid = false;\n }\n if (country !== \"\" && document.getElementById(country).value !== \"\") {\n _validateElementById(country);\n }\n return allValid;\n }\n function _hideField(id) {\n var ele = document.getElementById(id);\n var wrap = ele.closest('div.form-group');\n wrap.style.display = \"none\";\n }\n return {\n elementValid: _elementValid,\n checkboxValidity: _checkboxValidity,\n checkInputLabels: _checkInputLabels,\n validateDateOfBirth: _validateDateOfBirth,\n addElementValidation: _addElementValidation,\n submitValidatedForm: _submitValidatedForm,\n addFormValidation: _addFormValidation,\n validateElementById: _validateElementById,\n hideField: _hideField,\n validateFormFields: _validateFormFields,\n removeValidation: _removeValidation,\n validateCascade: _validateCascade\n };\n}();\nif (typeof exports !== 'undefined') {\n module.exports = forms;\n}\nwindow.addEventListener('load', function () {\n document.querySelectorAll('form:not([data-novalidation=\"true\"])').forEach(function (form) {\n //move labels on back button\n forms.addElementValidation(form);\n forms.addFormValidation(form);\n window.addEventListener('load', function () {\n forms.checkInputLabels(form);\n });\n });\n});\n/* global FormStartFactory */\n/* global GA4EventFactory */\n/* global FormUtilities */\nvar FormsController = /*#__PURE__*/function () {\n function FormsController(form, ga4Event, formStart) {\n _classCallCheck(this, FormsController);\n this.form = form;\n this.ga4Event = ga4Event || new GA4EventFactory();\n this.formStart = formStart || new FormStartFactory();\n }\n return _createClass(FormsController, [{\n key: \"FormStartEvent\",\n value: function FormStartEvent() {\n var formData = this.formStart.create();\n this.ga4Event.create(formData);\n }\n }]);\n}();\nif (typeof exports !== 'undefined') {\n module.exports = FormsController;\n}\nwindow.addEventListener('load', function () {\n var form = document.querySelector('form[data-formtype]');\n if (!form) {\n return;\n }\n var formUtilities = new FormUtilities(form);\n var ga4Event = new GA4EventFactory('form_start');\n var formStart = new FormStartFactory(formUtilities.getFormType(), formUtilities.isPrepopulated(), formUtilities.getFormSource());\n var formscontroller = new FormsController(form, ga4Event, formStart);\n var formelements = formscontroller.form.elements;\n\n //we have to add this function here so we can add it to the addEventListener and then when called removeEventListener\n var _ga4FormStart = function ga4FormStart() {\n formscontroller.FormStartEvent();\n for (var _i4 = 0; _i4 < formelements.length; _i4++) {\n formelements[_i4].removeEventListener('blur', _ga4FormStart);\n }\n };\n for (var _i5 = 0; _i5 < formelements.length; _i5++) {\n formelements[_i5].addEventListener('blur', _ga4FormStart);\n }\n});\n/* global FormUtilities */\n/* global CookieProvider */\nvar FormSubmitCookie = /*#__PURE__*/function () {\n function FormSubmitCookie() {\n _classCallCheck(this, FormSubmitCookie);\n }\n return _createClass(FormSubmitCookie, null, [{\n key: \"getProgramName\",\n value: function getProgramName(form) {\n var programNameField = form.getAttribute('data-tyc-pname');\n if (programNameField) {\n var programDropdown = document.getElementById(programNameField);\n return FormSubmitCookie.getSelectedIndexText(programDropdown);\n }\n return \"\";\n }\n }, {\n key: \"getAreaOfStudy\",\n value: function getAreaOfStudy(form) {\n var areaOfStudyField = form.querySelector('[data-form-field=\"areaOfStudy\"]');\n if (areaOfStudyField) {\n return FormSubmitCookie.getSelectedIndexText(areaOfStudyField);\n }\n return \"\";\n }\n }, {\n key: \"getEnrollmentTerm\",\n value: function getEnrollmentTerm(form, location) {\n var enrollmentTermField = form.querySelector('[data-form-field=\"startTerm\"]');\n if (enrollmentTermField && location === 'campus') {\n return FormSubmitCookie.getSelectedIndexText(enrollmentTermField);\n }\n return \"\";\n }\n }, {\n key: \"getSelectedIndexText\",\n value: function getSelectedIndexText(dropdownField) {\n return dropdownField ? dropdownField.options[dropdownField.selectedIndex].text : '';\n }\n }, {\n key: \"getValueIfItExists\",\n value: function getValueIfItExists(form, selector) {\n var element = form.querySelector(selector);\n return element ? element.value : '';\n }\n }, {\n key: \"setFormSubmitCookie\",\n value: function setFormSubmitCookie(form, data) {\n return new Promise(function (resolve) {\n var cookieName = 'formSubmitCookie';\n var snhuCookie = new CookieProvider();\n var programName = data.experienceachievement;\n var areaOfStudy = data.fieldofstudy;\n var location = data.location === 'ded' ? 'online' : 'campus';\n var enrollmentTerm = data.enrollmentterm;\n var degreeLevel = data.academiclevel;\n var programCode = data.programcode;\n var categoryId = data.fieldofstudycode;\n var formSource = data.formsource;\n var isIntlStudent = data.isinternationalstudent;\n var militaryStatus = data.militarystatus ? data.militarystatus : '';\n var militaryBranch = data.militarybranch ? data.militarybranch : '';\n var militaryAffiliation = data.militaryaffiliation ? data.militaryaffiliation.toLowerCase() : '';\n var zipCode = data.zipcode;\n var leadId = data.leadid;\n var formUtilities = new FormUtilities(form);\n var formType = formUtilities.getFormType();\n var prePopulated = formUtilities.isPrepopulated();\n var cookieValue = \"programName:\".concat(programName, \",programCode:\").concat(programCode, \",categoryId:\").concat(categoryId, \",formType:\").concat(formType, \",prePopulated:\").concat(prePopulated, \",formSource:\").concat(formSource, \",enrollmentTerm:\").concat(enrollmentTerm, \",programAffiliation:\").concat(location, \",degreeLevel:\").concat(degreeLevel, \",areaOfStudy:\").concat(areaOfStudy, \",leadId:\").concat(leadId, \",isIntlStudent:\").concat(isIntlStudent, \",militaryStatus:\").concat(militaryStatus, \",militaryBranch:\").concat(militaryBranch, \",militaryAffiliation:\").concat(militaryAffiliation, \",zipCode:\").concat(zipCode);\n snhuCookie.setCookie(cookieName, cookieValue);\n resolve(data);\n });\n }\n }]);\n}();\n/* istanbul ignore next */\nif (typeof exports !== 'undefined') {\n module.exports = FormSubmitCookie;\n}\n/* global CookieProvider */\nvar FormSubmitFactory = /*#__PURE__*/function () {\n function FormSubmitFactory(snhuCookieProvider) {\n _classCallCheck(this, FormSubmitFactory);\n /* istanbul ignore next */\n var cookieName = 'formSubmitCookie';\n this.snhuCookieProvider = snhuCookieProvider || new CookieProvider();\n this.formSubmitCookieValues = this.snhuCookieProvider.getValueAsJson(cookieName);\n }\n return _createClass(FormSubmitFactory, [{\n key: \"create\",\n value: function create() {\n return {\n 'form': {\n 'program_name': this.formSubmitCookieValues ? this.formSubmitCookieValues.programName : '',\n 'program_code': this.formSubmitCookieValues ? this.formSubmitCookieValues.programCode : '',\n 'form_type': this.formSubmitCookieValues ? this.formSubmitCookieValues.formType : '',\n 'form_prepopulated': this.formSubmitCookieValues ? this.formSubmitCookieValues.prePopulated : '',\n 'form_source': this.formSubmitCookieValues ? this.formSubmitCookieValues.formSource : '',\n 'enrollment_term': this.formSubmitCookieValues ? this.formSubmitCookieValues.enrollmentTerm : '',\n 'application_id': this.formSubmitCookieValues ? this.formSubmitCookieValues.leadId : '',\n 'program_affiliation': this.formSubmitCookieValues ? this.formSubmitCookieValues.programAffiliation : '',\n 'degree_level': this.formSubmitCookieValues ? this.formSubmitCookieValues.degreeLevel : '',\n 'area_of_study': this.formSubmitCookieValues ? this.formSubmitCookieValues.areaOfStudy : ''\n },\n 'metric': {\n 'form_submit': 1\n }\n };\n }\n }]);\n}();\n/* istanbul ignore next */\nif (typeof exports !== 'undefined') {\n module.exports = FormSubmitFactory;\n}\n/* global CookieProvider */\nvar FormUtilities = /*#__PURE__*/function () {\n function FormUtilities(form) {\n _classCallCheck(this, FormUtilities);\n this.form = form;\n }\n return _createClass(FormUtilities, [{\n key: \"getFormType\",\n value: function getFormType() {\n if (!this.form || !this.form.dataset) {\n return '';\n }\n var dataFormType = this.form.dataset.formtype;\n\n /* eslint-disable indent */\n /* eslint-disable no-nested-ternary */\n return !dataFormType ? '' : dataFormType.indexOf('app') > 0 ? 'app' : dataFormType.indexOf('inq') > 0 ? 'inq' : dataFormType;\n /* eslint-enable indent */\n /* eslint-disable no-nested-ternary */\n }\n }, {\n key: \"getFormSource\",\n value: function getFormSource(snhuCookieProvider) {\n if (!this.form) {\n return '';\n }\n\n /* istanbul ignore next*/\n var snhuEconCookie = snhuCookieProvider || new CookieProvider();\n\n // The cookie name - 'snhuEconTrasation' - is\n // intentionally spelled incorrectly here.\n var cookieVals = snhuEconCookie.getValueAsJson(\"snhuEconTransation\");\n return cookieVals && cookieVals.formsource ? cookieVals.formsource : '';\n }\n\n // eslint-disable-next-line class-methods-use-this\n }, {\n key: \"isPrepopulated\",\n value: function isPrepopulated(snhuCookieProvider) {\n if (!this.form) {\n return false;\n }\n\n /* istanbul ignore next*/\n var snhuProgramCookie = snhuCookieProvider || new CookieProvider();\n return snhuProgramCookie.getValueAsString(\"SNHUProgramId\") ? true : false;\n }\n }]);\n}();\n/* istanbul ignore next*/\nif (typeof exports !== 'undefined') {\n module.exports = FormUtilities;\n}\nvar GA4EventFactory = /*#__PURE__*/function () {\n function GA4EventFactory(eventType) {\n _classCallCheck(this, GA4EventFactory);\n this.eventType = eventType;\n }\n\n /* istanbul ignore next*/\n return _createClass(GA4EventFactory, [{\n key: \"create\",\n value: function create(eventObjects) {\n var dataLayer = window.dataLayer || [];\n var data = {};\n if (this.eventType) {\n data.event = this.eventType;\n }\n dataLayer.push(_objectSpread(_objectSpread({}, data), eventObjects));\n }\n }]);\n}();\n/* istanbul ignore next*/\nif (typeof exports !== 'undefined') {\n module.exports = GA4EventFactory;\n}\n/**\r\n* @author: Danny Ng (http://www.dannytalk.com/2010/08/19/read-google-an…-cookie-script/)\r\n* @modified: 19/08/10\r\n* @notes: Free to use and distribute without altering this comment. Would appreciate a link back :)\r\n*/\n\n// Strip leading and trailing white-space\nString.prototype.trim = function () {\n return this.replace(/^\\s*|\\s*$/g, '');\n};\n\n// Check if string is empty\nString.prototype.empty = function () {\n if (this.length == 0) {\n return true;\n } else if (this.length > 0) {\n return /^\\s*$/.test(this);\n }\n};\n\n// Breaks cookie into an object of keypair cookie values\nfunction crumbleCookie(c) {\n var cookie_array = document.cookie.split(';');\n var keyvaluepair = {};\n for (var cookie = 0; cookie < cookie_array.length; cookie++) {\n var key = cookie_array[cookie].substring(0, cookie_array[cookie].indexOf('=')).trim();\n var value = cookie_array[cookie].substring(cookie_array[cookie].indexOf('=') + 1, cookie_array[cookie].length).trim();\n keyvaluepair[key] = value;\n }\n if (c) {\n return keyvaluepair[c] ? keyvaluepair[c] : null;\n }\n return keyvaluepair;\n}\n\n/**\r\n* For GA cookie explanation, see http://services.google.com/analytics/breeze/en/ga_cookies/index.html.\r\n*\r\n* @return - \r\n*\r\n* @pre-condition - pageTracker initialised properly\r\n* @post-condition - provides 'get' methods to access specific values in the Google Analytics cookies\r\n*/\nfunction gaCookies() {\n // Cookie syntax: domain-hash.unique-id.ftime.ltime.stime.session-counter\n var utma = function utma() {\n var utma_array;\n if (crumbleCookie('__utma')) {\n utma_array = crumbleCookie('__utma').split('.');\n } else {\n return null;\n }\n var domainhash = utma_array[0];\n var uniqueid = utma_array[1];\n var ftime = utma_array[2];\n var ltime = utma_array[3];\n var stime = utma_array[4];\n var sessions = utma_array[5];\n return {\n 'cookie': utma_array,\n 'domainhash': domainhash,\n 'uniqueid': uniqueid,\n 'ftime': ftime,\n 'ltime': ltime,\n 'stime': stime,\n 'sessions': sessions\n };\n };\n\n // Cookie syntax: domain-hash.gif-requests.10.stime\n var utmb = function utmb() {\n var utmb_array;\n if (crumbleCookie('__utmb')) {\n utmb_array = crumbleCookie('__utmb').split('.');\n } else {\n return null;\n }\n var gifrequest = utmb_array[1];\n return {\n 'cookie': utmb_array,\n 'gifrequest': gifrequest\n };\n };\n\n // Cookie syntax: domain-hash.value\n var utmv = function utmv() {\n var utmv_array;\n if (crumbleCookie('__utmv')) {\n utmv_array = crumbleCookie('__utmv').split('.');\n } else {\n return null;\n }\n var value = utmv_array[1];\n return {\n 'cookie': utmv_array,\n 'value': value\n };\n };\n\n // Cookie syntax: domain-hash.ftime.?.?.utmcsr=X|utmccn=X|utmcmd=X|utmctr=X\n var utmz = function utmz() {\n var utmz_array, source, medium, name, term, content, gclid;\n if (crumbleCookie('__utmz')) {\n utmz_array = crumbleCookie('__utmz').split('.').slice(4).join('.');\n // breaks if the referrer has a . in it such as web.com \n } else {\n return null;\n }\n var utms = utmz_array.split('|');\n for (var i = 0; i < utms.length; i++) {\n var key = utms[i].substring(0, utms[i].indexOf('='));\n var val = decodeURIComponent(utms[i].substring(utms[i].indexOf('=') + 1, utms[i].length));\n val = val.replace(/^\\(|\\)$/g, ''); // strip () brackets\n switch (key) {\n case 'utmcsr':\n source = val;\n break;\n case 'utmcmd':\n medium = val;\n break;\n case 'utmccn':\n name = val;\n break;\n case 'utmctr':\n term = val;\n break;\n case 'utmcct':\n content = val;\n break;\n case 'utmgclid':\n gclid = val;\n break;\n }\n }\n return {\n 'cookie': utmz_array,\n 'source': source,\n 'medium': medium,\n 'name': name,\n 'term': term,\n 'content': content,\n 'gclid': gclid\n };\n };\n\n // Establish public methods\n\n // utma cookies\n this.getDomainHash = function () {\n return utma() && utma().domainhash ? utma().domainhash : null;\n };\n this.getUniqueId = function () {\n return utma() && utma().uniqueid ? utma().uniqueid : null;\n };\n this.getInitialVisitTime = function () {\n return utma() && utma().ftime ? utma().ftime : null;\n };\n this.getPreviousVisitTime = function () {\n return utma() && utma().ltime ? utma().ltime : null;\n };\n this.getCurrentVisitTime = function () {\n return utma() && utma().stime ? utma().stime : null;\n };\n this.getSessionCounter = function () {\n return utma() && utma().sessions ? utma().sessions : null;\n };\n\n // utmb cookies\n this.getGifRequests = function () {\n return utmb() && utmb().gifrequest ? utmb().gifrequest : null;\n };\n\n // utmv cookies\n this.getUserDefinedValue = function () {\n return utmv() && utmv().value ? decodeURIComponent(utmv().value) : null;\n };\n\n // utmz cookies\n this.getCampaignSource = function () {\n return utmz() && utmz().source ? utmz().source : null;\n };\n this.getCampaignMedium = function () {\n return utmz() && utmz().medium ? utmz().medium : null;\n };\n this.getCampaignName = function () {\n return utmz() && utmz().name ? utmz().name : null;\n };\n this.getCampaignTerm = function () {\n return utmz() && utmz().term ? utmz().term : null;\n };\n this.getCampaignContent = function () {\n return utmz() && utmz().content ? utmz().content : null;\n };\n this.getGclid = function () {\n return utmz() && utmz().gclid ? utmz().gclid : null;\n };\n}\n;\nvar inqAppFormCommon = function () {\n /*\r\n function of a list sort() used to\r\n alphabetize the select element after loading json data\r\n */\n function _textCompare(a, b) {\n var textA = a.Text.toUpperCase();\n var textB = b.Text.toUpperCase();\n var moveback1 = -1;\n var comparison = 0;\n if (textA > textB) {\n comparison = 1;\n } else if (textA < textB) {\n comparison = moveback1;\n }\n return comparison;\n }\n function _sortOrderCompare(a, b) {\n var defaultSort = 9999;\n var sortOA = a.SortOrder === \"\" || isNaN(a.SortOrder) ? defaultSort : Number(a.SortOrder);\n var sortOB = b.SortOrder === \"\" || isNaN(b.SortOrder) ? defaultSort : Number(b.SortOrder);\n var moveback1 = -1;\n var comparison = 0;\n if (sortOA > sortOB) {\n comparison = 1;\n } else if (sortOA < sortOB) {\n comparison = moveback1;\n }\n return comparison;\n }\n\n /*get the json data from a specified div element by id*/\n function _getPageData(id) {\n var rtn = [];\n var div = document.getElementById(id);\n if (div && div.innerText !== \"\") {\n rtn = JSON.parse(div.innerText);\n }\n return rtn;\n }\n\n /*loops through the list and removed duplicates*/\n function _removeDuplicates(listData) {\n var matches = [];\n listData.forEach(function (obj) {\n if (!matches.find(function (f) {\n return f.Value === obj.Value;\n })) {\n matches.push(obj);\n }\n });\n return matches;\n }\n /*loops through the list created from the data_ExperienceAchievement element and\r\n creates a list of the locations for the location select element*/\n function _getLocation(expAchData) {\n var matches = [];\n expAchData.forEach(function (obj) {\n if (!matches.find(function (f) {\n return f.Value === obj.Location.Value;\n })) {\n matches.push({\n \"Value\": obj.Location.Value,\n \"Text\": obj.Location.Text,\n \"SortOrder\": obj.Location.SortOrder\n });\n }\n });\n return matches.sort(_sortOrderCompare);\n }\n\n /*loops through the list created from the data_ExperienceAchievement element and\r\n creates a list of the nursing programs\r\n this list is used to compare the selected value of the experience achievement is a nursing program*/\n function _getNursingPrograms(expAchData) {\n var matches = [];\n expAchData.forEach(function (obj) {\n if (!matches.find(function (f) {\n return f.Value === obj.Value;\n }) && obj.Category.Text === \"Nursing\") {\n matches.push({\n \"Value\": obj.ExperienceAchievement.Value,\n \"Text\": obj.ExperienceAchievement.Text,\n \"ProgramGroup\": obj.ProgramGroup.Text\n });\n }\n });\n return matches;\n }\n\n /*loops through the prvColData list and creates a list of the unique countries\r\n this is used to populate the previous college country select element*/\n function _getPreviousCollegeCountry(prvColData) {\n var matches = [];\n prvColData.forEach(function (obj) {\n var country = obj.Country === \"\" ? \"United States\" : obj.Country;\n if (!matches.find(function (f) {\n return f.Text === country;\n })) {\n matches.push({\n \"Value\": country,\n \"Text\": country\n });\n }\n });\n return matches.sort(_textCompare);\n }\n\n /*loops through select element data and returns the value of the default value so it can set the selected object*/\n function _defaultSelectedValue(ddl, value) {\n if (ddl.length > 0) {\n var found = ddl.find(function (f) {\n return f.Value === value;\n });\n if (found) {\n return value;\n }\n if (ddl.length === 1) {\n var val = ddl[0].Value;\n return val;\n }\n }\n return \"\";\n }\n\n /*loops through select element data and returns the value of the selected item value*/\n function _getSelectedValue(objArray) {\n var selection = \"\";\n if (objArray !== \"\" && objArray !== undefined) {\n objArray.forEach(function (obj) {\n if (obj.IsSelected === true) {\n selection = obj.Value;\n }\n });\n }\n return selection;\n }\n\n /*loops through country select element data and\r\n returns the value of the default value so it can set the value*/\n function _defaultCountryUS(ddl) {\n if (ddl.length > 0) {\n var found = ddl.find(function (f) {\n return f.Value === \"227\" || f.Value.toUpperCase() === \"UNITED STATES\";\n });\n if (found) {\n return found.Value;\n }\n }\n return \"\";\n }\n\n /*checks if the selected country is the United States\r\n if so, return true. Used to set showState*/\n function _setShowState(selectedCountry) {\n if (selectedCountry === \"\" || selectedCountry === \"227\" || selectedCountry === \"United States\") {\n return true;\n }\n return false;\n }\n\n /*get the text value from a select element\r\n returns the text value\r\n used by the addPreviousCollege method to get the school name\r\n */\n function _getDropdownText(ddl, value) {\n var text = \"\";\n if (ddl.length > 0) {\n var found = ddl.find(function (f) {\n return f.Value === value;\n });\n if (found) {\n text = found.Text;\n }\n }\n return text;\n }\n\n /* checks if the selected value is a nursing program\r\n loops through the list of nursing programs created in the getNursingPrograms function\r\n returns true if the selected value is a nursing program*/\n function _checkIfNursingCategory(selectedExpAch, nursingPrograms) {\n var hasNursing = false;\n var currentExpAchievement = selectedExpAch;\n nursingPrograms.forEach(function (obj) {\n if (obj.Value === currentExpAchievement) {\n hasNursing = true;\n }\n });\n return hasNursing;\n }\n\n /*make term start if location is campus\r\n remove required if location is not campus*/\n function _termRequired(isRequired, termFieldId) {\n var ele = window.document.getElementById(termFieldId);\n if (ele !== null) {\n if (isRequired) {\n if (!ele.hasAttribute('required')) {\n ele.required = true;\n }\n return;\n }\n ele.required = false;\n }\n }\n\n /*checks if the input value is a campus location\r\n returns true if it is a campus location\r\n used to show/hide campus only fields*/\n function _checkIfCampusLocation(selectedLocation) {\n var isCampus = false;\n if (selectedLocation === \"MAN\") {\n isCampus = true;\n }\n return isCampus;\n }\n\n /* Toggle Fields\r\n * used to hide/show fields on forms based on user input*/\n\n /*Toggle State/Region based on Country */\n function _toggleCountryFields(show, _stateField, _regionField) {\n var disabled = !show;\n if (_stateField !== null) {\n _stateField.disabled = disabled;\n _stateField.required = !disabled;\n }\n if (_regionField !== null) {\n _regionField.disabled = !disabled;\n }\n }\n\n /*Toggle Previous College State based on Previous College Country */\n function _togglePrevCollegeFields(show, _prevCollegeState) {\n var disabled = !show;\n if (_prevCollegeState !== null) {\n _prevCollegeState.disabled = disabled;\n }\n }\n\n /*Toggle Military Branch and Military Status based on Military Served Question */\n function _toggleMilitaryFields(show, _militaryBranchField, _militaryStatusField) {\n var disabled = !show;\n if (_militaryBranchField !== null) {\n _militaryBranchField.disabled = disabled;\n }\n if (_militaryStatusField !== null) {\n _militaryStatusField.disabled = disabled;\n }\n }\n\n /*Toggle Previous High Schoool State based on Previous High School Country */\n function _togglePrevHighSchoolFields(show, _prevHighSchoolState) {\n var disabled = !show;\n if (_prevHighSchoolState !== null) {\n _prevHighSchoolState.disabled = disabled;\n }\n }\n\n /*takes the selected value of the military served radio button\r\n returns true if yes is selected, returns false if no is selected*/\n function _setShowMilitary(selectedMilitaryServed) {\n if (selectedMilitaryServed.toUpperCase() === \"NO\" || selectedMilitaryServed.toUpperCase() === \"\") {\n return false;\n }\n return true;\n }\n\n /*START Previous College */\n\n /*loops through the prvColData list and creates a list of the unique colleges\r\n this is used to populate the previous college school select element*/\n function _getPreviousCollegeSchools(prvColData, country, state) {\n var matches = [];\n prvColData.forEach(function (obj) {\n if (obj.Country === country && obj.State === state) {\n if (!matches.find(function (f) {\n return f.Value === obj.Code;\n })) {\n matches.push({\n \"Value\": obj.CEEBCode,\n \"Text\": obj.SchoolName\n });\n }\n }\n });\n matches.sort(_textCompare);\n matches.push({\n \"Value\": \"999999\",\n \"Text\": \"My school is not listed\"\n });\n return matches;\n }\n\n /*checks value for a valid school selection*/\n function _validatePreviousCollegeSchool(prevCollegeSchool) {\n var error = false;\n if (prevCollegeSchool === \"\") {\n error = true;\n }\n return error;\n }\n function _validatePreviousCollegeYear(chkyear) {\n var error = false;\n var message = \"\";\n var year = chkyear;\n var minYear = 1970;\n var yearsAddForMax = 10;\n var maxYear = new Date().getFullYear() + yearsAddForMax;\n if (year < minYear) {\n error = true;\n message = \"Year must be greater than or equal to \" + minYear + \".\";\n }\n if (year > maxYear) {\n error = true;\n message = \"Year must be less than or equal to \" + maxYear + \".\";\n }\n return {\n \"Error\": error,\n \"Message\": message\n };\n }\n function _duplicatePreviousCollege(ceebCode, schoolYear, prevCol) {\n var found = false;\n prevCol.forEach(function (obj) {\n // convert the years to strings to ensure type comparison\n var exYear = obj.GradYear.toString();\n var newYear = schoolYear.toString();\n if (obj.CEEBCode === ceebCode && exYear === newYear) {\n found = true;\n }\n });\n return found;\n }\n function _getPreviousCollectionSelectionsText(prevCollegeSelections) {\n return JSON.stringify(prevCollegeSelections);\n }\n function _removePreviousCollege(ceebCode, gradYear, currentSelections) {\n var selections = currentSelections;\n selections.forEach(function (obj, index) {\n if (selections[index].CEEBCode === ceebCode && selections[index].GradYear === gradYear) {\n selections.splice(index, 1);\n }\n });\n return selections;\n }\n return {\n textCompare: _textCompare,\n sortOrderCompare: _sortOrderCompare,\n getPageData: _getPageData,\n getLocation: _getLocation,\n getNursingPrograms: _getNursingPrograms,\n getPreviousCollegeCountry: _getPreviousCollegeCountry,\n defaultSelectedValue: _defaultSelectedValue,\n getSelectedValue: _getSelectedValue,\n defaultCountryUS: _defaultCountryUS,\n getDropdownText: _getDropdownText,\n setShowState: _setShowState,\n checkIfNursingCategory: _checkIfNursingCategory,\n checkIfCampusLocation: _checkIfCampusLocation,\n setShowMilitary: _setShowMilitary,\n getPreviousCollegeSchools: _getPreviousCollegeSchools,\n validatePreviousCollegeSchool: _validatePreviousCollegeSchool,\n validatePreviousCollegeYear: _validatePreviousCollegeYear,\n duplicatePreviousCollege: _duplicatePreviousCollege,\n getPreviousCollectionSelectionsText: _getPreviousCollectionSelectionsText,\n removePreviousCollege: _removePreviousCollege,\n termRequired: _termRequired,\n removeDuplicates: _removeDuplicates,\n toggleCountryFields: _toggleCountryFields,\n togglePrevCollegeFields: _togglePrevCollegeFields,\n toggleMilitaryFields: _toggleMilitaryFields,\n togglePrevHighSchoolFields: _togglePrevHighSchoolFields\n };\n}();\nif (typeof exports !== 'undefined') {\n module.exports = inqAppFormCommon;\n}\n\n/*\r\n jQuery Masked Input Plugin\r\n Copyright (c) 2007 - 2017 Josh Bush (digitalbush.com)\r\n Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)\r\n Version: 1.4.1\r\n*/\n!function (factory) {\n \"function\" == typeof define && define.amd ? define([\"jquery\"], factory) : factory(\"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? require(\"jquery\") : jQuery);\n}(function ($) {\n var caretTimeoutId,\n ua = navigator.userAgent,\n iPhone = /iphone/i.test(ua),\n chrome = /chrome/i.test(ua),\n android = /android/i.test(ua);\n $.mask = {\n definitions: {\n \"9\": \"[0-9]\",\n a: \"[A-Za-z]\",\n \"*\": \"[A-Za-z0-9]\"\n },\n autoclear: !0,\n dataName: \"rawMaskFn\",\n placeholder: \"_\"\n }, $.fn.extend({\n caret: function caret(begin, end) {\n var range;\n if (0 !== this.length && !this.is(\":hidden\") && this.get(0) === document.activeElement) return \"number\" == typeof begin ? (end = \"number\" == typeof end ? end : begin, this.each(function () {\n this.setSelectionRange ? this.setSelectionRange(begin, end) : this.createTextRange && (range = this.createTextRange(), range.collapse(!0), range.moveEnd(\"character\", end), range.moveStart(\"character\", begin), range.select());\n })) : (this[0].setSelectionRange ? (begin = this[0].selectionStart, end = this[0].selectionEnd) : document.selection && document.selection.createRange && (range = document.selection.createRange(), begin = 0 - range.duplicate().moveStart(\"character\", -1e5), end = begin + range.text.length), {\n begin: begin,\n end: end\n });\n },\n unmask: function unmask() {\n return this.trigger(\"unmask\");\n },\n mask: function mask(_mask, settings) {\n var input, defs, tests, partialPosition, firstNonMaskPos, lastRequiredNonMaskPos, len, oldVal;\n if (!_mask && this.length > 0) {\n input = $(this[0]);\n var fn = input.data($.mask.dataName);\n return fn ? fn() : void 0;\n }\n return settings = $.extend({\n autoclear: $.mask.autoclear,\n placeholder: $.mask.placeholder,\n completed: null\n }, settings), defs = $.mask.definitions, tests = [], partialPosition = len = _mask.length, firstNonMaskPos = null, _mask = String(_mask), $.each(_mask.split(\"\"), function (i, c) {\n \"?\" == c ? (len--, partialPosition = i) : defs[c] ? (tests.push(new RegExp(defs[c])), null === firstNonMaskPos && (firstNonMaskPos = tests.length - 1), partialPosition > i && (lastRequiredNonMaskPos = tests.length - 1)) : tests.push(null);\n }), this.trigger(\"unmask\").each(function () {\n function tryFireCompleted() {\n if (settings.completed) {\n for (var i = firstNonMaskPos; lastRequiredNonMaskPos >= i; i++) if (tests[i] && buffer[i] === getPlaceholder(i)) return;\n settings.completed.call(input);\n }\n }\n function getPlaceholder(i) {\n return i < settings.placeholder.length ? settings.placeholder.charAt(i) : settings.placeholder.charAt(0);\n }\n function seekNext(pos) {\n for (; ++pos < len && !tests[pos];);\n return pos;\n }\n function seekPrev(pos) {\n for (; --pos >= 0 && !tests[pos];);\n return pos;\n }\n function shiftL(begin, end) {\n var i, j;\n if (!(0 > begin)) {\n for (i = begin, j = seekNext(end); len > i; i++) if (tests[i]) {\n if (!(len > j && tests[i].test(buffer[j]))) break;\n buffer[i] = buffer[j], buffer[j] = getPlaceholder(j), j = seekNext(j);\n }\n writeBuffer(), input.caret(Math.max(firstNonMaskPos, begin));\n }\n }\n function shiftR(pos) {\n var i, c, j, t;\n for (i = pos, c = getPlaceholder(pos); len > i; i++) if (tests[i]) {\n if (j = seekNext(i), t = buffer[i], buffer[i] = c, !(len > j && tests[j].test(t))) break;\n c = t;\n }\n }\n function androidInputEvent(e) {\n var curVal = input.val(),\n pos = input.caret(),\n proxy = function proxy() {\n $.proxy($.fn.caret, input, pos.begin, pos.begin)();\n };\n if (oldVal && oldVal.length && oldVal.length > curVal.length) {\n for (1 === curVal.length && 14 === oldVal.length && (pos.begin = 3, pos.end = 3), checkVal(!0); pos.begin > 0 && !tests[pos.begin - 1];) pos.begin--;\n if (0 === pos.begin) for (; pos.begin < firstNonMaskPos && !tests[pos.begin];) pos.begin++;\n setTimeout(proxy, 0);\n } else {\n var pos2 = checkVal(!0),\n lastEnteredValue = \"\";\n lastEnteredValue = 14 === oldVal.length || 5 === oldVal.length ? \"\" : curVal.charAt(pos.begin), pos.begin < len && (tests[pos.begin] ? tests[pos.begin].test(lastEnteredValue) && pos.begin++ : pos.begin = pos2), setTimeout(proxy, 0);\n }\n tryFireCompleted();\n }\n function blurEvent(e) {\n checkVal(), input.val() != focusText && input.change();\n }\n function keydownEvent(e) {\n if (!input.prop(\"readonly\")) {\n var pos,\n begin,\n end,\n k = e.which || e.keyCode;\n oldVal = input.val(), 8 === k || 46 === k || iPhone && 127 === k ? (pos = input.caret(), begin = pos.begin, end = pos.end, end - begin === 0 && (begin = 46 !== k ? seekPrev(begin) : end = seekNext(begin - 1), end = 46 === k ? seekNext(end) : end), clearBuffer(begin, end), shiftL(begin, end - 1), e.preventDefault()) : 13 === k ? blurEvent.call(this, e) : 27 === k && (input.val(focusText), input.caret(0, checkVal()), e.preventDefault());\n }\n }\n function keypressEvent(e) {\n if (!input.prop(\"readonly\")) {\n var p,\n c,\n next,\n k = e.which || e.keyCode,\n pos = input.caret();\n if (!(e.ctrlKey || e.altKey || e.metaKey || 32 > k) && k && 13 !== k) {\n if (pos.end - pos.begin !== 0 && (clearBuffer(pos.begin, pos.end), shiftL(pos.begin, pos.end - 1)), p = seekNext(pos.begin - 1), len > p && (c = String.fromCharCode(k), tests[p].test(c))) {\n if (shiftR(p), buffer[p] = c, writeBuffer(), next = seekNext(p), android) {\n var proxy = function proxy() {\n $.proxy($.fn.caret, input, next)();\n };\n setTimeout(proxy, 0);\n } else input.caret(next);\n pos.begin <= lastRequiredNonMaskPos && tryFireCompleted();\n }\n e.preventDefault();\n }\n }\n }\n function clearBuffer(start, end) {\n var i;\n for (i = start; end > i && len > i; i++) tests[i] && (buffer[i] = getPlaceholder(i));\n }\n function writeBuffer() {\n input.val(buffer.join(\"\"));\n }\n function checkVal(allow) {\n var i,\n c,\n pos,\n test = input.val(),\n lastMatch = -1;\n for (i = 0, pos = 0; len > i; i++) if (tests[i]) {\n for (buffer[i] = getPlaceholder(i); pos++ < test.length;) if (c = test.charAt(pos - 1), tests[i].test(c)) {\n buffer[i] = c, lastMatch = i;\n break;\n }\n if (pos > test.length) {\n clearBuffer(i + 1, len);\n break;\n }\n } else buffer[i] === test.charAt(pos) && pos++, partialPosition > i && (lastMatch = i);\n return allow ? writeBuffer() : partialPosition > lastMatch + 1 ? settings.autoclear || buffer.join(\"\") === defaultBuffer ? (input.val() && input.val(\"\"), clearBuffer(0, len)) : writeBuffer() : (writeBuffer(), input.val(input.val().substring(0, lastMatch + 1))), partialPosition ? i : firstNonMaskPos;\n }\n var input = $(this),\n buffer = $.map(_mask.split(\"\"), function (c, i) {\n return \"?\" != c ? defs[c] ? getPlaceholder(i) : c : void 0;\n }),\n defaultBuffer = buffer.join(\"\"),\n focusText = input.val();\n input.data($.mask.dataName, function () {\n return $.map(buffer, function (c, i) {\n return tests[i] && c != getPlaceholder(i) ? c : null;\n }).join(\"\");\n }), input.one(\"unmask\", function () {\n input.off(\".mask\").removeData($.mask.dataName);\n }).on(\"focus.mask\", function () {\n if (!input.prop(\"readonly\")) {\n clearTimeout(caretTimeoutId);\n var pos;\n focusText = input.val(), pos = checkVal(), caretTimeoutId = setTimeout(function () {\n input.get(0) === document.activeElement && (writeBuffer(), pos == _mask.replace(\"?\", \"\").length ? input.caret(0, pos) : input.caret(pos));\n }, 10);\n }\n }).on(\"blur.mask\", blurEvent).on(\"keydown.mask\", keydownEvent).on(\"keypress.mask\", keypressEvent).on(\"input.mask paste.mask\", function () {\n input.prop(\"readonly\") || setTimeout(function () {\n var pos = checkVal(!0);\n input.caret(pos), tryFireCompleted();\n }, 0);\n }), chrome && android && input.off(\"input.mask\").on(\"input.mask\", androidInputEvent), checkVal();\n });\n }\n });\n});\n/*!\r\nWaypoints - 4.0.1\r\nCopyright © 2011-2016 Caleb Troughton\r\nLicensed under the MIT license.\r\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\r\n*/\n(function () {\n 'use strict';\n\n var keyCounter = 0;\n var allWaypoints = {};\n\n /* http://imakewebthings.com/waypoints/api/waypoint */\n function Waypoint(options) {\n if (!options) {\n throw new Error('No options passed to Waypoint constructor');\n }\n if (!options.element) {\n throw new Error('No element option passed to Waypoint constructor');\n }\n if (!options.handler) {\n throw new Error('No handler option passed to Waypoint constructor');\n }\n this.key = 'waypoint-' + keyCounter;\n this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options);\n this.element = this.options.element;\n this.adapter = new Waypoint.Adapter(this.element);\n this.callback = options.handler;\n this.axis = this.options.horizontal ? 'horizontal' : 'vertical';\n this.enabled = this.options.enabled;\n this.triggerPoint = null;\n this.group = Waypoint.Group.findOrCreate({\n name: this.options.group,\n axis: this.axis\n });\n this.context = Waypoint.Context.findOrCreateByElement(this.options.context);\n if (Waypoint.offsetAliases[this.options.offset]) {\n this.options.offset = Waypoint.offsetAliases[this.options.offset];\n }\n this.group.add(this);\n this.context.add(this);\n allWaypoints[this.key] = this;\n keyCounter += 1;\n }\n\n /* Private */\n Waypoint.prototype.queueTrigger = function (direction) {\n this.group.queueTrigger(this, direction);\n };\n\n /* Private */\n Waypoint.prototype.trigger = function (args) {\n if (!this.enabled) {\n return;\n }\n if (this.callback) {\n this.callback.apply(this, args);\n }\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy */\n Waypoint.prototype.destroy = function () {\n this.context.remove(this);\n this.group.remove(this);\n delete allWaypoints[this.key];\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable */\n Waypoint.prototype.disable = function () {\n this.enabled = false;\n return this;\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable */\n Waypoint.prototype.enable = function () {\n this.context.refresh();\n this.enabled = true;\n return this;\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/next */\n Waypoint.prototype.next = function () {\n return this.group.next(this);\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/previous */\n Waypoint.prototype.previous = function () {\n return this.group.previous(this);\n };\n\n /* Private */\n Waypoint.invokeAll = function (method) {\n var allWaypointsArray = [];\n for (var waypointKey in allWaypoints) {\n allWaypointsArray.push(allWaypoints[waypointKey]);\n }\n for (var i = 0, end = allWaypointsArray.length; i < end; i++) {\n allWaypointsArray[i][method]();\n }\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy-all */\n Waypoint.destroyAll = function () {\n Waypoint.invokeAll('destroy');\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable-all */\n Waypoint.disableAll = function () {\n Waypoint.invokeAll('disable');\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable-all */\n Waypoint.enableAll = function () {\n Waypoint.Context.refreshAll();\n for (var waypointKey in allWaypoints) {\n allWaypoints[waypointKey].enabled = true;\n }\n return this;\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/refresh-all */\n Waypoint.refreshAll = function () {\n Waypoint.Context.refreshAll();\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-height */\n Waypoint.viewportHeight = function () {\n return window.innerHeight || document.documentElement.clientHeight;\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-width */\n Waypoint.viewportWidth = function () {\n return document.documentElement.clientWidth;\n };\n Waypoint.adapters = [];\n Waypoint.defaults = {\n context: window,\n continuous: true,\n enabled: true,\n group: 'default',\n horizontal: false,\n offset: 0\n };\n Waypoint.offsetAliases = {\n 'bottom-in-view': function bottomInView() {\n return this.context.innerHeight() - this.adapter.outerHeight();\n },\n 'right-in-view': function rightInView() {\n return this.context.innerWidth() - this.adapter.outerWidth();\n }\n };\n window.Waypoint = Waypoint;\n})();\n(function () {\n 'use strict';\n\n function requestAnimationFrameShim(callback) {\n window.setTimeout(callback, 1000 / 60);\n }\n var keyCounter = 0;\n var contexts = {};\n var Waypoint = window.Waypoint;\n var oldWindowLoad = window.onload;\n\n /* http://imakewebthings.com/waypoints/api/context */\n function Context(element) {\n this.element = element;\n this.Adapter = Waypoint.Adapter;\n this.adapter = new this.Adapter(element);\n this.key = 'waypoint-context-' + keyCounter;\n this.didScroll = false;\n this.didResize = false;\n this.oldScroll = {\n x: this.adapter.scrollLeft(),\n y: this.adapter.scrollTop()\n };\n this.waypoints = {\n vertical: {},\n horizontal: {}\n };\n element.waypointContextKey = this.key;\n contexts[element.waypointContextKey] = this;\n keyCounter += 1;\n if (!Waypoint.windowContext) {\n Waypoint.windowContext = true;\n Waypoint.windowContext = new Context(window);\n }\n this.createThrottledScrollHandler();\n this.createThrottledResizeHandler();\n }\n\n /* Private */\n Context.prototype.add = function (waypoint) {\n var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical';\n this.waypoints[axis][waypoint.key] = waypoint;\n this.refresh();\n };\n\n /* Private */\n Context.prototype.checkEmpty = function () {\n var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal);\n var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical);\n var isWindow = this.element == this.element.window;\n if (horizontalEmpty && verticalEmpty && !isWindow) {\n this.adapter.off('.waypoints');\n delete contexts[this.key];\n }\n };\n\n /* Private */\n Context.prototype.createThrottledResizeHandler = function () {\n var self = this;\n function resizeHandler() {\n self.handleResize();\n self.didResize = false;\n }\n this.adapter.on('resize.waypoints', function () {\n if (!self.didResize) {\n self.didResize = true;\n Waypoint.requestAnimationFrame(resizeHandler);\n }\n });\n };\n\n /* Private */\n Context.prototype.createThrottledScrollHandler = function () {\n var self = this;\n function scrollHandler() {\n self.handleScroll();\n self.didScroll = false;\n }\n this.adapter.on('scroll.waypoints', function () {\n if (!self.didScroll || Waypoint.isTouch) {\n self.didScroll = true;\n Waypoint.requestAnimationFrame(scrollHandler);\n }\n });\n };\n\n /* Private */\n Context.prototype.handleResize = function () {\n Waypoint.Context.refreshAll();\n };\n\n /* Private */\n Context.prototype.handleScroll = function () {\n var triggeredGroups = {};\n var axes = {\n horizontal: {\n newScroll: this.adapter.scrollLeft(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left'\n },\n vertical: {\n newScroll: this.adapter.scrollTop(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up'\n }\n };\n for (var axisKey in axes) {\n var axis = axes[axisKey];\n var isForward = axis.newScroll > axis.oldScroll;\n var direction = isForward ? axis.forward : axis.backward;\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey];\n if (waypoint.triggerPoint === null) {\n continue;\n }\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint;\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint;\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint;\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint;\n if (crossedForward || crossedBackward) {\n waypoint.queueTrigger(direction);\n triggeredGroups[waypoint.group.id] = waypoint.group;\n }\n }\n }\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers();\n }\n this.oldScroll = {\n x: axes.horizontal.newScroll,\n y: axes.vertical.newScroll\n };\n };\n\n /* Private */\n Context.prototype.innerHeight = function () {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportHeight();\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerHeight();\n };\n\n /* Private */\n Context.prototype.remove = function (waypoint) {\n delete this.waypoints[waypoint.axis][waypoint.key];\n this.checkEmpty();\n };\n\n /* Private */\n Context.prototype.innerWidth = function () {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportWidth();\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerWidth();\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-destroy */\n Context.prototype.destroy = function () {\n var allWaypoints = [];\n for (var axis in this.waypoints) {\n for (var waypointKey in this.waypoints[axis]) {\n allWaypoints.push(this.waypoints[axis][waypointKey]);\n }\n }\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\n allWaypoints[i].destroy();\n }\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-refresh */\n Context.prototype.refresh = function () {\n /*eslint-disable eqeqeq */\n var isWindow = this.element == this.element.window;\n /*eslint-enable eqeqeq */\n var contextOffset = isWindow ? undefined : this.adapter.offset();\n var triggeredGroups = {};\n var axes;\n this.handleScroll();\n axes = {\n horizontal: {\n contextOffset: isWindow ? 0 : contextOffset.left,\n contextScroll: isWindow ? 0 : this.oldScroll.x,\n contextDimension: this.innerWidth(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left',\n offsetProp: 'left'\n },\n vertical: {\n contextOffset: isWindow ? 0 : contextOffset.top,\n contextScroll: isWindow ? 0 : this.oldScroll.y,\n contextDimension: this.innerHeight(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up',\n offsetProp: 'top'\n }\n };\n for (var axisKey in axes) {\n var axis = axes[axisKey];\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey];\n var adjustment = waypoint.options.offset;\n var oldTriggerPoint = waypoint.triggerPoint;\n var elementOffset = 0;\n var freshWaypoint = oldTriggerPoint == null;\n var contextModifier, wasBeforeScroll, nowAfterScroll;\n var triggeredBackward, triggeredForward;\n if (waypoint.element !== waypoint.element.window) {\n elementOffset = waypoint.adapter.offset()[axis.offsetProp];\n }\n if (typeof adjustment === 'function') {\n adjustment = adjustment.apply(waypoint);\n } else if (typeof adjustment === 'string') {\n adjustment = parseFloat(adjustment);\n if (waypoint.options.offset.indexOf('%') > -1) {\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100);\n }\n }\n contextModifier = axis.contextScroll - axis.contextOffset;\n waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment);\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll;\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll;\n triggeredBackward = wasBeforeScroll && nowAfterScroll;\n triggeredForward = !wasBeforeScroll && !nowAfterScroll;\n if (!freshWaypoint && triggeredBackward) {\n waypoint.queueTrigger(axis.backward);\n triggeredGroups[waypoint.group.id] = waypoint.group;\n } else if (!freshWaypoint && triggeredForward) {\n waypoint.queueTrigger(axis.forward);\n triggeredGroups[waypoint.group.id] = waypoint.group;\n } else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\n waypoint.queueTrigger(axis.forward);\n triggeredGroups[waypoint.group.id] = waypoint.group;\n }\n }\n }\n Waypoint.requestAnimationFrame(function () {\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers();\n }\n });\n return this;\n };\n\n /* Private */\n Context.findOrCreateByElement = function (element) {\n return Context.findByElement(element) || new Context(element);\n };\n\n /* Private */\n Context.refreshAll = function () {\n for (var contextId in contexts) {\n contexts[contextId].refresh();\n }\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\n Context.findByElement = function (element) {\n return contexts[element.waypointContextKey];\n };\n window.onload = function () {\n if (oldWindowLoad) {\n oldWindowLoad();\n }\n Context.refreshAll();\n };\n Waypoint.requestAnimationFrame = function (callback) {\n var requestFn = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || requestAnimationFrameShim;\n requestFn.call(window, callback);\n };\n Waypoint.Context = Context;\n})();\n(function () {\n 'use strict';\n\n function byTriggerPoint(a, b) {\n return a.triggerPoint - b.triggerPoint;\n }\n function byReverseTriggerPoint(a, b) {\n return b.triggerPoint - a.triggerPoint;\n }\n var groups = {\n vertical: {},\n horizontal: {}\n };\n var Waypoint = window.Waypoint;\n\n /* http://imakewebthings.com/waypoints/api/group */\n function Group(options) {\n this.name = options.name;\n this.axis = options.axis;\n this.id = this.name + '-' + this.axis;\n this.waypoints = [];\n this.clearTriggerQueues();\n groups[this.axis][this.name] = this;\n }\n\n /* Private */\n Group.prototype.add = function (waypoint) {\n this.waypoints.push(waypoint);\n };\n\n /* Private */\n Group.prototype.clearTriggerQueues = function () {\n this.triggerQueues = {\n up: [],\n down: [],\n left: [],\n right: []\n };\n };\n\n /* Private */\n Group.prototype.flushTriggers = function () {\n for (var direction in this.triggerQueues) {\n var waypoints = this.triggerQueues[direction];\n var reverse = direction === 'up' || direction === 'left';\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint);\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\n var waypoint = waypoints[i];\n if (waypoint.options.continuous || i === waypoints.length - 1) {\n waypoint.trigger([direction]);\n }\n }\n }\n this.clearTriggerQueues();\n };\n\n /* Private */\n Group.prototype.next = function (waypoint) {\n this.waypoints.sort(byTriggerPoint);\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints);\n var isLast = index === this.waypoints.length - 1;\n return isLast ? null : this.waypoints[index + 1];\n };\n\n /* Private */\n Group.prototype.previous = function (waypoint) {\n this.waypoints.sort(byTriggerPoint);\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints);\n return index ? this.waypoints[index - 1] : null;\n };\n\n /* Private */\n Group.prototype.queueTrigger = function (waypoint, direction) {\n this.triggerQueues[direction].push(waypoint);\n };\n\n /* Private */\n Group.prototype.remove = function (waypoint) {\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints);\n if (index > -1) {\n this.waypoints.splice(index, 1);\n }\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/first */\n Group.prototype.first = function () {\n return this.waypoints[0];\n };\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/last */\n Group.prototype.last = function () {\n return this.waypoints[this.waypoints.length - 1];\n };\n\n /* Private */\n Group.findOrCreate = function (options) {\n return groups[options.axis][options.name] || new Group(options);\n };\n Waypoint.Group = Group;\n})();\n(function () {\n 'use strict';\n\n var $ = window.jQuery;\n var Waypoint = window.Waypoint;\n function JQueryAdapter(element) {\n this.$element = $(element);\n }\n $.each(['innerHeight', 'innerWidth', 'off', 'offset', 'on', 'outerHeight', 'outerWidth', 'scrollLeft', 'scrollTop'], function (i, method) {\n JQueryAdapter.prototype[method] = function () {\n var args = Array.prototype.slice.call(arguments);\n return this.$element[method].apply(this.$element, args);\n };\n });\n $.each(['extend', 'inArray', 'isEmptyObject'], function (i, method) {\n JQueryAdapter[method] = $[method];\n });\n Waypoint.adapters.push({\n name: 'jquery',\n Adapter: JQueryAdapter\n });\n Waypoint.Adapter = JQueryAdapter;\n})();\n(function () {\n 'use strict';\n\n var Waypoint = window.Waypoint;\n function createExtension(framework) {\n return function () {\n var waypoints = [];\n var overrides = arguments[0];\n if (framework.isFunction(arguments[0])) {\n overrides = framework.extend({}, arguments[1]);\n overrides.handler = arguments[0];\n }\n this.each(function () {\n var options = framework.extend({}, overrides, {\n element: this\n });\n if (typeof options.context === 'string') {\n options.context = framework(this).closest(options.context)[0];\n }\n waypoints.push(new Waypoint(options));\n });\n return waypoints;\n };\n }\n if (window.jQuery) {\n window.jQuery.fn.waypoint = createExtension(window.jQuery);\n }\n if (window.Zepto) {\n window.Zepto.fn.waypoint = createExtension(window.Zepto);\n }\n})();\n// NOTE: Gulp adds this file to /components/Legacy, changes should be applied to the file found in /components/Foundation\n\n/*eslint no-use-before-define: [\"error\", { \"functions\": false }]*/\n\nvar ModalController = function ModalController() {\n function _openModal(mc) {\n // Markup changes\n mc.backdrop.classList.add('show');\n mc.modal.classList.add('show');\n mc.modal.tabIndex = \"0\";\n document.querySelector('body').classList.add('modal-open');\n\n // Set focus to first focusable item, the modal close button\n mc.modalCloseBtn.focus();\n\n // Add event listeners, only present when modal is open\n\n // Trap focus in modal elements\n mc.modalCloseBtn.addEventListener('keydown', function (e) {\n _modalCloseBtnKeyHandler(e, mc);\n });\n mc.lastFocusable.addEventListener('keydown', function (e) {\n _lastFocusableTabHandler(e, mc.modalCloseBtn);\n });\n\n // Escape Key event\n document.addEventListener('keydown', function (e) {\n _escapeKeyCloseModal(e, mc);\n });\n\n // Modal off click event\n document.addEventListener('click', function (e) {\n _offClickCloseModal(e, mc);\n });\n\n // Modal close button click event\n mc.modalCloseBtn.addEventListener('click', function () {\n _closeModal(mc);\n });\n }\n function _closeModal(mc) {\n // Markup changes\n mc.backdrop.classList.remove('show');\n mc.modal.classList.remove('show');\n mc.modal.tabIndex = \"-1\";\n document.querySelector('body').classList.remove('modal-open');\n\n // Remove event listeners, only present when modal is open\n mc.modalCloseBtn.removeEventListener('keydown', function (e) {\n _modalCloseBtnKeyHandler(e, mc);\n });\n mc.lastFocusable.removeEventListener('keydown', function (e) {\n _lastFocusableTabHandler(e, mc.modalCloseBtn);\n });\n\n // Escape Key event\n document.removeEventListener('keydown', function (e) {\n _escapeKeyCloseModal(e, mc);\n });\n\n // Modal off click event\n document.removeEventListener('click', function (e) {\n _offClickCloseModal(e, mc);\n });\n\n // Modal close button click event\n mc.modalCloseBtn.removeEventListener('click', function () {\n _closeModal(mc);\n });\n }\n function _escapeKeyCloseModal(e, mc) {\n var key = e.key;\n if (key === 'Escape' || key === 'Esc') {\n _closeModal(mc);\n }\n }\n function _offClickCloseModal(e, mc) {\n var notFound = -1;\n if ((!e.target.href || e.target.href.indexOf(mc.modal.id) === notFound) && e.target.closest('.modal-content') === null) {\n _closeModal(mc);\n }\n }\n function _modalCloseBtnKeyHandler(e, mc) {\n var key = e.key;\n var tabKey = 'Tab';\n var enterKey = 'Enter';\n\n // Give last element focus if shift + tab from first focusable element\n if (key === tabKey && e.shiftKey) {\n e.preventDefault();\n mc.lastFocusable.focus();\n } else if (key === enterKey) {\n _closeModal(mc);\n }\n }\n function _lastFocusableTabHandler(e, firstFocusable) {\n var key = e.key;\n var tabKey = 'Tab';\n\n // If tab is pressed set focus to first focusable item\n if (key === tabKey && !e.shiftKey) {\n e.preventDefault();\n firstFocusable.focus();\n }\n }\n function _init(modal) {\n var mc = new Object();\n mc.modal = modal;\n mc.backdrop = modal.nextElementSibling;\n var focusables = document.querySelectorAll('#' + mc.modal.id + ' [href], #' + mc.modal.id + ' :enabled');\n mc.modalCloseBtn = focusables[0];\n mc.lastFocusable = focusables[focusables.length - 1];\n var buttons = document.querySelectorAll('[href=\"#' + mc.modal.id + '\"]');\n if (buttons.length > 0) {\n buttons.forEach(function (button) {\n button.addEventListener('click', function (event) {\n event.preventDefault();\n _openModal(mc);\n });\n });\n }\n }\n return {\n init: _init,\n openModal: _openModal,\n closeModal: _closeModal,\n escapeKeyCloseModal: _escapeKeyCloseModal,\n offClickCloseModal: _offClickCloseModal,\n modalCloseBtnKeyHandler: _modalCloseBtnKeyHandler,\n lastFocusableTabHandler: _lastFocusableTabHandler\n };\n};\nif (typeof exports !== 'undefined') {\n module.exports = ModalController;\n}\n/*! modernizr 3.6.0 (Custom Build) | MIT *\r\n * https://modernizr.com/download/?-objectfit-setclasses !*/\n!function (e, n, t) {\n function r(e, n) {\n return _typeof(e) === n;\n }\n function o() {\n var e, n, t, o, i, s, a;\n for (var l in C) if (C.hasOwnProperty(l)) {\n if (e = [], n = C[l], n.name && (e.push(n.name.toLowerCase()), n.options && n.options.aliases && n.options.aliases.length)) for (t = 0; t < n.options.aliases.length; t++) e.push(n.options.aliases[t].toLowerCase());\n for (o = r(n.fn, \"function\") ? n.fn() : n.fn, i = 0; i < e.length; i++) s = e[i], a = s.split(\".\"), 1 === a.length ? Modernizr[a[0]] = o : (!Modernizr[a[0]] || Modernizr[a[0]] instanceof Boolean || (Modernizr[a[0]] = new Boolean(Modernizr[a[0]])), Modernizr[a[0]][a[1]] = o), h.push((o ? \"\" : \"no-\") + a.join(\"-\"));\n }\n }\n function i(e) {\n var n = _.className,\n t = Modernizr._config.classPrefix || \"\";\n if (w && (n = n.baseVal), Modernizr._config.enableJSClass) {\n var r = new RegExp(\"(^|\\\\s)\" + t + \"no-js(\\\\s|$)\");\n n = n.replace(r, \"$1\" + t + \"js$2\");\n }\n Modernizr._config.enableClasses && (n += \" \" + t + e.join(\" \" + t), w ? _.className.baseVal = n : _.className = n);\n }\n function s(e) {\n return e.replace(/([a-z])-([a-z])/g, function (e, n, t) {\n return n + t.toUpperCase();\n }).replace(/^-/, \"\");\n }\n function a(e, n) {\n return !!~(\"\" + e).indexOf(n);\n }\n function l(e, n) {\n return function () {\n return e.apply(n, arguments);\n };\n }\n function f(e, n, t) {\n var o;\n for (var i in e) if (e[i] in n) return t === !1 ? e[i] : (o = n[e[i]], r(o, \"function\") ? l(o, t || n) : o);\n return !1;\n }\n function u() {\n return \"function\" != typeof n.createElement ? n.createElement(arguments[0]) : w ? n.createElementNS.call(n, \"http://www.w3.org/2000/svg\", arguments[0]) : n.createElement.apply(n, arguments);\n }\n function p(n, t, r) {\n var o;\n if (\"getComputedStyle\" in e) {\n o = getComputedStyle.call(e, n, t);\n var i = e.console;\n if (null !== o) r && (o = o.getPropertyValue(r));else if (i) {\n var s = i.error ? \"error\" : \"log\";\n i[s].call(i, \"getComputedStyle returning null, its possible modernizr test results are inaccurate\");\n }\n } else o = !t && n.currentStyle && n.currentStyle[r];\n return o;\n }\n function c(e) {\n return e.replace(/([A-Z])/g, function (e, n) {\n return \"-\" + n.toLowerCase();\n }).replace(/^ms-/, \"-ms-\");\n }\n function d() {\n var e = n.body;\n return e || (e = u(w ? \"svg\" : \"body\"), e.fake = !0), e;\n }\n function m(e, t, r, o) {\n var i,\n s,\n a,\n l,\n f = \"modernizr\",\n p = u(\"div\"),\n c = d();\n if (parseInt(r, 10)) for (; r--;) a = u(\"div\"), a.id = o ? o[r] : f + (r + 1), p.appendChild(a);\n return i = u(\"style\"), i.type = \"text/css\", i.id = \"s\" + f, (c.fake ? c : p).appendChild(i), c.appendChild(p), i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(n.createTextNode(e)), p.id = f, c.fake && (c.style.background = \"\", c.style.overflow = \"hidden\", l = _.style.overflow, _.style.overflow = \"hidden\", _.appendChild(c)), s = t(p, e), c.fake ? (c.parentNode.removeChild(c), _.style.overflow = l, _.offsetHeight) : p.parentNode.removeChild(p), !!s;\n }\n function v(n, r) {\n var o = n.length;\n if (\"CSS\" in e && \"supports\" in e.CSS) {\n for (; o--;) if (e.CSS.supports(c(n[o]), r)) return !0;\n return !1;\n }\n if (\"CSSSupportsRule\" in e) {\n for (var i = []; o--;) i.push(\"(\" + c(n[o]) + \":\" + r + \")\");\n return i = i.join(\" or \"), m(\"@supports (\" + i + \") { #modernizr { position: absolute; } }\", function (e) {\n return \"absolute\" == p(e, null, \"position\");\n });\n }\n return t;\n }\n function y(e, n, o, i) {\n function l() {\n p && (delete P.style, delete P.modElem);\n }\n if (i = r(i, \"undefined\") ? !1 : i, !r(o, \"undefined\")) {\n var f = v(e, o);\n if (!r(f, \"undefined\")) return f;\n }\n for (var p, c, d, m, y, g = [\"modernizr\", \"tspan\", \"samp\"]; !P.style && g.length;) p = !0, P.modElem = u(g.shift()), P.style = P.modElem.style;\n for (d = e.length, c = 0; d > c; c++) if (m = e[c], y = P.style[m], a(m, \"-\") && (m = s(m)), P.style[m] !== t) {\n if (i || r(o, \"undefined\")) return l(), \"pfx\" == n ? m : !0;\n try {\n P.style[m] = o;\n } catch (h) {}\n if (P.style[m] != y) return l(), \"pfx\" == n ? m : !0;\n }\n return l(), !1;\n }\n function g(e, n, t, o, i) {\n var s = e.charAt(0).toUpperCase() + e.slice(1),\n a = (e + \" \" + b.join(s + \" \") + s).split(\" \");\n return r(n, \"string\") || r(n, \"undefined\") ? y(a, n, o, i) : (a = (e + \" \" + j.join(s + \" \") + s).split(\" \"), f(a, n, t));\n }\n var h = [],\n C = [],\n S = {\n _version: \"3.6.0\",\n _config: {\n classPrefix: \"\",\n enableClasses: !0,\n enableJSClass: !0,\n usePrefixes: !0\n },\n _q: [],\n on: function on(e, n) {\n var t = this;\n setTimeout(function () {\n n(t[e]);\n }, 0);\n },\n addTest: function addTest(e, n, t) {\n C.push({\n name: e,\n fn: n,\n options: t\n });\n },\n addAsyncTest: function addAsyncTest(e) {\n C.push({\n name: null,\n fn: e\n });\n }\n },\n Modernizr = function Modernizr() {};\n Modernizr.prototype = S, Modernizr = new Modernizr();\n var _ = n.documentElement,\n w = \"svg\" === _.nodeName.toLowerCase(),\n x = \"Moz O ms Webkit\",\n b = S._config.usePrefixes ? x.split(\" \") : [];\n S._cssomPrefixes = b;\n var E = function E(n) {\n var r,\n o = prefixes.length,\n i = e.CSSRule;\n if (\"undefined\" == typeof i) return t;\n if (!n) return !1;\n if (n = n.replace(/^@/, \"\"), r = n.replace(/-/g, \"_\").toUpperCase() + \"_RULE\", r in i) return \"@\" + n;\n for (var s = 0; o > s; s++) {\n var a = prefixes[s],\n l = a.toUpperCase() + \"_\" + r;\n if (l in i) return \"@-\" + a.toLowerCase() + \"-\" + n;\n }\n return !1;\n };\n S.atRule = E;\n var j = S._config.usePrefixes ? x.toLowerCase().split(\" \") : [];\n S._domPrefixes = j;\n var z = {\n elem: u(\"modernizr\")\n };\n Modernizr._q.push(function () {\n delete z.elem;\n });\n var P = {\n style: z.elem.style\n };\n Modernizr._q.unshift(function () {\n delete P.style;\n }), S.testAllProps = g;\n var N = S.prefixed = function (e, n, t) {\n return 0 === e.indexOf(\"@\") ? E(e) : (-1 != e.indexOf(\"-\") && (e = s(e)), n ? g(e, n, t) : g(e, \"pfx\"));\n };\n Modernizr.addTest(\"objectfit\", !!N(\"objectFit\"), {\n aliases: [\"object-fit\"]\n }), o(), i(h), delete S.addTest, delete S.addAsyncTest;\n for (var T = 0; T < Modernizr._q.length; T++) Modernizr._q[T]();\n e.Modernizr = Modernizr;\n}(window, document);\n/* global GA4EventFactory */\n/* global NavigationFactory */\n/* global AddToCart */\nvar NavigationController = /*#__PURE__*/function () {\n function NavigationController(gA4EventFactory) {\n _classCallCheck(this, NavigationController);\n this.ga4EventFactory = gA4EventFactory || new GA4EventFactory('navigation_click');\n }\n return _createClass(NavigationController, [{\n key: \"bindNavClickListener\",\n value: function bindNavClickListener(link, location) {\n var that = this;\n link.onclick = function () {\n var eventData = NavigationFactory.createClickEventData(location, link.text);\n that.ga4EventFactory.create(eventData);\n };\n }\n }, {\n key: \"bindMySnhuListener\",\n value: function bindMySnhuListener(link) {\n var that = this;\n link.onclick = function () {\n var eventData = NavigationFactory.createMySnhuClickEventData();\n that.ga4EventFactory.create(eventData);\n };\n }\n }]);\n}();\nwindow.addEventListener('load', function () {\n var navigationController = new NavigationController();\n var header = document.getElementsByTagName('header')[0];\n if (header) {\n header.querySelectorAll('nav a').forEach(function (link) {\n navigationController.bindNavClickListener(link, 'header');\n });\n }\n var footer = document.getElementsByTagName('footer')[0];\n if (footer) {\n footer.querySelectorAll('nav a').forEach(function (link) {\n navigationController.bindNavClickListener(link, 'footer');\n });\n }\n var relatedLinks = document.getElementsByClassName('related-links');\n if (relatedLinks.length) {\n Array.from(relatedLinks).forEach(function (relatedLink) {\n relatedLink.querySelectorAll('nav a').forEach(function (link) {\n navigationController.bindNavClickListener(link, 'aside');\n });\n });\n }\n var breadcrumb = document.getElementsByClassName('breadcrumb')[0];\n if (breadcrumb) {\n breadcrumb.querySelectorAll('.breadcrumb-item a').forEach(function (link) {\n navigationController.bindNavClickListener(link, 'breadcrumb');\n });\n }\n var mySnhuLinks = document.querySelectorAll('a[href*=\"my.snhu.edu\"]');\n if (mySnhuLinks.length) {\n mySnhuLinks.forEach(function (link) {\n navigationController.bindMySnhuListener(link);\n });\n }\n\n /**\r\n * On click of prepop button\r\n * fire add_to_cart event\r\n * with program data\r\n */\n\n var prepopButtons = document.querySelectorAll('a[data-program-code]');\n if (!prepopButtons.length) {\n return;\n }\n var ga4EventFactory = new GA4EventFactory('add_to_cart');\n prepopButtons.forEach(function (prepopButton) {\n prepopButton.addEventListener('click', function () {\n var programPrepopButtonClick = new AddToCart();\n ga4EventFactory.create(programPrepopButtonClick.create());\n });\n });\n});\nvar NavigationFactory = /*#__PURE__*/function () {\n function NavigationFactory() {\n _classCallCheck(this, NavigationFactory);\n }\n return _createClass(NavigationFactory, null, [{\n key: \"createClickEventData\",\n value: function createClickEventData(linkLocation, linkText) {\n return {\n 'click': {\n 'navigation_place': linkLocation,\n 'navigation_category': '',\n 'navigation_item': linkText.trim()\n }\n };\n }\n }, {\n key: \"createMySnhuClickEventData\",\n value: function createMySnhuClickEventData() {\n return {\n 'event': 'my_snhu_click'\n };\n }\n }]);\n}();\nif (typeof exports !== \"undefined\") {\n module.exports = NavigationFactory;\n}\n/* global GA4EventFactory */\n/* global ViewItem */\n/* global PageViewFactory */\nvar PageController = /*#__PURE__*/function () {\n function PageController(pageView, ga4EventFactory) {\n _classCallCheck(this, PageController);\n this.pageView = pageView || new PageViewFactory();\n this.ga4Event = ga4EventFactory || new GA4EventFactory('pageview');\n }\n return _createClass(PageController, [{\n key: \"PageViewEvent\",\n value: function PageViewEvent() {\n var pageViewData = this.pageView.create();\n this.ga4Event.create(pageViewData);\n }\n }]);\n}();\nif (typeof exports !== 'undefined') {\n module.exports = PageController;\n}\nwindow.addEventListener('load', function () {\n var pageViewController = new PageController();\n pageViewController.PageViewEvent();\n var isProgramPage = document.querySelector('a[data-parent-program=\"true\"]');\n if (!isProgramPage) {\n return;\n }\n var gA4EventFactory = new GA4EventFactory(\"view_item\");\n var programPageView = new ViewItem();\n var dimensionWritten = new GA4EventFactory(\"dimensionsWritten\");\n gA4EventFactory.create(programPageView.create());\n dimensionWritten.create();\n});\n/* global CookieProvider */\n/* global templateId */\nvar PageViewFactory = /*#__PURE__*/function () {\n function PageViewFactory(snhuCookieProvider) {\n _classCallCheck(this, PageViewFactory);\n this.snhuCookieProvider = snhuCookieProvider || new CookieProvider();\n this.formSubmitCookieValues = this.snhuCookieProvider.getValueAsJson(\"formSubmitCookie\");\n this.croTestCookieValue = this.snhuCookieProvider.getValueAsString(\"ssTestIds\");\n this.snhuCommunityMemberValue = this.snhuCookieProvider.getValueAsString(\"snhucommunitymember\");\n this.templateId = typeof templateId !== 'undefined' ? templateId : '';\n }\n return _createClass(PageViewFactory, [{\n key: \"create\",\n value: function create() {\n return {\n 'page': {\n 'vendor_unique_id': this.formSubmitCookieValues.leadId || '',\n 'content_group': '',\n 'program_page_group': '',\n 'online_degrees_section': '',\n 'template_id': this.templateId\n },\n 'user': {\n 'user_time_zone': Intl.DateTimeFormat().resolvedOptions().timeZone,\n 'cro_test_id': this.croTestCookieValue || '',\n 'international_student': this.formSubmitCookieValues.isIntlStudent || '',\n 'military_status': this.formSubmitCookieValues.militaryStatus || '',\n 'military_branch': this.formSubmitCookieValues.militaryBranch || '',\n 'military_affiliation': this.formSubmitCookieValues.militaryAffiliation || '',\n 'zip_code': this.formSubmitCookieValues.zipCode || ''\n }\n };\n }\n }]);\n}();\nif (typeof exports !== 'undefined') {\n module.exports = PageViewFactory;\n}\n// NOTE: Gulp adds this file to /components/Legacy, changes should be applied to the file found in /components/Feature\n\n/**\r\n * Controls the behavior of the primary skip navigation and jump links\r\n */\nvar SkipNavigationController = /*#__PURE__*/function () {\n function SkipNavigationController() {\n _classCallCheck(this, SkipNavigationController);\n }\n return _createClass(SkipNavigationController, null, [{\n key: \"mainElement\",\n get:\n /**\r\n * Return the
tag as a node\r\n * @return Node\r\n */\n function get() {\n return document.querySelector(SkipNavigationController.skipNavButton.getAttribute('href'));\n }\n\n /**\r\n * Returns the string used to find focusable elements\r\n * @return String\r\n */\n }, {\n key: \"focusableQueryString\",\n get: function get() {\n return 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n }\n\n /**\r\n * Returns the skip navigation button as a node.\r\n * @return Node\r\n */\n }, {\n key: \"skipNavButton\",\n get: function get() {\n return document.querySelector('.skip-navigation');\n }\n\n /**\r\n * Remove the overlay\r\n */\n }, {\n key: \"removeOverlay\",\n value: function removeOverlay(a) {\n document.querySelector('.modal-backdrop').classList.remove('show');\n a.classList.remove('overlay-focus');\n }\n }, {\n key: \"escapeKeyRemoveOverlay\",\n value: function escapeKeyRemoveOverlay(e, a) {\n var key = e.key;\n if (key === 'Escape' || key === 'Esc') {\n SkipNavigationController.removeOverlay(a);\n }\n }\n }, {\n key: \"offClickRemoveOverlay\",\n value: function offClickRemoveOverlay(e, a) {\n var notFound = -1;\n if ((!e.target.href || e.target.href.indexOf(a.id) === notFound) && e.target.closest('.modal-content') === null) {\n SkipNavigationController.removeOverlay(a);\n }\n }\n\n /**\r\n * Show the overlay\r\n * @param {Node} a\r\n */\n }, {\n key: \"showOverlay\",\n value: function showOverlay(a) {\n var modalDiv = document.querySelector('.modal-backdrop');\n if (modalDiv !== undefined) {\n modalDiv.classList.add('show');\n a.classList.add('overlay-focus');\n\n // Escape Key event\n document.addEventListener('keydown', function (e) {\n e.preventDefault();\n SkipNavigationController.escapeKeyRemoveOverlay(e, a);\n });\n\n // Overlay off click event\n document.addEventListener('click', function (e) {\n e.preventDefault();\n SkipNavigationController.offClickRemoveOverlay(e, a);\n });\n }\n }\n\n /**\r\n * Sets the focus of the document in the first focusable item in the given main element or the target itself\r\n * @param {Node} e\r\n */\n }, {\n key: \"setFocusItem\",\n value: function setFocusItem(e) {\n if (e !== null) {\n // 5/16/22 - This code is also temporary\n if (e.hasAttribute('tabindex') || e.tagName.toLocaleLowerCase() === 'select' || e.tagName.toLocaleLowerCase() === 'input') {\n e.focus();\n } else {\n var focusables = e.querySelectorAll(SkipNavigationController.focusableQueryString);\n for (var _i6 = 0; _i6 < focusables.length; _i6++) {\n if (focusables[_i6].closest('header') === null) {\n focusables[_i6].focus();\n break;\n }\n }\n }\n }\n }\n\n /**\r\n * Sets the scrollto location for the jump link target so it isn't behind the sticky primary nav\r\n * @param {Node} scrollTarget\r\n */\n }, {\n key: \"scrollToArea\",\n value: function scrollToArea(scrollTarget) {\n /* eslint-disable no-magic-numbers */\n var offset = 50; // Height of the mobile primary nav\n var mobileViewPort = 991;\n if (window.innerWidth > mobileViewPort) {\n offset = 137; // Height of the desktop primary nav\n }\n /* eslint-enable no-magic-numbers */\n\n var y = scrollTarget.getBoundingClientRect().top + window.pageYOffset - offset;\n window.scrollTo({\n top: y,\n behavior: 'smooth'\n });\n }\n\n /**\r\n * Initate all the work to scroll to and set any additional settings\r\n * @param {Node} a\r\n */\n }, {\n key: \"skipNavInit\",\n value: function skipNavInit(a) {\n var targetItem = document.getElementById(a.getAttribute('href').replace('#', ''));\n if (targetItem !== null) {\n // If the target is a form show the overaly and set focus on the appropriate form element\n if (a.getAttribute('href').indexOf('form') > -1) {\n this.setFocusItem(targetItem);\n } else {\n this.showOverlay(targetItem);\n }\n this.scrollToArea(targetItem);\n }\n }\n }]);\n}(); // Export for Jest testing\nif (typeof exports !== 'undefined') {\n module.exports = SkipNavigationController;\n}\nvar snhuCookie = function () {\n var GlobalTrackingCookieName = \"SNHUGlobalTracking\";\n var VenpubIDCookieName = \"SNHUvenpubid\";\n var GlobalTrackingDomain = \"snhu.edu\";\n var GlobalTrackingDaysActive = 30;\n var TrackingName = \"Tracking\";\n var GlobalTrackingParams = [\"nan_pid\", \"ioguid\", \"k_clickid\", \"venpubid\", \"adxcel_clickid\", \"searchedterm\", \"pfsegment\", \"matchtype\", \"device\", \"msclkid\", \"gclid\"];\n function RenameSearchEngineClickIds(obj) {\n var ClickId = obj['msclkid'] || obj['gclid'];\n delete obj['msclkid'];\n delete obj['gclid'];\n if (ClickId) {\n obj['ClickId'] = ClickId;\n }\n }\n function GetCookieByName(name) {\n var pos = document.cookie.indexOf(name + '=');\n if (pos == -1) {\n return null;\n } else {\n var pos2 = document.cookie.indexOf(';', pos);\n if (pos2 == -1) {\n return unescape(document.cookie.substring(pos + name.length + 1));\n } else {\n return unescape(document.cookie.substring(pos + name.length + 1, pos2));\n }\n }\n }\n function WriteCookie(cookieValue, cookieName) {\n var date = new Date();\n date.setTime(date.getTime() + 1000 * 60 * 60 * 24 * GlobalTrackingDaysActive);\n document.cookie = \"\".concat(cookieName, \"=\").concat(cookieValue, \";expires=\").concat(date, \";path=/;domain=.\").concat(GlobalTrackingDomain, \";\");\n }\n function ExpireCookie(cookieName) {\n var date = new Date();\n date.setTime(date.getTime() - 1000 * 60 * 60 * 24 * GlobalTrackingDaysActive);\n document.cookie = \"\".concat(cookieName, \"=;expires=\").concat(date, \";path=/;domain=.\").concat(GlobalTrackingDomain, \";\");\n }\n\n // Convert a list of objects into a serialized format for the cookie.\n function serialize(list) {\n return list.map(function (val, i) {\n return \"\".concat(TrackingName).concat(i + 1, \"=\").concat(escape(JSON.stringify(val)));\n }).join('&');\n }\n\n // Return an array of tracker values from the cookie.\n function deserialize(str) {\n if (!str) {\n return [];\n }\n return str.split('&').reduce(function (acc, val) {\n var v = val.split('=');\n var trackerKey = v[0];\n var trackerValue = unescape(v[1]);\n acc.push(JSON.parse(trackerValue));\n return acc;\n }, []);\n }\n function PopulateCookieFromQueryString() {\n // if querystring is empty, don't bother.\n if (!window.location.search) {\n return;\n }\n\n // Start with what's on the querystring.\n var qs = window.location.search.replace(/^\\?/, '').split('&').reduce(function (acc, val) {\n var items = val.split('=');\n var k = items[0];\n var v = items[1];\n acc[k] = v;\n return acc;\n }, {});\n var trackingParams = {};\n if (!Object.entries) Object.entries = function (obj) {\n var ownProps = Object.keys(obj),\n i = ownProps.length,\n resArray = new Array(i); // preallocate the Array\n while (i--) resArray[i] = [ownProps[i], obj[ownProps[i]]];\n return resArray;\n };\n\n // polyfill method for IE11 and older\n Object.entries(qs).forEach(function (qsParam) {\n var key = qsParam[0];\n var value = qsParam[1];\n if (GlobalTrackingParams.indexOf(key) > -1) {\n if (value) {\n trackingParams[key] = value;\n }\n }\n });\n if (Object.entries(trackingParams).length > 0) {\n RenameSearchEngineClickIds(trackingParams);\n var trackerValues = []; //deserialize(trackingCookieValue);\n // Append to the list of trackers\n trackerValues.push(trackingParams);\n\n // Serialize this\n var trackingCookieValue = serialize(trackerValues);\n\n // Write to cookie\n WriteCookie(trackingCookieValue, GlobalTrackingCookieName);\n\n //clear the venpubid in case this string doesn't contain one. We only want to store the most recent click's venpubid\n ExpireCookie(VenpubIDCookieName);\n }\n\n // If this string contains a venpubid parameter, write the venpubid cookie so we can use it to populate a conversion pixel (WSP-9823)\n if (trackingParams[\"venpubid\"] != null && trackingParams[\"venpubid\"].length > 0) {\n WriteCookie(trackingParams[\"venpubid\"], VenpubIDCookieName);\n }\n }\n function GetQueryStringParameter(name) {\n name = String(name).replace(/[.*+?|()[\\]{}\\\\]/g, '\\\\$&');\n var match = RegExp('[?&]' + name.toLowerCase() + '=([^&]*)').exec(window.location.search.toLowerCase());\n return match && decodeURIComponent(match[1].replace(/\\+/g, ' '));\n }\n function ParseReferrerString(referrerString) {\n var arr = referrerString.split('&');\n for (var j = 0; j < arr.length; j++) {\n if (arr[j].replace('?', '').indexOf('utm_source') == 0) {\n $('input#Source,input[name$=\"Source\"]').not('input[name=\"FormSource\"]').val(arr[j].substring(arr[j].indexOf('=') + 1, arr[j].length));\n }\n if (arr[j].replace('?', '').indexOf('utm_medium') == 0) {\n $('input#Medium,input[name$=\"Medium\"]').val(arr[j].substring(arr[j].indexOf('=') + 1, arr[j].length));\n }\n if (arr[j].replace('?', '').indexOf('utm_content') == 0) {\n $('input#Content,input[name$=\"Content\"]').val(arr[j].substring(arr[j].indexOf('=') + 1, arr[j].length));\n }\n if (arr[j].replace('?', '').indexOf('utm_campaign') == 0) {\n $('input#Campaign,input[name$=\"Campaign\"]').not('input[name=\"SfCampaign\"]').val(arr[j].substring(arr[j].indexOf('=') + 1, arr[j].length));\n }\n if (arr[j].replace('?', '').indexOf('SNHU_Segment') == 0) {\n $('input#Segment,input[name$=\"Segment\"]').val(arr[j].substring(arr[j].indexOf('=') + 1, arr[j].length));\n }\n if (arr[j].replace('?', '').indexOf('utm_term') == 0) {\n $('input#Term,input[name$=\"Term\"]').val(arr[j].substring(arr[j].indexOf('=') + 1, arr[j].length));\n }\n }\n }\n function BuildSNHUReferrerCookie() {\n var defaultReferrer = '?utm_source=snhu&utm_medium=webform&utm_content=01&utm_campaign=SNHUEDU&SNHU_Segment=Unknown';\n var source = GetQueryStringParameter('utm_source');\n var medium = GetQueryStringParameter('utm_medium');\n var content = GetQueryStringParameter('utm_content');\n var campaign = GetQueryStringParameter('utm_campaign');\n var segment = GetQueryStringParameter('snhu_segment');\n var term = GetQueryStringParameter('utm_term');\n if (segment == 'null') {\n segment = \"ol\";\n }\n var currentCookie = GetCookieByName('GoogleString');\n var cookieString = '?utm_source=' + source + '&utm_medium=' + medium + '&utm_content=' + content + '&utm_campaign=' + campaign + '&SNHU_Segment=' + segment + '&utm_term=' + term;\n var date = new Date();\n date.setTime(date.getTime() + 1000 * 60 * 60 * 24 * 2);\n if (source !== null && source != '') {\n WriteCookie(cookieString, 'GoogleString');\n $('input[name$=\"PageId\"],input#PageId').val(cookieString);\n $('input[name$=\"Source\"]').not('input[name=\"FormSource\"]').val(source);\n $('input[name$=\"Medium\"]').val(medium);\n $('input[name$=\"Campaign\"]').not('input[name=\"SfCampaign\"]').val(campaign);\n $('input[name$=\"Segment\"]').val(segment);\n $('input[name$=\"Content\"]').val(content);\n } else {\n if (currentCookie !== null) {\n // no query string, but there is a cookie\n $('input[name$=\"PageId\"],input#PageId').val(unescape(currentCookie));\n ParseReferrerString(unescape(currentCookie));\n } else {\n try {\n var gacookie = new gaCookies();\n var gaString = '?utm_source=' + gacookie.getCampaignSource() + '&utm_medium=' + gacookie.getCampaignMedium() + '&utm_content=' + gacookie.getCampaignContent() + '&utm_campaign=' + gacookie.getCampaignName() + '&utm_term=' + gacookie.getCampaignTerm() + '&SNHU_Segment=';\n $('input[name$=\"PageId\"],input#PageId').val(gaString);\n $('input[name$=\"Source\"]').not('input[name=\"FormSource\"]').val(gacookie.getCampaignSource());\n $('input[name$=\"Medium\"]').val(gacookie.getCampaignMedium());\n $('input[name$=\"Campaign\"]').not('input[name=\"SfCampaign\"]').val(gacookie.getCampaignName());\n $('input[name$=\"Segment\"]').val('');\n $('input[name$=\"Content\"]').val(gacookie.getCampaignContent());\n ParseReferrerString(gaString);\n } catch (err) {\n try {\n $('input[name$=\"PageId\"],input#PageId').val(defaultReferrer);\n ParseReferrerString(defaultReferrer);\n } catch (e) {\n if (window.console && typeof window.console.log === 'function') {\n window.console.log(e);\n }\n }\n }\n }\n }\n }\n function init() {\n BuildSNHUReferrerCookie();\n PopulateCookieFromQueryString();\n }\n init();\n return {\n GetQueryStringParameter: GetQueryStringParameter\n };\n}();\n\n/*\r\n * Generic cookie utility to get, set, read values (for multi value cookies), update values (for multi value cookies)\r\n * This is just the start of this helper - should be expanded on as needed.\r\n */\nvar SnhuCookieUtil = /*#__PURE__*/function () {\n /* Constructor */\n function SnhuCookieUtil(name) {\n _classCallCheck(this, SnhuCookieUtil);\n this.name = name;\n this.domain = \"snhu.edu\";\n this.cookieValues = {};\n }\n\n /* Get cookie values for string cookie with multilple values\r\n * Will return a JSON object with the name of the cookie as the key for single value cookies\r\n * Currently applies to:\r\n * Thank You Cookie\r\n * Eccommerce Cookie (not using this class)\r\n * Update after/during story 10208 - Migrate Cookie and JS Code to use JSON format */\n return _createClass(SnhuCookieUtil, [{\n key: \"getCookieValues\",\n value: function getCookieValues() {\n var cookieContents = this.getCookie();\n var jsonCookieValues = {};\n var _cookieValues = cookieContents.split(',');\n if (_cookieValues.length <= 1) {\n jsonCookieValues[this.name] = cookieContents;\n } else {\n _cookieValues.forEach(function (cookieString) {\n var cookieStringSplit = cookieString.split(':');\n jsonCookieValues[cookieStringSplit[0]] = cookieStringSplit[1];\n });\n }\n this.cookieValues = jsonCookieValues;\n }\n\n /* Specific value from the cookie\r\n * Gets a cookie value after the cookie has been converted to JSON object\r\n * cookieValues - JSON\r\n * @param {string} cookieValue - name of the key of value requested\r\n * returns string */\n }, {\n key: \"getCookieValue\",\n value: function getCookieValue(cookieValue) {\n if (Object.keys(this.cookieValues).includes(cookieValue)) {\n return this.cookieValues[cookieValue];\n }\n return '';\n }\n\n /* Returns a cookie's value with the given name, if not found returns empty string. */\n }, {\n key: \"getCookie\",\n value: function getCookie() {\n var cookieName = this.name + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var splitCookie = decodedCookie.split(';');\n for (var _i7 = 0; _i7 < splitCookie.length; _i7++) {\n var c = splitCookie[_i7];\n c = c.trim();\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.indexOf('=') + 1);\n }\n }\n return '';\n }\n\n /* Sets a cookie.\r\n * @param {string} cookieValue - the string value of the cookie to be set\r\n * @param {number} expiration - number of days to add to current date-time\r\n */\n }, {\n key: \"setCookie\",\n value: function setCookie(cookieValue, expiration) {\n var domainString = this.domain === \"\" ? this.domain : \"domain=\" + this.domain + \";\";\n if (expiration === undefined) {\n document.cookie = \"\".concat(this.name, \"=\").concat(encodeURIComponent(cookieValue), \";path=/;\").concat(domainString);\n } else {\n var date = new Date();\n date.setDate(date.getDate() + expiration);\n var expires = \"expires=\" + date.toUTCString();\n document.cookie = \"\".concat(this.name, \"=\").concat(encodeURIComponent(cookieValue), \";\").concat(expires, \";path=/;\").concat(domainString);\n }\n }\n }]);\n}();\nif (typeof exports !== \"undefined\") {\n module.exports = SnhuCookieUtil;\n}\nvar SnhuFetchUtil = /*#__PURE__*/function () {\n function SnhuFetchUtil(customRequestSettings) {\n _classCallCheck(this, SnhuFetchUtil);\n this.requestSettings = _objectSpread({\n mode: \"cors\",\n // no-cors, *cors, same-origin\n cache: \"no-cache\",\n // *default, no-cache, reload, force-cache, only-if-cached\n defaultTimeout: 10000,\n // set default fetch timeout to 10 seconds\n headers: {\n \"X-Requested-With\": \"XMLHttpRequest\"\n }\n }, customRequestSettings);\n }\n\n // helper function/s\n\n // Response handler/parser\n return _createClass(SnhuFetchUtil, [{\n key: \"get\",\n value: function get(url) {\n var requestOptions = _objectSpread(_objectSpread({}, this.requestSettings), {}, {\n method: \"GET\"\n });\n return SnhuFetchUtil.timeoutPromise(this.requestSettings.defaultTimeout, fetch(url, requestOptions).then(SnhuFetchUtil.handleResponse));\n }\n }, {\n key: \"post\",\n value: function post(url, body) {\n var requestOptions = _objectSpread(_objectSpread({}, this.requestSettings), {}, {\n method: \"POST\",\n body: body\n });\n return SnhuFetchUtil.timeoutPromise(this.requestSettings.defaultTimeout, fetch(url, requestOptions).then(SnhuFetchUtil.handleResponse));\n }\n }, {\n key: \"put\",\n value: function put(url, body) {\n var requestOptions = _objectSpread(_objectSpread({}, this.requestSettings), {}, {\n method: \"PUT\",\n body: body\n });\n return SnhuFetchUtil.timeoutPromise(this.requestSettings.defaultTimeout, fetch(url, requestOptions).then(SnhuFetchUtil.handleResponse));\n }\n }], [{\n key: \"handleResponse\",\n value: function handleResponse(response) {\n return response.text().then(function (text) {\n // If response is outside of 200 block reject the promise with the response status\n if (!response.ok) {\n return Promise.reject({\n status: response.status\n });\n }\n\n // If the response is null reject the promise with a no response from server message\n if (!text) {\n return Promise.reject(\"No response from server.\");\n }\n var data = {};\n // Try parsing the response if it's successful\n try {\n //set data to the parsed text\n data = JSON.parse(text);\n } catch (error) {\n // If the text can't be parsed, the response was invalid from the server, reject the promise\n return Promise.reject(\"Invalid response from server.\");\n }\n return data;\n });\n }\n\n // Timeout promise (removes timeout if promise was resolved or rejected internally)\n }, {\n key: \"timeoutPromise\",\n value: function timeoutPromise(miliseconds, promise) {\n return new Promise(function (resolve, reject) {\n var timeoutId = setTimeout(function () {\n reject(new Error(\"Fetch default timeout (\".concat(miliseconds, \" ms) reached.\")));\n }, miliseconds);\n promise.then(function (res) {\n clearTimeout(timeoutId);\n resolve(res);\n }, function (error) {\n clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n }]);\n}();\nif (typeof exports !== \"undefined\") {\n module.exports = SnhuFetchUtil;\n}\nvar SnhuUtilities = {\n //\n GetParameterByName: function GetParameterByName(name) {\n name = String(name).replace(/[.*+?|()[\\]{}\\\\]/g, '\\\\$&');\n var match = RegExp('[?&]' + name + '=([^&]*)', 'i').exec(window.location.search);\n return match && decodeURIComponent(match[1].replace(/\\+/g, ' '));\n },\n GetCurrentDateTime: function GetCurrentDateTime() {\n var today = new Date();\n var dd = today.getDate();\n var mm = today.getMonth() + 1; //January is 0!\n var yyyy = today.getFullYear();\n if (dd < 10) {\n dd = '0' + dd;\n }\n ;\n if (mm < 10) {\n mm = '0' + mm;\n }\n ;\n var hours = today.getHours();\n var minutes = today.getMinutes();\n if (minutes < 10) {\n minutes = '0' + minutes;\n }\n var seconds = today.getSeconds();\n if (seconds < 10) {\n seconds = '0' + seconds;\n }\n var milliseconds = today.getMilliseconds();\n if (milliseconds < 10) {\n milliseconds = '0' + seconds;\n }\n var today = mm + '/' + dd + '/' + yyyy + ' ' + hours + ':' + minutes + ':' + seconds + '.' + milliseconds;\n return today;\n },\n TextCounter: function TextCounter(field, cnt, maxlimit) {\n var cntfield = document.getElementById(cnt);\n if (field.value.length > maxlimit) {\n // if too long...trim it!\n field.value = field.value.substring(0, maxlimit);\n } else {\n // otherwise, update 'characters left' counter \n cntfield.value = maxlimit - field.value.length;\n }\n },\n SetCookie: function SetCookie(cname, cvalue, exdays, path) {\n var d = new Date();\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\n var expires = \"expires=\" + d.toUTCString() + \"; path=\" + path;\n document.cookie = cname + \"=\" + cvalue + \"; \" + expires;\n },\n GetCookie: function GetCookie(cname) {\n var name = cname + \"=\";\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n },\n ExpireCookie: function ExpireCookie(cname) {\n SnhuUtilities.SetCookie(cname, '', -1, '/');\n }\n};\n$(function () {\n superCookieInit();\n //chatTrack.Initialize();\n\n // CAEL menu removal hack\n //$('li a:contains(\"CAEL Partnership Program\")').parent('li').css('display', 'none');\n});\nfunction superCookieInit() {\n try {\n var trackingData = superCookie.load();\n if (trackingData === null || trackingData.urls === null || typeof trackingData.urls === 'undefined') {\n trackingData.urls = [];\n }\n var pageTrack = new track();\n pageTrack.url = document.URL;\n pageTrack.code = $('input.scCode').length === 0 ? '' : $('input.scCode').val();\n setTimeout(function () {\n superCookie.SetDefaults(trackingData);\n }, 2000);\n if (trackingData.urls.length === 0) {\n trackingData.urls.push(pageTrack);\n } else {\n var lastVisitDate = new Date(trackingData.urls[trackingData.urls.length - 1].date);\n if (trackingData.urls[trackingData.urls.length - 1].url !== document.URL || new Date() > lastVisitDate.setDate(lastVisitDate.getDate() + 2)) {\n trackingData.urls.push(pageTrack);\n }\n }\n while (trackingData.urls.length > superCookie.maxLength) {\n trackingData.urls.shift();\n }\n superCookie.save();\n if ($('input#CookieTrail').length === 0) {\n $('form').not('#searchForm').prepend($(''));\n }\n $('input[id$=\"CookieTrail\"]').val(JSON.stringify(superCookie.load()));\n } catch (err) {\n //console.log(err);\n }\n}\n;\nfunction track() {\n this.url = '';\n this.date = new Date();\n this.code = '';\n}\n;\n\n/************************************************************\r\nsuperCookie tracks a users path through the site.\r\ndata is stored as json in the cookie\r\n*************************************************************/\nvar superCookie = {\n maxLength: 20,\n data: {},\n load: function load() {\n var the_cookie = superCookie.GetCookieByName('snhuSuperCookie');\n if (the_cookie != null) {\n the_cookie = the_cookie.split(';');\n if (the_cookie[0]) {\n this.data = JSON.parse(unescape(the_cookie[0]));\n }\n }\n return this.data;\n },\n save: function save(expires, path) {\n var d = expires || new Date(2030, 2, 2);\n var p = path || '/';\n superCookie.WriteCookie('snhuSuperCookie', escape(JSON.stringify(this.data)), d.toUTCString(), p);\n },\n GetCookieByName: function GetCookieByName(name) {\n var pos = document.cookie.indexOf(name + '=');\n if (pos == -1) {\n return null;\n } else {\n var pos2 = document.cookie.indexOf(';', pos);\n if (pos2 == -1) {\n return unescape(document.cookie.substring(pos + name.length + 1));\n } else {\n return unescape(document.cookie.substring(pos + name.length + 1, pos2));\n }\n }\n },\n WriteCookie: function WriteCookie(cookieName, cookieValue, cookieExpiresDate, path) {\n var cookieString = escape(cookieValue);\n var date = cookieExpiresDate;\n document.cookie = cookieName + '=' + cookieValue + ';expires=' + cookieExpiresDate + ';path=' + path + ';domain=.snhu.edu;';\n },\n SetDefaults: function SetDefaults(trackingData) {\n try {\n for (i = trackingData.urls.length - 1; i >= 0; i--) {\n if (trackingData.urls[i].code && trackingData.urls[i].code.toLowerCase() != 'msn' && trackingData.urls[i].code.toLowerCase() != 'msncle' && trackingData.urls[i].code.toLowerCase() != 'bsn' && trackingData.urls[i].code.toLowerCase() != 'rnmsn' && trackingData.urls[i].code.toLowerCase() != 'cwougn' && trackingData.urls[i].code.toLowerCase() != 'msnsgr') {\n var prog = $('select#ProgramofInterest option[value^=\"' + trackingData.urls[i].code.toUpperCase() + '\"]');\n if (prog !== 'undefined' && prog.length > 0) {\n if ($($(prog)[0]).attr('class')) {\n $('select#AcademicLevel').val($($(prog)[0]).attr('class').toLowerCase() == 'gr' ? 'graduate' : 'undergraduate');\n //$('select#ProgramofInterest').val(trackingData.urls[i].code); \n $($(prog)[0]).attr('selected', 'selected');\n }\n }\n break;\n }\n }\n } catch (err) {\n //console.log(err);\n }\n }\n};\n\n// code below handles asp.net updatepanel partial page loads\nfunction pageLoad(sender, args) {\n superCookieInit();\n}\n;\n/* global SnhuCookieUtil */\nvar ThankYouCookie = /*#__PURE__*/function () {\n function ThankYouCookie() {\n _classCallCheck(this, ThankYouCookie);\n }\n return _createClass(ThankYouCookie, null, [{\n key: \"getFirstName\",\n value: function getFirstName(form) {\n var firstNameField = form.getAttribute('data-tyc-fname');\n if (firstNameField) {\n return form[firstNameField].value;\n }\n return \"\";\n }\n }, {\n key: \"getLastName\",\n value: function getLastName(form) {\n var lastNameField = form.getAttribute('data-tyc-lname');\n if (lastNameField) {\n return form[lastNameField].value;\n }\n return \"\";\n }\n }, {\n key: \"getProgramName\",\n value: function getProgramName(form) {\n var programNameField = form.getAttribute('data-tyc-pname');\n if (programNameField) {\n //programName = form[programNameField].value;\n var programDropdown = document.getElementById(programNameField);\n return programDropdown.options[programDropdown.selectedIndex].text;\n }\n return \"\";\n }\n /*eslint-enable class-methods-use-this */\n\n /* set the cookie for the thank you page */\n }, {\n key: \"storeThankYouValues\",\n value: function storeThankYouValues(form, data) {\n return new Promise(function (resolve) {\n if (form.hasAttribute('data-tyc-fname') && form.hasAttribute('data-tyc-lname') && form.hasAttribute('data-tyc-pname')) {\n var cookieName = 'snhuThankYouCookie';\n var _snhuCookie = new SnhuCookieUtil(cookieName);\n var firstName = ThankYouCookie.getFirstName(form);\n var lastName = ThankYouCookie.getLastName(form);\n var programName = ThankYouCookie.getProgramName(form);\n var encryptedLeadId = data.encryptedleadid;\n var responseTimeout = data.responsetimeoutinsecond;\n var cookieValue = \"firstname:\".concat(encodeURI(firstName), \",lastname:\").concat(encodeURI(lastName), \",programname:\").concat(programName, \",encryptedleadid:\").concat(encryptedLeadId, \",responsetimeoutinsecond:\").concat(responseTimeout);\n _snhuCookie.setCookie(cookieValue);\n }\n resolve(data);\n });\n }\n }]);\n}();\n/* istanbul ignore next */\nif (typeof exports !== 'undefined') {\n module.exports = ThankYouCookie;\n}\n/* global GA4EventFactory */\n/* global Purchase */\n/* global FormSubmitFactory */\n/* global CookieProvider */\nvar ThankYouFacade = /*#__PURE__*/function () {\n function ThankYouFacade() {\n _classCallCheck(this, ThankYouFacade);\n }\n return _createClass(ThankYouFacade, [{\n key: \"init\",\n value:\n // eslint-disable-next-line class-methods-use-this\n function init() {\n ThankYouFacade.triggerFormSubmitEventPushes();\n }\n }], [{\n key: \"createPurchaseEventPush\",\n value: function createPurchaseEventPush() {\n var purchase = new Purchase();\n var ga4Event = new GA4EventFactory('purchase');\n ga4Event.create(purchase.create());\n }\n }, {\n key: \"createFormSubmitEventPush\",\n value: function createFormSubmitEventPush() {\n var cookieName = 'formSubmitCookie';\n var cookieValue = 'formType';\n var snhuCookie = new CookieProvider();\n var formType = snhuCookie.getCookieValue(cookieName, cookieValue);\n var ga4Event = formType === 'international app' ? new GA4EventFactory('international_application_submit') : new GA4EventFactory('form_submit');\n var formSubmit = new FormSubmitFactory();\n var formSubmitCreation = formSubmit.create();\n ga4Event.create(formSubmitCreation);\n }\n }, {\n key: \"triggerFormSubmitEventPushes\",\n value: function triggerFormSubmitEventPushes() {\n var _snhuCookieProvider = new CookieProvider();\n var formSubmitCookie = 'formSubmitCookie';\n var formSubmitCookieExists = _snhuCookieProvider.checkCookie(formSubmitCookie);\n var dataLayerPushSuccessful = true;\n if (!formSubmitCookieExists) {\n // If there's an error pushing the events to the data layer set a flag so we know\n dataLayerPushSuccessful = false;\n } else {\n try {\n ThankYouFacade.createPurchaseEventPush();\n ThankYouFacade.createFormSubmitEventPush();\n } catch (e) {\n // If there's an error pushing the events to the data layer set a flag so we know\n dataLayerPushSuccessful = false;\n } finally {\n // Whether the push was successful, or there was an error, we need to delete\n // the cookie so we don't keep trying to push an empty object\n _snhuCookieProvider.deleteCookie(formSubmitCookie);\n }\n }\n return dataLayerPushSuccessful;\n }\n }]);\n}();\nif (typeof exports !== 'undefined') {\n module.exports = ThankYouFacade;\n}\nif (document.readyState === \"complete\") {\n var tYFacade = new ThankYouFacade();\n tYFacade.init();\n} else {\n window.addEventListener(\"load\", function () {\n var tYFacade = new ThankYouFacade();\n tYFacade.init();\n });\n}\n\n/**\r\n * Static class used to hold data for the thank you page dataa\r\n */\nvar ThankYouPageData = /*#__PURE__*/function () {\n function ThankYouPageData() {\n _classCallCheck(this, ThankYouPageData);\n }\n return _createClass(ThankYouPageData, null, [{\n key: \"transport\",\n value: /* eslint-disable-line no-unused-vars */\n\n /**\r\n * Transports the id data from the cshtml to the DOM as data attributes for the form code to find.\r\n * @param {String} firstName id of input field with first name value\r\n * @param {String} lastName id of input field with last name value\r\n * @param {String} programName id of select field with program name value\r\n */\n function transport(firstName, lastName, programName) {\n // Grabs the nodes for the inputs to see if they exist\n var firstNameNode = document.getElementById(firstName);\n var lastNameNode = document.getElementById(lastName);\n var programNameNode = document.getElementById(programName);\n if (firstNameNode !== null && lastNameNode !== null && programNameNode !== null) {\n // Checks to make sure all fields have the same parent form, reject operation if any are not true\n var firstLastSameForm = firstNameNode.closest('form') === lastNameNode.closest('form');\n var firstProgSameForm = firstNameNode.closest('form') === programNameNode.closest('form');\n var lastProgSameForm = lastNameNode.closest('form') === programNameNode.closest('form');\n if (firstLastSameForm && firstProgSameForm && lastProgSameForm) {\n // Grabs the parent form\n var targetForm = firstNameNode.closest('form');\n\n // Add data attributes to the form storing the ids of the required fields.\n targetForm.setAttribute('data-tyc-fname', firstName);\n targetForm.setAttribute('data-tyc-lname', lastName);\n targetForm.setAttribute('data-tyc-pname', programName);\n }\n }\n }\n }]);\n}(); // Export for Unit Testing\nif (typeof exports !== 'undefined') {\n module.exports = ThankYouPageData;\n}\n/**\r\n* Generic Tracking Controller class that can be applied to instances like Google cross-form or paid search.\r\n*/\nvar trackingController = /*#__PURE__*/function () {\n /**\r\n * Constructor for trackingController\r\n * @param {location} address\r\n * @param {array} paramNames\r\n * @param {String} cookieName\r\n * @param {int} expiration\r\n * @param {String} domain\r\n */\n function trackingController(address, paramNames, cookieName, expiration, domain) {\n _classCallCheck(this, trackingController);\n this.address = decodeURI(address);\n this.reqParams = paramNames;\n this.cookieName = cookieName;\n this.expiration = expiration;\n this.domain = domain;\n }\n\n /**\r\n * Converts an array to object with properties (assumes each two items are key value pairs)\r\n * @param {array} params\r\n * @param {int} increment\r\n */\n return _createClass(trackingController, [{\n key: \"cookieIsUpToDate\",\n value:\n /**\r\n * Compares the URL parameters with what's in the current cookie. True if cookie is up to date, otherwise false.\r\n * @param {Object} urlParams\r\n * @param {Object} cookieParams\r\n */\n function cookieIsUpToDate(urlParams, cookieParams) {\n if (Object.keys(urlParams).length === 0) {\n // if urlParams has no length, cookie is up to date.\n return true;\n } else if (Object.keys(cookieParams).length === 0 || Object.keys(urlParams).length !== Object.keys(cookieParams).length) {\n // case where there is no cookie or cookie has different num of params\n return false;\n }\n return this.cookieParamsAreUpToDate(urlParams, cookieParams);\n }\n\n /**\r\n * Checks to see if the param values in the url and the cookie are the same, returns true or false.\r\n * @param {Object} urlParams\r\n * @param {Object} cookieParams\r\n * @return {boolean}\r\n */\n }, {\n key: \"cookieParamsAreUpToDate\",\n value: function cookieParamsAreUpToDate(urlParams, cookieParams) {\n for (var i = 0; i < this.reqParams.length; i++) {\n var prop = this.reqParams[i];\n if (urlParams[prop] !== cookieParams[prop]) {\n return false;\n }\n }\n return true;\n }\n\n /**\r\n * Returns a cookie's values with the given name, if not found, returns -1.\r\n */\n }, {\n key: \"getCookie\",\n value: function getCookie() {\n var name = this.cookieName + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var splitCookie = decodedCookie.split(';');\n for (var _i8 = 0; _i8 < splitCookie.length; _i8++) {\n var c = splitCookie[_i8];\n c = c.trim();\n if (c.indexOf(name) === 0) {\n return c.substring(name.indexOf('=') + 1);\n }\n }\n return '';\n }\n\n /**\r\n * Retrieves query parameters from a given address.\r\n */\n }, {\n key: \"getQueryParams\",\n value: function getQueryParams() {\n var strAddress = this.address.toString();\n var params = strAddress.split('?');\n var paramMap = {};\n if (params.length > 1) {\n var paramPairs = params[1].split('&');\n paramPairs.forEach(function (currentValue) {\n var keyVal = currentValue.split('=');\n paramMap[keyVal[0]] = keyVal[1];\n });\n }\n return paramMap;\n }\n\n /**\r\n * Retrieves the parameter values from the user's current cookie.\r\n * @return {Object}\r\n */\n }, {\n key: \"retrieveCookie\",\n value: function retrieveCookie() {\n var cookie = this.getCookie();\n // Handles cookies with single param value\n if (this.reqParams.length === 1) {\n return cookie;\n }\n var cookieArray = [];\n if (cookie.toString() !== '') {\n cookieArray = cookie.toString().charAt(0) === '?' ? cookie.toString().substring(1).split(/&|=/) : cookie.toString().split(/&|=/);\n }\n return trackingController.arrayToParamObject(cookieArray);\n }\n\n /**\r\n * Retrieves the parameters listed in the URL given in the object.\r\n */\n }, {\n key: \"retrieveParameters\",\n value: function retrieveParameters() {\n var params = this.getQueryParams();\n var values = '';\n for (var i = 0; i < this.reqParams.length; i++) {\n var data = this.reqParams[i];\n if (params[data] !== undefined) {\n values = values.concat(data, '=', params[data], '&');\n }\n }\n return values;\n }\n\n /**\r\n * Performs cookie checks and overwrites to the tracked variables.\r\n */\n }, {\n key: \"run\",\n value: function run() {\n this.fetchedParams = this.retrieveParameters();\n this.cookieParams = this.retrieveCookie();\n var queryParam = this.fetchedParams !== '' ? this.fetchedParams.split(/&|=/) : [];\n var queryParamObj = trackingController.arrayToParamObject(queryParam);\n if (!this.cookieIsUpToDate(queryParamObj, this.cookieParams)) {\n // override existing cookie\n this.setCookie(this.fetchedParams, this.domain);\n }\n }\n\n /**\r\n * Performs cookie checks and overwrites variables based on input\r\n * @param {String} cookieValue\r\n */\n }, {\n key: \"runWithoutFetch\",\n value: function runWithoutFetch(cookieValue) {\n this.fetchedParams = cookieValue;\n this.cookieParams = this.retrieveCookie();\n\n // Set cookie if there is no cookie or the param values are different\n if (this.fetchedParams !== this.cookieParams) {\n this.setCookie(this.fetchedParams, this.domain);\n }\n }\n\n /**\r\n * Sets a cookie for the document based on the given parameters.\r\n * @param {string} cookieValues\r\n * @param {string} domain\r\n */\n }, {\n key: \"setCookie\",\n value: function setCookie(cookieValues, domain) {\n if (this.expiration < 1) {\n var domainString = domain === \"\" ? domain : \"domain=\" + domain + \";\";\n document.cookie = \"\".concat(this.cookieName, \"=\").concat(encodeURIComponent(cookieValues), \";path=/;\").concat(domainString);\n } else {\n var date = new Date();\n date.setTime(date.getTime() + this.expiration);\n var expires = \"expires=\" + date.toUTCString();\n var _domainString = domain === \"\" ? domain : \"domain=\" + domain + \";\";\n document.cookie = \"\".concat(this.cookieName, \"=\").concat(encodeURIComponent(cookieValues), \";\").concat(expires, \";path=/;\").concat(_domainString);\n }\n }\n\n /**\r\n * Get the referrer\r\n * @param {Object} refData\r\n * @return {Object}\r\n */\n }], [{\n key: \"arrayToParamObject\",\n value: function arrayToParamObject(params) {\n var obj = {};\n var increment = 2;\n if (params.length !== 0) {\n for (var i = 0; i < params.length; i += increment) {\n obj[params[i]] = params[i + 1];\n }\n }\n return obj;\n }\n }, {\n key: \"getReferrer\",\n value: function getReferrer(refData) {\n var splitValue = 2;\n var refValue = document.referrer.split('/')[splitValue];\n if (refValue !== '' && refValue !== undefined && refValue !== 'www.snhu.edu') {\n if (refValue === 'www.google.com') {\n refData.refSource = 'google';\n } else if (refValue.endsWith('search.yahoo.com')) {\n refData.refSource = 'yahoo';\n } else if (refValue === 'www.bing.com') {\n refData.refSource = 'bing';\n } else if (refValue === 'duckduckgo.com') {\n refData.refSource = 'duckduckgo';\n } else {\n refData.refSource = refValue;\n refData.medium = 'referral';\n }\n } else {\n refData.refSource = 'direct';\n refData.medium = 'direct';\n }\n\n // Update the session referrer\n sessionStorage.setItem('Referrer_Value', refData.refSource);\n return refData;\n }\n }]);\n}(); // export as a module for unit testing\nif (typeof exports !== 'undefined') {\n module.exports = trackingController;\n}\n\n// Initialize and run in IIFE\n(function () {\n var expiration = 2592000000; // 30 days\n\n // allow for local enviroment\n var domain = \"snhu.edu\";\n\n // Google Cross-Form Tracker Cookie\n var gCookieName = \"GoogleString\";\n var gParams = [\"utm_source\", \"utm_medium\", \"utm_content\", \"utm_campaign\", \"utm_term\", \"snhu_segment\"];\n var gTracker = new trackingController(window.location, gParams, gCookieName, expiration, domain);\n gTracker.run();\n\n // Paid Search Tracking\n var paidCookieName = \"SNHUGlobalTracking\";\n var paidParams = [\"nan_pid\", \"ioguid\", \"k_clickid\", \"venpubid\", \"adxcel_clickid\", \"searchedterm\", \"pfsegment\", \"matchtype\", \"device\", \"msclkid\", \"gclid\"];\n var paidTracker = new trackingController(window.location, paidParams, paidCookieName, expiration, domain);\n paidTracker.run();\n\n // SNHU Ad Tracking\n var adCookieName = \"SNHUAdTracking\";\n var adParams = [\"adkeyword\", \"admatchtype\", \"addevice\", \"adcampaignid\", \"adgroupid\", \"adcampaignname\", \"adgroupname\", \"adquery\", \"adnetwork\", \"adlocationid\", \"adplacement\"];\n var adTracker = new trackingController(window.location, adParams, adCookieName, expiration, domain);\n adTracker.run();\n window.addEventListener('load', function () {\n var gTrackerValue = gTracker.retrieveCookie();\n var refData = {\n referrerValue: sessionStorage.getItem('Referrer_Value'),\n refSource: 'No Referrer',\n medium: 'organic'\n };\n\n // Get the Referrer\n if (refData.referrerValue === null) {\n refData = trackingController.getReferrer(refData);\n }\n\n // If no utm parameters in the cookie, update the cookie\n if (Object.keys(gTrackerValue).length === 0) {\n var refCookie = 'utm_source=' + refData.refSource + '&utm_medium=' + refData.medium + '&utm_content=01&utm_campaign=SNHUEDU';\n gTracker.runWithoutFetch(refCookie);\n }\n\n // SNHU PrePop Cookie (SNHUProgramCode)\n var prepopButtons = document.querySelectorAll('a[data-program-code]');\n if (prepopButtons.length > 0) {\n var prepopTracker = new trackingController(window.location, [\"programid\"], \"SNHUProgramCode\", expiration, domain);\n var prepopLocation = new trackingController(window.location, [\"programid\"], \"SNHULocationCode\", expiration, domain);\n var prepopCategory = new trackingController(window.location, [\"programid\"], \"SNHUCategoryId\", expiration, domain);\n var prepopSubjectName = new trackingController(window.location, [\"programid\"], \"SNHUSubjectName\", expiration, domain);\n var prepopProgramID = new trackingController(window.location, [\"programid\"], \"SNHUProgramId\", expiration, domain);\n var prepopProgramGroupID = new trackingController(window.location, [\"programid\"], \"SNHUProgramGroupId\", expiration, domain);\n var prepopProgramName = new trackingController(window.location, [\"programid\"], \"SNHUProgramName\", expiration, domain);\n // Grabs first button with parent-program attribute\n var parentButton = document.querySelector('a[data-parent-program=\"true\"]');\n if (parentButton !== null) {\n prepopTracker.runWithoutFetch(parentButton.getAttribute('data-program-code'));\n prepopLocation.runWithoutFetch(parentButton.getAttribute('data-location-code'));\n prepopCategory.runWithoutFetch(parentButton.getAttribute('data-category-id'));\n prepopSubjectName.runWithoutFetch(parentButton.getAttribute('data-subject'));\n prepopProgramID.runWithoutFetch(parentButton.getAttribute('data-program-id'));\n prepopProgramGroupID.runWithoutFetch(parentButton.getAttribute('data-program-group-id'));\n prepopProgramName.runWithoutFetch(parentButton.getAttribute('data-program-name'));\n }\n\n // Set user interaction functions for non-parent prepop buttons.\n var buttons = document.querySelectorAll('a[data-prepop=\"true\"]:not([data-parent-program])');\n buttons.forEach(function (button) {\n var cookieValue = button.getAttribute('data-program-code');\n button.addEventListener('click', function () {\n prepopTracker.runWithoutFetch(cookieValue);\n prepopLocation.runWithoutFetch(button.getAttribute('data-location-code'));\n prepopCategory.runWithoutFetch(button.getAttribute('data-category-id'));\n prepopProgramID.runWithoutFetch(button.getAttribute('data-program-id'));\n prepopProgramGroupID.runWithoutFetch(button.getAttribute('data-program-group-id'));\n });\n });\n }\n\n // Set the InitialTab Cookie\n var indexTrue = -1;\n if (window.location.href.toLowerCase().indexOf('campus-majors') > indexTrue || window.location.href.toLowerCase().indexOf('online-degrees') > indexTrue) {\n var initialTabCookieName = 'Feature_Tabs_InitialTab';\n var initialTabParams = ['tablocation'];\n var initialTabTracker = new trackingController(window.location, initialTabParams, initialTabCookieName, expiration, domain);\n var cookieValue = window.location.href.toLowerCase().indexOf('campus-majors') > indexTrue ? 'Campus' : 'Online';\n initialTabTracker.runWithoutFetch(cookieValue);\n }\n\n // Set the RecentDegreeLevel Cookie\n var degreeLevels = ['certificates', 'associate', 'bachelors', 'masters', 'doctoral', 'undergraduate', 'graduate'];\n if (degreeLevels.some(function (degreeLevel) {\n return new RegExp('\\\\b' + degreeLevel.toLowerCase() + '\\\\b').test(window.location.href.toLowerCase());\n })) {\n var recentDegreeVisitedCookieName = 'RecentDegreeLevelVisited';\n var recentDegreeVisitTracker = new trackingController(window.location, ['optimizelyTestDegreeLevel'], recentDegreeVisitedCookieName, expiration, domain);\n var href = window.location.href.toLowerCase();\n var _cookieValue = '';\n if (href.indexOf('/certificates') > indexTrue) {\n _cookieValue = 'certificates';\n } else if (href.indexOf('/associate') > indexTrue) {\n _cookieValue = 'associate';\n } else if (href.indexOf('/bachelors') > indexTrue) {\n _cookieValue = 'bachelors';\n } else if (href.indexOf('/doctoral') > indexTrue) {\n _cookieValue = 'doctoral';\n } else if (href.indexOf('/undergraduate') > indexTrue) {\n if (href.indexOf('/bs-') > indexTrue || href.indexOf('/ba-') > indexTrue) {\n _cookieValue = 'bachelors';\n }\n } else if (href.indexOf('/masters') > indexTrue || href.indexOf('/graduate') > indexTrue) {\n _cookieValue = 'masters';\n }\n if (_cookieValue !== '') {\n recentDegreeVisitTracker.runWithoutFetch(_cookieValue);\n }\n }\n\n // Program Finder Cookies\n var pfLinks = document.querySelectorAll(\"a[href='/program-finder']\");\n pfLinks.forEach(function (pfLink) {\n pfLink.addEventListener('click', function () {\n var degreeLevelCookie = new trackingController(window.location, ['pfDegreeLevel'], 'SNHUProgramFinder_DegreeLevel', null, domain);\n var areaOfStudyCookie = new trackingController(window.location, ['pfAreaOfStudy'], 'SNHUProgramFinder_AreaOfStudy', null, domain);\n var locationCookie = new trackingController(window.location, ['pfLocation'], 'SNHUProgramFinder_Location', null, domain);\n var breakpoint = 992;\n if (window.innerWidth >= breakpoint) {\n locationCookie.runWithoutFetch('All');\n } else {\n locationCookie.runWithoutFetch('DED');\n }\n if (pfLink.hasAttribute('data-pf-widget')) {\n var degreeLevel = document.getElementById('degree-level');\n var areaOfStudy = document.getElementById('category');\n degreeLevelCookie.runWithoutFetch(degreeLevel.value);\n areaOfStudyCookie.runWithoutFetch(areaOfStudy.value);\n } else {\n degreeLevelCookie.runWithoutFetch('All');\n areaOfStudyCookie.runWithoutFetch('All');\n }\n });\n });\n\n // Thank you page cookie is in the forms.js file\n // It needed to be created after the form has been validated and before the submit is completed\n });\n})();\n/*\r\n * Behavior related to videos.\r\n */\nvar VideoController = function ($) {\n function ready() {\n $(\"a.video\").each(function () {\n var a = $(this);\n a.append(\"\");\n });\n $(\"div.video\").each(function () {\n var a = $(this);\n a.append(\"\");\n });\n }\n $(ready);\n}(jQuery);"]}