{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/engage-library/logger.js","webpack:///./node_modules/jwt-decode/build/jwt-decode.esm.js","webpack:///./js/engage-library/engageLibrary.js","webpack:///./js/engage-library/engageLibraryTest.js","webpack:///./js/engage-library/entrypoint.engageLibrary.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","logger","log","window","authentication_config","debug","_console","_len","arguments","length","args","Array","_key","console","apply","concat","jwt_decode_esm_e","e","this","message","Error","atob","String","replace","a","charAt","fromCharCode","indexOf","decodeURIComponent","charCodeAt","toString","toUpperCase","jwt_decode_esm","header","JSON","parse","split","_regeneratorRuntime","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","type","arg","h","f","y","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","slice","stop","rval","handle","complete","finish","catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","toPrimitive","Number","_toPrimitive","_toPropertyKey","_toConsumableArray","isArray","_arrayLikeToArray","_arrayWithoutHoles","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_createForOfIteratorHelper","_n","F","test","engageLibrary","sophiResponseCheckedAlready","CONSTANTS","allowedSophiPrefIds","windowLocation","location","checkIfUserIsInSegment","segment","sg","blueConicClient","getSegments","sn","segmentIncluded","includes","getCurrentUrl","windowLocationhref","href","URL","getRootDomain","givenHostname","undefined","hostnameToCheck","hostname","parts","archiveCheck","expireAfter","dataLayer","paywallLevel","find","data","Paywall_Level","ga_ua","urlSplit","urlMonthDay","today","Date","publishDate","expireDate","setDate","getDate","findTag","keywords","getTags","document","querySelector","classList","_step","keywordsFixed","_iterator","entries","_step$value","toLowerCase","replaceAll","err","_step2","_iterator2","_step2$value","index","contains","urlCheck","checkArray","loc","userIsAuthenticated","MNGAuthentication","authenticationReady","isAuthenticated","tokenStorage","localStorage","getItem","idToken","tagsExist","tags","getSophiVariantCookie","sophiCookie","newsletterSubscribe","event","$emailInput","$errorMessage","newsLetterId","$formStep","$successStep","successMessage","successMessageHoldTime","preventDefault","validationResult","email","emailPattern","RegExp","jQuery","text","valid","validateEmail","val","updateErrorMessage","prefIdsReady","decoded快播视频letter","prefIds","id","CnnXt","API","快播视频letterSubscribe","onSuccess","hide","html","show","_window$sophi_config","sophi_config","enableSDK","_matherq","category","action","setItem","sendSophiRegiliteEvent","setTimeout","Connext","Run","onError","error","sdkErrorHandler","Message","errorMessageHandler","ErrorMessage","messageElement","isShow","emailInput","removeClass","addClass","calculateGroup","rand","group","getSophiDataDenver","response","connextCheck","getConnextConversation","conversationName","Name","sophiWallConfig","sophiEvent","sophi_type","sophi_variant","stringify","sophi_response","sophi_conv","getCookie","cookieName","cookies","cookie","cookiePart","trimLeft","substring","pageIsInPreview","url","searchParams","has","panymaGiveBCAccess","caGiveBCAccess","pmpGiveBCAccess","allSubsGiveBCAccess","crossOverGiveBCAccess","subscribersForMigration","bcAdblockDetection","isEntitledValue","userInfo","isEntitled","printCheck","_Connext$Storage$GetU","currentLevel","Storage","GetUserData","DigitalAccess","Subscription","HousholdSubscriptionLevel","k","checkForHHSLs","hhslArray","_Connext$Storage$GetU2","HouseholdSubscriptionLevel","getDataLayerEntry","entryName","pageTypeFound","getPageType","getSection","Section","getPaywallLevel","testingLocalStorage","abLocal","Math","floor","random","abcLocal","endString","testingSessionStorage","sessionStorage","premiumFeatureExclusiveDP","getElementById","className","bcLowaCheck","denvPmpDomains","bangDomains","scngDomains","ohioDomains","pennDomains","nyDomains","bostonDomains","norcalDomains","mercurynewsIsMeteredArchive","host","search","ocregisterIsMeteredArchive","pressenterpriseIsMeteredArchive","eastbayIsMeteredArchive","marinijIsMeteredArchive","bostonheraldIsMeteredArchive","lowellsunIsMeteredArchive","sentinelIsMeteredArchive","dailyfreemanIsMeteredArchive","dailycameraIsMeteredArchive","greeleytribuneIsMeteredArchive","reporterheraldIsMeteredArchive","timescallIsMeteredArchive","santacruzsentinelIsMeteredArchive","montereyheraldIsMeteredArchive","chicoerIsMeteredArchive","courantIsMeteredArchive","mcallIsMeteredArchive","orlandosentinelIsMeteredArchive","sunsentinelIsMeteredArchive","pilotonlineIsMeteredArchive","dailypressIsMeteredArchive","nydailynewsIsMeteredArchive","baltimoresunIsMeteredArchive","capitalgazetteIsMeteredArchive","SDUTIsMeteredArchive","days","NEPAIsMeteredArchive","articleSharingExpire","_window$MNGAuthentica","_window$MNGAuthentica2","_window$MNGAuthentica3","_window$MNGAuthentica4","articleShare","getRegwallSuccess","getRegwallKnown","setCookie","options","cookieString","_ref","_ref2","date","setTime","getTime","toUTCString","getCookieRootDomain","rootDomain","_window$Connext$Stora","_window$Connext","_window$Connext$Stora2","GetCurrentConversation","checkBCForNonSub","nonSegments","GetConfigCode","allReadersTag","hasClass","isOpinionPiece","isEspanolContent","isPhotosAndVideos","isAthleteOfWeek","isContests","getTaxonomy1","Taxonomy1","profileDropDownExists","twinCitiesKnownEmail","twinCitiesUrlCheck","pmpUrlCheck","paywallTimer","timer_stop","now","timer_diff","MNG_SSO_TOOLS_GLOBAL_START_TIME","Timer.PaywallShown","performance","inline快播视频letter","$succesStep","body","on","inlineRegwall1","inlineRegwall","regilite","loginLogoutButtons","logoutButtons","querySelectorAll","loginButtons","button","logoutButton","style","visibility","display","addEventListener","logout快播视频back","loginButton","loginButtonAnchor","textContent","loginUrl","params","URLSearchParams","append","setAttribute","logout","expandCollapseJquery","ready","collapsedStep","expandedStep","collapseBtn","expandBtn","hybridHardwall","lowaLoginEvent","lowa_click","lowaCloseEvent","whySubscribePageCheck","pathname","isSophiVariantOrHoldout","testCookie","sophi_cookie_val","isSophiVariant","shouldLoadPaywall","sophiResponse","wallType","shouldLoadRegwall","responseIsNowall","wallVisibility","regwallObj","userIsInSegments","segments","getUserHhsl","_Connext$Storage$GetU3","marinRegwallListener","_callee3","getEmailInput","errorMessageHandlerRegwall","updateErrorMessageRegwall","goToSuccessStep","checkRegWallOptions","setAuth0Sub","setAuth0SubIfNotSet","subscribeTo快播视频letter","validateEmailRegwall","subscribe","changedEmail","checkPageType","tribRegiwallSubButton","connextTribEmailInput","regiwallSubButton","connextEmail","_context3","errorMessage","innerHTML","remove","add","regSuccess","el","auth0RegwallUserEmail","sendEmail","siteURL","origin","auth0ClientId","includeLoginLink","auth0Sub","domain","path","expires","secure","userData","claims","sub","preferenceID","_ref4","_callee","elem","simpleValidation","regWallOptions","userEndpoint","auth0Response","_context","simpleEmailValidation","exist","entitlementsEndpoint","fetch","headers","X-API-Key","entitlementsAPIKey","res","json","uuid","newUserCreated","_ref5","_callee2","_context2","_x","getUserInfo","authenticated","getElementsByClassName","code","activeElement","showModal","createCompSubModal","loggedInUserDetails","siteTitle","getAttribute","emailForCompSub","compSubParams","firstName","lastName","phone","zipCode","init","_ref6","_callee4","user","_jwtDecode","auth0Id","_context4","$","jwtDecode","getUserDetails","t0","showErrorMessage","placeholder","removeAttribute","addEventListeners","element","validateInput","resetErrors","signUpHandler","_ref7","_callee5","session","entitlementToken","sessionObject","_context5","refreshToken","_x2","target","closest","css","_ref8","_callee6","zipIsValid","_loggedInUserDetails","currentDate","endDate","submitButton","newsapperDomain","loadingIcn","_context6","validateZipCode","createElement","appendChild","fullName","nickname","X-Api-Key","status","sub_id","Result","SubscriptionId","sub_type","sub_start","toISOString","sub_end","_x3","prop","_ref9","_callee7","userDetails","_context7","_x4","_ref10","_callee8","jwtRequestBody","responseBody","_context8","jwt","Accept","Content-Type","saveToken","_x5","_ref11","_callee9","decoded","_context9","saveEntitlementCookie","expiration","entitlement_expiry","entitlementSource","entitlement_source","entitlement_entitled","adFree","entitlement_extras_adfree","entitlementLevel","entitlement_level","_x6","engageLibraryTest","runTest","sophi","bcRunTests"],"mappings":"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","file":"engageLibrary.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","const log = function logger(...args) {\n if ( window.authentication_config && !!window.authentication_config.debug ) {\n console.log('EngageLibrary:', ...args);\n }\n};\n \nexport default {\n log,\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import logger from './logger';\nimport jwtDecode from 'jwt-decode';\n// import {saveSession} from '../../../mng-digisubs/assets/js/authentication/session';\n\nconst init = () => {\n\twindow.engageLibrary = window.engageLibrary || {};\n\twindow.engageLibrary.sophiResponseCheckedAlready = false;\n\tconst CONSTANTS = {\n\t\tAUTH0_SUB_COOKIE_KEY: 'auth0_sub',\n\t\tENTITLEMENT_COOKIE_KEY: 'mng-entitlements',\n\t\tLOCAL_STORAGE_SESSION_KEY: '__MNG_Session',\n\t\tREGWALL_USER_IS_SUBSCRIBED: 'regwallUserIsSubscribed',\n\t\tUSER_IS_LOWA: 'entitled',\n\t\tSLO_FLAG: 'slo_flag',\n\t\tAB_TESTING_COOKIE: '_matheriSegs'\n\t};\n\n\twindow.engageLibrary.allowedSophiPrefIds = [\n\t\t137, 179, 180, 147, 148, 99, 100, 103, 101, 102, 138, 136, 137, 139, 307, 308, 304, 334, 303,\n\t\t305, 398, 399, 309, 310, 311, 312, 313, 316, 315, 317, 314, 318, 332, 331, 333, 330, 150, 319,\n\t\t323, 325, 324, 321, 322, 320, 326, 327, 328, 329, 287, 426, 420, 422, 418, 419, 424, 428, 427,\n\t\t423, 421, 425, 606, 607, 608, 609, 610, 611, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637,\n\t\t215, 216, 217, 218, 219, 221, 223, 224, 225, 226, 181, 182, 159, 478, 479, 695, 696, 697, 698,\n\t\t699, 700, 701, 702, 703, 704, 705, 2008, 2009, 2010, 2011, 2012, 2013, 329, 747\n\t];\n\n\tconst windowLocation = window.location;\n\tfunction checkIfUserIsInSegment(segment) {\n\t\tconst sg = blueConicClient.getSegments();\n\t\tconst sn = [];\n\t\tif (sg.length > 0) {\n\t\t\tfor (let i = 0; i < sg.length; i += 1) {\n\t\t\t\tsn.push(sg[i].name)\n\t\t\t}\n\t\t}\n\t\tif( typeof segment === 'string' ){\n\t\t\tconst segmentIncluded = sn.includes(segment);\n\t\t\tlogger.log(`User is in segment ${segment}: ${segmentIncluded}`);\n\t\t\treturn segmentIncluded;\n\t\t} else if( Array.isArray(segment) ){\n\t\t\tfor (let y = 0; y < segment.length; y += 1) {\n\t\t\t\tif( sn.includes(segment[y]) ){\n\t\t\t\t\tlogger.log(`User is in segment ${segment[y]}`);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlogger.log('User is NOT in the segments:', segment);\n\t\t\treturn false;\n\t\t} else {\n\t\t\tlogger.log('Segment provided was neither array nor string.', segment);\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tconst getCurrentUrl = () => {\n\t\tconst windowLocationhref = window.location.href;\n\t\tconst currentUrl = new URL( windowLocationhref );\n\t\treturn currentUrl;\n\t};\n\n\tconst getRootDomain = (givenHostname = false) => {\n\t\tconst { hostname } = getCurrentUrl();\n\t\tlet hostnameToCheck = hostname;\n\t\tif( givenHostname && typeof givenHostname === 'string' ) {\n\t\t\thostnameToCheck = givenHostname;\n\t\t}\n\t\tconst parts = hostnameToCheck.split('.');\n\t\treturn `${parts[parts.length - 2]}.${parts[parts.length - 1]}`;\n\t};\n\n\tfunction getBostonDomains() {\n\t\treturn ['bostonherald.com', 'lowellsun.com', 'sentinelandenterprise.com'];\n\t}\n\tfunction getOhioDomains() {\n\t\treturn ['morningjournal.com', 'news-herald.com'];\n\t}\n\tfunction getPennDomains() {\n\t\treturn ['thereporteronline.com', 'delcotimes.com', 'timesherald.com', 'pottsmerc.com', 'trentonian.com', 'dailylocal.com', 'readingeagle.com'];\n\t}\n\tfunction getNyDomains() {\n\t\treturn ['dailyfreeman.com', 'oneidadispatch.com', 'saratogian.com', 'troyrecord.com'];\n\t}\n\tfunction getNorcalDomains() {\n\t\treturn [ 'montereyherald.com', 'chicoer.com', 'orovillemr.com', 'redbluffdailynews.com', 'paradisepost.com', 'thereporter.com', 'timesheraldonline.com',\n\t\t\t'dailydemocrat.com', 'record-bee.com', 'ukiahdailyjournal.com', 'times-standard.com'];\n\t}\n\tfunction getMichiganDomains() {\n\t\treturn ['dailytribune.com', 'macombdaily.com', 'morningjournal.com', 'pressandguide.com', 'thenewsherald.com', 'themorningsun.com', 'theoaklandpress.com'];\n\t}\n\n\tfunction getPMPDomains() {\n\t\treturn ['dailycamera.com', 'denverpost.com', 'timescall.com', 'reporterherald.com',\n\t\t\t'greeleytribune.com', 'eptrail.com', 'canoncitydailyrecord.com', 'journal-advocate.com', 'fortmorgantimes.com'];\n\t}\n\tfunction getSCNGDomains() {\n\t\treturn['dailybulletin.com', 'dailynews.com', 'presstelegram.com', 'ocregister.com',\n\t\t\t'pasadenastarnews.com', 'pe.com', 'pressenterprise.com', 'redlandsdailyfacts.com', 'sbsun.com',\n\t\t\t'sgvtribune.com', 'dailybreeze.com', 'whittierdailynews.com', 'sandiegouniontribune.com'];\n\t}\n\tfunction getBANGDomains() {\n\t\treturn ['mercurynews.com', 'eastbaytimes.com', 'marinij.com', 'santacruzsentinel.com'];\n\t}\n\n\tfunction archiveCheck(expireAfter = 90) {\n\t\tif (typeof dataLayer !== 'undefined') {\n\t\t\tconst paywallLevel = window.dataLayer.find(data => data.Paywall_Level === 'free' ||\n\t\t\t\tdata.Paywall_Level === 'premium' || data['Page Type'] !== 'article' && data.ga_ua === 'UA-61435456-39');\n\t\t\tif (paywallLevel) {\n\t\t\t\tlogger.log('archive check: stop checking because of: ', paywallLevel);\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tlogger.log('false: no data layer');\n\t\t\treturn false\n\t\t}\n\t\tlogger.log('archive check: business check good, now check date');\n\t\tconst urlSplit = windowLocation.href.split('/');\n\t\tconst urlMonthDay = `${urlSplit[4]}/${urlSplit[5]}/${urlSplit[3]}`;\n\t\tlogger.log(urlMonthDay);\n\t\tconst today = new Date();\n\t\tconst publishDate = new Date(urlMonthDay);\n\t\tconst expireDate = new Date(publishDate.setDate(publishDate.getDate() + expireAfter));\n\t\tlogger.log(expireDate);\n\t\tlogger.log(today);\n\n\t\tif (today > expireDate) {\n\t\t\tlogger.log(`archive check: within the ${expireAfter} days`);\n\t\t\treturn true\n\t\t}\n\t\tlogger.log('archive check: has not been 90 days yet');\n\t\treturn false\n\t}\n\n\twindow.engageLibrary.userIsAuthenticated = () => {\n\t\tif ( typeof window.MNGAuthentication !== 'undefined' &&\n\t\t\ttypeof window.MNGAuthentication.authenticationReady !== 'undefined' ) {\n\t\t\tlogger.log( 'engageLibrary.js | Authentication already ready: ', window.MNGAuthentication.authenticationReady );\n\t\t\treturn window.MNGAuthentication.authenticationReady.isAuthenticated;\n\t\t} else {\n\t\t\tconst tokenStorage = JSON.parse( window.localStorage.getItem( '__MNG_Session' ) );\n\t\t\tif(tokenStorage) return !!tokenStorage.idToken;\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfunction findTag(keywords){\n\t\tvar getTags = (document.querySelector(\"article\")) ? document.querySelector(\"article\").classList : null;\n\t\tif (getTags != null) {\n\t\t\tkeywords = keywords.split(',');\n\t\t\tlet keywordsFixed = [];\n\t\t\tfor (let [index, data] of keywords.entries()) {\n\t\t\t\tdata = 'tag-' + data;\n\t\t\t\tdata = data.toLowerCase();\n\t\t\t\tdata = data.replaceAll(' ', '-');\n\t\t\t\tdata = data.replaceAll('--', '-');\n\t\t\t\tkeywordsFixed.push(data)\n\t\t\t}\n\t\t\tfor (let [index, data] of keywordsFixed.entries()) {\n\t\t\t\tdata = data + \"\";\n\t\t\t\tif (getTags.contains(data)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (index === (keywordsFixed.length - 1)) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twindow.engageLibrary.tagsExist = (tags) => {\n\t\tif (Array.isArray(tags)) {\n\t\t\tfor (let i = 0; i < tags.length; i++) {\n\t\t\t\tif (!findTag(tags[i])) {\n\t\t\t\t\tlogger.log(`Tag \"${tags[i]}\" does not exist.`);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlogger.log('All tags exist');\n\t\t\treturn true;\n\t\t} else {\n\t\t\tlogger.log('No tags provided');\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfunction validateDate( today, expireDate ) {\n\t\tif (today > expireDate) {\n\t\t\tlogger.log('archive check: within the ');\n\t\t\treturn true\n\t\t}\n\t\tlogger.log('archive check: has not been 90 days yet');\n\t\treturn false\n\t}\n\n\tfunction urlCheck( checkArray ){\n\t\tlet loc = window.location.hostname;\n\t\tloc = loc.replace('www.', '').replace('preprod.', '').replace('develop.', '');\n\t\tconst domainCheck = (checkArray.indexOf(loc) !== -1);\n\t\tif (domainCheck) {\n\t\t\treturn true\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tconst getSophiVariantCookie = () => window.sophiCookie;\n\n\tfunction get快播视频letterAPISettings(email, prefIds){\n\t\treturn {\n\t\t\t\"url\": `${window.authentication_config.entitlementsEndpoint}newsletters`,\n\t\t\t\"data\": JSON.stringify({\n\t\t\t\t\"email\": email,\n\t\t\t\t\"preferenceId\": prefIds,\n\t\t\t\t\"domain\": getRootDomain()\n\t\t\t}),\n\t\t\t\"method\": \"POST\",\n\t\t\t\"timeout\": 0,\n\t\t\t\"headers\": {\n\t\t\t\t\"X-Api-Key\": window.authentication_config.entitlementsAPIKey\n\t\t\t},\n\t\t};\n\t}\n\n\tfunction validateEmail(email) {\n\t\tvar result,\n\t\t\temailPattern = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@']+(\\.[^<>()\\[\\]\\\\.,;:\\s@']+)*)|('.+'))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i);\n\t\tif (!email) {\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\t\t\t\tmessage: 'Please, enter an email.'\n\t\t\t}\n\t\t}\n\t\tif (!emailPattern.test(email)) {\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\t\t\t\tmessage: 'Please, enter a valid email.'\n\t\t\t}\n\t\t}\n\t\t//prevent double submits and show loading text\n\t\tjQuery('#registration__form .submit').text('submitting...');\n\t\treturn {\n\t\t\tvalid: true,\n\t\t\tmessage: ''\n\t\t}\n\t}\n\t\n\tfunction sendSophiRegiliteEvent( prefIds ){\n\t\t// registration snippet. Only fire for CT pref ids\n\t\t\n\t\tif( window.sophi_config?.enableSDK === '1' && window.engageLibrary.allowedSophiPrefIds.includes(prefIds) ){\n\t\t\t(window._matherq = window._matherq || []).push([\n\t\t\t\t'paywallEvent',\n\t\t\t\t{\n\t\t\t\t\tcategory: 'registration_lite',\n\t\t\t\t\taction: 'created',\n\t\t\t\t}\n\t\t\t]);\t\n\t\t\twindow.localStorage.setItem('sophiRegiliteUser', 'yes');\n\t\t\tlogger.log('Dispatched registration_lite event to mather.')\n\t\t}\n\t}\n\n\tfunction newsletterSubscribe(event, $emailInput, $errorMessage, newsLetterId, $formStep, $successStep, successMessage, successMessageHoldTime = 500) {\n\t\tevent.preventDefault();\n\t\tvar email = $emailInput.val(),\n\t\t\tvalidationResult = validateEmail(email);\n\t\tupdateErrorMessage(validationResult, $errorMessage, $emailInput);\n\t\tif (validationResult.valid && newsLetterId.length > 0) {\n\t\t\tconst decoded快播视频letter = decodeURIComponent( newsLetterId );\n\t\t\tlet prefIdsReady;\n\t\t\ttry{\n\t\t\t\tprefIdsReady = JSON.parse( decoded快播视频letter );\n\t\t\t} catch (e){\n\t\t\t\tprefIdsReady = decoded快播视频letter;\n\t\t\t}\n\n\t\t\tif( Array.isArray( prefIdsReady ) ) prefIdsReady = prefIds[0].id.split(',');\n\n\n\n\t\t\tCnnXt.API.快播视频letterSubscribe({\n\t\t\t\temail: $emailInput.val(),\n\t\t\t\tid: prefIdsReady,\n\t\t\t\tonSuccess: function () {\n\t\t\t\t\t$formStep.hide();\n\t\t\t\t\tif( successMessage ) $successStep.html(successMessage);\n\t\t\t\t\t$successStep.show();\n\t\t\t\t\tsendSophiRegiliteEvent( prefIdsReady );\n\t\t\t\t\tupdateErrorMessage({\n\t\t\t\t\t\tvalid: true\n\t\t\t\t\t}, $errorMessage, $emailInput);\n\t\t\t\t\t$emailInput.val('');\n\t\t\t\t\tlocalStorage.setItem('regwallSuccess','yes');\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tConnext.Run();\n\t\t\t\t\t}, successMessageHoldTime);\n\t\t\t\t},\n\t\t\t\tonError: function (error) {\n\t\t\t\t\tif (!error) {\n\t\t\t\t\t\terror = {\n\t\t\t\t\t\t\tMessage: \"Error! Empty result or no connection\"\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsdkErrorHandler(error)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsdkErrorHandler(error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t// Todo: fix the datalayer push here to create the correct event after a successful newsletter signup\n\t\t\t// const settings = get快播视频letterAPISettings( $emailInput.val(), prefIdsReady );\n\t\t\t// $.ajax(settings).done(function (response) {\n\t\t\t// \t$formStep.hide();\n\t\t\t// \tif( successMessage ) $successStep.html(successMessage);\n\t\t\t// \t$successStep.show();\n\t\t\t// \tsendSophiRegiliteEvent( prefIdsReady );\n\t\t\t// \tupdateErrorMessage({\n\t\t\t// \t\tvalid: true\n\t\t\t// \t}, $errorMessage, $emailInput);\n\t\t\t// \t$emailInput.val('');\n\t\t\t// \tlocalStorage.setItem('regwallSuccess','yes');\n\t\t\t// \twindow.MG2DL.push({\n\t\t\t// \t\t'event': 'newsletterSignup',\n\t\t\t// \t});\n\t\t\t// \tsetTimeout(function() {\n\t\t\t// \t\tConnext.Run();\n\t\t\t// \t}, successMessageHoldTime);\n\t\t\t// }).fail(function (jqXHR) {\n\t\t\t// \tlet error = {\n\t\t\t// \t\tMessage: \"Sorry, we could not sign you up to the newsletter.\"\n\t\t\t// \t}\n\t\t\t// \tif (!jqXHR) {\n\t\t\t// \t\terror = {\n\t\t\t// \t\t\tMessage: \"Error! Empty result or no connection\"\n\t\t\t// \t\t};\n\t\t\t// \t}\n\t\t\t// \tsdkErrorHandler(error)\n\t\t\t// })\n\t\t\t\n\t\t\t\n\t\t} else if (newsLetterId.length === 0) {\n\t\t\terrorMessageHandler('快播视频letter field is empty', $errorMessage, true)\n\t\t}\n\n\t\tfunction sdkErrorHandler(error) {\n\t\t\tupdateErrorMessage({\n\t\t\t\tvalid: false,\n\t\t\t\tmessage: error.ErrorMessage || error.Message\n\t\t\t}, $errorMessage, $emailInput);\n\t\t}\n\t}\n\n\tfunction errorMessageHandler(message, messageElement, isShow) {\n\n\t\tif(isShow){\n\t\t\tmessageElement.html(message);\n\t\t\tmessageElement.show();\n\t\t}\n\t\telse {\n\t\t\tmessageElement.text('');\n\t\t\tmessageElement.hide();\n\t\t}\n\t}\n\n\tfunction updateErrorMessage(data, messageElement, emailInput) {\n\t\tif (!data.valid) {\n\t\t\terrorMessageHandler(data.message, messageElement, true);\n\t\t\temailInput.addClass('connext-validation-error');\n\t\t} else {\n\t\t\terrorMessageHandler('', messageElement, false);\n\t\t\temailInput.removeClass('connext-validation-error');\n\t\t}\n\t}\n\n\tfunction calculateGroup(rand) {\n\t\tlet group;\n\t\tswitch (rand) {\n\t\t\tcase 1:\n\t\t\t\tgroup = 'A';\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tgroup = 'B';\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tgroup = 'C';\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tgroup = 'D';\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\tgroup = 'E';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tgroup = 'empty';\n\t\t}\n\t\treturn group;\n\n\t}\n\n\tfunction getSophiDataDenver() {\n\t\tlet response = {};\n\t\tlet connextCheck = getConnextConversation();\n\t\tlet conversationName = connextCheck ? connextCheck.Name : null;\n\t\tif( window.sophiWallConfig && !window.sophiWallConfig.error ){\n\t\t\tresponse = window.sophiWallConfig;\n\t\t}\n\t\tif( !window.engageLibrary.sophiResponseCheckedAlready ){\n\t\t\tconst sophiEvent = {event: 'sophi_decision', sophi_type:'getSophiDataDenver', sophi_variant: JSON.stringify( getSophiVariantCookie() ), sophi_response: JSON.stringify( response ) };\n\t\t\tif ( conversationName ) {\n\t\t\t\tsophiEvent.sophi_conv = conversationName;\n\t\t\t}\n\t\t\twindow.dataLayer.push(sophiEvent);\n\t\t}\n\t\twindow.engageLibrary.sophiResponseCheckedAlready = true;\n\t\treturn response;\n\t}\n\n\tfunction getSophiDataChicago() {\n\t\tlet response = false;\n\t\tlet connextCheck = getConnextConversation();\n\t\tlet conversationName = connextCheck ? connextCheck.Name : null;\n\t\tif( window.sophiWallConfig && !window.sophiWallConfig.error ){\n\t\t\tresponse = window.sophiWallConfig.wall;\n\t\t}\n\t\tif( !window.engageLibrary.sophiResponseCheckedAlready ){\n\t\t\tconst sophiEvent = {event: 'sophi_decision', sophi_type:'getSophiDataChicago', sophi_variant: JSON.stringify( getSophiVariantCookie() ), sophi_response: JSON.stringify( response ) }\n\t\t\tif ( conversationName ) {\n\t\t\t\tsophiEvent.sophi_conv = conversationName;\n\t\t\t}\n\t\t\twindow.dataLayer.push(sophiEvent);\n\t\t}\n\t\twindow.engageLibrary.sophiResponseCheckedAlready = true;\n\t\treturn response;\n\t\t//else return false;\n\t}\n\n\twindow.engageLibrary.pageIsInPreview = () => {\n\t\tconst loc = window.location;\n\t\tconst url = new URL( loc );\n\t\treturn url.searchParams.has('preview_id') || url.searchParams.has('preview');\n\t}\n\n\t/**\n\t * Name: PA, MA, NY recent subs\n\t * ID: 103963 - Uses BC segment \"PANYMA All Subs + Recents\" to immediately give access to new subs in future status\n\t */\n\twindow.engageLibrary.panymaGiveBCAccess = () => {\n\t\tconst segment = 'PANYMA All Subs + Recents';\n\t\treturn checkIfUserIsInSegment(segment);\n\t}\n\n\t/**\n\t * Name: CA Print Only Subs\n\t * ID: 103971\n\t * Description: Moves CA subscribers with a bc segment of print only delivery sched. into free convo where they are blocked with a specific action\n\t */\n\twindow.engageLibrary.caGiveBCAccess = () => {\n\t\tconst segment = 'CA Print Only Subs';\n\t\treturn checkIfUserIsInSegment(segment);\n\t}\n\n\twindow.engageLibrary.pmpGiveBCAccess = () => {\n\t\tconst segment = 'PMP_KnownNonSubsAll';\n\t\treturn checkIfUserIsInSegment(segment);\n\t}\n\n\twindow.engageLibrary.allSubsGiveBCAccess = () => {\n\t\tconst segment = 'All Active Subscribers';\n\t\treturn checkIfUserIsInSegment(segment);\n\t}\n\n\t/**\n\t * Name: Network Most Popular\n\t * ID: 103869\n\t * Description: Crossover Premium Subs BC segment\n\t */\n\twindow.engageLibrary.crossOverGiveBCAccess = () => {\n\t\tconst segment = 'CrossOver PremSubs';\n\t\treturn checkIfUserIsInSegment(segment);\n\t}\n\n\t/**\n\t * Name: Blueconic Subscribers for Migration\n\t * ID: 104064\n\t * Description: Crossover Premium Subs for Migration\n\t */\n\twindow.engageLibrary.subscribersForMigration = () => {\n\t\tconst segment = 'Subscribers for Migration';\n\t\treturn checkIfUserIsInSegment(segment);\n\t}\n\n\t/**\n\t * Name: Blueconic adblock detection\n\t * ID: 103647\n\t * Description: BC adblock users go into Premium convo\n\t */\n\twindow.engageLibrary.bcAdblockDetection = () => {\n\t\tconst segment = 'Adblock Users';\n\t\treturn checkIfUserIsInSegment(segment);\n\t}\n\n\t/**\n\t * Name: Entitlements Access\n\t * ID: 103596 - Checks for __MNG_Session entitlement value in local storage to allow entitled users free access to articles\n\t */\n\twindow.engageLibrary.isEntitledValue = () => {\n\t\tconst userInfo = window.localStorage.getItem('__MNG_Session');\n\t\tif( userInfo && userInfo !== '') return JSON.parse(userInfo).isEntitled === true;\n\t\telse return false;\n\t};\n\n\t/**\n\t * Name: PRINT SUBS CA\n\t * ID: 103591\n\t * Description: Moves California subscribers with print-only household levels into free conversation where they are blocked with a specific action\n\t */\n\twindow.engageLibrary.printCheck = () => {\n\t\tif( Connext ){\n\t\t\tconst householdLevels = ['5', '16', '23', '25', '35', '36', '43', '45', '55', '65', '75', '85', '95', '105', '115', '145'];\n\t\t\tconst currentLevel = Connext.Storage.GetUserData().DigitalAccess.Subscription?.HousholdSubscriptionLevel;\n\t\t\tconst isPrint = householdLevels.find(k => k === currentLevel);\n\t\t\treturn !!isPrint;\n\t\t} else return false;\n\t}\n\n\twindow.engageLibrary.checkForHHSLs = ( hhslArray = [] ) => {\n\t\tif( Array.isArray( hhslArray ) && Connext ){\n\t\t\tconst currentLevel = Connext.Storage.GetUserData().DigitalAccess.Subscription?.HouseholdSubscriptionLevel;\n\t\t\tconst isPrint = hhslArray.find(k => k === currentLevel);\n\t\t\treturn !!isPrint;\n\t\t} else return false;\n\t}\n\n\twindow.engageLibrary.getDataLayerEntry = (entryName) => {\n\t\tif (typeof window.dataLayer !== 'undefined' && entryName && entryName.length > 0) {\n\t\t\tconst pageTypeFound = window.dataLayer.find(data => data[entryName]);\n\t\t\treturn pageTypeFound ? pageTypeFound[entryName] : false;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Name - ID - Description\n\t * Home page - 103527 - Makes the home page free\n\t * Section Front - 103531 - Makes the section front free\n\t * WP-CMS Search Page - 103565 - Makes search pages on the newspaper.com sites free\n\t * Other page - 103529 - Makes WP \"other\" page type free\n\t * Leaf page - 103528 - Makes WP leaf pages free, with exceptions for High School Sports Scores leaf pages and SCNG Election Results leaf page\n\t */\n\twindow.engageLibrary.getPageType = () => {\n\t\tif (typeof window.dataLayer !== 'undefined') {\n\t\t\tconst pageTypeFound = window.dataLayer.find(data => data['Page Type']);\n\t\t\treturn pageTypeFound ? pageTypeFound['Page Type'] : false;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Name - ID - Description\n\t * Leaf page - 103528 - Makes WP leaf pages free, with exceptions for High School Sports Scores leaf pages and SCNG Election Results leaf page\n\t * Sponsored Content - 103555 - Sponsored Content is free\n\t * Sponsored Content Disneyland Resort Report - 103648 - SCNG sponsored conten\n\t * Sponsored Content - The T.E.A - 103649 - SCNG sponsored content\n\t */\n\twindow.engageLibrary.getSection = () => {\n\t\tif (typeof dataLayer !== 'undefined') {\n\t\t\tconst pageTypeFound = window.dataLayer.find(data => data.Section);\n\t\t\treturn pageTypeFound ? pageTypeFound.Section : false;\n\t\t}\n\t\treturn false\n\n\t}\n\n\t/**\n\t * Subscriber-only (Radio-meta Tag) - 103598 - Denver mather testing\n\t * Name: Metered article rule - 103607 - Catchall - this ensures an WP article goes into the Metered conversation\n\t */\n\twindow.engageLibrary.getPaywallLevel = () => {\n\t\tif (typeof dataLayer !== 'undefined') {\n\t\t\tconst pageTypeFound = window.dataLayer.find(data => data.Paywall_Level);\n\t\t\treturn pageTypeFound ? pageTypeFound.Paywall_Level : false;\n\t\t}\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Name: A/B Testing - localStorage\n\t * ID: 103562 - Set persistent expanded A/B options\n\t */\n\twindow.engageLibrary.testingLocalStorage = () => {\n\t\tconst abLocal = localStorage.getItem('abLocal');\n\t\tlet group;\n\t\tif (!abLocal) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(2)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\tlocalStorage.setItem('abLocal', group);\n\t\t\twindow.dataLayer.push({\n\t\t\t\tevent: 'abLocal_event', abLocal: group\n\t\t\t});\n\t\t} else {\n\t\t\twindow.dataLayer.push({\n\t\t\t\tevent: 'abLocal_event', abLocal\n\t\t\t});\n\t\t}\n\t\tconst abcLocal = localStorage.getItem('abcLocal');\n\t\tif (!abcLocal) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(3)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\tlocalStorage.setItem('abcLocal', group);\n\t\t\twindow.dataLayer.push({\n\t\t\t\tevent: 'abcLocal_event', abcLocal: group\n\t\t\t});\n\t\t} else {\n\t\t\twindow.dataLayer.push({\n\t\t\t\tevent: 'abcLocal_event', abcLocal\n\t\t\t});\n\t\t}\n\t\tif (!localStorage.getItem('abcdLocal')) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(4)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\tlocalStorage.setItem('abcdLocal', group);\n\t\t}\n\t\tif (!localStorage.getItem('abcdeLocal')) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(5)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\tlocalStorage.setItem('abcdeLocal', group);\n\t\t}\n\t\tlet endString = 'Nothing set since cookies already existed.';\n\t\tif( group ) endString = `Group set to ${group}`;\n\t\treturn `This function only sets cookies, does not return a value. ${endString}`;\n\t}\n\n\t/**\n\t * Name: A/B Testing - sessionStorage\n\t * ID: 103561\n\t * Description: session based expanded A/B options\n\t */\n\twindow.engageLibrary.testingSessionStorage = () => {\n\t\tlet group;\n\t\tif (!window.sessionStorage.getItem('abSession')) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(2)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\twindow.sessionStorage.setItem('abSession', group);\n\t\t}\n\t\tif (!window.sessionStorage.getItem('abcSession')) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(3)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\twindow.sessionStorage.setItem('abcSession', group);\n\t\t}\n\t\tif (!window.sessionStorage.getItem('abcdSession')) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(4)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\twindow.sessionStorage.setItem('abcdSession', group);\n\t\t}\n\t\tif (!window.sessionStorage.getItem('abcdeSession')) {\n\t\t\tconst rand = (Math.floor(Math.random() * Math.floor(5)) + 1);\n\t\t\tgroup = calculateGroup(rand);\n\t\t\twindow.sessionStorage.setItem('abcdeSession', group);\n\t\t}\n\t\tlet endString = 'Nothing set since cookies already existed.';\n\t\tif( group ) endString = `Group set to ${group}`;\n\t\treturn `This function only sets cookies, does not return a value. ${endString}`;\n\t}\n\n\twindow.engageLibrary.premiumFeatureExclusiveDP = () => {\n\t\tconst hostName = window.location.hostname;\n\t\treturn hostName.includes('denverpost') && document.getElementById('main').querySelector('article').className.includes('feature-exclusive');\n\t}\n\n\t/**\n\t * Name: LOWA Check\n\t * ID: 103606\n\t * Description: use Blueconic segment to detect if we think someone is a subscriber and then put them in free convo where they will see LOWA message (logged out with access)\n\t */\n\twindow.engageLibrary.bcLowaCheck = () => {\n\t\tlet loc = windowLocation.hostname;\n\t\tloc = loc.replace('www.', '').replace('preprod.', '').replace('develop.', '');\n\n\t\tconst denvPmpDomains = getPMPDomains();\n\t\tconst bangDomains = getBANGDomains();\n\t\tconst scngDomains = getSCNGDomains();\n\t\tconst michiganDomains = getMichiganDomains();\n\t\tconst ohioDomains = getOhioDomains();\n\t\tconst pennDomains = getPennDomains();\n\t\tconst nyDomains = getNyDomains();\n\t\tconst bostonDomains = getBostonDomains();\n\t\tconst norcalDomains = getNorcalDomains();\n\n\t\tconst nepaDomains = [\n\t\t\t'citizensvoice.com',\n\t\t\t'republicanherald.com',\n\t\t\t'standardspeaker.com',\n\t\t\t'thetimes-tribune.com',\n\t\t\t'wcexaminer.com'\n\t\t];\n\n\t\tlet segment = '';\n\t\tif ( michiganDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'MICH LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( ohioDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'OHIO LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( pennDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'PENN LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( nyDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'NY LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( bostonDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'BOSTON LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( norcalDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'NORCAL LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc === 'twincities.com' ) {\n\t\t\tsegment = 'TWIN CITIES LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( denvPmpDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'DENV/PMP LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( scngDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'SCNG LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( bangDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'BANG LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('mcall.com') ) {\n\t\t\tsegment = 'AMC LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('courant.com') ) {\n\t\t\tsegment = 'HC LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('growthspotter.com') ) {\n\t\t\tsegment = 'GS LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('orlandosentinel.com') ) {\n\t\t\tsegment = 'ORL LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('sun-sentinel.com') ) {\n\t\t\tsegment = 'SS LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('dailypress.com') ) {\n\t\t\tsegment = 'NNDP LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('pilotonline.com') ) {\n\t\t\tsegment = 'VP LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('nydailynews.com') ) {\n\t\t\tsegment = 'NYDN LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('baltimoresun.com') ) {\n\t\t\tsegment = 'BAL LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('capitalgazette.com') ) {\n\t\t\tsegment = 'CG LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if( loc.includes('chicagotribune.com') ) {\n\t\t\tsegment = 'CHI LOWA';\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t} else if ( nepaDomains.indexOf(loc) !== -1 ) {\n\t\t\tsegment = 'NEPA LOWA'\n\t\t\treturn checkIfUserIsInSegment(segment);\n\t\t}\n\t\treturn false\n\t}\n\n\t/**\n\t * Name: Mercury 快播视频 archive hardwall\n\t * ID: 103911\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.mercurynewsIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('mercurynews') === -1) {\n\t\t\tlogger.log('archive check: not on mercurynews');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t};\n\n\t/**\n\t * Name: OC Register archive hardwall\n\t * ID: 103913\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.ocregisterIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('ocregister') === -1) {\n\t\t\tlogger.log('archive check: not on ocregister');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Press-Enterprise archive hardwall\n\t * ID: 103914\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.pressenterpriseIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('pressenterprise') === -1) {\n\t\t\tlogger.log('archive check: not on pressenterprise');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: East Bay Times archive hardwall\n\t * ID: 103912\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.eastbayIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('eastbaytimes') === -1) {\n\t\t\tlogger.log('archive check: not on eastbaytimes');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Marin IJ archive hardwall\n\t * ID: 103876\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.marinijIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('marinij') === -1) {\n\t\t\tlogger.log('archive check: not on marinij');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Boston Herald archive hardwall\n\t * ID: 103877\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.bostonheraldIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('bostonherald') === -1) {\n\t\t\tlogger.log('archive check: not on bostonherald');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Lowell Sun archive hardwall\n\t * ID: 103878\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.lowellsunIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('lowellsun') === -1) {\n\t\t\tlogger.log('archive check: not on lowellsun');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Sentinel & Enterprise archive hardwall\n\t * ID: 103879\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.sentinelIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('sentinelandenterprise') === -1) {\n\t\t\tlogger.log('archive check: not on sentinelandenterprise');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Daily Freeman archive hardwall\n\t * ID: 103966\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.dailyfreemanIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('dailyfreeman') === -1) {\n\t\t\tlogger.log('archive check: not on dailyfreeman');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Boulder Daily Camera archive hardwall\n\t * ID: 103872\n\t * Description: hardwalls METERED content only that is older than 90 days for users with a B cookie\n\t */\n\twindow.engageLibrary.dailycameraIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('dailycamera') === -1) {\n\t\t\tlogger.log('archive check: not on dailycamera');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Greeley Tribune archive hardwall\n\t * ID: 103873\n\t * Description: hardwalls METERED content only that is older than 90 days for users with a B cookie\n\t */\n\twindow.engageLibrary.greeleytribuneIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('greeleytribune') === -1) {\n\t\t\tlogger.log('archive check: not on greeleytribune');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Loveland Reporter Herald archive hardwall\n\t * ID: 103874\n\t * Description: hardwalls METERED content only that is older than 90 days for users with a B cookie\n\t */\n\twindow.engageLibrary.reporterheraldIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('reporterherald') === -1) {\n\t\t\tlogger.log('archive check: not on reporterherald');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Longmont Times 快播视频 archive hardwall\n\t * ID: 103875\n\t * Description: hardwalls METERED content only that is older than 90 days for users with a B cookie\n\t */\n\twindow.engageLibrary.timescallIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('timescall') === -1) {\n\t\t\tlogger.log('archive check: not on timescall');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Santa Cruz Sentinel archive hardwall\n\t * ID: 103972\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.santacruzsentinelIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('santacruzsentinel') === -1) {\n\t\t\tlogger.log('archive check: not on santacruzsentinel');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Monterey Herald archive hardwall\n\t * ID: 103973\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.montereyheraldIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('montereyherald') === -1) {\n\t\t\tlogger.log('archive check: not on montereyherald');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Chico Enterprise-Record archive hardwall\n\t * ID: 103974\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.chicoerIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('chicoer') === -1) {\n\t\t\tlogger.log('archive check: not on chicoer');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck();\n\t}\n\n\t/**\n\t * Name: Courant archive hardwall\n\t * ID: 104047\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.courantIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('courant') === -1) {\n\t\t\tlogger.log('archive check: not on courant');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\t/**\n\t * Name: Mcall archive hardwall\n\t * ID: 104052\n\t * Description: hardwalls METERED content only that is older than 90 days\n\t */\n\twindow.engageLibrary.mcallIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('mcall') === -1) {\n\t\t\tlogger.log('archive check: not on mcall');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.orlandosentinelIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('orlandosentinel') === -1) {\n\t\t\tlogger.log('archive check: not on orlandosentinel');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.sunsentinelIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('sun-sentinel') === -1) {\n\t\t\tlogger.log('archive check: not on sun-sentinel');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.pilotonlineIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('pilotonline') === -1) {\n\t\t\tlogger.log('archive check: not on pilotonline');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.dailypressIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('dailypress') === -1) {\n\t\t\tlogger.log('archive check: not on dailypress');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.nydailynewsIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('nydailynews') === -1) {\n\t\t\tlogger.log('archive check: not on nydailynews');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.baltimoresunIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('baltimoresun') === -1) {\n\t\t\tlogger.log('archive check: not on baltimoresun');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.capitalgazetteIsMeteredArchive = () => {\n\t\tif (windowLocation.host.search('capitalgazette') === -1) {\n\t\t\tlogger.log('archive check: not on capitalgazette');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck(30);\n\t}\n\n\twindow.engageLibrary.SDUTIsMeteredArchive = (days = 30) => {\n\t\tif (windowLocation.host.search('sandiegouniontribune') === -1) {\n\t\t\tlogger.log('archive check: not on sandiegouniontribune');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck( days );\n\t}\n\n\twindow.engageLibrary.NEPAIsMeteredArchive = (days = 90) => {\n\t\tif (windowLocation.host.search('republicanherald|standardspeaker|citizensvoice|thetimes-tribune|wcexaminer') === -1) {\n\t\t\tlogger.log('archive check: not on republicanherald, standardspeaker, citizensvoice, thetimes-tribune, or wcexaminer');\n\t\t\treturn false\n\t\t}\n\t\treturn archiveCheck( days );\n\t}\n\n\t/**\n\t * Description: Checks the article share status\n\t */\n\twindow.engageLibrary.articleSharingExpire = () => {\n\t\treturn void 0 !== window.MNGAuthentication?.articleShare && \"null\" !== window.MNGAuthentication?.articleShare && !1 !== window.MNGAuthentication?.articleShare && \"\" !== window.MNGAuthentication?.articleShare;\n\t}\n\n\t/**\n\t * Description: Checks for the existence of regwallSuccess local storage object\n\t */\n\twindow.engageLibrary.getRegwallSuccess = () => {\n\t\tif (!localStorage.getItem('regwallSuccess')){\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn 'yes';\n\t\t}\n\t}\n\n\t/**\n\t * Description: Checks for the existence of regwallKnown local storage object\n\t */\n\twindow.engageLibrary.getRegwallKnown = () => {\n\t\tif (!localStorage.getItem('regwallKnown')){\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn 'yes';\n\t\t}\n\t}\n\n\tfunction getCookie (name) {\n\t\tconst cookieName = `${name }=`;\n\t\tconst cookies = decodeURIComponent(document.cookie).split(';');\n\t\tfor( let i = 0; i < cookies.length; i+=1 ) {\n\t\t\tconst cookiePart = cookies[i].trimLeft();\n\t\t\tif (cookiePart.indexOf(cookieName) === 0 ) {\n\t\t\t\treturn cookiePart.substring(cookieName.length, cookiePart.length);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tconst setCookie = ( name, value, options ) => {\n\t\tlet cookieString = `${name}=${value};`;\n\t\tif (typeof options !== 'undefined'){\n\t\t\t// loop through options and assign to cookie\n\t\t\tlogger.log( 'Setting cookie with options: ', options );\n\t\t\tObject.entries( options ).forEach( ([k, v]) => {\n\t\t\t\tif (k === 'expires') {\n\t\t\t\t\tconst date = new Date();\n\t\t\t\t\tdate.setTime(date.getTime() + (v*24*60*60*1000));\n\t\t\t\t\tcookieString += `expires=${date.toUTCString()};`;\n\t\t\t\t} else {\n\t\t\t\t\tcookieString += `${k}=${v};`;\n\t\t\t\t}\n\t\t\t} );\n\t\t} else{\n\t\t\tcookieString += 'path=/;';\n\t\t}\n\t\tdocument.cookie = cookieString;\n\t};\n\n\tconst getCookieRootDomain = () => {\n\t\tconst rootDomain = getRootDomain();\n\t\treturn `.${rootDomain}`;\n\t};\n\n\twindow.engageLibrary.checkBCForNonSub = () => {\n\t\tconst cookieName = 'mng-entitlements';\n\t\tconst cookies = decodeURIComponent(document.cookie).split(';');\n\n\t\tlet loc = window.location.hostname;\n\t\tloc = loc.replace('www.', '').replace('preprod.', '').replace('develop.', '');\n\n\t\tlet i = 0;\n\t\tfor (i = 0; i < cookies.length; i += 1) {\n\t\t\tconst cookiePart = cookies[i];\n\t\t\tif (cookiePart.indexOf(cookieName) === 1) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (cookies.length === i + 1) {\n\t\t\t\tif( typeof Connext === 'undefined' ) return false;\n\t\t\t\tconst configCode = Connext.Storage.GetConfigCode();\n\n\t\t\t\tlet nonSegments = [];\n\t\t\t\tswitch(configCode){\n\t\t\t\t\tcase 'PMPMIWEEKLIES':\n\t\t\t\t\t\tnonSegments = ['PMP_KnownNonSubsAll', 'MICH_KnownNonSubsAll', 'SegmentName'];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'PPSTPRODWP':\n\t\t\t\t\t\tnonSegments = 'PPST_KnownNonSubsAll';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'BANGWPPRODWAB':\n\t\t\t\t\tcase 'HIGHMETERBAND':\n\t\t\t\t\t\tnonSegments = 'BANG_KnownNonSubsAll';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '21CWPPROD':\n\t\t\t\t\t\tnonSegments = '21C_KnownNonSubsAll';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'BHMAWPPROD':\n\t\t\t\t\t\tnonSegments = ['BH_KnownNonSubsAll', 'NY_KnownNonSubsAll'];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'DENVERPRODWP':\n\t\t\t\t\t\tnonSegments = 'DP_KnownNonSubsAll';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'NORCALNVPRODWP':\n\t\t\t\t\tcase 'NORCALWEEKWP':\n\t\t\t\t\t\tnonSegments = 'NORCAL_KnownNonSubsAll';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'NORCALPRODWP':\n\t\t\t\t\t\tnonSegments = ['NORCAL_KnownNonSubsAll', 'BANG_KnownNonSubsAll', 'SegmentName'];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'PMPWPPROD':\n\t\t\t\t\t\tnonSegments = 'PMP_KnownNonSubsAll';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'SCNGPRODWP':\n\t\t\t\t\t\tnonSegments = 'SCNG_KnownNonSubsAll';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '200CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'BAL KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '247CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'CG KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '850CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'NYDN KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '518CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'GS KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '600CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'HC KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '500CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'ORL KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '400CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'SS KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '800CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'AMC KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '700CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'NNDP KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase '750CONFIGTRIB':\n\t\t\t\t\t\tnonSegments = 'VP KnownNonSubs Alltime';\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\treturn checkIfUserIsInSegment(nonSegments);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\twindow.engageLibrary.allReadersTag = () => {\n\t\treturn document.querySelector('main article').length > 0 && document.querySelector('main article').hasClass('tag-all-readers');\n\t}\n\n\twindow.engageLibrary.isOpinionPiece = () => {\n\t\treturn findTag(\"Opinion\");\n\t}\n\n\twindow.engageLibrary.isEspanolContent = () => {\n\t\treturn findTag(\"espanol\") || window.engageLibrary.getSection() === 'Espanol';\n\t}\n\n\twindow.engageLibrary.isPhotosAndVideos = () => {\n\t\treturn findTag(\"photos and videos\");\n\t}\n\n\twindow.engageLibrary.isAthleteOfWeek = () => {\n\t\treturn findTag(\"athlete of the week\");\n\t}\n\n\twindow.engageLibrary.isContests = () => {\n\t\treturn findTag(\"contests\");\n\t}\n\n\twindow.engageLibrary.getTaxonomy1 = () => {\n\t\tif (typeof dataLayer !== 'undefined') {\n\t\t\tconst pageTypeFound = window.dataLayer.find(data => data.Taxonomy1);\n\t\t\treturn pageTypeFound ? pageTypeFound.Taxonomy1 : false;\n\t\t}\n\t\treturn false;\n\t}\n\n\twindow.engageLibrary.profileDropDownExists = () => {\n\t\tconst el = document.getElementById('profileDropDown');\n\t\t\tif (el) {\n\t\t\t\treturn true\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t}\n\n\twindow.engageLibrary.twinCitiesKnownEmail = () => {\n\t\treturn checkIfUserIsInSegment('Twincities - known email');\n\t}\n\n\twindow.engageLibrary.twinCitiesUrlCheck = () => {\n\t\treturn urlCheck( ['twincities.com'] );\n\t}\n\n\twindow.engageLibrary.pmpUrlCheck = () => {\n\t\treturn urlCheck( ['greeleytribune.com', 'dailycamera.com', 'timescall.com', 'reporterherald.com'] );\n\t}\n\n\twindow.engageLibrary.paywallTimer = () => {\n\t\tvar timer_stop = Date.now();\n\t\tvar timer_diff = 0;\n\t\tif(typeof MNG_SSO_TOOLS_GLOBAL_START_TIME != 'undefined'){\n\t\t\ttimer_diff = timer_stop - MNG_SSO_TOOLS_GLOBAL_START_TIME ;\n\t\t}\n\t\twindow.dataLayer.push({'Timer.PaywallShown': timer_diff});\n\t\tperformance.mark( 'connext_onPaywallShown' );\n\t}\n\n\twindow.engageLibrary.inline快播视频letter = () => {\n\t\tlogger.log('inline快播视频letter start');\n\t\tvar $emailInput = jQuery('.Mg2-newsletter-inline_notif_mng .connext-email-input'),\n\t\t\t$errorMessage = jQuery('.Mg2-newsletter-inline_notif_mng .connext-error-message'),\n\t\t\t$formStep = jQuery('.Mg2-newsletter-inline_notif_mng .hide-on-success'),\n\t\t\t$succesStep = jQuery('.Mg2-newsletter-inline_notif_mng .show-on-success'),\n\n\t\t\tnewsLetterId = jQuery('.Mg2-newsletter-inline_notif_mng span[data-tmpl-action-name=\\'快播视频letter\\']').text(),\n\t\t\tsuccessMessage = jQuery('.Mg2-newsletter-inline_notif_mng div[data-tmpl-action-name=\\'Success message\\']').html() || jQuery('.Mg2-newsletter-inline_notif_mng div[data-tmpl-action-name=\\'Success message\\']').data('tmpl-action-value'),\n\t\t\terrorMessage = jQuery('.Mg2-newsletter-inline_notif_mng span[data-tmpl-action-name=\\'Error message\\']').html();\n\n\t\tjQuery(document.body).on('click', '.Mg2-newsletter-inline_notif_mng .submit', (event)=>{\n\t\t\tnewsletterSubscribe(event, $emailInput, $errorMessage, newsLetterId, $formStep, $succesStep, successMessage)\n\t\t});\n\t\tjQuery(document.body).on('input', '.Mg2-newsletter-inline_notif_mng .connext-email-input', changedEmail);\n\n\t\tfunction changedEmail(event) {\n\t\t\tupdateErrorMessage({\n\t\t\t\tvalid: true\n\t\t\t});\n\t\t}\n\t\tlogger.log('inline快播视频letter end');\n\t};\n\n\twindow.engageLibrary.inlineRegwall1 = ( successMessageHoldTime = 500 ) => {\n\n\t\twindow.engageLibrary.paywallTimer();\n\n\t\tvar $emailInput = jQuery('#registration__form .connext-email-input'),\n\t\t\t$errorMessage = jQuery('#registration__form .connext-error-message'),\n\t\t\t$formStep = jQuery('#registrationWall1 .hide-on-success'),\n\t\t\t$succesStep = jQuery('#registrationWall1 .show-on-success'),\n\n\t\t\tnewsLetterId = jQuery('#registrationWall1 .registrationWallID').text(),\n\t\t\tsuccessMessage = jQuery('#registration__form div[data-tmpl-action-name=\\'Success message\\']').html() || jQuery('#registration__form div[data-tmpl-action-name=\\'Success message\\']').data('tmpl-action-value'),\n\t\t\terrorMessage = jQuery('#registration__form span[data-tmpl-action-name=\\'Error message\\']').html();\n\n\t\tjQuery(document.body).on('click', '#registration__form .submit', (event)=>{\n\t\t\tnewsletterSubscribe(event, $emailInput, $errorMessage, newsLetterId, $formStep, $succesStep, successMessage, successMessageHoldTime)\n\t\t});\n\t\tjQuery(document.body).on('input', '#registration__form .connext-email-input', changedEmail);\n\n\t\tfunction changedEmail(event) {\n\t\t\tupdateErrorMessage({\n\t\t\t\tvalid: true\n\t\t\t}, $errorMessage, $emailInput);\n\t\t}\n\t}\n\n\twindow.engageLibrary.inlineRegwall = ( successMessageHoldTime = 500 ) => {\n\n\t\twindow.engageLibrary.paywallTimer();\n\n\t\tvar $emailInput = jQuery(\"#registration__form .connext-email-input\"),\n\t\t\t$errorMessage = jQuery(\"#registration__form .connext-error-message\"),\n\t\t\t$formStep = jQuery(\"#registrationWall .hide-on-success\"),\n\t\t\t$succesStep = jQuery(\"#registrationWall .show-on-success\"),\n\n\t\t\tnewsLetterId = jQuery(\"#registrationWall .registrationWallID\").text(),\n\t\t\tsuccessMessage = jQuery(\"#registration__form div[data-tmpl-action-name='Success message']\").html() || jQuery(\"#registration__form div[data-tmpl-action-name='Success message']\").data(\"tmpl-action-value\"),\n\t\t\terrorMessage = jQuery(\"#registration__form span[data-tmpl-action-name='Error message']\").html();\n\n\t\tjQuery(document.body).on(\"click\", \"#registration__form .submit\", (event)=>{\n\t\t\tnewsletterSubscribe(event, $emailInput, $errorMessage, newsLetterId, $formStep, $succesStep, successMessage, successMessageHoldTime)\n\t\t});\n\t\tjQuery(document.body).on(\"input\", \"#registration__form .connext-email-input\", changedEmail);\n\n\t\tfunction changedEmail(event) {\n\t\t\tupdateErrorMessage({\n\t\t\t\tvalid: true\n\t\t\t}, $errorMessage, $emailInput);\n\t\t}\n\t}\n\n\twindow.engageLibrary.regilite = ( successMessageHoldTime = 500 ) => {\n\n\t\tconst $emailInput = jQuery(\".regiwall-input\");\n\t\tconst $errorMessage = jQuery(\".connext-error-message\");\n\n\t\tjQuery(document.body).on(\"click\", \"#regiliteSubButtonId\", (event)=>{\n\t\t\tnewsletterSubscribe(\n\t\t\t\tevent,\n\t\t\t\tjQuery('.regiwall-input'),\n\t\t\t\tjQuery('.connext-error-message'),\n\t\t\t\tjQuery('.registrationWallID').text(),\n\t\t\t\tjQuery('.hide-on-success'),\n\t\t\t\tjQuery('.show-on-success'),\n\t\t\t\tfalse,\n\t\t\t\tsuccessMessageHoldTime\n\t\t\t\t);\n\t\t});\n\n\t\tfunction changedEmail(event) {\n\t\t\tupdateErrorMessage({\n\t\t\t\tvalid: true\n\t\t\t}, $errorMessage, $emailInput);\n\t\t}\n\n\t\tjQuery(document.body).on(\"input\",'.regiwall-input', changedEmail );\n\t}\n\n\twindow.engageLibrary.loginLogoutButtons = () => {\n\t\tconst logoutButtons = document.querySelectorAll('.engageLogoutLink');\n\t\tconst loginButtons = document.querySelectorAll('.engageLoginLink');\n\t\tif(window.engageLibrary.userIsAuthenticated()){\n\t\t\tlogoutButtons.forEach( ( button ) => {\n\t\t\t\tconst logoutButton = button;\n\t\t\t\tlogoutButton.style.visibility = 'visible';\n\t\t\t\tlogoutButton.style.display = 'block';\n\t\t\t\tlogoutButton.addEventListener( 'click', logout快播视频back );\n\t\t\t\tlogoutButton.addEventListener( 'keydown', logout快播视频back );\n\t\t\t} );\n\t\t\tloginButtons.forEach((button) => {\n\t\t\t\tbutton.style.display = 'none';\n\t\t\t});\n\t\t} else {\n\t\t\tloginButtons.forEach((button) => {\n\t\t\t\tconst loginButton = button;\n\t\t\t\tloginButton.style.visibility = 'visible';\n\t\t\t\tloginButton.style.display = 'block';\n\t\t\t\tconst loginButtonAnchor = loginButton.querySelector('a');\n\t\t\t\tif( loginButtonAnchor && loginButtonAnchor.length > 0 ){\n\t\t\t\t\tloginButton.querySelector('a').textContent = 'Log in';\n\t\t\t\t\tconst loginUrl = new URL(loginButton.querySelector('a').href);\n\t\t\t\t\tconst params = new URLSearchParams(loginUrl);\n\t\t\t\t\tparams.append('returnUrl', getCurrentUrl());\n\t\t\t\t\tloginButton.querySelector('a').setAttribute('href', `${loginUrl}?${params}`);\n\t\t\t\t}\n\t\t\t});\n\t\t\tlogoutButtons.forEach((button) => {\n\t\t\t\tbutton.style.display = 'none';\n\t\t\t});\n\t\t}\n\n\t\tconst logout快播视频back = ( event ) => {\n\t\t\ttry {\n\t\t\t\tif ( typeof window.MNGAuthentication !== 'undefined' ) {\n\t\t\t\t\tif ( event.type === 'keydown' && event.key === 'Enter' || event.type === 'click' ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\twindow.MNGAuthentication.logout();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tlogger.log(error);\n\t\t\t}\n\t\t};\n\t}\n\n\twindow.engageLibrary.expandCollapseJquery = () => {\n\t\tjQuery(document).ready(function () {\n\t\t\tvar collapsedStep = jQuery('[data-nxt-template-substep= \\'Collapsed\\']'),\n\t\t\t\texpandedStep = jQuery('[data-nxt-template-substep= \\'Expanded\\']'),\n\t\t\t\tcollapseBtn = jQuery('.collapse-button'),\n\t\t\t\texpandBtn = jQuery('.expand-button');\n\n\t\t\tcollapseBtn.on('click', function () {\n\t\t\t\texpandedStep.hide();\n\t\t\t\tcollapsedStep.show();\n\t\t\t});\n\n\t\t\texpandBtn.on('click', function () {\n\t\t\t\texpandedStep.show();\n\t\t\t\tcollapsedStep.hide();\n\t\t\t});\n\t\t});\n\t}\n\n\twindow.engageLibrary.hybridHardwall = () => {\n\n\t\twindow.engageLibrary.paywallTimer();\n\n\t\tvar $emailInput = jQuery('#registration__form .connext-email-input'),\n\t\t\t$errorMessage = jQuery('#registration__form .connext-error-message'),\n\t\t\t$formStep = jQuery('#registrationWall .hide-on-success'),\n\t\t\t$succesStep = jQuery('#registrationWall .show-on-success'),\n\t\t\tnewsLetterId = jQuery('#registrationWallID').text(),\n\t\t\tsuccessMessage = jQuery('#registration__form div[data-tmpl-action-name=\\'Success message\\']').html() || jQuery('#registration__form div[data-tmpl-action-name=\\'Success message\\']').data('tmpl-action-value'),\n\t\t\terrorMessage = jQuery('#registration__form span[data-tmpl-action-name=\\'Error message\\']').html();\n\n\t\tjQuery(document.body).on('click', '#registration__form .submit', (event)=>{\n\t\t\tnewsletterSubscribe(event, $emailInput, $errorMessage, newsLetterId, $formStep, $succesStep, successMessage)\n\t\t});\n\t\tjQuery(document.body).on('input', '#registration__form .connext-email-input', changedEmail);\n\n\t\tfunction changedEmail(event) {\n\t\t\tupdateErrorMessage({\n\t\t\t\tvalid: true\n\t\t\t}, $errorMessage, $emailInput);\n\t\t}\n\t}\n\n\twindow.engageLibrary.lowaLoginEvent = () => {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({\n\t\t\t'event': 'lowa_login_click',\n\t\t\t'lowa_click': 'login',\n\t\t});\n\t}\n\n\twindow.engageLibrary.lowaCloseEvent = () => {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({\n\t\t\t'event': 'lowa_login_click',\n\t\t\t'lowa_click': 'dismiss',\n\t\t});\n\t}\n\n\twindow.engageLibrary.whySubscribePageCheck = () => {\n\t\tvar loc = window.location.pathname.split('/');\n\t\treturn loc[1] === \"why-subscribe\";\n\t}\n\t\n\tfunction getConnextConversation(){\n\t\ttry{\n\t\t\treturn window.Connext?.Storage?.GetCurrentConversation() ?? null;\n\t\t} catch (e){\n\t\t\tlogger.log('MNG getConnextConversation:', e);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\twindow.engageLibrary.isSophiVariantOrHoldout = () => {\n\t\tconst testCookie = getSophiVariantCookie();\n\t\tlet connextCheck = getConnextConversation();\n\t\tlet conversationName = connextCheck ? connextCheck.Name : null;\n\t\tconsole.log( 'Sophi isSophiVariantOrHoldout', testCookie );\n\t\tconst sophiEvent = {event: 'sophi_cookie', sophi_type:'isSophiVariantOrHoldout', sophi_cookie_val: testCookie};\n\t\tif ( conversationName ) {\n\t\t\tsophiEvent.sophi_conv = conversationName;\n\t\t}\n\t\twindow.dataLayer.push(sophiEvent);\n\t\tlet result = false;\n\t\tif( testCookie ){\n\t\t\treturn testCookie.includes( 'variant' ) || testCookie.includes( 'holdout' );\n\t\t}\n\t\treturn false;\n\t}\n\twindow.engageLibrary.isSophiVariant = () => {\n\t\tconst testCookie = getSophiVariantCookie();\n\t\tlet connextCheck = getConnextConversation();\n\t\tlet conversationName = connextCheck ? connextCheck.Name : null;\n\t\tconsole.log( 'Sophi isSophiVariant', testCookie );\n\t\tconst sophiEvent = {event: 'sophi_cookie', sophi_type:'isSophiVariant', sophi_cookie_val: testCookie};\n\t\tif ( conversationName ) {\n\t\t\tsophiEvent.sophi_conv = conversationName;\n\t\t}\n\t\twindow.dataLayer.push(sophiEvent);\n\t\tlet result = false;\n\t\tif( testCookie ){\n\t\t\treturn testCookie.includes( 'variant' );\n\t\t}\n\t\treturn false;\n\t}\n\twindow.engageLibrary.shouldLoadPaywall = () => {\n\t\tlet connextCheck = getConnextConversation();\n\t\tlet conversationName = connextCheck ? connextCheck.Name : null;\n\t\tconst response = getSophiDataDenver();\n\t\tlet sophiResponse = false;\n\t\tif ( 'wallType' in response ) {\n\t\t\tsophiResponse = response.wallType === 'paywall';\n\t\t}\n\t\tconst sophiEvent = {event: 'sophi_decision', sophi_type:'shouldLoadPaywall', sophi_response: sophiResponse }\n\t\tif ( conversationName ) {\n\t\t\tsophiEvent.sophi_conv = conversationName;\n\t\t}\n\t\twindow.dataLayer.push(sophiEvent);\n\t\tconsole.log( 'Sophi shouldLoadPaywall', sophiResponse );\n\t\treturn sophiResponse;\n\t}\n\n\twindow.engageLibrary.shouldLoadRegwall = () => {\n\t\tlet connextCheck = getConnextConversation();\n\t\tlet conversationName = connextCheck ? connextCheck.Name : null;\n\n\t\tlet response = getSophiDataDenver();\n\t\tlet sophiResponse = false;\n\t\tif ( 'wallType' in response ) {\n\t\t\tsophiResponse = response.wallType === 'regwall';\n\t\t}\n\t\tconst sophiEvent = {event: 'sophi_decision', sophi_type:'shouldLoadRegwall', sophi_response: sophiResponse };\n\t\tif ( conversationName ) {\n\t\t\tsophiEvent.sophi_conv = conversationName;\n\t\t}\n\t\twindow.dataLayer.push(sophiEvent);\n\t\tconsole.log( 'Sophi shouldLoadRegwall', sophiResponse );\n\t\treturn sophiResponse;\n\n\t}\n\n\twindow.engageLibrary.responseIsNowall = () => {\n\t\tlet connextCheck = getConnextConversation();\n\t\tlet conversationName = connextCheck ? connextCheck.Name : null;\n\t\tlet response = getSophiDataDenver();\n\t\tlet sophiResponse = false;\n\t\tif ( 'wallVisibility' in response ) {\n\t\t\tsophiResponse = response.wallVisibility === 'never';\n\t\t}\n\t\tconst sophiEvent = {event: 'sophi_decision', sophi_type:'responseIsNowall', sophi_response: sophiResponse };\n\t\tif ( conversationName ) {\n\t\t\tsophiEvent.sophi_conv = conversationName;\n\t\t}\n\t\twindow.dataLayer.push(sophiEvent);\n\t\tconsole.log( 'Sophi responseIsNowall', sophiResponse );\n\t\treturn sophiResponse;\n\n\t}\n\n\twindow.engageLibrary.regwallObj = () => {\n\t\t if (!localStorage.getItem('regwallAlreadyRegistered')) {\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\twindow.engageLibrary.userIsInSegments = (segments) => {\n\t\tif (Array.isArray(segments)) {\n\t\t\treturn checkIfUserIsInSegment(segments);\n\t\t}\n\t\telse {\n\t\t\tlogger.log('No segments provided');\n\t\t\treturn false;\n\t\t}\n\t}\n\n\twindow.engageLibrary.getUserHhsl = () => {\n\t\treturn Connext.Storage.GetUserData().DigitalAccess.Subscription?.HouseholdSubscriptionLevel || [];\n\t}\n\n\twindow.engageLibrary.marinRegwallListener = async () => {\n\t\tconst getEmailInput = () => document.getElementById('tribRegiwallEmailId') || document.getElementById('regiwallEmailId');\n\n\t\tconst errorMessageHandlerRegwall = (message, isShow) => {\n\t\t\tconst errorMessage = document.querySelector('.connext-error-message');\n\t\t\tif (isShow) {\n\t\t\t\tlogger.log('Regwall Validate: ', `show message: ${message}`);\n\t\t\t\terrorMessage.innerHTML = message;\n\t\t\t\terrorMessage.style.display = 'block';\n\t\t\t} else {\n\t\t\t\terrorMessage.textContent = '';\n\t\t\t\terrorMessage.style.display = 'none';\n\t\t\t}\n\t\t}\n\n\t\tconst updateErrorMessageRegwall = (data) => {\n\n\t\t\tif (!data.valid) {\n\t\t\t\tlogger.log('Regwall Validate: ', 'update message');\n\t\t\t\terrorMessageHandlerRegwall(data.message, true);\n\t\t\t\tgetEmailInput().classList.add('connext-validation-error');\n\t\t\t} else {\n\t\t\t\terrorMessageHandlerRegwall('', false);\n\t\t\t\tgetEmailInput().classList.remove('connext-validation-error');\n\t\t\t}\n\t\t}\n\n\t\tconst goToSuccessStep = (regSuccess) => {\n\t\t\t// let submitted = false;\n\t\t\tlogger.log('Regwall Validate: ', 'In goToSuccessStep');\n\t\t\tconst hideOnSuccess = document.querySelectorAll('.hide-on-success');\n\t\t\t[...hideOnSuccess].forEach((el) => {\n\t\t\t\tconst element = el;\n\t\t\t\telement.style.display = 'none';\n\t\t\t});\n\t\t\tlogger.log('Hid .hide-on-success elements');\n\n\t\t\tupdateErrorMessageRegwall({\n\t\t\t\tvalid: true,\n\t\t\t});\n\n\t\t\t// if regwall success use this\n\t\t\tif (regSuccess === true){\n\t\t\t\tlogger.log('Regwall Validate: ', 'Registration success was successful.');\n\t\t\t\tconst successStep = document.querySelectorAll('.show-on-success');\n\t\t\t\t[...successStep].forEach((el) => {\n\t\t\t\t\tconst element = el;\n\t\t\t\t\telement.style.display = 'block';\n\t\t\t\t});\n\t\t\t\tlogger.log('Showing .show-on-success elements');\n\n\t\t\t\tconst emailInput = getEmailInput();\n\t\t\t\t/* eslint-disable-next-line no-underscore-dangle */\n\t\t\t\t(window._matherq = window._matherq || []).push([\n\t\t\t\t\t'paywallEvent',\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'regwall',\n\t\t\t\t\t\tcategory: 'regwall_registration',\n\t\t\t\t\t\taction: 'completed',\n\t\t\t\t\t},\n\t\t\t\t\t{ email: emailInput.value },\n\t\t\t\t]);\n\t\t\t\temailInput.value = '';\n\n\t\t\t\tlocalStorage.setItem('regwallSuccess', 'yes');\n\t\t\t} else {\n\t\t\t\tlogger.log('Regwall Validate: ', 'Registration is not unique.');\n\t\t\t\tconst alreadyRegistered = document.querySelector('.show-on-alreadyRegisterd');\n\t\t\t\talreadyRegistered.style.display = 'block';\n\t\t\t\tlocalStorage.setItem('regwallAlreadyRegistered', 'yes');\n\t\t\t}\n\t\t}\n\n\t\t/* eslint-disable-next-line no-unused-vars */\n\t\tfunction sdkErrorHandler(error) {\n\t\t\tupdateErrorMessageRegwall({\n\t\t\t\tvalid: false,\n\t\t\t\tmessage: error,\n\t\t\t});\n\t\t}\n\n\t\tconst checkRegWallOptions = () => {\n\t\t\tif( typeof window.authentication_config !== 'undefined') {\n\t\t\t\tif ( window.authentication_config.auth0RegwallUserEmail === '1' ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsendEmail: true,\n\t\t\t\t\t\tsiteURL: window.location.origin,\n\t\t\t\t\t\tauth0ClientId: window.authentication_config.auth0ClientId,\n\t\t\t\t\t\tincludeLoginLink: false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tsendEmail: false,\n\t\t\t\t\tauth0ClientId: window.authentication_config.auth0ClientId,\n\t\t\t\t};\n\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tsendEmail: false,\n\t\t\t\tauth0ClientId: false\n\t\t\t};\n\t\t}\n\n\t\tconst setAuth0Sub = ( auth0Sub ) => {\n\t\t\ttry {\n\t\t\t\tif ( typeof auth0Sub === 'string' ) {\n\t\t\t\t\t// set auth0_sub cookie for Connext\n\t\t\t\t\tsetCookie( CONSTANTS.AUTH0_SUB_COOKIE_KEY, auth0Sub, {\n\t\t\t\t\t\tdomain: getCookieRootDomain(),\n\t\t\t\t\t\tpath: '/',\n\t\t\t\t\t\texpires: 365,\n\t\t\t\t\t\tsecure: true, // https\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\tcatch ( e ) {\n\t\t\t\tlogger.log( 'Failed to set auth0_sub cookie: ', e );\n\t\t\t}\n\t\t};\n\n\t\tconst setAuth0SubIfNotSet = (userData) => {\n\t\t\tif( getCookie(CONSTANTS.AUTH0_SUB_COOKIE_KEY) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry{\n\t\t\t\tconst {claims} = userData;\n\t\t\t\tif( ( claims === null || claims === undefined || typeof claims !== 'object' && !Object.keys(claims).includes('sub') ) ){\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst auth0Sub = claims.sub;\n\t\t\t\t// set auth0_sub cookie for Connext\n\t\t\t\tsetAuth0Sub( auth0Sub );\n\t\t\t} catch ( e ) {\n\t\t\t\tlogger.log( 'Failed to set auth0_sub: ', e );\n\t\t\t}\n\t\t};\n\n\t\tconst subscribeTo快播视频letter = (email, preferenceID) => new Promise( ( resolve ) => {\n\t\t\ttry{\n\t\t\t\tif(typeof CnnXt === 'undefined') {\n\t\t\t\t\tlogger.log('Connext was not loaded.');\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\n\t\t\t\tlogger.log('connext subscribeTo快播视频letter', `about to call Cnnxt 快播视频letterSubscribe with pref id ${preferenceID} and email ${email}`);\n\t\t\t\t/* eslint-disable-next-line no-undef */\n\t\t\t\tCnnXt.API.快播视频letterSubscribe({\n\t\t\t\t\temail,\n\t\t\t\t\tid: preferenceID,\n\t\t\t\t\tonSuccess () {\n\t\t\t\t\t\tlogger.log('Signed user up to newsletter: ', preferenceID);\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t},\n\t\t\t\t\tonError (error) {\n\t\t\t\t\t\tlogger.log('subscribeTo快播视频letter error: ', error);\n\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tlogger.log('subscribeTo快播视频letter Error:', e);\n\t\t\t\tresolve(false);\n\t\t\t}\n\n\t\t});\n\n\t\tconst validateEmailRegwall = async () => {\n\t\t\tconst elem = document.getElementById('tribRegiwallSubButtonId') || document.getElementById('regiwallSubButtonId');\n\t\t\telem.textContent = 'Validating...';\n\t\t\tconst email = getEmailInput().value;\n\t\t\tconst simpleValidation = window.simpleEmailValidation(email);\n\t\t\tconst regWallOptions = checkRegWallOptions();\n\t\t\tif (simpleValidation.valid) {\n\t\t\t\tconst body = {email, ...regWallOptions};\n\n\t\t\t\t// if for some reason we couldn't load a client ID, let the user through without auth0 lookup\n\t\t\t\tif( !body.auth0ClientId ) return {\n\t\t\t\t\tvalid: true,\n\t\t\t\t\tmessage: '',\n\t\t\t\t\texist: false\n\t\t\t\t};\n\n\t\t\t\tconst userEndpoint = `${window.authentication_config.entitlementsEndpoint}auth0/getDefaultUserConnection`;\n\t\t\t\tconst auth0Response = await fetch(\n\t\t\t\t\tuserEndpoint,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tbody: JSON.stringify(body),\n\t\t\t\t\t\theaders: {'X-API-Key': window.authentication_config.entitlementsAPIKey},\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then((res) => res.json())\n\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t// User exists\n\t\t\t\t\t\tif (typeof data === 'object' && data.uuid) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tvalid: true,\n\t\t\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\t\t\texist: true\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} if ( typeof data === 'object' && data.newUserCreated ) {\n\t\t\t\t\t\t\t// prevent double submits and show loading text\n\t\t\t\t\t\t\telem.textContent = 'Submitting...';\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tvalid: true,\n\t\t\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\t\t\texist: false,\n\t\t\t\t\t\t\t\tuuid: data.newUserCreated,\n\t\t\t\t\t\t\t\temail\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalid: true,\n\t\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\t\texist: false,\n\t\t\t\t\t\t\temail\n\t\t\t\t\t\t};\n\n\t\t\t\t\t})\n\t\t\t\t\t.catch( ( res ) => {\n\t\t\t\t\t\tlogger.log('Regwall Validate: ', res);\n\t\t\t\t\t\telem.textContent = 'Continue';\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalid: false,\n\t\t\t\t\t\t\tmessage: 'Email validation network error, try again.',\n\t\t\t\t\t\t\texist: null\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\treturn auth0Response;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tvalid: false,\n\t\t\t\tmessage: 'This email is blocked, try another.',\n\t\t\t\texist: null\n\t\t\t};\n\t\t}\n\n\t\tconst subscribe = async (event) => {\n\n\t\t\tlogger.log('Regwall Validate: ', 'starting subscribe function');\n\t\t\tevent.preventDefault();\n\t\t\tconst newsLetterId = document.querySelector('.registrationWallID').textContent;\n\t\t\tconst validationResult = await validateEmailRegwall();\n\n\t\t\tif(validationResult.valid === false) {\n\t\t\t\tconst elem = document.getElementById('tribRegiwallSubButtonId') || document.getElementById('regiwallSubButtonId');\n\t\t\t\telem.textContent = 'Continue';\n\t\t\t}\n\t\t\t// let submitted = true;\n\t\t\tupdateErrorMessageRegwall(validationResult);\n\t\t\tif (validationResult.valid && newsLetterId.length > 0 && validationResult.exist === false) {\n\t\t\t\tlogger.log('Regwall Validate: ', 'validation good, success message');\n\t\t\t\tconst subscribeSuccess = await subscribeTo快播视频letter(validationResult.email, newsLetterId);\n\t\t\t\tif(subscribeSuccess) {\n\t\t\t\t\tlogger.log('Regwall Validate: ', 'newsletter subscription was successful.');\n\t\t\t\t\tif( checkRegWallOptions().sendEmail ) {\n\t\t\t\t\t\twindow.localStorage.setItem( CONSTANTS.REGWALL_USER_IS_SUBSCRIBED, 'false' );\n\t\t\t\t\t\t// set auth0 sub cookie from auth id that was just created\n\t\t\t\t\t\tconst userData = {claims:{}};\n\t\t\t\t\t\tuserData.claims.sub = validationResult.uuid;\n\t\t\t\t\t\tsetAuth0SubIfNotSet( userData );\n\t\t\t\t\t\tlogger.log('Regwall Validate: ', `Set the ${CONSTANTS.REGWALL_USER_IS_SUBSCRIBED} storage object.`);\n\t\t\t\t\t}\n\t\t\t\t\tgoToSuccessStep(true);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlogger.log('Regwall Validate: ', 'newsletter subscription was a FAIL.');\n\t\t\t\t\tsdkErrorHandler('快播视频letter subscription failed.');\n\t\t\t\t}\n\t\t\t} else if(validationResult.valid && newsLetterId.length > 0 && validationResult.exist === true) {\n\t\t\t\tlogger.log('Regwall Validate: ', 'validation failed, email already exists');\n\t\t\t\tgoToSuccessStep(false);\n\t\t\t\terrorMessageHandlerRegwall('Email already exists, try again.', true);\n\n\t\t\t}else if (newsLetterId.length === 0) {\n\t\t\t\tlogger.log('Regwall Validate: ', 'validation failed, no newsletter code');\n\t\t\t\terrorMessageHandlerRegwall('快播视频letter field is empty', true);\n\t\t\t}\n\t\t}\n\n\t\tfunction changedEmail() {\n\t\t\tupdateErrorMessageRegwall({\n\t\t\t\tvalid: true,\n\t\t\t});\n\t\t}\n\n\t\tconst checkPageType = window.engageLibrary.getPageType();\n\t\tlogger.log('Regwall Validate: ', 'Page type is ', checkPageType);\n\t\tconst userInfo = await MNGAuthentication.getUserInfo();\n\t\tlogger.log('Regwall Validate: ', 'userInfo has: ', userInfo);\n\n\t\t// if page type is not article, or user is known/logged in, we don't need regwall\n\t\tif (checkPageType !== 'article' || userInfo.authenticated) {\n\t\t\tlogger.log('Regwall Validate: ', 'Returning, since page type was not article or user was logged in');\n\t\t\treturn;\n\t\t}\n\n\t\tlogger.log('Regwall Validate: ', 'Starting regwall validation code, adding listeners.');\n\n\t\t// subscribeElementToEvent referecing trib can be removed post updating Connext\n\t\tconst tribRegiwallSubButton = document.getElementById('tribRegiwallSubButtonId');\n\t\tif ( tribRegiwallSubButton ) {\n\t\t\ttribRegiwallSubButton.addEventListener('click', subscribe);\n\t\t}\n\n\t\tconst connextTribEmailInput = document.getElementsByClassName('connext-trib-email-input');\n\t\tif ( connextTribEmailInput.length > 0 ) {\n\t\t\tconnextTribEmailInput[0].addEventListener('input', changedEmail);\n\t\t}\n\n\t\tconst regiwallSubButton = document.getElementById('regiwallSubButtonId');\n\t\tif ( regiwallSubButton ) {\n\t\t\tregiwallSubButton.addEventListener('click', subscribe)\n\t\t}\n\n\t\tconst connextEmail = document.getElementsByClassName('connext-email-input');\n\t\tif ( connextEmail.length > 0 ) {\n\t\t\tconnextEmail[0].addEventListener('input', changedEmail);\n\t\t}\n\n\t\tdocument.addEventListener('keyup', (e) => {\n\t\t\t// submits regwall form on enter key\n\t\t\tif (e.code === 'Enter' && (document.activeElement.id === 'tribRegiwallEmailId' || document.activeElement.id === 'regiwallEmailId')) subscribe(e);\n\t\t});\n\t}\n\n\t/**\n\t * Creates and initializes the comp subscription modal, setting up event listeners\n\t * for various form elements and handling form validation and submission for a trial subscription.\n\t *\n\t *\n\t * The function performs the following:\n\t * - Retrieves the site title from the logo's `aria-label` attribute and sets it as the trial subscription header text.\n\t * - Adds event listeners for form validation (phone, email, zip code) and modal interactions.\n\t * - Validates input fields on blur and resets error styles on focus.\n\t * - Handles the submission of the trial subscription form, checking for valid phone number, email, and zip code.\n\t *\n\t * Internal Functions:\n\t *\n\t * - `init()`: Initializes the modal by setting the header text and attaching event listeners.\n\t * - `addEventListeners()`: Sets up event listeners for closing the modal, form field validation, form submission,\n\t * and authentication via MNGAuthentication.\n\t * - `resetErrors(e)`: Resets error messages and styling for input fields when they gain focus.\n\t * - `signUpHandler(e)`: Validates form inputs and handles the form submission, displaying errors if validation fails.\n\t * - `validateInput(e)`: Validates individual input fields when they lose focus (blur event).\n\t * - `validatePhoneNumber(phoneNumber)`: Validates a US phone number, ensuring it has the correct format and length.\n\t * - `validateZipCode(zipCode)`: Validates a US zip code in both standard 5-digit and extended 9-digit formats.\n\t *\n\t *\n\t * Dependencies:\n\t * - Assumes jQuery is loaded for DOM manipulation and event handling.\n\t *\n\t *\n\t */\n\twindow.engageLibrary.showModal = (id) => {\n\t\tconst showModal = id => {\n\t\t\tconst modals = document.getElementsByClassName('compModal');\n\t\t\tconsole.log('modals before loop: ', modals);\n\t\t\tmodals.forEach(modal => {\n\t\t\t\tmodal.classList.add('hidden');\n\t\t\t});\n\t\t\tconsole.log('modals after loop: ', modals);\n\t\t\tconst targetModal = document.getElementById(id);\n\t\t\tif (targetModal) {\n\t\t\t\ttargetModal.classList.remove('hidden');\n\t\t\t\tconsole.log('target modal: ', targetModal);\n\t\t\t}\n\t\t};\n\t};\n\twindow.engageLibrary.createCompSubModal = () => {\n\t\tconst logo = document.querySelector('.hidden-logo a');\n\t\tconst siteTitle = logo.getAttribute('aria-label');\n\t\tlet emailForCompSub = '';\n\t\tlet loggedInUserDetails;\n\t\tconst compSubParams = {\n\t\t\tdomain: '', \n\t\t\temail: '',\n\t\t\tfirstName: '', \n\t\t\tlastName: '', \n\t\t\tphone: \"5555555555\",\n\t\t\tzipCode: '',\n\t\t}\n\t\n\t\tconst init = async () => {\n\t\t\tlet user = window.engageLibrary.userIsAuthenticated() \n\t\t\tconsole.log('Comp Sub conversation | user found ', user);\n\t\t\t$('#solicit-header').text(`Get a complimentary trial subscription to ${siteTitle}`);\n\t\t\tif ( user ) {\n\t\t\t\ttry {\n\t\t\t\t\tconst {\n\t\t\t\t\t\temail, \n\t\t\t\t\t\tauth0Id\n\t\t\t\t\t} = jwtDecode( window.MNGAuthentication.authenticationReady.idToken );\n\t\t\t\t\tloggedInUserDetails = await getUserDetails(auth0Id);\n\t\t\t\t\tlogger.log('Comp Sub conversation | getting email, user details from services ', email, loggedInUserDetails)\n\t\t\t\t\temailForCompSub = email;\n\t\t\t\t} catch(error) {\n\t\t\t\t\tconsole.log('error in setup ', error)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshowErrorMessage('We are unable to provide this email address with this offer.')\n\t\t\t}\n\t\t\tdocument.querySelector('#email-address').placeholder = emailForCompSub;\n\t\t\tdocument.querySelector('#compSignupButton').removeAttribute('disabled');\n\t\t\taddEventListeners();\n\t\t}\n\n\t\tconst addEventListeners = () => {\n\t\t\tdocument.querySelector('#trialCompClose').addEventListener('click', e => {\n\t\t\t\te.preventDefault(); // Prevent default action if necessary\n\t\t\t\twindow.location.replace('/');\n\n\t\t\t});\n\n\t\t\tdocument.querySelector('#compCancelButton').addEventListener('click', e => {\n\t\t\t\te.preventDefault(); // Prevent default action if necessary\n\t\t\t\twindow.location.replace('/');\n\n\t\t\t})\n\t\t\n\t\t\tdocument.querySelectorAll('.trial-form-input').forEach(element => {\n\t\t\t\telement.addEventListener('blur', validateInput);\n\t\t\t\telement.addEventListener('focus', resetErrors);\n\t\t\t});\n\n\n\t\t\tdocument.querySelector('#compSignupButton').addEventListener('click', signUpHandler);\n\n\t\t\tdocument.querySelector('#closeModalAfterSuccess').addEventListener('click', async e => {\n\t\t\t\tconst session = localStorage.getItem('__MNG_Session');\n\t\t\t\tlet entitlementToken; \n\t\t\t\tif (session) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Parse the session item as an object\n\t\t\t\t\t\tconst sessionObject = JSON.parse(session);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Return the entitlementToken property\n\t\t\t\t\t\tentitlementToken = sessionObject.entitlementToken;\n\t\t\t\t\t\tawait refreshToken(entitlementToken);\n\t\t\t\t\t\twindow.location.replace(window.location.origin + window.location.pathname);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Failed to parse __MNG_Session:', error);\n\t\t\t\t\t\twindow.location.replace('/');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t})\n\t\t};\n\n\t\tconst resetErrors = e => {\n\t\t\t// if(e.target.id == 'mobile-number'){\n\t\t\t// \t$('#phoneError1').hide();\n\t\t\t// \t$(e.target).closest('div').css('border', '1px solid #CCC');\n\t\t\t// }\n\t\t\t// if(e.target.id == 'email-address'){\n\t\t\t// \t$('#emailError1').hide();\n\t\t\t// \t$(e.target).closest('div').css('border', '1px solid #CCC');\n\t\t\t// }\n\t\t\tif(e.target.id == 'zip-code'){\n\t\t\t\t$('#zipError1').hide();\n\t\t\t\t$(e.target).closest('div').css('border', '1px solid #CCC');\n\t\t\t}\n\t\t};\n\t\t\n\t\t// TO DO: All current handlers for phone are commented out until phase 2\n\t\tconst signUpHandler = async (e) => {\n\t\t\t// const phone = $('#mobile-number').val();\n\t\t\tconst zipCode = $('#zip-code').val();\n\t\t\t// const phoneIsValid = validatePhoneNumber(phone);\n\t\t\tconst zipIsValid = validateZipCode(zipCode);\n\t\t\tlogger.log('Comp Sub conversation | begin submit')\n\t\t\t//API call here if form fields vaild\n\t\t\tif(zipIsValid) {\n\t\t\t\ttry{\n\t\t\t\t\tconst currentDate = new Date();\n\t\t\t\t\tcurrentDate.setDate(currentDate.getDate() + 1); \n\t\t\t\t\tconst endDate = new Date(currentDate);\n\t\t\t\t\tendDate.setDate(currentDate.getDate() + 180);\n\t\t\t\t\tconst submitButton = document.querySelector('#compSignupButton')\n\t\t\t\t\tsubmitButton.setAttribute('disabled', true);\n\t\t\t\t\tsubmitButton.textContent = 'Creating subscription';\n\t\t\t\t\tlogger.log('Comp Sub conversation | fields valid', zipIsValid);\n\t\t\t\t\tconst newsapperDomain = window.engageLibrary.getDataLayerEntry('Publisher Domain');\n\t\t\t\t\tconst loadingIcn = document.createElement('div');\n\t\t\t\t\tloadingIcn.classList.add('spring-spinner');\n\t\t\t\t\tloadingIcn.id = 'compSubSpinner';\n\t\t\t\t\t// loadingIcn.classList.add('spring-spinner-invert');\n\t\t\t\t\tloadingIcn.innerHTML = `\n\t\t\t\t\t