{"version":3,"sources":["chat.js","activity-center.js","mdexo.js","medallia.js","myteam.js","nav-md.js","nav-footer.js","nav-mymd.js","survey.js","SearchBoxSuggestion.js","splash-page.js"],"names":["_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","Number","res","call","TypeError","_createForOfIteratorHelper","o","allowArrayLike","i","it","iterator","Array","isArray","_unsupportedIterableToArray","length","s","F","n","done","e","_e","f","err","normalCompletion","didErr","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","MDM","SharedNav","Template","activityFilterSelector","document","getElementById","MeetingConfirmation","getNextMeetings","options","method","url","Params","navUrl","withCredentials","getNextAppointment","Utils","retryOperation","makeRequest","Constants","DefaultRetryDelay","DefaultRetryCount","then","data","JSON","parse","renderNextMeetingTemplate","appointment","let","d","Date","scheduledStart","daysUntilAppointment","getDaysDifference","dateOptions","month","day","year","timeOptions","timeZoneName","hour","minute","apointmentTpl","tplNode","content","querySelectorAll","appointmentVm","importNode","title","querySelector","descr","appointmentDate","appointmentTime","fc","ownerName","getCurrentLanguage","innerHTML","toLocaleDateString","toLocaleTimeString","concat","truncate","description","classList","add","Activities","sortOrder","this","sortFn","sortNumDesc","sortNumAsc","sortDateFn","sortDateDesc","sortDateAsc","filterOptionsValues","getActivities","filterOption","indexOf","getAct","keys","Promise","resolve","renderGroupedActivities","groupedActivities","years","sort","panel","cleanPanel","reject","panelTitles","index","nextElementSibling","remove","modifierClass","className","months","m","header","renderActivitiesYearMonthHeader","activities","renderActivityTemplate","insertAdjacentHTML","bindArchiveBtnEventHandlers","bindMessageLinkEventHandlers","runCallback","activitiesLoadedCallback","selector","buttons","forEach","elem","removeEventListener","ActivityCenterManager","archive","addEventListener","bind","getAttribute","MyMdUI","ActivityCenter","hide","renderAlerts","activityAlerts","renderActivityAlertsTemplate","bindAlertsDismissEventHandlers","ActivityAlerts","show","removeAlert","a","b","aDate","createdDate","parseInt","monthName","getMonthName","getClassForType","activityDisplayTemplateId","classTypeBase","classType","getTitleLimitForType","type","charLimit","getDescLimitForType","map","act","activityDefinitionId","date","titleLimit","descLimit","closeBtnAlt","id","join","filteredAlertsList","filter","alert","isRead","event","stopPropagation","msg","parentElement","childElementCount","groupTitle","previousElementSibling","headers","Content-Type","params","archiveReq","catch","error","unarchiveActivities","alertMsg","alertMsgCount","alertId","setTimeout","request","setActivitiesRead","filterActivities","SecureMessageNotification","secureMessageCount","self","uiActivityCenterLink","isVisible","notificationCssClass","secureMessageButtonUi","getSecureMessageCount","count","ActivityCenterVm","messageCount","meetingConfirmationMessages","messages","newMessageCount","el","getNewMessages","y","push","getActivityCount","idList","setActivitiesAsReadServerSide","newMessages","newMessageIds","updateActivitiesAsReadClientSide","updateActivityCenterMeetingListUi","getMeetings","meetingConfirmations","hasOwnProperty","activityFilter","tpl","parentNode","insertBefore","nextSibling","updateActivityCenterMessageListUi","updateActivityCenterAlertListUi","getAlerts","bindSelectActivityFilterUi","select","getLastLoginDate","getLoginDate","convertUTCDateToLocaleDate","locale","lastLoginDate","getTime","getTimezoneOffset","updateLastLoginDate","dateString","loginDate","dateSelector","isNaN","lang","getMonth","formatedDate","getDate","getFullYear","toLowerCase","getCountAndupdateActivityCenterMessageCounter","secureMessageNotification","secureCount","getTheActivityCount","updateBellCount","counterNumSelector","counterUi","message","dispatchClosingEvent","CustomEvent","dispatchEvent","init","uiActivityCenterPanel","Intercom","navSettings","_appId","isLspPage","chatSettings","appIdMdExo","appId","_intercomSettings","_hasInit","_chatApi","mdApiUrl","intercomSettings","language","mappedSettings","app_id","language_override","custom_nav_language","userProfile","isAuthenticated","is_authenticated","user_id","userName","email","userEmail","salutation","user_hash","userHash","custom_launcher_selector","hide_default_launcher","_navSettings","w","window","ic","c","arguments","q","args","l","createElement","x","async","src","onload","getElementsByTagName","readyState","attachEvent","boot","mdChatSubmitted","visitorInfo","updateVisitorInfo","intercomLoaded","reset","resetCookies","_step","intercomCookies","findCookies","_iterator","cname","eraseCookie","MdCookieDomain","getVisitorId","visitorId","interval","setInterval","clearInterval","PreChat","topicUpdated","_labels","en","emailRequired","emailInvalid","fr","_errors","_salutation","_fullName","_email","_topic","submitButton","submit","bindSelectTopicUi","parent","skipPreChat","getSkipPreChatStatus","promoteToIntercom","element","removeAttribute","setAttribute","updateValues","salutationElement","fullNameElement","emailElement","topicElement","otherTopicElement","validate","validateEmail","inputText","match","toggleErrorOverlay","toggleForm","toggleSkipPreChat","Chat","MdChatInstance","isSkipped","sessionStorage","setItem","SKIP_PRE_CHAT","removeItem","getItem","errors","innerText","toggleOtherTopicSection","launcherButtonClicked","contains","state","_state","_intercomInstance","_prechatInstance","switchState","chatElement","closeBtnInner","uiLauncherButtonClicked","launcher","launcherBtn","isAvailable","getChat","isLogoutPage","consts","AuthStatus","ANONYMOUS","AUTHENTICATING","AUTHENTICATED","isSubmitted","fullName","topic","preventDefault","MdExo","bindIntercomShutdown","template","NavTemplates","MYMD_MDEXO","onclick","toggleLanguage","setMdmLanguageCookie","nestLanguage","location","href","replace","search","newUrl","appendQueryStringParameter","forceLanguageOnLoad","queryLanguage","mdLanguage","Core","getParamInQuery","mdexoInstance","Medallia","medalliaSrc","_medalliaSrc","getSurvey","attr","g","am","h","head","fsr","aex","appendChild","aT","medalliaInstance","elementIds","advisorAddressBlock","phoneNumbersBlock","advisorLinkId","advisorPictureId","advisorNameLvl2","advisorAddressLine1","advisorAddressLine2","advisorAddressLine3","advisorTel","advisorTollFree","advisorFax","advisorName","advisorTitle","advisorInitials","classes","advisorPictureDefault","MyTeam","advisor","getAdvisorPromise","updateTemplate","showTemplate","timeout","fillField","elementId","style","display","updateAddressTemplate","addressLine1","addressLine1Fr","addressLine2","addressLine3","tel","fax","tollFreeTel","titleFr","initials","picture","visibility","advisorNode","myTeamInstance","MdUI","isMDMSharedHeaderBeenInitOnce","mdUtilityMenuMyMDPanelActiveDesktop","mdUtilityMenuMyMDPanelInactiveDesktop","mdUtilityMenuItemActiveDesktop","mdUtilityMenuLinkMyMDPanel","SearchBox","isInit","uiSearchPanel","uiSearchMenuItem","uiSearchInput","focus","blur","toggle","uiSearchActivate","uiHandlerSearchActivate","uiHandlerKeepAlive","HideAll","terminate","MainMenu","wasLastOpenedPanel","wasLastOpenedLink","link","uiLink1","uiLink2","uiLink3","uiLink4","uiContactLink","uiMapLink","uiReturnLink","uiHandlerReturnLink","lastPanel","lastLink","uiPanel1","uiPanel2","uiPanel3","uiPanel4","LanguageButton","uiHandlerLink1","uiHandlerLink2","uiHandlerLink3","uiHandlerLink4","uiHandlerLink5","toggleLanguageOnclick","HamburgerBtn","uiHamburgerSVGBar1","uiHamburgerSVGBar3","uiHamburgerMenu","uiMainMenu","uiUtilityMenu","MyMDMenu","uiMyMDPanel","uiHamburgerActivate","uiHandlerHamburgerActivate","uiMyMDMenuItem","uiMyMDActivate","uiHandlerMyMDActivate","CampaignMenu","uiCampaignLangButton","uiHandlerCampaignLangButton","InitHeader","TerminateHeader","body","uiHandlerHideAll","excludeSelf","mediaQuery","matchMedia","matches","FooterUI","isMDMSharedFooterBeenInitOnce","InitFooter","TerminateFooter","container","isBeenInitOnce","uiMainMenuLogo","uiMainMenuLink","uiMainMenuPanel","fauxSelectKeyManager","uiMainMenuSubpanels","menuSubpanel","uiMainMenuNetWorth","uiHandlerMainMenuLink","uiHandlerLanguageButton","hideAll","hideNetworthOption","netWorthOptionElementSubrow","hideDuplicateMobileNetworthOption","hideGoalsOption","goalsOptionElement","hideFinancialGoalsOption","financialGoalsOptionElement","toggleMainMenuSection","sectionSelector","hideFinancialPlanOption","financialPlanOptionDesktop","financialPlanOptionMobile","hideDocumentsOption","documentsOption","AdvisorMenu","uiAdvisorMenuLink","uiAdvisorMenuPanel","uiHandlerAdvisorMenuLink","hideBookMeeting","bookMeetingElement","ProfileMenu","uiProfileMenuLink","uiProfileMenuPanel","uiProfileMenuLanguage","uiHandlerProfileMenuLink","uiProfileMenuLanguageClick","hideDocumentDeliveryOption","documentdeliveryOption","uiActivityCenterBookMeetingBtn","uiActivityCenterSendMessageBtn","uiActivityCenterSendMessageCenterBtn","uiHandlerActivityCenterLink","uiHandlerActivityCenterBookMeetingBtn","initHeader","terminateHeader","handlerUIHideAllMenus","item","loadSimplifiedMenu","navNode","ElementIds","navigationContainer","firstChild","BaseSearch","submitSearch","searchOptions","urlWithParams","param","getParams","object","encodedString","prop","encodeURI","NavSearch","searchBoxSelector","searchResultBoxSelector","searchBtnSelector","super","queryOptions","onlineUrl","term","culture","beforeCallback","clearSuggestionUi","afterCallback","updateSuggestionUi","termSelector","containerSelector","submitSelector","searchInput","searchBtn","searchInputEmptyErrorEN","searchInputEmptyErrorFR","inputErrorClass","queryTimeOut","queryTimeOutLength","getSearchResult","handlerUISearchField","clearTimeout","keyCode","renderSearchResult","searchSuggestion","suggestion","Url","Title","searchSuggestions","resultBox","renderedHtml","SearchItems","SharedNavSearchBox","SplashPageConstants","splashPage","imageContainer","imageElement","contentContainer","buttonsContainer","buttonNextTime","buttonLearnMore","buttonNotInterested","splashPageVisible","button","buttonPrimary","colorPrefix","actions","learnMore","notInterested","nextTime","SplashPage","_id","_title","_content","_headerImageLink","_backgroundColor","_pageMode","_marketingUri","_buttons","isSplashPageChecked","load","currentLanguage","response","parsedResponse","found","loadSplashPageCallback","updateData","updateContent","toggleSplashPage","splashPageAction","splashConstants","toggleSplashPageCheck","imageLink","backgroundColor","pageMode","marketingUri","isReset","elements","updateText","updateImage","updateBgColor","updateButtons","elementContainerId","startsWith","buttonsContainerElement","currentButton","buttonElement","isPrimary","label","action","dataLayer","splashpage","SplashPageInstance","isChecked","setCookie","getCookieValue","Survey","surveySrc","_surveySrc","getElementsByClassName","array","data-vendor","data-role","forseeInstance"],"mappings":"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","file":"templates.min.js","sourcesContent":["\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\nMDM.SharedNav.Template.Intercom = class {\n constructor(navSettings) {\n this._appId = MDM.SharedNav.Utils.isLspPage() ? navSettings.chatSettings.appIdMdExo : navSettings.chatSettings.appId;\n this._intercomSettings = navSettings;\n this._hasInit = false;\n this._chatApi = navSettings.mdApiUrl;\n }\n\n get intercomSettings() {\n const language = MDM.SharedNav.Utils.getCurrentLanguage();\n const mappedSettings = {};\n\n mappedSettings.app_id = this._appId;\n mappedSettings.language_override = language;\n mappedSettings.custom_nav_language = language;\n\n if (this._intercomSettings.userProfile.isAuthenticated) {\n mappedSettings.is_authenticated = true;\n mappedSettings.user_id = this._intercomSettings.userProfile.userName;\n mappedSettings.email = this._intercomSettings.userProfile.userEmail;\n mappedSettings.name = this._intercomSettings.userProfile.salutation;\n mappedSettings.user_hash = this._intercomSettings.chatSettings.userHash;\n } else {\n mappedSettings.is_authenticated = false;\n }\n\n //custom_launcher_selector\n if (MDM.SharedNav.Utils.isLspPage()) {\n //for LSP page, add the custom launcher selectors\n mappedSettings.custom_launcher_selector = '#lsp-contactLink';\n mappedSettings.hide_default_launcher = true;\n }\n return mappedSettings;\n }\n\n set intercomSettings(navSettings) {\n this._navSettings = navSettings;\n }\n\n init() {\n const obj = () => { return this; };\n return new Promise((resolve, reject) => {\n var w = window;\n var ic = w.Intercom;\n if (typeof ic === \"function\") {\n ic('reattach_activator');\n ic('update', obj().intercomSettings);\n resolve();\n } else {\n var d = document;\n var i = function() {\n i.c(arguments);\n };\n i.q = [];\n i.c = function(args) {\n i.q.push(args);\n };\n w.Intercom = i;\n var l = function() {\n var s = d.createElement('script');\n s.type = 'text/javascript'; s.async = true;\n s.src = 'https://widget.intercom.io/widget/' + obj()._appId;\n s.onload = () => {\n resolve();\n };\n var x = d.getElementsByTagName('script')[0];\n x.parentNode.insertBefore(s, x);\n };\n if (document.readyState === 'complete') {\n l();\n } else if (w.attachEvent) {\n w.attachEvent('onload', l);\n } else {\n w.addEventListener('load', l, false);\n }\n }\n });\n }\n\n boot() {\n const obj = () => { return this; };\n window.Intercom('boot', obj().intercomSettings);\n }\n\n show(navSettings, mdChatSubmitted, visitorInfo) {\n //leverage getter logic to map to intercom known settings\n this.intercomSettings = navSettings;\n const obj = () => { return this; };\n\n\n if (this._hasInit && typeof window.Intercom !== 'undefined') {\n window.Intercom('update', obj().intercomSettings);\n if (mdChatSubmitted === true) {\n window.Intercom('show');\n obj().updateVisitorInfo(visitorInfo);\n }\n } else {\n const intercomLoaded = this.init();\n intercomLoaded\n .then(() => {\n obj().boot();\n if (mdChatSubmitted === true) {\n window.Intercom('show');\n obj().updateVisitorInfo(visitorInfo);\n }\n obj()._hasInit = true;\n });\n }\n }\n\n hide() {\n if (typeof window.Intercom !== 'undefined') {\n window.Intercom('shutdown');\n }\n }\n\n reset() {\n const obj = () => { return this; };\n this.init()\n .then(() => {\n window.Intercom('shutdown');\n obj().resetCookies();\n });\n }\n\n resetCookies() {\n let intercomCookies = MDM.SharedNav.Utils.findCookies(\"intercom-\");\n for (const cname of intercomCookies) {\n MDM.SharedNav.Utils.eraseCookie(cname, MDM.SharedNav.Constants.MdCookieDomain);\n }\n }\n\n updateVisitorInfo(visitorInfo) {\n this.getVisitorId()\n .then((visitorId) => {\n visitorInfo.visitorId = visitorId;\n const options = {\n method: 'POST',\n url: `${this._chatApi}/mdapi/chat/submit-visitor-info`,\n headers: {\n 'Content-Type': 'application/json'\n },\n params: visitorInfo\n };\n MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n })\n .catch((error) => {\n console.error(error);\n });\n }\n\n getVisitorId() {\n return new Promise(function (resolve, reject) {\n const interval = setInterval(() => {\n var visitorId = window.Intercom('getVisitorId');\n if (typeof visitorId !== 'undefined') {\n clearInterval(interval);\n resolve(visitorId);\n }\n },\n 400);\n\n //reject promise if it takes more than 2s\n setTimeout(() => {\n clearInterval(interval);\n reject('timeout happened');\n }, 2100);\n });\n }\n};\n\nMDM.SharedNav.Template.PreChat = class {\n constructor() {\n //by default all section are off and launcher button is at closed state\n this._labels = {\n en: {\n emailRequired: 'Email address is required.',\n emailInvalid: 'This email address is not valid.'\n },\n fr: {\n emailRequired: 'L’adresse courriel est obligatoire.',\n emailInvalid: 'L’adresse courriel n’est pas valide.'\n }\n };\n this._errors = [];\n\n this._salutation = '';\n this._fullName = '';\n this._email = '';\n this._topic = '';\n\n //bind form submit event\n const submitButton = document.getElementById('mdPreChat--form__submit');\n if (submitButton !== null && typeof submitButton !== 'undefined') {\n submitButton.addEventListener('click', event => {\n this.submit();\n });\n }\n\n //bind here so no js calls in HTML\n this.bindSelectTopicUi('#mdPreChat--form__topic');\n\n }\n\n bindSelectTopicUi = function (selector) {\n let select = document.querySelector(selector);\n if (select !== null && typeof select !== 'undefined') {\n select.removeEventListener('change', MDM.SharedNav.Template.PreChat.topicUpdated);\n select.addEventListener('change', MDM.SharedNav.Template.PreChat.topicUpdated.bind(this));\n }\n\n };\n\n show(parent) {\n const skipPreChat = MDM.SharedNav.Template.PreChat.getSkipPreChatStatus();\n if (skipPreChat!== null && skipPreChat === 'true') {\n //current session has already filled pre-chat... promote to chat directly\n\n parent.promoteToIntercom(false);\n } else {\n //current session has never completed pre-chat... go with normal flow\n const element = document.getElementById('mdIntercom--container');\n if (element !== null && typeof element !== 'undefined') {\n element.classList.add('mdIntercom--container--visible');\n element.removeAttribute('aria-hidden');\n }\n }\n\n }\n\n hide() {\n const element = document.getElementById('mdIntercom--container');\n if (element !== null && typeof element !== 'undefined') {\n element.classList.remove('mdIntercom--container--visible');\n element.setAttribute('aria-hidden', 'true');\n }\n }\n\n updateValues() {\n const salutationElement = document.getElementById('mdPreChat--form__salutation');\n const fullNameElement = document.getElementById('mdPreChat--form__fullName');\n const emailElement = document.getElementById('mdPreChat--form__email');\n const topicElement = document.getElementById('mdPreChat--form__topic');\n const otherTopicElement = document.getElementById('mdPreChat--form__other');\n\n this._salutation = salutationElement === null || typeof salutationElement === 'undefined' ? '' : salutationElement.value;\n this._fullName = fullNameElement === null || typeof fullNameElement === 'undefined' ? '' : fullNameElement.value;\n this._email = emailElement === null || typeof emailElement === 'undefined' ? '' : emailElement.value;\n this._topic = topicElement === null || typeof topicElement === 'undefined'\n ? ''\n : topicElement.value !== 'other'\n ? topicElement.value\n : otherTopicElement === null || typeof otherTopicElement === 'undefined'\n ? ''\n : otherTopicElement.value;\n }\n\n validate() {\n this._errors = [];\n\n this.updateValues();\n return this.validateEmail();\n }\n\n validateEmail() {\n const language = MDM.SharedNav.Utils.getCurrentLanguage();\n const inputText = this._email;\n const mailFormat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n\n if (inputText === '' || inputText === null || typeof inputText === \"undefined\") {\n //email is empty\n this._errors.push(this._labels[language].emailRequired);\n return false;\n }\n\n if (! inputText.match(mailFormat)) {\n //email is not empty but does not match email regex\n this._errors.push(this._labels[language].emailInvalid);\n return false;\n }\n\n this._errors = [];\n return true;\n }\n\n submit() {\n const validationResult = this.validate();\n\n if (validationResult === false) {\n MDM.SharedNav.Template.PreChat.toggleErrorOverlay(true, this._errors);\n } else {\n MDM.SharedNav.Template.PreChat.toggleErrorOverlay(false);\n MDM.SharedNav.Template.PreChat.toggleForm(false);\n MDM.SharedNav.Template.PreChat.toggleSkipPreChat(true);\n //swap from PreChat to Intercom\n MDM.SharedNav.Template.Chat.MdChatInstance.promoteToIntercom(true);\n }\n }\n\n static toggleSkipPreChat(isSkipped) {\n if (isSkipped === true) {\n sessionStorage.setItem(MDM.SharedNav.Constants.Chat.SKIP_PRE_CHAT, isSkipped);\n } else {\n sessionStorage.removeItem(MDM.SharedNav.Constants.Chat.SKIP_PRE_CHAT);\n }\n }\n\n static getSkipPreChatStatus() {\n return sessionStorage.getItem(MDM.SharedNav.Constants.Chat.SKIP_PRE_CHAT);\n }\n\n static toggleForm(isVisible) {\n const element = document.getElementById('mdPreChat--form');\n if (element !== null && typeof element !== 'undefined') {\n if (isVisible) {\n //show\n element.classList.add('mdPreChat--form--visible');\n element.removeAttribute('aria-hidden');\n } else {\n //hide\n element.classList.remove('mdPreChat--form--visible');\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n static toggleErrorOverlay(isVisible, errors) {\n const element = document.getElementById('mdPreChat--error');\n if (element !== null && typeof element !== 'undefined') {\n if (isVisible) {\n //show\n element.innerText = errors[0];\n element.classList.add('mdPreChat--error__msg--visible');\n element.removeAttribute('aria-hidden');\n } else {\n //hide\n element.classList.remove('mdPreChat--error__msg--visible');\n element.innerText = '';\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n static toggleOtherTopicSection(isVisible) {\n const element = document.getElementById('mdPreChat--form__other--container');\n if (element !== null && typeof element !== 'undefined') {\n if (isVisible) {\n //show\n element.classList.remove('mdPreChat--form__other--hidden');\n element.removeAttribute('aria-hidden');\n } else {\n //hide\n element.classList.add('mdPreChat--form__other--hidden');\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n static launcherButtonClicked() {\n const element = document.getElementById('mdPreChat--launcher');\n if (element !== null && typeof element !== 'undefined') {\n if (! element.classList.contains('mdIntercom--launcher--active')) {\n //show\n element.classList.add('mdIntercom--launcher--active');\n MDM.SharedNav.Template.PreChat.toggleForm(true);\n } else {\n //hide\n element.classList.remove('mdIntercom--launcher--active');\n MDM.SharedNav.Template.PreChat.toggleForm(false);\n }\n }\n }\n\n static topicUpdated() {\n const element = document.getElementById('mdPreChat--form__topic');\n if (element !== null && typeof element !== 'undefined') {\n element.value === 'other'\n ? MDM.SharedNav.Template.PreChat.toggleOtherTopicSection(true)\n : MDM.SharedNav.Template.PreChat.toggleOtherTopicSection(false);\n }\n }\n};\n\nMDM.SharedNav.Template.Chat = class {\n constructor(state, navSettings) {\n this._state = state;\n this._navSettings = navSettings;\n this._intercomInstance = new MDM.SharedNav.Template.Intercom(navSettings);\n this._prechatInstance = new MDM.SharedNav.Template.PreChat();\n this.switchState();\n\n const chatElement = document.getElementById('md-chat');\n if (chatElement !== null && typeof chatElement !== 'undefined') {\n chatElement.classList.add('md--chat--loaded');\n }\n\n const closeBtnInner = document.querySelector('.mdIntercom--form__closeBtnInner');\n if (closeBtnInner !== null && typeof closeBtnInner !== 'undefined') {\n MDM.SharedNav.Template.PreChat.closeBtnInner = document.querySelector('.mdIntercom--form__closeBtnInner');\n MDM.SharedNav.Template.PreChat.closeBtnInner.removeEventListener('click', this.uiLauncherButtonClicked);\n MDM.SharedNav.Template.PreChat.closeBtnInner.addEventListener('click', this.uiLauncherButtonClicked);\n }\n\n const launcher = document.querySelector('.mdIntercom--launcher');\n if (launcher !== null && typeof launcher !== 'undefined') {\n MDM.SharedNav.Template.PreChat.launcherBtn = document.querySelector('.mdIntercom--launcher');\n MDM.SharedNav.Template.PreChat.launcherBtn.removeEventListener('click', this.uiLauncherButtonClicked);\n MDM.SharedNav.Template.PreChat.launcherBtn.addEventListener('click', this.uiLauncherButtonClicked);\n } \n }\n\n isAvailable() {\n const params = MDM.SharedNav.Params;\n return this._navSettings.chatSettings.isAvailable && params.getChat;\n }\n\n switchState() {\n if (!this.isAvailable()) {\n return;\n }\n\n const state = this._state;\n if (MDM.SharedNav.Utils.isLspPage()) {\n //regardless of the state of the used authentication, render intercom only for LSP\n this._prechatInstance.hide();\n this._intercomInstance.show(this._navSettings);\n } else if (MDM.SharedNav.Utils.isLogoutPage()) {\n //disable skip pre-chat when user logs out\n MDM.SharedNav.Template.PreChat.toggleSkipPreChat(false);\n //force intercom reset (shutdown + delete session cookie)\n this._prechatInstance.show(this);\n this._intercomInstance.reset();\n } else {\n //md chat is available to render\n const consts = MDM.SharedNav.Constants;\n switch (state) {\n case consts.AuthStatus.ANONYMOUS:\n this._prechatInstance.show(this);\n this._intercomInstance.hide();\n break;\n case consts.AuthStatus.AUTHENTICATING:\n //we do not configure chat to show when authenticating\n break;\n case consts.AuthStatus.AUTHENTICATED:\n this._prechatInstance.hide();\n this._intercomInstance.show(this._navSettings);\n break;\n default:\n }\n }\n }\n\n promoteToIntercom(isSubmitted) {\n this._prechatInstance.hide();\n if (isSubmitted === true) {\n this._intercomInstance.resetCookies();\n }\n\n const visitorInfo = {\n visitorId: null,\n salutation: this._prechatInstance._salutation,\n fullName: this._prechatInstance._fullName,\n email: this._prechatInstance._email,\n topic: this._prechatInstance._topic\n };\n\n this._intercomInstance.show(this._navSettings, isSubmitted, visitorInfo);\n }\n\n uiLauncherButtonClicked(e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.Template.PreChat.launcherButtonClicked();\n\n }\n};\nMDM.SharedNav.Template.Chat.MdChatInstance = null;","\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\nMDM.SharedNav.Template.activityFilterSelector = document.getElementById('mymd--activityCentreLvl2__selectActivityFilter');\n\nMDM.SharedNav.Template.MeetingConfirmation = class {\n getNextMeetings() {\n const options = {\n method: 'GET',\n url: MDM.SharedNav.Params.navUrl + '/api/activitycenter/getNextAppointment',\n withCredentials: true\n };\n const getNextAppointment = MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n return getNextAppointment.then((data) => {\n if (data) {\n return JSON.parse(data);\n }\n return [];\n });\n }\n\n renderNextMeetingTemplate(appointment) {\n if (appointment) {\n let d = new Date(appointment.scheduledStart + \"Z\");\n\n const daysUntilAppointment = MDM.SharedNav.Utils.getDaysDifference(new Date(), d);\n\n const dateOptions = { month: 'long', day: 'numeric', year: 'numeric' };\n const timeOptions = { timeZoneName: 'short', hour: \"numeric\", minute: \"2-digit\" };\n\n let apointmentTpl = document.getElementById('appointmentTemplate');\n let tplNode = apointmentTpl.content.querySelectorAll('.mymd--meeting__box')[0];\n let appointmentVm = document.importNode(tplNode, true);\n let title = appointmentVm.querySelector('#mymd--meeting__title');\n let descr = '';\n let fc = appointment.ownerName;\n\n if (MDM.SharedNav.Utils.getCurrentLanguage() === 'en') {\n title.innerHTML = 'Your Next Meeting';\n const appointmentDate = d.toLocaleDateString('en-US', dateOptions);\n const appointmentTime = d.toLocaleTimeString('en-US', timeOptions);\n descr = `You have a meeting scheduled with ${fc} on ${appointmentDate} at ${appointmentTime}`;\n\t\t\t}\n else {\n title.innerHTML = 'Votre prochain rendez-vous';\n const appointmentDate = d.toLocaleDateString('fr-CA', dateOptions);\n const appointmentTime = d.toLocaleTimeString('fr-CA', timeOptions);\n descr = `Vous avez un rendez-vous pr\\xE9vu avec ${fc}, le ${appointmentDate} \\xE0 ${appointmentTime}`;\n\t\t\t}\n MDM.SharedNav.Utils.truncate(appointment.description, 40);\n\n\n if (daysUntilAppointment < 7) {\n if(MDM.SharedNav.Utils.getCurrentLanguage() === 'en') {\n title.innerHTML = 'Meeting reminder';\n }\n else {\n title.innerHTML = 'Rappel';\n }\n\n if (daysUntilAppointment < 2) {\n appointmentVm.classList.add(\"mymd--meeting__box--state3\");\n }\n else { // Less than 7 but at least 2\n appointmentVm.classList.add(\"mymd--meeting__box--state2\");\n }\n }\n\n let description = appointmentVm.querySelector('#mymd--meeting__description');\n description.innerHTML = descr;\n\n return appointmentVm;\n }\n return '';\n }\n};\n\nMDM.SharedNav.Template.Activities = class {\n constructor(sortOrder) {\n this.sortOrder = sortOrder ? sortOrder : 'desc';\n this.sortFn = this.sortOrder === 'desc' ? this.sortNumDesc : this.sortNumAsc;\n this.sortDateFn = this.sortOrder === 'desc' ? this.sortDateDesc : this.sortDateAsc;\n this.filterOptionsValues = ['showall', 'archive', 'alert'];\n }\n\n getActivities(filterOption) {\n if (this.filterOptionsValues.indexOf(filterOption) > -1) {\n const options = {\n method: 'GET',\n url: `${MDM.SharedNav.Params.navUrl}/api/activitycenter/activities?filterOption=${filterOption}&lang=${MDM.SharedNav.Utils.getCurrentLanguage()}`,\n withCredentials: true\n };\n const getAct = MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n return getAct.then((data) => {\n if (data) {\n const res = JSON.parse(data);\n if (Object.keys(res).length > 0) {\n return res;\n }\n }\n return [];\n });\n }\n return new Promise((resolve) => {\n resolve([]);\n });\n }\n\n renderGroupedActivities(groupedActivities) {\n const years = Object.keys(groupedActivities).sort(this.sortFn);\n let panel = document.querySelector('.mymd--activityCentreLvl2__group');\n const cleanPanel = new Promise((resolve, reject) => {\n const panelTitles = document.querySelectorAll('.mymd--activityCentreLvl2__groupDate');\n for (var index = 0; index < panelTitles.length; index++) {\n console.log(`removed elements ${index}`);\n panelTitles[index].nextElementSibling.remove();\n panelTitles[index].remove();\n }\n resolve();\n });\n\n cleanPanel.then(() => {\n let content = '';\n const activityOption = MDM.SharedNav.Template.activityFilterSelector.value;\n let modifierClass = '';\n if (activityOption === \"archive\") {\n modifierClass = 'mymd--activityCentreLvl2__group--archivedActivities';\n }\n panel.className = 'mymd--activityCentreLvl2__group';//reset\n if (modifierClass) {\n panel.classList.add(modifierClass);\n }\n for (var i = 0; i < years.length; i++) { //for each year\n //print header\n const year = years[i];\n const months = Object.keys(groupedActivities[year]).sort(this.sortFn);\n for (var m = 0; m < months.length; m++) {\n const month = months[m];\n\n const header = this.renderActivitiesYearMonthHeader(year, month);\n const activities = groupedActivities[year][month].sort(this.sortDateFn);\n content += `${header}\n `;\n }\n }\n panel.insertAdjacentHTML('beforeend', content);\n this.bindArchiveBtnEventHandlers('.mymd--activityCentreLvl2__list .mymd--activityCentreLvl2__listMessage .mymd--activityCentreLvl2__listCloseBtn');\n this.bindMessageLinkEventHandlers('.mymd--activityCentreLvl2__list .mymd--activityCentreLvl2__listMessage a');\n MDM.SharedNav.Utils.runCallback(MDM.SharedNav.Params.activitiesLoadedCallback);\n });\n }\n\n bindArchiveBtnEventHandlers(selector) {\n let buttons = document.querySelectorAll(selector);\n buttons.forEach(elem => {\n elem.removeEventListener('click', MDM.SharedNav.Template.ActivityCenterManager.activities.archive); \n elem.addEventListener('click', MDM.SharedNav.Template.ActivityCenterManager.activities.archive.bind(this, (elem.getAttribute('data-id')))); //A named function passing param will execute on page load. Use .bind to workaround that\n });\n\n }\n\n bindMessageLinkEventHandlers(selector) {\n let buttons = document.querySelectorAll(selector);\n buttons.forEach(elem => {\n elem.removeEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.hide); \n elem.addEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.hide);\n }\n );\n\n }\n\n\trenderAlerts(activityAlerts) {\n const panel = document.querySelector('.mymd--header__activityAlerts');\n let content = '';\n\n content = ``;\n panel.innerHTML = content;\n this.bindAlertsDismissEventHandlers('.mymd--header__activityAlerts__list .mymd--header__activityAlerts__closeBtn');\n\t\tMDM.SharedNav.MyMdUI.ActivityAlerts.show();\n }\n\n \n bindAlertsDismissEventHandlers(selector) {\n let buttons = document.querySelectorAll(selector);\n buttons.forEach(elem => {\n \n elem.removeEventListener('click', MDM.SharedNav.Template.ActivityCenterManager.activities.removeAlert); \n elem.addEventListener('click', MDM.SharedNav.Template.ActivityCenterManager.activities.removeAlert.bind(this, (elem.getAttribute('data-id'))));\n }\n );\n }\n \n\n sortNumDesc(a, b) {\n return b - a;\n }\n\n sortNumAsc(a, b) {\n return a - b;\n }\n\n sortDateAsc(a, b) {\n const aDate = new Date(a.createdDate);\n const bDate = new Date(b.createdDate);\n\n if (aDate > bDate) {\n return 1;\n }\n return -1;\n }\n\n sortDateDesc(a, b) {\n const aDate = new Date(a.createdDate);\n const bDate = new Date(b.createdDate);\n\n if (bDate > aDate) {\n return 1;\n }\n return -1;\n }\n\n renderActivitiesYearMonthHeader(year, month) {\n\n const m = parseInt(month) - 1; // to change it in js months\n const monthName = MDM.SharedNav.Utils.getMonthName(m);\n //render template foreach month\n return `
\n ${monthName}\n ${year}\n
\\r\\n`;\n }\n\n getClassForType(activityDisplayTemplateId) {\n const classTypeBase = 'mymd--activityCentreLvl2__listType--';\n console.log(`templateId ${activityDisplayTemplateId}`);\n let classType = '';\n switch (activityDisplayTemplateId) {\n case 1:\n classType = `${classTypeBase}message`;\n break;\n case 2:\n classType = `${classTypeBase}tour`;\n break;\n case 3:\n classType = `${classTypeBase}bulletinBoard`;\n break;\n case 5:\n classType = `${classTypeBase}rejectedTrade`;\n break;\n case 6:\n classType = `${classTypeBase}accountNotice`;\n break;\n case 12:\n case 13:\n case 14:\n classType = `${classTypeBase}financialPlan`;\n break;\n default: { classType = `${classTypeBase}message`; }\n break;\n }\n return classType;\n }\n\n getTitleLimitForType(type) {\n let charLimit;\n const noLimit = 8000;\n switch (type) {\n case 1: { charLimit = noLimit; }\n break;\n case 2: { charLimit = noLimit; }\n break;\n case 3: { charLimit = 150; }\n break;\n default: { charLimit = noLimit; }\n break;\n }\n return charLimit;\n }\n\n getDescLimitForType(type) {\n let charLimit;\n const noLimit = 8000;\n switch (type) {\n case 1: { charLimit = 36; }\n break;\n case 2: { charLimit = noLimit }\n break;\n case 3: { charLimit = noLimit; }\n break;\n default: { charLimit = noLimit; }\n break;\n }\n return charLimit;\n }\n\n\n\n renderActivityTemplate(activities) {\n let content = '';\n\n if (activities) {\n content = activities.map((act) => {\n const type = this.getClassForType(act.activityDefinitionId);\n const d = new Date(act.createdDate);\n const date = d.toLocaleDateString();\n const titleLimit = this.getTitleLimitForType(act.activityDisplayTemplateId);\n const title = MDM.SharedNav.Utils.truncate(act.title, titleLimit);\n const descLimit = this.getDescLimitForType(act.activityDisplayTemplateId);\n const descr = MDM.SharedNav.Utils.truncate(act.content, descLimit);\n let closeBtnAlt = \"\";\n if (MDM.SharedNav.Utils.getCurrentLanguage() === 'en') {\n closeBtnAlt = \"Close\";\n }\n else {\n closeBtnAlt = \"Fermer\";\n }\n if (act.url == null || act.url == \"\")\n act.url = \"javascript:void(0)\";\n return `
  • \n \n \n
    \n
    ${title}
    \n
    ${descr}
    \n
    ${date}
    \n
    \n
  • `;\n }).join('\\r\\n');\n return content;\n }\n return '';\n }\n\n\trenderActivityAlertsTemplate(activities) {\n\t\tconst filteredAlertsList = activities.filter(alert => alert.isRead === false);\n\t\tlet content = '';\n\n\t\tif (filteredAlertsList) {\n\t\t\tcontent = filteredAlertsList.map((act) => {\n\t\t\t\treturn `
  • \n ${act.content}\n \n
  • `;\n\t\t\t}).join('\\r\\n');\n\t\t\treturn content;\n\t\t}\n\t\treturn '';\n\t}\n\n archive(id) {\n event.stopPropagation();\n\n const msg = document.querySelector(`#act-${id}`);\n if (msg.parentElement.childElementCount > 1) {\n msg.remove();\n }\n else {\n const groupTitle = msg.parentElement.previousElementSibling;\n groupTitle.remove();\n msg.parentElement.remove();\n }\n\n const options = {\n method: 'POST',\n url: `${MDM.SharedNav.Params.navUrl}/api/activitycenter/activities/archive`,\n headers: {\n 'Content-Type': 'application/json'\n },\n withCredentials: true,\n params: id\n };\n const archiveReq = MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n return archiveReq.then((data) => {\n if (data) {\n console.log(data);\n }\n })\n .catch((error) => { console.log(error); });\n }\n\n unarchiveActivities() {\n event.stopPropagation();\n }\n\n\tremoveAlert(id) {\n event.stopPropagation();\n\n const alertMsg = document.querySelector(`#alert-${id}`);\n\t\tconst alertMsgCount = alertMsg.parentElement.childElementCount; //count before DOM removal\n\t\talertMsg.classList.add('mymd--header__activityAlerts__listElement--close');\n\n if (alertMsgCount > 2) {\n alertMsg.remove(); //no transition effect to avoid a clash with the next alert about to become visible (through a CSS transition)\n }\n else {\n //remove with a transition only when no more alerts are going to appear\n setTimeout(\n () => { alertMsg.remove(); }, 300 //wait until transition is over\n );\n }\n\n\t\tif (alertMsgCount === 1) {\n\t\t\tMDM.SharedNav.MyMdUI.ActivityAlerts.hide();\n\t\t}\n\n\t\t//Mark as read\n const alertId = id.toString();\n const request = MDM.SharedNav.Template.ActivityCenterManager.setActivitiesRead(alertId);\n request.catch((e) => {\n //error\n });\n\t}\n\n filterActivities() {\n const options = MDM.SharedNav.Template.activityFilterSelector.value;\n return this.getActivities(options);\n }\n};\n\nMDM.SharedNav.Template.SecureMessageNotification = class {\n constructor() {\n this.secureMessageCount = 0;\n let self = this;\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterLink.addEventListener('click',\n function() {\n if (MDM.SharedNav.MyMdUI.ActivityCenter.isVisible) {\n let notificationCssClass = 'mymd--activityCentreLvl2__rowTopBtnText--newNotif';\n let secureMessageButtonUi = document.querySelector('#mymd--activityCentre__messageCentre');\n\n self.getSecureMessageCount().then((count) => {\n if (count !== null) {\n self.secureMessageCount = count;\n secureMessageButtonUi.classList.remove(notificationCssClass);\n if (self.secureMessageCount > 0) {\n secureMessageButtonUi.classList.add(notificationCssClass);\n }\n }\n }).catch((error) => {\n console.error(error);\n secureMessageButtonUi.classList.remove(notificationCssClass);\n });\n }\n });\n }\n\n getSecureMessageCount() {\n let options = {\n method: 'GET',\n url: MDM.SharedNav.Params.navUrl + '/api/activitycenter/securemessagecount',\n withCredentials: true\n };\n return MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n }\n};\n\n\nMDM.SharedNav.Template.ActivityCenterVm = function () {\n let self = this;\n this.messageCount = 0;\n this.secureMessageCount = 0;\n this.meetingConfirmationMessages;\n\n this.messages = [];\n\n this.newMessageCount = function () {\n return this.messages.filter(el => el.isRead === false).length;\n };\n\n this.getNewMessages = function () {\n const years = Object.keys(this.messages);\n const messages = [];\n for (var y = 0; y < years.length; y++) {\n const year = years[y];\n const months = Object.keys(this.messages[year]);\n\n for (var m = 0; m < months.length; m++) {\n const month = months[m];\n const activities = this.messages[year][month];\n activities.map((act) => {\n messages.push(act);\n });\n }\n }\n return messages.filter(el => el.isRead === false);\n };\n\n this.getActivityCount = function () {\n const options = {\n method: 'GET',\n url: MDM.SharedNav.Params.navUrl + '/api/activitycenter/activities/count',\n withCredentials: true\n };\n return MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n };\n\n this.setActivitiesRead = function (idList) {\n\n const options = {\n method: 'POST',\n url: MDM.SharedNav.Params.navUrl + '/api/activitycenter/activities/read',\n headers: {\n 'Content-Type': 'application/json'\n },\n params: idList,\n withCredentials: true\n };\n return MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n\n };\n\n this.setActivitiesAsReadServerSide = function () {\n const newMessages = this.getNewMessages();\n let newMessageIds = [];\n for (var i = 0; i < newMessages.length; i++) {\n let id = newMessages[i].id;\n newMessageIds.push(id);\n }\n if (newMessageIds.length > 0) {\n let idList = newMessageIds.join(',');\n let request = this.setActivitiesRead(idList);\n request.catch((e) => {\n //error\n });\n this.updateActivitiesAsReadClientSide();\n }\n };\n\n this.updateActivityCenterMeetingListUi = function () {\n let getMeetings = this.meetingConfirmations.getNextMeetings();\n getMeetings.then(function (data) {\n //rendering of appointments\n if (data.hasOwnProperty('actionType')) {\n const activityFilter = MDM.SharedNav.Template.activityFilterSelector;\n let tpl = self.meetingConfirmations.renderNextMeetingTemplate(data);\n activityFilter.parentNode.insertBefore(tpl, activityFilter.nextSibling);\n }\n }).catch((e) => {\n //error\n console.error(e);\n });\n };\n\n this.updateActivityCenterMessageListUi = function () {\n const getActivities = this.activities.filterActivities();\n getActivities.then((data) => {\n //rendering of activities\n if (data) {\n this.messages = data;\n this.activities.renderGroupedActivities(data);\n }\n }).catch((e) => {\n //error\n console.error(e);\n });\n };\n\n\tthis.updateActivityCenterAlertListUi = function () {\n\t\tconst options = 'alert';\n\t\tconst getAlerts = this.activities.getActivities(options);\n\t\tgetAlerts.then((data) => {\n\t\t\t//rendering of alert activities\n\t\t\tif (data && data.length > 0) {\n\t\t\t\tconst hasUnreadAlerts = data.filter(alert => alert.isRead === false).length > 0;\n\t\t\t\tif (hasUnreadAlerts) {\n\t\t\t\t\tthis.activities.renderAlerts(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}).catch((e) => {\n\t\t\t//error\n\t\t\tconsole.error(e);\n\t\t});\n\t};\n\n this.bindSelectActivityFilterUi = function (selector) {\n let select = document.querySelector(selector);\n\n select.removeEventListener('change', MDM.SharedNav.Template.ActivityCenterManager.updateActivityCenterMessageListUi);\n select.addEventListener('change', MDM.SharedNav.Template.ActivityCenterManager.updateActivityCenterMessageListUi.bind(this )); \n \n};\n\n this.getLastLoginDate = function () {\n let options = {\n method: 'GET',\n url: MDM.SharedNav.Params.navUrl + '/api/activitycenter/lastLoginDate',\n withCredentials: true\n };\n let getLoginDate = MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n return getLoginDate.then((data) => {\n if (data) {\n return JSON.parse(data);\n }\n return '';\n });\n };\n\n this.convertUTCDateToLocaleDate = function (date, locale) {\n const timeOptions = { timeZoneName: 'short', hour: \"numeric\", minute: \"2-digit\" };\n\n const d = new Date(date);\n const lastLoginDate = new Date(d.getTime() - d.getTimezoneOffset() * 60000);\n\n return lastLoginDate.toLocaleTimeString(locale, timeOptions);\n };\n\n this.updateLastLoginDate = function () {\n this.getLastLoginDate().then((dateString) => {\n let loginDate = new Date(dateString);\n\n let dateSelector = document.getElementById('mymd--activityCentreLvl2__lastLogin');\n if (!isNaN(loginDate) && dateSelector) {\n\n let lang = MDM.SharedNav.Utils.getCurrentLanguage();\n let monthName = MDM.SharedNav.Utils.getMonthName(loginDate.getMonth());\n\n let formatedDate = '';\n if (lang === 'en') {\n formatedDate = `Last Login: ${monthName} ${loginDate.getDate()}, ${loginDate.getFullYear()}, ${this.convertUTCDateToLocaleDate(loginDate, 'en-US')}`;\n }\n else {\n formatedDate = `Derni` + '\\xE8' + `re connexion: ${loginDate.getDate()} ${monthName.toLowerCase()}, ${loginDate.getFullYear()}, ${this.convertUTCDateToLocaleDate(loginDate, 'fr-CA')}`;\n }\n dateSelector.innerHTML = formatedDate;\n }\n }).catch((e) => {\n //error\n console.error(e);\n });\n };\n\n this.getCountAndupdateActivityCenterMessageCounter = function () {\n\n this.secureMessageNotification.getSecureMessageCount().then((secureCount) => {\n if (secureCount) {\n secureCount = parseInt(secureCount);\n }\n let getTheActivityCount = self.getActivityCount();\n getTheActivityCount.then((count) => {\n if (count) {\n count = parseInt(count);\n }\n secureCount > 0 ?\n self.updateBellCount(count + 1) :\n self.updateBellCount(count);\n })\n .catch((error) => {\n //error\n console.error(error);\n });\n });\n };\n\n this.updateBellCount = function (count) {\n if (count !== null) {\n self.messageCount = count;\n //Activity center count\n let counterNumSelector = 'mymd--activityCentre__number';\n let counterUi = document.querySelector('#' + counterNumSelector);\n if (counterUi) {\n if (this.messageCount > 0) {\n counterUi.innerHTML = count;\n counterUi.classList.add(counterNumSelector);\n if (this.messageCount > 99) {\n counterUi.classList.add(counterNumSelector + '--large');\n }\n }\n else {\n counterUi.innerHTML = '';\n counterUi.classList.remove(counterNumSelector);\n counterUi.classList.remove(counterNumSelector + '--large');\n }\n }\n }\n };\n\n this.updateActivitiesAsReadClientSide = function () {\n const newMessages = this.getNewMessages();\n newMessages.map(function (message) {\n //update each activities to read\n message.isRead = true;\n });\n this.updateBellCount(0);\n };\n\n this.dispatchClosingEvent = function (elem) {\n // Create a new event\n let event = new CustomEvent('ActivityCenterClosing');\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n this.init = function () {\n this.secureMessageNotification = new MDM.SharedNav.Template.SecureMessageNotification();\n this.meetingConfirmations = new MDM.SharedNav.Template.MeetingConfirmation();\n\n this.activities = new MDM.SharedNav.Template.Activities();\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterPanel.addEventListener('ActivityCenterClosing', function () {\n self.setActivitiesAsReadServerSide();\n }, false);\n this.updateActivityCenterMeetingListUi();\n\t\tthis.updateActivityCenterMessageListUi();\n this.updateActivityCenterAlertListUi();\n this.bindSelectActivityFilterUi('#mymd--activityCentreLvl2__selectActivityFilter');\n this.getCountAndupdateActivityCenterMessageCounter();\n this.updateLastLoginDate();\n };\n};\nMDM.SharedNav.Template.ActivityCenterManager = new MDM.SharedNav.Template.ActivityCenterVm();\n","var MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\n\nMDM.SharedNav.Template.MdExo = class {\n bindIntercomShutdown() {\n if (MDM.SharedNav.Params.template === MDM.SharedNav.Constants.NavTemplates.MYMD_MDEXO) {\n //Shutting down intercom before logging out of Md Exo Direct\n var element = document.getElementById('mymd--signOut__link');\n element.onclick = function () {\n if (typeof Intercom !== 'undefined') {\n Intercom('shutdown');\n }\n }\n }\n }\n\n //Overrides MDM.SharedNav.Core.toggleLanguage when MDExo Menu is loaded\n toggleLanguage(language) {\n //1- update language cookie\n MDM.SharedNav.Utils.setMdmLanguageCookie(language);\n //2- reload page\n let nestLanguage = \"en-CA\";\n if (language == \"fr\") {\n nestLanguage = \"fr-CA\";\n }\n\n let url = window.location.href;\n url = url.replace(window.location.search, \"\");\n const newUrl = MDM.SharedNav.Utils.appendQueryStringParameter(url, \"lang\", nestLanguage);\n window.location.href = newUrl;\n };\n\n // Upon loading MDExo, we force a language switch if there is a discrepency between Nest and MD.\n // The source of the language is always MD (coming from the menu/language cookie)\n // 3 checks are made\n // If there is a lang= query string, it primes over everything. It forces the language switch for menu & exo.\n forceLanguageOnLoad() {\n if (MDM.SharedNav.Params.template === MDM.SharedNav.Constants.NavTemplates.MYMD_MDEXO) {\n MDM.SharedNav.Core.toggleLanguage = this.toggleLanguage;\n\n const queryLanguage = MDM.SharedNav.Utils.getParamInQuery(\"lang\");\n const mdLanguage = MDM.SharedNav.Utils.getCurrentLanguage();\n\n if (queryLanguage == null) {\n this.toggleLanguage(mdLanguage);\n }\n else if (queryLanguage === \"fr-CA\" && mdLanguage === \"en\"){\n this.toggleLanguage(\"fr\");\n }\n else if (queryLanguage === \"en-CA\" && mdLanguage === \"fr\"){\n this.toggleLanguage(\"en\");\n }\n }\n }\n}\n\n\nMDM.SharedNav.Template.mdexoInstance = new MDM.SharedNav.Template.MdExo();","\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\nMDM.SharedNav.Template.Medallia = class {\n constructor(medalliaSrc) {\n this._hasInit = false;\n this._medalliaSrc = medalliaSrc;\n\n if (this.isAvailable()) {\n this.init(this._medalliaSrc);\n }\n }\n\n isAvailable() {\n return MDM.SharedNav.Params.getSurvey;\n }\n\n init(src) { \n (function (g) {\n var d = document, am = d.createElement('script'), h = d.head || d.getElementsByTagName(\"head\")[0], fsr = 'fsReady',\n aex = {\n \"src\": src,\n \"type\": \"text/javascript\" \n };\n for (var attr in aex) { am.setAttribute(attr, aex[attr]); } h.appendChild(am); am.async = true; g[fsr] || (g[fsr] = function () { var aT = '__' + fsr + '_stk__'; g[aT] = g[aT] || []; g[aT].push(arguments); });\n })(window);\n \n this._hasInit = true;\n }\n};\nMDM.SharedNav.Template.medalliaInstance = null;\n","\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\nMDM.SharedNav.Template.Constants = {\n elementIds: {\n \"advisorAddressBlock\": 'mymd--advisorLvl2-address',\n \"phoneNumbersBlock\": 'mymd--advisorLvl2-numbers',\n \"advisorLinkId\": 'mymd--consultant__link',\n \"advisorPictureId\": 'mymd--advisor-picture',\n \"advisorNameLvl2\": 'mymd--advisorLvl2-name',\n \"advisorAddressLine1\": 'mymd--advisorLvl2-address1',\n \"advisorAddressLine2\": 'mymd--advisorLvl2-address2',\n \"advisorAddressLine3\": 'mymd--advisorLvl2-address3',\n \"advisorTel\": 'mymd--advisorLvl2-tel',\n \"advisorTollFree\": 'mymd--advisorLvl2-tollfree',\n \"advisorFax\": 'mymd--advisorLvl2-fax',\n \"advisorName\": 'mymd--advisor-name',\n \"advisorTitle\": 'mymd--advisor-title',\n \"advisorInitials\": 'mymd--advisor-initials'\n },\n classes: {\n \"advisorPictureDefault\": 'mymd--consultant__link--defaultImage'\n }\n};\n\nMDM.SharedNav.Template.MyTeam = class {\n constructor() {\n this.advisor = null;\n this.getAdvisorPromise()\n .then(advisor => {\n if (advisor) {\n this.advisor = advisor;\n MDM.SharedNav.Template.MyTeam.updateTemplate(advisor);\n MDM.SharedNav.Template.MyTeam.showTemplate();\n }\n })\n .catch(err => {\n console.error(\"Could not retrieve advisor information.\");\n });\n }\n\n getAdvisorPromise() {\n const options = {\n method: 'GET',\n url: `${MDM.SharedNav.Params.navUrl}/api/myteam/advisor`,\n withCredentials: true,\n timeout: 20000\n };\n const getAdvisorPromise = MDM.SharedNav.Utils.retryOperation(() => { return MDM.SharedNav.Utils.makeRequest(options) }, MDM.SharedNav.Constants.DefaultRetryDelay, MDM.SharedNav.Constants.DefaultRetryCount);\n return getAdvisorPromise\n .then((data) => {\n if (data) {\n return JSON.parse(data);\n }\n return null;\n });\n }\n\n static fillField(elementId, data) {\n if (data) {\n document.getElementById(elementId).innerText = data;\n } else {\n document.getElementById(elementId).style.display = \"none\";\n }\n }\n\n static updateAddressTemplate(advisor) {\n if (advisor.addressLine1) {\n if (MDM.SharedNav.Utils.getCurrentLanguage() === \"fr\") {\n this.fillField(MDM.SharedNav.Template.Constants.elementIds.advisorAddressLine1, advisor.addressLine1Fr);\n } else {\n this.fillField(MDM.SharedNav.Template.Constants.elementIds.advisorAddressLine1, advisor.addressLine1);\n }\n this.fillField(MDM.SharedNav.Template.Constants.elementIds.advisorAddressLine2, advisor.addressLine2);\n this.fillField(MDM.SharedNav.Template.Constants.elementIds.advisorAddressLine3, advisor.addressLine3);\n this.fillField(MDM.SharedNav.Template.Constants.elementIds.advisorTel, advisor.tel);\n this.fillField(MDM.SharedNav.Template.Constants.elementIds.advisorFax, advisor.fax);\n this.fillField(MDM.SharedNav.Template.Constants.elementIds.advisorTollFree, advisor.tollFreeTel);\n } else {\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorAddressBlock).style.display = \"none\";\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.phoneNumbersBlock).style.display = \"none\";\n }\n }\n\n static updateTemplate(advisor) {\n if (advisor) {\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorName).innerText = advisor.fullName;\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorNameLvl2).innerText = advisor.fullName;\n\n if (MDM.SharedNav.Utils.getCurrentLanguage() === \"fr\") {\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorTitle).innerText = advisor.titleFr;\n } else {\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorTitle).innerText = advisor.title;\n }\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorInitials).innerText = advisor.initials;\n\n if (advisor.picture) {\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorPictureId).src = `data:image/png;base64,${advisor.picture}`;\n }\n else {\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorLinkId).classList.add(MDM.SharedNav.Template.Constants.classes.advisorPictureDefault);\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorPictureId).style.visibility = \"hidden\";\n }\n\n MDM.SharedNav.Template.MyTeam.updateAddressTemplate(advisor);\n }\n else {\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorName).innerText = \"\";\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorTitle).innerText = \"\";\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorInitials).innerText = \"\";\n\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorAddressBlock).style.display = \"none\";\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.phoneNumbersBlock).style.display = \"none\";\n\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorLinkId).classList.add(MDM.SharedNav.Template.Constants.classes.advisorPictureDefault);\n document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorPictureId).style.visibility = \"hidden\";\n }\n }\n\n static showTemplate() {\n const advisorNode = document.getElementById(MDM.SharedNav.Template.Constants.elementIds.advisorLinkId);\n if (advisorNode) {\n advisorNode.style.visibility = \"visible\";\n }\n }\n};\n\nMDM.SharedNav.Template.myTeamInstance = null;\n","//Desktop and Mobile use same DOM. To prevent odd effects between the two, make sure to specify if modifiers are for Mobile or Desktop. CSS will sort it out.\n\n\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.MdUI = MDM.SharedNav.MdUI || {};\n\nMDM.SharedNav.MdUI.isMDMSharedHeaderBeenInitOnce = 0;\n\nMDM.SharedNav.MdUI.Constants = {\n mdUtilityMenuMyMDPanelActiveDesktop: \"md--utilityMenu__myMDPanel--activeDesktop\",\n mdUtilityMenuMyMDPanelInactiveDesktop: \"md--utilityMenu__myMDPanel--inactiveDesktop\",\n mdUtilityMenuItemActiveDesktop: \"md--utilityMenu__item--activeDesktop\",\n mdUtilityMenuLinkMyMDPanel: \"#md-utilityMenu_link-myMDPanel\"\n};\n\nMDM.SharedNav.MdUI.SearchBox = {\n isInit: 0,\n isVisible: 0,\n\n show: function () {\n if (MDM.SharedNav.MdUI.SearchBox.isInit) {\n MDM.SharedNav.MdUI.SearchBox.uiSearchPanel.classList.add('md--search__panel--activeDesktop');\n MDM.SharedNav.MdUI.SearchBox.uiSearchMenuItem.classList.add(MDM.SharedNav.MdUI.Constants.mdUtilityMenuItemActiveDesktop);\n MDM.SharedNav.MdUI.SearchBox.uiSearchInput.focus();\n MDM.SharedNav.MdUI.SearchBox.isVisible = 1;\n }\n },\n hide: function () {\n if (MDM.SharedNav.MdUI.SearchBox.isInit) {\n MDM.SharedNav.MdUI.SearchBox.uiSearchPanel.classList.remove('md--search__panel--activeDesktop');\n MDM.SharedNav.MdUI.SearchBox.uiSearchMenuItem.classList.remove(MDM.SharedNav.MdUI.Constants.mdUtilityMenuItemActiveDesktop);\n MDM.SharedNav.MdUI.SearchBox.uiSearchInput.blur();\n MDM.SharedNav.MdUI.SearchBox.isVisible = 0;\n }\n },\n toggle: function () {\n if (!MDM.SharedNav.MdUI.SearchBox.isVisible) {\n MDM.SharedNav.MdUI.SearchBox.show();\n } else {\n MDM.SharedNav.MdUI.SearchBox.hide();\n }\n },\n init: function () {\n \n\n MDM.SharedNav.MdUI.SearchBox.uiSearchMenuItem = document.querySelector('.md--utilityMenu__item--search');\n MDM.SharedNav.MdUI.SearchBox.uiSearchPanel = document.querySelector('.md--search__panel');\n MDM.SharedNav.MdUI.SearchBox.uiSearchInput = document.querySelector('#md-search-nav_input');\n MDM.SharedNav.MdUI.SearchBox.uiSearchActivate = document.querySelector('#md-utilityMenu_link-search');\n \n\n MDM.SharedNav.MdUI.SearchBox.uiSearchActivate.addEventListener('click', MDM.SharedNav.MdUI.SearchBox.uiHandlerSearchActivate);\n MDM.SharedNav.MdUI.SearchBox.uiSearchPanel.addEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n\n \n\n MDM.SharedNav.MdUI.SearchBox.isInit = 1;\n },\n uiHandlerSearchActivate: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.SearchBox.toggle();\n MDM.SharedNav.MdUI.HideAll('searchBox');\n },\n terminate: function () {\n MDM.SharedNav.MdUI.SearchBox.uiSearchActivate.removeEventListener('click', MDM.SharedNav.MdUI.SearchBox.uiHandlerSearchActivate);\n MDM.SharedNav.MdUI.SearchBox.uiSearchPanel.removeEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.SearchBox.isInit = 0;\n }\n};\n\nMDM.SharedNav.MdUI.MainMenu = {\n //This handles desktop AND mobile states. The toggle mecanism is a bit different.\n isInit: 0,\n isVisible: 0,\n wasLastOpenedPanel: null, //Because can't really pass parameters to addEventListener()\n wasLastOpenedLink: null, //Because can't really pass parameters to addEventListener()\n\n show: function (panel, link) {\n if (MDM.SharedNav.MdUI.MainMenu.isInit) {\n panel.classList.add('md--mainMenuLvl2__panel--activeDesktop');\n link.classList.add('md--mainMenu__link--activeDesktop');\n panel.classList.add('md--mainMenuLvl2__panel--activeMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink1.classList.add('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink2.classList.add('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink3.classList.add('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink4.classList.add('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiContactLink.classList.add('md--utilityMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiMapLink.classList.add('md--utilityMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiReturnLink.classList.add('md--mainMenu__link--activeMobile');\n MDM.SharedNav.MdUI.MainMenu.uiReturnLink.addEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerReturnLink);\n MDM.SharedNav.MdUI.MainMenu.isVisible = 1;\n MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel = panel;\n MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink = link;\n }\n },\n hide: function (lastPanel, lastLink) {\n if (MDM.SharedNav.MdUI.MainMenu.isInit & lastPanel !== null & lastLink !== null) {\n lastPanel.classList.remove('md--mainMenuLvl2__panel--activeDesktop');\n lastLink.classList.remove('md--mainMenu__link--activeDesktop');\n lastPanel.classList.remove('md--mainMenuLvl2__panel--activeMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink1.classList.remove('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink2.classList.remove('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink3.classList.remove('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiLink4.classList.remove('md--mainMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiContactLink.classList.remove('md--utilityMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiMapLink.classList.remove('md--utilityMenu__link--hiddenMobile');\n MDM.SharedNav.MdUI.MainMenu.uiReturnLink.removeEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerReturnLink);\n MDM.SharedNav.MdUI.MainMenu.uiReturnLink.classList.remove('md--mainMenu__link--activeMobile');\n MDM.SharedNav.MdUI.MainMenu.isVisible = 0;\n MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel = null;\n MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink = null;\n }\n },\n\n init: function () {\n MDM.SharedNav.MdUI.MainMenu.uiLink1 = document.querySelector('#md-mainMenu_link-1');\n MDM.SharedNav.MdUI.MainMenu.uiPanel1 = document.querySelector('#md-menu-lvl2-panel-1');\n MDM.SharedNav.MdUI.MainMenu.uiLink2 = document.querySelector('#md-mainMenu_link-2');\n MDM.SharedNav.MdUI.MainMenu.uiPanel2 = document.querySelector('#md-menu-lvl2-panel-2');\n MDM.SharedNav.MdUI.MainMenu.uiLink3 = document.querySelector('#md-mainMenu_link-3');\n MDM.SharedNav.MdUI.MainMenu.uiPanel3 = document.querySelector('#md-menu-lvl2-panel-3');\n MDM.SharedNav.MdUI.MainMenu.uiLink4 = document.querySelector('#md-mainMenu_link-4');\n MDM.SharedNav.MdUI.MainMenu.uiPanel4 = document.querySelector('#md-menu-lvl2-panel-4');\n MDM.SharedNav.MdUI.MainMenu.uiContactLink = document.querySelector('#md-utilityMenu_link-contact');\n MDM.SharedNav.MdUI.MainMenu.uiMapLink = document.querySelector('#md-utilityMenu_link-map');\n MDM.SharedNav.MdUI.MainMenu.uiReturnLink = document.querySelector('#md-mainMenu_link-return');\n MDM.SharedNav.MdUI.MainMenu.LanguageButton = document.querySelector('#md-utilityMenu_link--langToggle');\n\n MDM.SharedNav.MdUI.MainMenu.uiLink1.addEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink1);\n MDM.SharedNav.MdUI.MainMenu.uiLink2.addEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink2);\n MDM.SharedNav.MdUI.MainMenu.uiLink3.addEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink3);\n MDM.SharedNav.MdUI.MainMenu.uiLink4.addEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink4);\n \n if (MDM.SharedNav.MdUI.MainMenu.LanguageButton !== null && typeof MDM.SharedNav.MdUI.MainMenu.LanguageButton !== 'undefined') {\n MDM.SharedNav.MdUI.MainMenu.LanguageButton.addEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink5);\n }\n\n MDM.SharedNav.MdUI.MainMenu.uiPanel1.addEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MainMenu.uiPanel2.addEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MainMenu.uiPanel3.addEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MainMenu.uiPanel4.addEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n\n MDM.SharedNav.MdUI.MainMenu.isInit = 1;\n },\n uiHandlerLink1: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.HideAll('MainMenu');\n // If open and closing itself, else close previous and open this one.\n if (MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel && MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel.id === MDM.SharedNav.MdUI.MainMenu.uiPanel1.id) {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n }\n else {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n MDM.SharedNav.MdUI.MainMenu.show(MDM.SharedNav.MdUI.MainMenu.uiPanel1, MDM.SharedNav.MdUI.MainMenu.uiLink1);\n }\n },\n uiHandlerLink2: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.HideAll('MainMenu');\n if (MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel && MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel.id === MDM.SharedNav.MdUI.MainMenu.uiPanel2.id) {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n }\n else {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n MDM.SharedNav.MdUI.MainMenu.show(MDM.SharedNav.MdUI.MainMenu.uiPanel2, MDM.SharedNav.MdUI.MainMenu.uiLink2);\n }\n },\n uiHandlerLink3: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.HideAll('MainMenu');\n if (MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel && MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel.id === MDM.SharedNav.MdUI.MainMenu.uiPanel3.id) {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n }\n else {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n MDM.SharedNav.MdUI.MainMenu.show(MDM.SharedNav.MdUI.MainMenu.uiPanel3, MDM.SharedNav.MdUI.MainMenu.uiLink3);\n }\n },\n uiHandlerLink4: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.HideAll('MainMenu');\n if (MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel && MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel.id === MDM.SharedNav.MdUI.MainMenu.uiPanel4.id) {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n }\n else {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n MDM.SharedNav.MdUI.MainMenu.show(MDM.SharedNav.MdUI.MainMenu.uiPanel4, MDM.SharedNav.MdUI.MainMenu.uiLink4);\n }\n },\n uiHandlerLink5: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.Core.toggleLanguageOnclick(e);\n },\n uiHandlerReturnLink: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n },\n terminate: function () {\n MDM.SharedNav.MdUI.MainMenu.uiLink1.removeEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink1);\n MDM.SharedNav.MdUI.MainMenu.uiLink2.removeEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink2);\n MDM.SharedNav.MdUI.MainMenu.uiLink3.removeEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink3);\n MDM.SharedNav.MdUI.MainMenu.uiLink4.removeEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink4);\n MDM.SharedNav.MdUI.MainMenu.uiPanel1.removeEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MainMenu.uiPanel2.removeEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MainMenu.uiPanel3.removeEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MainMenu.uiPanel4.removeEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MainMenu.uiReturnLink.removeEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerReturnLink);\n MDM.SharedNav.MdUI.MainMenu.LanguageButton.removeEventListener('click', MDM.SharedNav.MdUI.MainMenu.uiHandlerLink5);\n MDM.SharedNav.MdUI.MainMenu.isInit = 0;\n }\n};\n\nMDM.SharedNav.MdUI.HamburgerBtn = {\n isInit: 0,\n isVisible: 0,\n\n show: function () {\n if (MDM.SharedNav.MdUI.HamburgerBtn.isInit) {\n //For IE11\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerSVGBar1.setAttribute('transform', 'rotate(45 5 10)');\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerSVGBar3.setAttribute('transform', 'rotate(-45 2 18)');\n //For normal browsers\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerMenu.classList.add('md--hamburgerMenu__link--activeMobile');\n if (MDM.SharedNav.MdUI.HamburgerBtn.uiMainMenu) {\n MDM.SharedNav.MdUI.HamburgerBtn.uiMainMenu.classList.add('md--mainMenu--activeMobile');\n }\n if (MDM.SharedNav.MdUI.HamburgerBtn.uiSearchPanel) {\n MDM.SharedNav.MdUI.HamburgerBtn.uiSearchPanel.classList.add('md--search__panel--activeMobile');\n }\n MDM.SharedNav.MdUI.HamburgerBtn.uiUtilityMenu.classList.add('md--utilityMenu--activeMobile');\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerMenu.classList.add('md--hamburgerMenu--activeMobile');\n if (document.querySelectorAll(MDM.SharedNav.MdUI.Constants.mdUtilityMenuLinkMyMDPanel).length !== 0) { //Can't assume existance... ex.: if logged out\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.classList.add(MDM.SharedNav.MdUI.Constants.mdUtilityMenuMyMDPanelInactiveDesktop);\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.classList.remove(MDM.SharedNav.MdUI.Constants.mdUtilityMenuMyMDPanelActiveDesktop);\n }\n\n MDM.SharedNav.MdUI.HamburgerBtn.isVisible = 1;\n }\n },\n hide: function () {\n if (MDM.SharedNav.MdUI.HamburgerBtn.isInit) {\n //For IE11\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerSVGBar1.removeAttribute('transform');\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerSVGBar3.removeAttribute('transform');\n //For normal browsers\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerMenu.classList.remove('md--hamburgerMenu__link--activeMobile');\n if (MDM.SharedNav.MdUI.HamburgerBtn.uiMainMenu) {\n MDM.SharedNav.MdUI.HamburgerBtn.uiMainMenu.classList.remove('md--mainMenu--activeMobile');\n }\n if (MDM.SharedNav.MdUI.HamburgerBtn.uiSearchPanel) {\n MDM.SharedNav.MdUI.HamburgerBtn.uiSearchPanel.classList.remove('md--search__panel--activeMobile');\n }\n MDM.SharedNav.MdUI.HamburgerBtn.uiUtilityMenu.classList.remove('md--utilityMenu--activeMobile');\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerMenu.classList.remove('md--hamburgerMenu--activeMobile');\n if (document.querySelectorAll(MDM.SharedNav.MdUI.Constants.mdUtilityMenuLinkMyMDPanel).length !== 0) {\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.classList.remove(MDM.SharedNav.MdUI.Constants.mdUtilityMenuMyMDPanelInactiveDesktop);\n }\n MDM.SharedNav.MdUI.HamburgerBtn.isVisible = 0;\n }\n },\n toggle: function () {\n if (!MDM.SharedNav.MdUI.HamburgerBtn.isVisible) {\n MDM.SharedNav.MdUI.HamburgerBtn.show();\n } else {\n MDM.SharedNav.MdUI.HamburgerBtn.hide();\n }\n },\n init: function () {\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerActivate = document.querySelector('#md-hamburgerMenu_link');\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerSVGBar1 = document.querySelector('.md--hamburgerMenu__bar--1');\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerSVGBar3 = document.querySelector('.md--hamburgerMenu__bar--3');\n MDM.SharedNav.MdUI.HamburgerBtn.uiMainMenu = document.querySelector('.md--mainMenu');\n MDM.SharedNav.MdUI.HamburgerBtn.uiSearchPanel = document.querySelector('.md--search__panel');\n MDM.SharedNav.MdUI.HamburgerBtn.uiUtilityMenu = document.querySelector('.md--utilityMenu');\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerMenu = document.querySelector('.md--hamburgerMenu');\n\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerActivate.addEventListener('click', MDM.SharedNav.MdUI.HamburgerBtn.uiHandlerHamburgerActivate);\n\n MDM.SharedNav.MdUI.HamburgerBtn.isInit = 1;\n },\n uiHandlerHamburgerActivate: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.HamburgerBtn.toggle();\n MDM.SharedNav.MdUI.HideAll('hamburgerBtn');\n },\n terminate: function () {\n MDM.SharedNav.MdUI.HamburgerBtn.uiHamburgerActivate.removeEventListener('click', MDM.SharedNav.MdUI.HamburgerBtn.uiHandlerHamburgerActivate);\n MDM.SharedNav.MdUI.HamburgerBtn.isInit = 0;\n }\n};\n\nMDM.SharedNav.MdUI.MyMDMenu = {\n //This is not init at the same time as the whole menu.\n isInit: 0,\n isVisible: 0,\n\n show: function () {\n if (MDM.SharedNav.MdUI.MyMDMenu.isInit) {\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.classList.remove(MDM.SharedNav.MdUI.Constants.mdUtilityMenuMyMDPanelInactiveDesktop);\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.classList.add(MDM.SharedNav.MdUI.Constants.mdUtilityMenuMyMDPanelActiveDesktop);\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDMenuItem.classList.add(MDM.SharedNav.MdUI.Constants.mdUtilityMenuItemActiveDesktop);\n MDM.SharedNav.MdUI.MyMDMenu.isVisible = 1;\n }\n },\n hide: function () {\n if (MDM.SharedNav.MdUI.MyMDMenu.isInit) {\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.classList.remove(MDM.SharedNav.MdUI.Constants.mdUtilityMenuMyMDPanelActiveDesktop);\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDMenuItem.classList.remove(MDM.SharedNav.MdUI.Constants.mdUtilityMenuItemActiveDesktop);\n MDM.SharedNav.MdUI.MyMDMenu.isVisible = 0;\n }\n },\n toggle: function () {\n if (!MDM.SharedNav.MdUI.MyMDMenu.isVisible) {\n MDM.SharedNav.MdUI.MyMDMenu.show();\n } else {\n MDM.SharedNav.MdUI.MyMDMenu.hide();\n }\n },\n init: function () {\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDMenuItem = document.querySelector('.md--utilityMenu__link--myMDPanel');\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel = document.querySelector('.md--utilityMenu__myMDPanel');\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDActivate = document.querySelector(MDM.SharedNav.MdUI.Constants.mdUtilityMenuLinkMyMDPanel);\n \n\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.classList.add('md--utilityMenu__myMDPanel--initiated'); //By default at display:none for FOUC. THis \"removes\" the display:none and lets opacity take over, allowing css transitions not possible on display property\n\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDActivate.addEventListener('click', MDM.SharedNav.MdUI.MyMDMenu.uiHandlerMyMDActivate);\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.addEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MyMDMenu.isInit = 1;\n },\n uiHandlerMyMDActivate: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MdUI.MyMDMenu.toggle();\n MDM.SharedNav.MdUI.HideAll('MyMDMenu');\n },\n terminate: function () {\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDActivate.removeEventListener('click', MDM.SharedNav.MdUI.MyMDMenu.uiHandlerMyMDActivate);\n MDM.SharedNav.MdUI.MyMDMenu.uiMyMDPanel.removeEventListener('click', MDM.SharedNav.MdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MdUI.MyMDMenu.isInit = 0;\n }\n};\n\nMDM.SharedNav.MdUI.CampaignMenu = {\n //This is not init at the same time as the whole menu.\n isInit: 0,\n \n init: function () {\n MDM.SharedNav.MdUI.CampaignMenu.uiCampaignLangButton = document.querySelector('#md-utilityMenu_link--langToggleCampaign');\n \n MDM.SharedNav.MdUI.CampaignMenu.uiCampaignLangButton.addEventListener('click', MDM.SharedNav.MdUI.CampaignMenu.uiHandlerCampaignLangButton);\n\n MDM.SharedNav.MdUI.CampaignMenu.isInit = 1;\n },\n uiHandlerCampaignLangButton: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.Core.toggleLanguageOnclick(e);\n },\n terminate: function () {\n MDM.SharedNav.MdUI.CampaignMenu.uiCampaignLangButton.removeEventListener('click', MDM.SharedNav.MdUI.CampaignMenu.uiHandlerCampaignLangButton);\n MDM.SharedNav.MdUI.CampaignMenu.isInit = 0;\n }\n};\n\nMDM.SharedNav.MdUI.InitHeader = function () {\n\n //Putting this in MDFM.SharedMenu.removeMenu tries to load before header.bundle.js is done executing\n if (MDM.SharedNav.MdUI.isMDMSharedHeaderBeenInitOnce) {\n MDM.SharedNav.MdUI.TerminateHeader();\n }\n\n //Scalable using detection. If element exists, we want it\n if (document.querySelectorAll('#md-utilityMenu_link-search').length !== 0) {\n MDM.SharedNav.MdUI.SearchBox.init();\n }\n\n //We do not init MyMDMenu here. It should be visible only when logged in. Only then should it be initiated.\n\n if (document.querySelectorAll('#md-menu-lvl2-panel-1').length !== 0) {\n MDM.SharedNav.MdUI.MainMenu.init();\n }\n\n if (document.querySelectorAll('#md-hamburgerMenu_link').length !== 0) {\n MDM.SharedNav.MdUI.HamburgerBtn.init();\n }\n\n if (document.querySelectorAll('#md-menu').length !== 0) {\n document.body.addEventListener('click', MDM.SharedNav.MdUI.uiHandlerHideAll);\n\n //Tell the css, which \"usually\" comes after the js, that we can show the menu. Otherwise, the css will \"wait\" on the js to get here before showing the menu (FOUC).\n document.querySelector('#md-menu').classList.add('md--menu--loaded');\n document.querySelector('#md-splash').classList.add('md--splash--loaded');\n document.querySelector('#md-navigation-container').classList.add('md--spacer--loaded');\n\n MDM.SharedNav.MdUI.isMDMSharedHeaderBeenInitOnce = 1;\n }\n\n if (document.querySelectorAll('#md-utilityMenu_link--langToggleCampaign').length !== 0) {\n MDM.SharedNav.MdUI.CampaignMenu.init();\n }\n \n \n};\n\nMDM.SharedNav.MdUI.TerminateHeader = function () {\n\n MDM.SharedNav.MdUI.HideAll();\n\n if (MDM.SharedNav.MdUI.SearchBox.isInit) {\n MDM.SharedNav.MdUI.SearchBox.terminate();\n }\n\n if (MDM.SharedNav.MdUI.MainMenu.isInit) {\n MDM.SharedNav.MdUI.MainMenu.terminate();\n }\n\n if (MDM.SharedNav.MdUI.HamburgerBtn.isInit) {\n MDM.SharedNav.MdUI.HamburgerBtn.terminate();\n }\n\n if (MDM.SharedNav.MdUI.MyMDMenu.isInit) {\n MDM.SharedNav.MdUI.MyMDMenu.terminate();\n }\n\n if (MDM.SharedNav.MdUI.CampaignMenu.isInit) {\n MDM.SharedNav.MdUI.CampaignMenu.terminate();\n }\n\n document.body.removeEventListener('click', MDM.SharedNav.MdUI.uiHandlerHideAll);\n};\n\nMDM.SharedNav.MdUI.HideAll = function (excludeSelf) {\n\n var mediaQuery = window.matchMedia(\"(min-width: 1200px)\");\n\n if (excludeSelf !== \"searchBox\" & MDM.SharedNav.MdUI.SearchBox.isInit & MDM.SharedNav.MdUI.SearchBox.isVisible) {\n MDM.SharedNav.MdUI.SearchBox.hide();\n }\n\n if (excludeSelf !== \"MyMDMenu\" & MDM.SharedNav.MdUI.MyMDMenu.isInit & MDM.SharedNav.MdUI.MyMDMenu.isVisible) {\n MDM.SharedNav.MdUI.MyMDMenu.hide();\n }\n\n //We want hamburger menu to only be closed by \"X\" button when in responsive view. We do not want clicking outside or on another menu item to close it.\n //Since we use same DOM for Desktop and Mobile: Desktop menu click would close hamburger; Ok. But, click on \"same\" link on mobile would close Hamburger; Not OK. This emdia query prevents it.\n if (mediaQuery.matches) {\n if (excludeSelf !== \"hamburgerBtn\" & MDM.SharedNav.MdUI.HamburgerBtn.isInit & MDM.SharedNav.MdUI.HamburgerBtn.isVisible) {\n MDM.SharedNav.MdUI.HamburgerBtn.hide();\n }\n }\n\n if (excludeSelf !== \"MainMenu\" & MDM.SharedNav.MdUI.MainMenu.isInit & MDM.SharedNav.MdUI.MainMenu.isVisible) {\n MDM.SharedNav.MdUI.MainMenu.hide(MDM.SharedNav.MdUI.MainMenu.wasLastOpenedPanel, MDM.SharedNav.MdUI.MainMenu.wasLastOpenedLink);\n }\n\n\n};\n\nMDM.SharedNav.MdUI.uiHandlerKeepAlive = function (e) {\n e.stopPropagation();\n};\n\nMDM.SharedNav.MdUI.uiHandlerHideAll = function () {\n //DO NOT prevent default here... it kills things like page scrolling. Nothing important but... yeah...\n //e.stopPropagation() here... kills selectmenu() and not even be necessary on the anyways. Why did this come back? No clue.\n MDM.SharedNav.MdUI.HideAll();\n};\n\nMDM.SharedNav.MdUI.InitHeader();","/* requires:\nnav-md.js\n*/\n\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.FooterUI = MDM.SharedNav.FooterUI || {};\n\nMDM.SharedNav.FooterUI.isMDMSharedFooterBeenInitOnce = 0;\n\nMDM.SharedNav.FooterUI.InitFooter = function () {\n\n if (MDM.SharedNav.FooterUI.isMDMSharedFooterBeenInitOnce) {\n MDM.SharedNav.FooterUI.TerminateFooter();\n }\n const container = document.querySelector('#md-footer');\n if (container !== null) {\n //Tell the css, which \"usually\" comes after the js, that we can show the menu. Otherwise, the css will \"wait\" on the js to get here before showing the menu (FOUC).\n container.classList.add('md--footer--loaded');\n MDM.SharedNav.FooterUI.isMDMSharedFooterBeenInitOnce = 1;\n }\n};\n\nMDM.SharedNav.FooterUI.TerminateFooter = function () {\n\n //Nothing to terminate yet since no other interaction. Placeholder.\n\n};\n\nMDM.SharedNav.FooterUI.InitFooter();","var MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.MyMdUI = MDM.SharedNav.MyMdUI || {};\n\nvar isBeenInitOnce = 0;\n\nMDM.SharedNav.MyMdUI.MainMenu = {\n isInit: 0,\n isVisible: 0,\n\n show: function () {\n if (MDM.SharedNav.MyMdUI.MainMenu.isInit) {\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLogo.classList.add('mymd--logoContainer--active');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLink.classList.add('mymd--mainMenu__link--active');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuPanel.classList.add('mymd--mainMenuLvl2--visible');\n MDM.SharedNav.Utils.fauxSelectKeyManager.init(MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLink, MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuPanel, MDM.SharedNav.MyMdUI.MainMenu.hide);\n MDM.SharedNav.MyMdUI.MainMenu.isVisible = 1;\n }\n },\n hide: function () {\n if (MDM.SharedNav.MyMdUI.MainMenu.isInit) {\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLogo.classList.remove('mymd--logoContainer--active');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLink.classList.remove('mymd--mainMenu__link--active');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuPanel.classList.remove('mymd--mainMenuLvl2--visible');\n //Hide all subpanels\n for (const menuSubpanel of MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuSubpanels) {\n menuSubpanel.classList.remove('mymd--mainMenuLvl2__row--active');\n }\n MDM.SharedNav.Utils.fauxSelectKeyManager.terminate();\n MDM.SharedNav.MyMdUI.MainMenu.isVisible = 0;\n }\n },\n toggle: function () {\n if (!MDM.SharedNav.MyMdUI.MainMenu.isVisible) {\n MDM.SharedNav.MyMdUI.MainMenu.show();\n } else {\n MDM.SharedNav.MyMdUI.MainMenu.hide();\n }\n },\n init: function () {\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLink = document.querySelector('#mymd--mainMenu__link');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuPanel = document.querySelector('.mymd--mainMenuLvl2');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLogo = document.querySelector('.mymd--logoContainer');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuSubpanels = document.querySelectorAll('.mymd--mainMenuLvl2__row--expandable');\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuNetWorth = document.querySelector('#mymd--mainMenuLvl2__row--networth');\n MDM.SharedNav.MyMdUI.MainMenu.LanguageButton = document.querySelector('#mymd--lang__link');\n\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLink.addEventListener('click', MDM.SharedNav.MyMdUI.MainMenu.uiHandlerMainMenuLink);\n if (MDM.SharedNav.MyMdUI.MainMenu.LanguageButton !== null && typeof MDM.SharedNav.MyMdUI.MainMenu.LanguageButton !== 'undefined') {\n if (MDM.SharedNav.Params.template === MDM.SharedNav.Constants.NavTemplates.MYMD_MDEXO) {\n MDM.SharedNav.MyMdUI.MainMenu.LanguageButton.addEventListener('click', MDM.SharedNav.MyMdUI.MainMenu.uiHandlerLanguageButton);\n }\n }\n \n MDM.SharedNav.MyMdUI.MainMenu.isInit = 1;\n },\n uiHandlerMainMenuLink: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MyMdUI.hideAll(\"MainMenu\");\n MDM.SharedNav.MyMdUI.MainMenu.toggle();\n },\n terminate: function () {\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuLink.removeEventListener('click', MDM.SharedNav.MyMdUI.MainMenu.uiHandlerMainMenuLink);\n MDM.SharedNav.MyMdUI.MainMenu.LanguageButton.removeEventListener('click', MDM.SharedNav.MyMdUI.MainMenu.uiHandlerLanguageButton);\n MDM.SharedNav.MyMdUI.MainMenu.isInit = 0;\n },\n hideNetworthOption: function () {\n if (MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuNetWorth) {\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuNetWorth.classList.add('mymd--mainMenuLvl2__row--hidden');\n }\n const netWorthOptionElementSubrow = document.querySelector('#mymd--mainMenuLvl2__subrow--netWorth');\n if (netWorthOptionElementSubrow) {\n netWorthOptionElementSubrow.classList.add('mymd--mainMenuLvl2__subrow--hidden');\n }\n },\n hideDuplicateMobileNetworthOption: function () {\n if (MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuNetWorth) {\n MDM.SharedNav.MyMdUI.MainMenu.uiMainMenuNetWorth.classList.add('mymd--mainMenuLvl2__row--desktop');\n }\n },\n hideGoalsOption: function () {\n const goalsOptionElement = document.querySelector('#mymd--mainMenuLvl2__row--goals');\n if (goalsOptionElement) {\n goalsOptionElement.classList.add('mymd--mainMenuLvl2__row--hidden');\n }\n },\n hideFinancialGoalsOption: function () {\n const financialGoalsOptionElement = document.querySelector('#mymd--mainMenuLvl2__subrow--financialGoals');\n if (financialGoalsOptionElement) {\n financialGoalsOptionElement.classList.add('mymd--mainMenuLvl2__subrow--hidden');\n }\n },\n toggleMainMenuSection: function (sectionSelector) {\n if (sectionSelector.classList.contains('mymd--mainMenuLvl2__row--active')) {\n sectionSelector.classList.remove('mymd--mainMenuLvl2__row--active');\n } else {\n sectionSelector.classList.add('mymd--mainMenuLvl2__row--active');\n }\n },\n hideFinancialPlanOption: function () {\n const financialPlanOptionDesktop = document.querySelector('#mymd--mainMenuLvl2__row--financialPlan--desktop');\n if (financialPlanOptionDesktop) {\n financialPlanOptionDesktop.classList.add('mymd--mainMenuLvl2__row--hidden');\n }\n const financialPlanOptionMobile = document.querySelector('#mymd--mainMenuLvl2__row--financialPlan--mobile');\n if (financialPlanOptionMobile) {\n financialPlanOptionMobile.classList.add('mymd--mainMenuLvl2__row--hidden');\n }\n },\n hideDocumentsOption: function () {\n const documentsOption = document.querySelector('#mymd--mainMenuLvl2__row--documents');\n if (documentsOption) {\n documentsOption.classList.add('mymd--mainMenuLvl2__row--hidden');\n }\n }\n ,\n uiHandlerLanguageButton: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.Core.toggleLanguageOnclick(e);\n }\n};\n\n\n\nMDM.SharedNav.MyMdUI.AdvisorMenu = {\n isInit: 0,\n isVisible: 0,\n\n show: function () {\n if (MDM.SharedNav.MyMdUI.AdvisorMenu.isInit) {\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuLink.classList.add('mymd--consultant__link--active');\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuPanel.classList.add('mymd--consultantLvl2--visible');\n MDM.SharedNav.MyMdUI.AdvisorMenu.isVisible = 1;\n }\n },\n hide: function () {\n if (MDM.SharedNav.MyMdUI.AdvisorMenu.isInit) {\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuLink.classList.remove('mymd--consultant__link--active');\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuPanel.classList.remove('mymd--consultantLvl2--visible');\n MDM.SharedNav.MyMdUI.AdvisorMenu.isVisible = 0;\n }\n },\n toggle: function () {\n if (!MDM.SharedNav.MyMdUI.AdvisorMenu.isVisible) {\n MDM.SharedNav.MyMdUI.AdvisorMenu.show();\n } else {\n MDM.SharedNav.MyMdUI.AdvisorMenu.hide();\n }\n },\n init: function () {\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuLink = document.querySelector('#mymd--consultant__link');\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuPanel = document.querySelector('.mymd--consultantLvl2');\n\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuLink.addEventListener('click', MDM.SharedNav.MyMdUI.AdvisorMenu.uiHandlerAdvisorMenuLink);\n\n MDM.SharedNav.MyMdUI.AdvisorMenu.isInit = 1;\n },\n uiHandlerAdvisorMenuLink: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MyMdUI.hideAll(\"AdvisorMenu\");\n MDM.SharedNav.MyMdUI.AdvisorMenu.toggle();\n },\n terminate: function () {\n MDM.SharedNav.MyMdUI.AdvisorMenu.uiAdvisorMenuLink.removeEventListener('click', MDM.SharedNav.MyMdUI.AdvisorMenu.uiHandlerAdvisorMenuLink);\n MDM.SharedNav.MyMdUI.AdvisorMenu.isInit = 0;\n },\n hideBookMeeting: function () {\n const bookMeetingElement = document.querySelector('#mymd--consultantLvl2__btn--bookmeeting');\n if (bookMeetingElement) {\n bookMeetingElement.classList.add('mymd--consultantLvl2__btn--hidden');\n }\n }\n};\n\nMDM.SharedNav.MyMdUI.ProfileMenu = {\n isInit: 0,\n isVisible: 0,\n\n show: function () {\n if (MDM.SharedNav.MyMdUI.ProfileMenu.isInit) {\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLink.classList.add('mymd--profile__link--active');\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuPanel.classList.add('mymd--profileLvl2--visible');\n MDM.SharedNav.Utils.fauxSelectKeyManager.init(MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLink, MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuPanel, MDM.SharedNav.MyMdUI.ProfileMenu.hide);\n MDM.SharedNav.MyMdUI.ProfileMenu.isVisible = 1;\n }\n },\n hide: function () {\n if (MDM.SharedNav.MyMdUI.ProfileMenu.isInit) {\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLink.classList.remove('mymd--profile__link--active');\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuPanel.classList.remove('mymd--profileLvl2--visible');\n MDM.SharedNav.Utils.fauxSelectKeyManager.terminate();\n MDM.SharedNav.MyMdUI.ProfileMenu.isVisible = 0;\n }\n },\n toggle: function () {\n if (!MDM.SharedNav.MyMdUI.ProfileMenu.isVisible) {\n MDM.SharedNav.MyMdUI.ProfileMenu.show();\n } else {\n MDM.SharedNav.MyMdUI.ProfileMenu.hide();\n }\n },\n init: function () {\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLink = document.querySelector('#mymd--profile__link');\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuPanel = document.querySelector('.mymd--profileLvl2');\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLanguage = document.querySelector('#mymd--profileLvl2__link-9');\n\n \n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLink.addEventListener('click', MDM.SharedNav.MyMdUI.ProfileMenu.uiHandlerProfileMenuLink);\n\n if (MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLanguage !== null && typeof MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLanguage !== 'undefined') {\n if (MDM.SharedNav.Params.template === MDM.SharedNav.Constants.NavTemplates.MYMD_MDEXO) {\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLanguage.addEventListener('click', MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLanguageClick);\n }\n }\n\n\n MDM.SharedNav.MyMdUI.ProfileMenu.isInit = 1;\n },\n uiHandlerProfileMenuLink: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MyMdUI.hideAll(\"ProfileMenu\");\n MDM.SharedNav.MyMdUI.ProfileMenu.toggle();\n },\n terminate: function () {\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLink.removeEventListener('click', MDM.SharedNav.MyMdUI.ProfileMenu.uiHandlerProfileMenuLink);\n MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLanguage.removeEventListener('click', MDM.SharedNav.MyMdUI.ProfileMenu.uiProfileMenuLanguageClick)\n MDM.SharedNav.MyMdUI.ProfileMenu.isInit = 0;\n },\n hideDocumentDeliveryOption: function () {\n const documentdeliveryOption = document.querySelector('#mymd--mainMenuLvl2__row--documentdelivery');\n if (documentdeliveryOption) {\n documentdeliveryOption.classList.add('mymd--profileLvl2__row--hidden');\n }\n }\n ,\n uiProfileMenuLanguageClick: function (e) {\n e.preventDefault();\n MDM.SharedNav.Core.toggleLanguageOnclick(e);\n }\n\n};\n\n\nMDM.SharedNav.MyMdUI.ActivityCenter = {\n isInit: 0,\n isVisible: 0,\n\n show: function () {\n if (MDM.SharedNav.MyMdUI.ActivityCenter.isInit) {\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterLink.classList.add('mymd--activityCentre__link--active');\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterPanel.classList.add('mymd--activityCentreLvl2--visible');\n MDM.SharedNav.MyMdUI.ActivityCenter.isVisible = 1;\n }\n },\n hide: function () {\n if (MDM.SharedNav.MyMdUI.ActivityCenter.isInit) {\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterLink.classList.remove('mymd--activityCentre__link--active');\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterPanel.classList.remove('mymd--activityCentreLvl2--visible');\n MDM.SharedNav.Template.ActivityCenterManager.dispatchClosingEvent(MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterPanel);\n MDM.SharedNav.MyMdUI.ActivityCenter.isVisible = 0;\n }\n },\n toggle: function () {\n if (!MDM.SharedNav.MyMdUI.ActivityCenter.isVisible) {\n MDM.SharedNav.MyMdUI.ActivityCenter.show();\n } else {\n MDM.SharedNav.MyMdUI.ActivityCenter.hide();\n }\n },\n init: function () {\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterLink = document.querySelector('#mymd--activityCentre__link');\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterPanel = document.querySelector('.mymd--activityCentreLvl2');\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterBookMeetingBtn = document.querySelector('#mymd--activityCentreLv12__BookMeetingLink');\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterSendMessageBtn = document.querySelector('#mymd--activityCentreLv12__SendMessageLink');\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterSendMessageCenterBtn = document.querySelector('#mymd--activityCentreLv12__MessageCentreLink');\n\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterLink.addEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.uiHandlerActivityCenterLink);\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterBookMeetingBtn.addEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.hide);\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterSendMessageBtn.addEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.hide);\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterSendMessageCenterBtn.addEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.hide);\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterPanel.addEventListener('click', MDM.SharedNav.MyMdUI.uiHandlerKeepAlive);\n\n MDM.SharedNav.MyMdUI.ActivityCenter.isInit = 1;\n },\n uiHandlerActivityCenterLink: function (e) {\n e.preventDefault();\n e.stopPropagation();\n MDM.SharedNav.MyMdUI.hideAll(\"ActivityCenter\");\n MDM.SharedNav.MyMdUI.ActivityCenter.toggle();\n },\n terminate: function () {\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterLink.removeEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.uiHandlerActivityCenterLink);\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterBookMeetingBtn.removeEventListener('click', MDM.SharedNav.MyMdUI.ActivityCenter.uiHandlerActivityCenterBookMeetingBtn);\n MDM.SharedNav.MyMdUI.ActivityCenter.uiActivityCenterPanel.removeEventListener('click', MDM.SharedNav.MyMdUI.uiHandlerKeepAlive);\n MDM.SharedNav.MyMdUI.ActivityCenter.isInit = 0;\n },\n hideBookMeeting: function () {\n const bookMeetingElement = document.querySelector('#mymd--activityCentreLvl2__rowTopBtn--bookmeeting');\n if (bookMeetingElement) {\n bookMeetingElement.classList.add('mymd--activityCentreLvl2__rowTopBtn--hidden');\n }\n }\n};\n\nMDM.SharedNav.MyMdUI.ActivityAlerts = {\n show: function () {\n\t\tdocument.querySelector('.mymd--header__activityAlerts').classList.add('mymd--header__activityAlerts--visible');\n },\n hide: function () {\n document.querySelector('.mymd--header__activityAlerts').classList.remove('mymd--header__activityAlerts--visible');\n }\n};\n\nMDM.SharedNav.MyMdUI.initHeader = function () {\n\n // Putting this in MYMD.SharedMenu.removeMenu tries to load before header.bundle.js is done executing\n if (isBeenInitOnce) {\n MDM.SharedNav.MyMdUI.terminateHeader();\n }\n\n //Scalable using detection. If element exists, we want it\n if (document.querySelectorAll('.mymd--mainMenu__link').length !== 0) {\n MDM.SharedNav.MyMdUI.MainMenu.init();\n }\n\n if (document.querySelectorAll('.mymd--consultant__link').length !== 0) {\n MDM.SharedNav.MyMdUI.AdvisorMenu.init();\n }\n\n if (document.querySelectorAll('.mymd--activityCentre__link').length !== 0) {\n MDM.SharedNav.MyMdUI.ActivityCenter.init();\n }\n\n if (document.querySelectorAll('.mymd--profile__link').length !== 0) {\n MDM.SharedNav.MyMdUI.ProfileMenu.init();\n }\n\n if (document.querySelectorAll('#mymd--header').length !== 0) {\n document.body.addEventListener('click', MDM.SharedNav.MyMdUI.handlerUIHideAllMenus);\n\n //The following will prevent the main menu from closing when an expandable item is selected\n document.querySelectorAll('.mymd--mainMenuLvl2__row--expandable .mymd--mainMenuLvl2__link').forEach(item => {\n item.addEventListener('click', event => {\n MDM.SharedNav.MyMdUI.MainMenu.toggleMainMenuSection(item.parentElement);\n event.stopPropagation();\n })\n })\n\n //Tell the css, which \"usually\" comes after the js, that we can show the menu. Otherwise, the css will \"wait\" on the js to get here before showing the menu (FOUC).\n document.querySelector('#mymd--header').classList.add('mymd--header--loaded');\n document.querySelector('#md-splash').classList.add('md--splash--loaded');\n document.querySelector('#md-navigation-container').classList.add('mymd--spacer--loaded');\n\n isBeenInitOnce = 1;\n }\n};\n\nMDM.SharedNav.MyMdUI.terminateHeader = function () {\n\n MDM.SharedNav.MyMdUI.hideAll();\n\n if (MDM.SharedNav.MyMdUI.MainMenu.isInit) {\n MDM.SharedNav.MyMdUI.MainMenu.terminate();\n }\n\n if (MDM.SharedNav.MyMdUI.ActivityCenter.isInit) {\n MDM.SharedNav.MyMdUI.ActivityCenter.terminate();\n }\n\n if (MDM.SharedNav.MyMdUI.ProfileMenu.isInit) {\n MDM.SharedNav.MyMdUI.ProfileMenu.terminate();\n\t}\n\n\tif (MDM.SharedNav.MyMdUI.AdvisorMenu.isInit) {\n\t\tMDM.SharedNav.MyMdUI.AdvisorMenu.terminate();\n\t}\n\n document.body.removeEventListener('click', MDM.SharedNav.MyMdUI.handlerUIHideAllMenus);\n\n};\n\nMDM.SharedNav.MyMdUI.hideAll = function (excludeSelf) {\n if (excludeSelf !== \"MainMenu\" & MDM.SharedNav.MyMdUI.MainMenu.isInit & MDM.SharedNav.MyMdUI.MainMenu.isVisible) {\n MDM.SharedNav.MyMdUI.MainMenu.hide();\n }\n\n if (excludeSelf !== \"ActivityCenter\" & MDM.SharedNav.MyMdUI.MainMenu.isInit & MDM.SharedNav.MyMdUI.ActivityCenter.isVisible) {\n MDM.SharedNav.MyMdUI.ActivityCenter.hide();\n }\n\n if (excludeSelf !== \"ProfileMenu\" & MDM.SharedNav.MyMdUI.MainMenu.isInit & MDM.SharedNav.MyMdUI.ProfileMenu.isVisible) {\n MDM.SharedNav.MyMdUI.ProfileMenu.hide();\n }\n\n if (excludeSelf !== \"AdvisorMenu\" & MDM.SharedNav.MyMdUI.MainMenu.isInit & MDM.SharedNav.MyMdUI.AdvisorMenu.isVisible) {\n MDM.SharedNav.MyMdUI.AdvisorMenu.hide();\n }\n\n};\n\nMDM.SharedNav.MyMdUI.uiHandlerKeepAlive = function (e) {\n e.stopPropagation();\n};\n\nMDM.SharedNav.MyMdUI.handlerUIHideAllMenus = function () {\n //DO NOT prevent default here... it kills things like page scrolling. Nothing important but... yeah...\n //e.stopPropagation() here... kills selectmenu() and not even be necessary on the anyways. Why did this come back? No clue.\n /*e.stopPropagation();*/\n MDM.SharedNav.MyMdUI.hideAll();\n};\n\nMDM.SharedNav.MyMdUI.loadSimplifiedMenu = function (language) {\n var menuHtml = `\n
    \n\t
    \n
    \n
    \n
    \n \n \n \"MD\n \n
    \n \n
    \n
    \n
    \n
    `\n\n //main template\n const navNode = document.createElement('div');\n const body = document.body;\n navNode.innerHTML = menuHtml;\n navNode.id = MDM.SharedNav.Core.ElementIds.navigationContainer;\n body.insertBefore(navNode, body.firstChild);\n};\n\ntry {\nMDM.SharedNav.MyMdUI.initHeader();\n}\ncatch (e) {\n MDM.SharedNav.MyMdUI.loadSimplifiedMenu();\n}","\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\nMDM.SharedNav.Template.Survey = class {\n constructor(surveySrc) {\n this._hasInit = false;\n this._surveySrc = surveySrc;\n\n if (this.isAvailable()) {\n this.init(this._surveySrc);\n }\n }\n\n isAvailable() {\n return MDM.SharedNav.Params.getSurvey;\n }\n\n hide() {\n Array.from(document.getElementsByClassName('_acs')).forEach(\n function (element, index, array) {\n element.style.visibility = 'hidden';\n }\n );\n }\n\n show() {\n if (this._hasInit === false) {\n this.init(this._surveySrc);\n } else {\n Array.from(document.getElementsByClassName('_acs')).forEach(\n function (element, index, array) {\n element.style.visibility = 'visible';\n }\n );\n }\n }\n\n toggle(show) {\n if (show === true) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n init(src) {\n // ForeSee Embed Script v2.01\n // DO NOT MODIFY BELOW THIS LINE *****************************************\n (function (g) {\n var d = document, am = d.createElement('script'), h = d.head || d.getElementsByTagName(\"head\")[0], fsr = 'fsReady',\n aex = {\n \"src\": src,\n \"type\": \"text/javascript\",\n \"async\": \"true\",\n \"data-vendor\": \"fs\",\n \"data-role\": \"gateway\"\n };\n for (var attr in aex) { am.setAttribute(attr, aex[attr]); } h.appendChild(am); g[fsr] || (g[fsr] = function () { var aT = '__' + fsr + '_stk__'; g[aT] = g[aT] || []; g[aT].push(arguments); });\n })(window);\n // DO NOT MODIFY ABOVE THIS LINE *****************************************\n\n this._hasInit = true;\n }\n};\nMDM.SharedNav.Template.forseeInstance = null;\n","\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\n\nMDM.SharedNav.Template.BaseSearch = class {\n\n submitSearch(searchOptions) {\n let urlWithParams = searchOptions.url + this.param(searchOptions.getParams());\n let options = {\n method: searchOptions.method,\n url: urlWithParams,\n withCredentials: false\n };\n return MDM.SharedNav.Utils.makeRequest(options);\n }\n\n param(object) {\n let encodedString = '';\n for (let prop in object) {\n if (object.hasOwnProperty(prop)) {\n if (encodedString.length > 0) {\n encodedString += '&';\n }\n encodedString += encodeURI(prop + '=' + object[prop]);\n }\n }\n return encodedString;\n }\n};\n\nMDM.SharedNav.Template.NavSearch = class extends MDM.SharedNav.Template.BaseSearch {\n\n constructor(searchBoxSelector, searchResultBoxSelector, searchBtnSelector) {\n super();\n let self = this;\n let searchOptions = {\n searchBoxSelector: searchBoxSelector,\n searchResultBoxSelector: searchResultBoxSelector,\n searchBtnSelector: searchBtnSelector,\n queryOptions: {\n method: 'GET',\n url: MDM.SharedNav.Params.onlineUrl + '/mdapi/search/suggestions?',\n getParams: function() {\n return {\n term: document.querySelector(searchBoxSelector).value,\n culture: MDM.SharedNav.Utils.getCurrentLanguage()\n };\n },\n beforeCallback: function() {\n self.clearSuggestionUi();\n },\n afterCallback: function(data) {\n self.updateSuggestionUi(data);\n }\n }\n };\n this.init(searchOptions);\n this.searchResultBoxSelector = searchResultBoxSelector;\n }\n\n init(searchOptions) {\n let self = this;\n self.termSelector = searchOptions.searchBoxSelector;\n self.containerSelector = searchOptions.searchResultBoxSelector;\n self.submitSelector = searchOptions.searchBtnSelector;\n self.searchInput = document.querySelector(this.termSelector);\n self.searchBtn = document.querySelector(this.submitSelector);\n self.searchInputEmptyErrorEN = \"Please enter a search term\";\n self.searchInputEmptyErrorFR = \"Entrez un terme à rechercher\";\n self.inputErrorClass = \"md--search__input--error\";\n self.queryOptions = searchOptions.queryOptions || {};\n self.queryOptions.method = searchOptions.queryOptions.method || 'GET';\n self.queryOptions.url = searchOptions.queryOptions.url || '';\n self.queryOptions.getParams = searchOptions.queryOptions.getParams || function() {};\n\n if (self.searchInput !== null && self.searchBtn !== null) {\n self.queryTimeOut;\n self.queryTimeOutLength = 500;\n // bind events\n let clearSuggestion = function () {\n self.clearSuggestionUi();\n };\n let getSuggestions = function (event) {\n if (self.queryOptions.beforeCallback)\n self.queryOptions.beforeCallback();\n clearTimeout(self.queryTimeOut);\n if (self.queryOptions.getParams().term.length > 1) {\n self.queryTimeOut = setTimeout(function () {\n self.queryOptions.url = MDM.SharedNav.Params.onlineUrl + '/mdapi/search/suggestions?';\n let submit = self.submitSearch(self.queryOptions);\n submit.then((data) => {\n if (self.queryOptions.afterCallback)\n self.queryOptions.afterCallback(data);\n }).catch(error => {\n console.log(error);\n });\n },\n self.queryTimeOutLength);\n }\n\n // if keyup is 'ENTER'\n if (event.keyCode === 13) {\n getSearchResult();\n }\n\n return;\n };\n\n let getSearchResult = function () {\n let length = self.queryOptions.getParams().term.length;\n if (!self.searchInput.classList.contains(self.inputErrorClass) && length > 1 && length <= 200) {\n //do search\n if (MDM.SharedNav.Utils.getCurrentLanguage() === 'en')\n location.href = MDM.SharedNav.Params.onlineUrl +\n '/search-results?term=' +\n self.searchInput.value;\n else {\n location.href = MDM.SharedNav.Params.onlineUrl +\n '/fr/resultats-de-recherche?term=' +\n self.searchInput.value;\n }\n } else {\n //show error\n self.searchInput.classList.add(self.inputErrorClass);\n\n //Clear error UI for additional attempt\n //https://www.sitepoint.com/create-one-time-events-javascript/ \t\t//same as .one()\n self.searchInput.addEventListener('click', self.handlerUISearchField);\n\n switch (MDM.SharedNav.Utils.getCurrentLanguage()) {\n case \"en\":\n self.searchInput.value = self.searchInputEmptyErrorEN;\n break;\n case \"fr\":\n self.searchInput.value = self.searchInputEmptyErrorFR;\n break;\n }\n }\n };\n\n self.searchInput.addEventListener('input', clearSuggestion);\n self.searchInput.addEventListener('focusout',\n function () {\n let container = document.querySelector(self.containerSelector);\n setTimeout(function () {\n //setTimeout used to prevent bug when clicking on anchor links\n container.classList.remove('md--search__listContainer--isVisible');\n },\n 100);\n });\n self.searchInput.addEventListener('keyup', getSuggestions);\n self.searchInput.addEventListener('focusin',\n function () {\n let container = document.querySelector(self.containerSelector);\n container.classList.add('md--search__listContainer--isVisible');\n });\n\n self.handlerUISearchField = function () {\n self.searchInput.value = \"\";\n self.searchInput.classList.remove(self.inputErrorClass);\n self.searchInput.removeEventListener('click', self.handlerUISearchField);\n };\n\n self.searchBtn.addEventListener('click', getSearchResult);\n }\n }\n\n renderSearchResult(searchSuggestion) {\n if (searchSuggestion)\n return ``;\n return '';\n }\n\n updateSuggestionUi(searchSuggestions) {\n let suggestion = JSON.parse(searchSuggestions);\n //update ui\n this.resultBox = document.querySelector(this.searchResultBoxSelector);\n let renderedHtml = this.renderSearchResult(suggestion.SearchItems);\n this.resultBox.innerHTML = renderedHtml || '';\n }\n\n clearSuggestionUi() {\n this.resultBox = document.querySelector(this.searchResultBoxSelector);\n this.resultBox.innerHTML = '';\n }\n};\n\nMDM.SharedNav.Template.SharedNavSearchBox = new MDM.SharedNav.Template.NavSearch('#md-search-nav_input', '#md--search-nav__listContainer', '#md-search-nav_submit');","\"use strict\";\nvar MDM = MDM || {};\nMDM.SharedNav = MDM.SharedNav || {};\nMDM.SharedNav.Template = MDM.SharedNav.Template || {};\n\nMDM.SharedNav.Template.SplashPageConstants = {\n elementIds: {\n splashPage: \"md-splash\",\n title: \"md-splashTitle\",\n imageContainer: \"md-splashImageContainer\",\n imageElement: \"md-splashImageElement\",\n contentContainer: \"md-splashContentContainer\",\n content: \"md-splashContent\",\n buttonsContainer: \"md-splashButtonsContainer\",\n buttonNextTime: \"md-splashNextTime\",\n buttonLearnMore: \"md-splashLearnMore\",\n buttonNotInterested: \"md-splashNotInterested\"\n },\n classes: {\n splashPageVisible: \"md--splash--visible\",\n button: \"md--splash__button\",\n buttonPrimary: \"md--splash__button--primary\",\n colorPrefix: \"md--splash--bg\",\n imageContainer: 'md--splash__header',\n imageElement: 'md--splash__headerImg'\n },\n actions: {\n learnMore: \"learnmore\",\n notInterested: \"notinterested\",\n nextTime: \"nexttime\"\n }\n};\n\nMDM.SharedNav.Template.SplashPage = class {\n constructor() {\n this._id = null;\n this._title = null;\n this._content = null;\n this._headerImageLink = null;\n this._backgroundColor = null;\n this._pageMode = null;\n this._marketingUri = null;\n this._buttons = null;\n\n //check for a splash-page as long as the navigation session has not flagged one\n if (MDM.SharedNav.Template.SplashPage.isSplashPageChecked() === false) {\n this.load();\n }\n }\n\n load() {\n const params = MDM.SharedNav.Params;\n const currentLanguage = MDM.SharedNav.Utils.getCurrentLanguage();\n const options = {\n method: 'GET',\n url: `${MDM.SharedNav.Params.navUrl}/splashPage/get?language=${currentLanguage}`,\n headers: {\n 'Content-Type': 'application/json'\n },\n withCredentials: true\n };\n MDM.SharedNav.Utils.makeRequest(options)\n .then((response) => {\n var parsedResponse = JSON.parse(response);\n if (parsedResponse != null && parsedResponse.found === true) {\n //call callback when splash page is ready to load\n MDM.SharedNav.Utils.runCallback(params.loadSplashPageCallback, true);\n //update object attributes with splashPage\n this.updateData(parsedResponse.splashPage);\n //update content\n this.updateContent(false);\n //show splashPage\n MDM.SharedNav.Template.SplashPage.toggleSplashPage(true);\n }\n else {\n MDM.SharedNav.Utils.runCallback(params.loadSplashPageCallback, false);\n }\n })\n .catch((error) => {\n console.error(error);\n });\n }\n\n submit(splashPageAction) {\n const splashConstants = MDM.SharedNav.Template.SplashPageConstants;\n\n const options = {\n method: 'POST',\n url: `${MDM.SharedNav.Params.navUrl}/splashPage/Submit?splashPageId=${this._id}&splashPageAction=${splashPageAction}`,\n headers: {\n 'Content-Type': 'application/json'\n },\n withCredentials: true\n };\n MDM.SharedNav.Utils.makeRequest(options)\n .catch((error) => {\n console.error(error);\n });\n\n //Assume everything went well, mark splash page as checked\n MDM.SharedNav.Template.SplashPage.toggleSplashPageCheck(true);\n //hide splash page\n MDM.SharedNav.Template.SplashPage.toggleSplashPage(false);\n //reset splash page content\n this.updateContent(true);\n //redirect to marketing url if action is learn more\n if (splashPageAction === splashConstants.actions.learnMore && this._marketingUri !== null) {\n window.location.href = this._marketingUri;\n }\n }\n\n updateData(splashPage) {\n this._id = splashPage.id;\n this._title = splashPage.title;\n this._content = splashPage.content;\n this._headerImageLink = splashPage.imageLink;\n this._backgroundColor = splashPage.backgroundColor;\n this._pageMode = splashPage.pageMode;\n this._marketingUri = splashPage.marketingUri;\n this._buttons = splashPage.buttons;\n }\n\n updateContent(isReset) {\n const elements = MDM.SharedNav.Template.SplashPageConstants.elementIds;\n\n MDM.SharedNav.Template.SplashPage.updateText(elements.title, this._title, isReset);\n MDM.SharedNav.Template.SplashPage.updateText(elements.content, this._content, isReset);\n MDM.SharedNav.Template.SplashPage.updateImage(elements.imageContainer, elements.imageElement, this._headerImageLink, isReset);\n MDM.SharedNav.Template.SplashPage.updateBgColor(elements.contentContainer, this._backgroundColor, isReset);\n MDM.SharedNav.Template.SplashPage.updateButtons(this._buttons, isReset);\n }\n\n static updateText(elementId, value, isReset) {\n const element = document.getElementById(elementId);\n if (element !== null && typeof element !== 'undefined') {\n\n if (isReset === true) {\n element.innerHTML = \"\";\n } else {\n element.innerHTML = value;\n }\n }\n }\n\n static updateImage(elementContainerId, elementId, value, isReset) {\n const splashConstants = MDM.SharedNav.Template.SplashPageConstants;\n const imageContainer = document.getElementById(elementContainerId);\n if (imageContainer !== null && typeof imageContainer !== 'undefined') {\n imageContainer.classList.remove(splashConstants.classes.imageContainer);\n imageContainer.innerHTML = \"\";\n\n //neither splashPage reset nor empty image src... proceed with img element creation\n if (isReset !== true && value) {\n //reapply container class\n imageContainer.classList.add(splashConstants.classes.imageContainer);\n //create and append img element\n const imageElement = document.createElement('img');\n imageElement.setAttribute('src', `${MDM.SharedNav.Params.onlineUrl}${value}`);\n imageElement.setAttribute('alt', '');\n imageElement.classList.add(splashConstants.classes.imageElement);\n\n imageContainer.appendChild(imageElement);\n }\n }\n }\n\n static updateBgColor(elementId, value, isReset) {\n const colorPrefix = MDM.SharedNav.Template.SplashPageConstants.classes.colorPrefix;\n const element = document.getElementById(elementId);\n\n if (element !== null && typeof element !== 'undefined') {\n //resets all color classes\n for (var i = 0; i < element.classList.length; i++) {\n if (element.classList[i].startsWith(colorPrefix)) {\n element.classList.remove(element.classList[i]);\n }\n }\n //if this is not a reset apply the bgColor attribute\n if (isReset !== true) {\n element.classList.add(colorPrefix + value);\n }\n }\n }\n\n static updateButtons(buttons, isReset) {\n const splashConstants = MDM.SharedNav.Template.SplashPageConstants;\n const buttonsContainerElement = document.getElementById(splashConstants.elementIds.buttonsContainer);\n\n if (buttonsContainerElement !== null && typeof buttonsContainerElement !== 'undefined') {\n //reset button list\n buttonsContainerElement.innerHTML = \"\";\n //if this is not a reset add the buttons\n if (isReset !== true) {\n for (let key in buttons) {\n if (buttons.hasOwnProperty(key)) {\n const currentButton = buttons[key];\n const buttonElement = document.createElement('a');\n\n //shared attributes across all buttons\n buttonElement.setAttribute('role', 'button');\n buttonElement.setAttribute('href', '#');\n buttonElement.classList.add(splashConstants.classes.button);\n\n //determine primary button\n if (currentButton.hasOwnProperty('isPrimary') && currentButton.isPrimary === true) {\n buttonElement.classList.add(splashConstants.classes.buttonPrimary);\n }\n\n //assign text\n if (currentButton.hasOwnProperty('label')) {\n buttonElement.innerHTML = currentButton.label;\n }\n\n if (currentButton.hasOwnProperty('action')) {\n //determine button id\n switch (currentButton.action) {\n case splashConstants.actions.learnMore:\n buttonElement.id = splashConstants.elementIds.buttonLearnMore;\n break;\n case splashConstants.actions.notInterested:\n buttonElement.id = splashConstants.elementIds.buttonNotInterested;\n break;\n case splashConstants.actions.nextTime:\n buttonElement.id = splashConstants.elementIds.buttonNextTime;\n break;\n default:\n }\n\n //bind the submit event\n buttonElement.addEventListener('click', event => {\n event.preventDefault();\n //push value to datalayer\n if (window.dataLayer) {\n window.dataLayer.push({\n 'event': 'splashPage Button Click',\n 'splashpage': {\n 'action': currentButton.action,\n 'title': document.getElementById('md-splashTitle').innerText\n }\n });\n }\n\n MDM.SharedNav.Template.SplashPageInstance.submit(currentButton.action);\n\n });\n }\n\n //append button to buttonContainer\n buttonsContainerElement.appendChild(buttonElement);\n }\n }\n }\n }\n }\n\n static toggleSplashPage(isVisible) {\n const splashConstants = MDM.SharedNav.Template.SplashPageConstants;\n const element = document.getElementById(splashConstants.elementIds.splashPage);\n if (element !== null && typeof element !== 'undefined') {\n if (isVisible) {\n //show\n element.classList.add(splashConstants.classes.splashPageVisible);\n element.removeAttribute('aria-hidden');\n } else {\n //hide\n element.classList.remove(splashConstants.classes.splashPageVisible);\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n\n static toggleSplashPageCheck(isChecked) {\n const splashPage = MDM.SharedNav.Template.SplashPageConstants.elementIds.splashPage;\n if (isChecked === true) {\n MDM.SharedNav.Utils.setCookie(splashPage, isChecked, 30, MDM.SharedNav.Constants.MdCookieDomain);\n } else {\n MDM.SharedNav.Utils.eraseCookie(splashPage, MDM.SharedNav.Constants.MdCookieDomain);\n }\n }\n\n static isSplashPageChecked() {\n return MDM.SharedNav.Utils.getCookieValue(MDM.SharedNav.Template.SplashPageConstants.elementIds.splashPage) === \"true\";\n }\n};\n\nMDM.SharedNav.Template.SplashPageInstance = null;"]}