{"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","sophiPluginEnabled","_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","Storage","GetCurrentConversation","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","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","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.authentication_config.sophiPluginEnabled === '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 = window.Connext.Storage.GetCurrentConversation();\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 = window.Connext.Storage.GetCurrentConversation();\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\n\twindow.engageLibrary.isSophiVariantOrHoldout = () => {\n\t\tconst testCookie = getSophiVariantCookie();\n\t\tlet connextCheck = window.Connext.Storage.GetCurrentConversation();\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 = window.Connext.Storage.GetCurrentConversation();\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 = window.Connext.Storage.GetCurrentConversation();\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 = window.Connext.Storage.GetCurrentConversation();\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 = window.Connext.Storage.GetCurrentConversation();\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
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
`;\n\t\t\t\t\tsubmitButton.appendChild(loadingIcn);\n\t\t\t\t\tcompSubParams.domain = newsapperDomain;\n\t\t\t\t\tcompSubParams.email = emailForCompSub;\n\t\t\t\t\tcompSubParams.zipCode = zipCode;\n\t\t\t\t\tif( loggedInUserDetails && loggedInUserDetails?.fullName.includes(' ') ) {\n\t\t\t\t\t\tlet firstName = loggedInUserDetails.fullName.split(' ')[0];\n\t\t\t\t\t\tlet lastName = loggedInUserDetails.fullName.split(' ')[1];\n\t\t\t\t\t\tif(firstName){\n\t\t\t\t\t\t\tcompSubParams.firstName = firstName;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcompSubParams.firstName = 'unknown';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(lastName){\n\t\t\t\t\t\t\tcompSubParams.lastName = lastName\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcompSubParams.lastName = 'unknown'\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(compSubParams.firstName){\n\t\t\t\t\t\t\tcompSubParams.firstName = loggedInUserDetails.fullName;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcompSubParams.firstName = 'unknown'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(loggedInUserDetails.nickname) {\n\t\t\t\t\t\t\tcompSubParams.lastName = loggedInUserDetails.nickname\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcompSubParams.lastName = 'unknown'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlogger.log('Comp Sub conversation | parameters submit body ', compSubParams)\n\t\t\t\t\t//This hsould handle all of the response logic \n\t\t\t\t\tconst response = await fetch(`${window.authentication_config.entitlementsEndpoint}comp/create`, \n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"X-Api-Key\": window.authentication_config.entitlementsAPIKey\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbody: JSON.stringify(compSubParams)\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t\tlet body = await response.json();\n\t\t\t\t\tif( response.status === 200 ) {\n\t\t\t\t\t\tdocument.querySelector('#compSubFormBody').classList.add('hidden');\n\t\t\t\t\t\tlogger.log('Comp Sub conversation | Success! this should add a comp sub to the user ', response);\n\t\t\t\t\t\tdocument.querySelector('#compSubSuccessBody').classList.remove('hidden');\n\t\t\t\t\t\twindow.dataLayer.push({\n\t\t\t\t\t\t\tevent: 'digisubs_subscription', \n\t\t\t\t\t\t\tsub_id: [body.Result.SubscriptionId], \n\t\t\t\t\t\t\tsub_type: 'comp',\n\t\t\t\t\t\t\tsub_start: [currentDate.toISOString()],\n\t\t\t\t\t\t\tsub_end: [endDate.toISOString()]\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogger.log('Comp Sub conversation | fail - this is the body ', body);\n\t\t\t\t\t\tshowErrorMessage('The provided email address does not qualify for a complimentary subscription at this time.');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn;\n\t\t\t\t} catch (err) {\n\t\t\t\t\tlogger.log('Comp Sub conversation | fetch error ', err);\n\t\t\t\t\tshowErrorMessage('We are unable to provide this email address with this offer.')\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t// if(!phoneIsValid) {\n\t\t\t// \tconsole.log('trialComp | phone bad');\n\t\t\t// \t$('#mobile-number').closest('div').css('border', '1px solid #F00');\n\t\t\t// \t$('#phoneError1').show(); \n\t\t\t// }\n\t\t\t// if(!emailValidation.valid) {\n\t\t\t// \tconsole.log('trialComp email not valid');\n\t\t\t// \t$('#email-address').closest('div').css('border', '1px solid #F00');\n\t\t\t// \t$('#emailError1').show();\n\t\t\t// }\n\t\t\tif(!zipIsValid){\n\t\t\t\t$('#zip-code').closest('div').css('border', '1px solid #F00');\n\t\t\t\t$('#zipError1').show();\n\t\t\t}\n\t\t};\n\n\t\tconst showErrorMessage = error => {\n\t\t\tdocument.querySelector('#compSubFormBody').classList.add('hidden');\n\t\t\tdocument.querySelector('#subAlreadyExistsBody').classList.remove('hidden');\n\t\t\tlet errorMessageDiv = document.querySelector('#error-message');\n\t\t\terrorMessageDiv.textContent = error;\n\t\t};\n\n\t\tconst validateInput = e => {\n\t\t\t// const phone = $('#mobile-number').val();\n\t\t\t// const email = $('#email-address').val();\n\t\t\tconst zipCode = $('#zip-code').val();\n\t\t\t// const phoneIsValid = validatePhoneNumber(phone);\n\t\t\t// const emailValidation = simpleEmailValidation(email);\n\t\t\tconst zipIsValid = validateZipCode(zipCode);\n\t\t\n\t\t\t// if ( $(e.target).prop('id') === 'mobile-number' ) {\n\t\t\t// \tif(!phoneIsValid) {\n\t\t\t// \t\t$(e.target).closest('div').css('border', '1px solid #F00')\n\t\t\t// \t\t$('#phoneError1').show();\n\t\t\t// \t}\n\t\t\t// }\n\t\t\t// if( $(e.target).prop('id') === 'email-address' ) {\n\t\t\t// \tif(!emailValidation.valid) {\n\t\t\t// \t\t$(e.target).closest('div').css('border', '1px solid #F00')\n\t\t\t// \t\t$('#emailError1').show();\n\t\t\t// \t}\n\t\t\t// }\n\t\t\tif( $(e.target).prop('id') === 'zip-code' ) {\n\t\t\t\tif(!zipIsValid) {\n\t\t\t\t\t$(e.target).closest('div').css('border', '1px solid #F00')\n\t\t\t\t\t$('#zipError1').show();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\n\t\tconst validatePhoneNumber = phoneNumber => {\n\t\t\t// Remove non-numeric characters\n\t\t\tconst cleanNumber = phoneNumber.replace(/\\D/g, '');\n\t\t\t// Check if the cleaned number has the correct length (10 digits for US phone numbers)\n\t\t\tif (cleanNumber.length !== 10) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\n\t\t\t// Validate the format using regular expression\n\t\t\tconst validFormat = /^(1\\s?)?(\\()?(\\d{3})(\\))?[\\s-]?(\\d{3})[\\s-]?(\\d{4})$/;\n\t\t\treturn validFormat.test(cleanNumber);\n\t\t};\n\n\t\tconst getUserDetails = async auth0Id =>{\n\t\t\ttry{\n\t\t\t\tconst response = await fetch (`${window.authentication_config.entitlementsEndpoint}auth0/users/${auth0Id}`,\n\t\t\t\t{\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'X-Api-Key': window.authentication_config.entitlementsAPIKey,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tlet userDetails = await response.json();\n\t\t\t\tlogger.log('Comp sub conversation | logged in user details ', userDetails)\n\t\t\t\treturn userDetails;\n\t\t\t} catch (err) {\n\t\t\t\tconsole.log('Comp sub conversation | ', err);\n\t\t\t\tshowErrorMessage('We are unable to provide this email address with this offer.')\n\t\t\t}\n\n\t\t};\n\n\t\tconst refreshToken = async ( entitlementToken ) => {\n\t\t\ttry{\n\t\t\t\tlogger.log( 'Entitlements: refresh JWT start...' );\n\t\t\t\tif ( !entitlementToken ) {\n\t\t\t\t\treturn new Error( 'No token to refresh' );\n\t\t\t\t}\n\t\t\t\n\t\t\t\tlogger.log( 'Entitlements refresh: entitlement token: ', entitlementToken );\n\t\t\t\tconst jwtRequestBody = {\n\t\t\t\t\tjwt: entitlementToken,\n\t\t\t\t};\n\t\t\t\tconst response = await fetch(`${window.authentication_config.entitlementsEndpoint}session/refresh`, \n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t\t\t'Content-Type': 'application/json; charset=utf-8',\n\t\t\t\t\t\t\t'X-Api-Key': window.authentication_config.entitlementsAPIKey\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbody: JSON.stringify( jwtRequestBody )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tlet responseBody = await response.json();\n\t\t\t\tawait saveToken( responseBody.jwt );\n\t\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log('error reseting token ', error)\n\t\t\t}\n\t\t};\n\n\t\tconst saveToken = async ( jwt ) => {\n\t\t\ttry {\n\t\t\t\t// set the mng entitlements cookie\n\t\t\t\tsaveEntitlementCookie( jwt );\n\t\t\n\t\t\t\tlogger.log('About to decode token before saving: ', jwt);\n\t\t\t\tconst decoded = jwtDecode( jwt );\n\t\t\t\t\t// save JWT to local storage\n\t\t\t\twindow.localStorage.setItem( CONSTANTS.LOCAL_STORAGE_SESSION_KEY, JSON.stringify({\n\t\t\t\t\tentitlementToken: jwt,\n\t\t\t\t\texpiration: decoded.entitlement_expiry,\n\t\t\t\t\tentitlementSource: decoded.entitlement_source,\n\t\t\t\t\tisEntitled: decoded.entitlement_entitled,\n\t\t\t\t\tadFree: decoded.entitlement_extras_adfree || false,\n\t\t\t\t\tentitlementLevel: decoded.entitlement_level,\n\t\t\t\t}));\n\t\t\n\t\t\t} catch( e ) {\n\t\t\t\tlogger.log( 'Entitlements: Failed to save token: ', e );\n\t\t\t}\n\t\t};\n\n\t\tconst saveEntitlementCookie = ( jwt ) => {\n\t\t\tsetCookie(\n\t\t\t\tCONSTANTS.ENTITLEMENT_COOKIE_KEY,\n\t\t\t\tjwt,\n\t\t\t\t{\n\t\t\t\t\tpath: '/',\n\t\t\t\t\tdomain: getCookieRootDomain(),\n\t\t\t\t\texpires: 365, // 1 year\n\t\t\t\t\tsecure: true, // https\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tconst validateZipCode =zipCode => {\n\t\t\tconst zipCodePattern = /^\\d{5}(-\\d{4})?$/;\n\t\t\treturn zipCodePattern.test(zipCode);\n\t\t};\n\n\t\tconst showModal = id => {\n\t\t\tconst modals = document.getElementsByClassName('compModal');\n\t\t\tArray.from(modals).forEach(modal => {\n\t\t\t\tmodal.classList.add('hidden');\n\t\t\t});\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}\n\t\t};\n\t\tinit();\n\t};\n};\nexport default {\n\tinit\n};","import logger from './logger';\n\n\nconst init = () => {\n\n\twindow.engageLibrary = window.engageLibrary || {};\n\n\twindow.engageLibrary.runTest = () => {\n\t\tlogger.log('pageIsInPreview() - Page is on preview: ', window.engageLibrary.pageIsInPreview());\n\t\tlogger.log('subscribersForMigration() - Is on Subscriber for Migration segment: ', window.engageLibrary.subscribersForMigration());\n\t\tlogger.log('isEntitledValue() - Has entitled access: ', window.engageLibrary.isEntitledValue());\n\t\tlogger.log('printCheck() - Is print level: ', window.engageLibrary.printCheck());\n\t\tlogger.log('getPageType() - Page type is: ', window.engageLibrary.getPageType());\n\t\tlogger.log('getSection() - Section is: ', window.engageLibrary.getSection());\n\t\tlogger.log('getPaywallLevel() - Paywall level is: ', window.engageLibrary.getPaywallLevel());\n\t\tlogger.log('premiumFeatureExclusiveDP() - DP article flagged as exclusive feature: ', window.engageLibrary.premiumFeatureExclusiveDP());\n\t\tlogger.log('regwallObj() - Regwall is already registered: ', window.engageLibrary.regwallObj());\n\t\n\t\tlogger.log('allReadersTag() - Article contains all readers tag: ', window.engageLibrary.allReadersTag());\n\t\tlogger.log('isOpinionPiece() - Contains Opinion tag: ', window.engageLibrary.isOpinionPiece());\n\t\tlogger.log('isEspanolContent() - Contains espanol tag: ', window.engageLibrary.isEspanolContent());\n\t\tlogger.log('isPhotosAndVideos() - Contains photos and videos tag: ', window.engageLibrary.isPhotosAndVideos());\n\t\tlogger.log('isAthleteOfWeek() - Contains athlete of the week tag: ', window.engageLibrary.isAthleteOfWeek());\n\t\tlogger.log('isContests() - Contains contests tag: ', window.engageLibrary.isContests());\n\t\tlogger.log('getTaxonomy1() - Is Taxonomy1 present: ', window.engageLibrary.getTaxonomy1());\n\t\tlogger.log('profileDropDownExists() - Does profile dropdown exist: ', window.engageLibrary.profileDropDownExists());\n\t\tlogger.log('twinCitiesKnownEmail() - User is in segment Twincities - known email: ', window.engageLibrary.twinCitiesKnownEmail());\n\t\tlogger.log('twinCitiesUrlCheck() - Is current url twincities.com: ', window.engageLibrary.twinCitiesUrlCheck());\n\t\tlogger.log('pmpUrlCheck() - Is current url PMP ', window.engageLibrary.pmpUrlCheck());\n\t\tlogger.log('whySubscribePageCheck() Is user on why-subscribe page: ', window.engageLibrary.whySubscribePageCheck());\n\t\tif (window.sophi) {\n\t\t\tlogger.log('isSophiVariant() - Is Sophi variant: ', window.engageLibrary.isSophiVariant());\n\t\t\tlogger.log('shouldLoadPaywall() - Sophi should load Paywall: ', window.engageLibrary.shouldLoadPaywall());\n\t\t\tlogger.log('shouldLoadRegwall() - Sophi should load Regwall: ', window.engageLibrary.shouldLoadRegwall());\n\t\t\tlogger.log('responseIsNowall() - Sophi no wall response: ', window.engageLibrary.responseIsNowall());\n\t\t}\n\t\n\t\tlogger.log('mercurynewsIsMeteredArchive() - mercurynews is metered archive: ', window.engageLibrary.mercurynewsIsMeteredArchive());\n\t\tlogger.log('ocregisterIsMeteredArchive() - ocregister is metered archive: ', window.engageLibrary.ocregisterIsMeteredArchive());\n\t\tlogger.log('pressenterpriseIsMeteredArchive() - pressenterprise is metered archive: ', window.engageLibrary.pressenterpriseIsMeteredArchive());\n\t\tlogger.log('eastbayIsMeteredArchive() - eastbay is metered archive: ', window.engageLibrary.eastbayIsMeteredArchive());\n\t\tlogger.log('marinijIsMeteredArchive() - marinij is metered archive: ', window.engageLibrary.marinijIsMeteredArchive());\n\t\tlogger.log('bostonheraldIsMeteredArchive() - bostonherald is metered archive: ', window.engageLibrary.bostonheraldIsMeteredArchive());\n\t\tlogger.log('lowellsunIsMeteredArchive() - lowellsun is metered archive: ', window.engageLibrary.lowellsunIsMeteredArchive());\n\t\tlogger.log('sentinelIsMeteredArchive() - sentinel is metered archive: ', window.engageLibrary.sentinelIsMeteredArchive());\n\t\tlogger.log('dailyfreemanIsMeteredArchive() - dailyfreeman is metered archive: ', window.engageLibrary.dailyfreemanIsMeteredArchive());\n\t\tlogger.log('dailycameraIsMeteredArchive() - dailycamera is metered archive: ', window.engageLibrary.dailycameraIsMeteredArchive());\n\t\tlogger.log('greeleytribuneIsMeteredArchive() - greeleytribune is metered archive: ', window.engageLibrary.greeleytribuneIsMeteredArchive());\n\t\tlogger.log('reporterheraldIsMeteredArchive() - reporterherald is metered archive: ', window.engageLibrary.reporterheraldIsMeteredArchive());\n\t\tlogger.log('timescallIsMeteredArchive() - timescall is metered archive', window.engageLibrary.timescallIsMeteredArchive());\n\t\tlogger.log('santacruzsentinelIsMeteredArchive() - santacruzsentinel is metered archive: ', window.engageLibrary.santacruzsentinelIsMeteredArchive());\n\t\tlogger.log('montereyheraldIsMeteredArchive() - montereyherald is metered archive: ', window.engageLibrary.montereyheraldIsMeteredArchive());\n\t\tlogger.log('chicoerIsMeteredArchive() - chicoer is metered archive: ', window.engageLibrary.chicoerIsMeteredArchive());\n\t\tlogger.log('courantIsMeteredArchive() - courant is metered archive: ', window.engageLibrary.courantIsMeteredArchive());\n\t\tlogger.log('mcallIsMeteredArchive() - mcall is metered archive', window.engageLibrary.mcallIsMeteredArchive());\n\t\tlogger.log('orlandosentinelIsMeteredArchive() - orlandosentinel is metered archive: ', window.engageLibrary.orlandosentinelIsMeteredArchive());\n\t\tlogger.log('sunsentinelIsMeteredArchive() - sunsentinel is metered archive: ', window.engageLibrary.sunsentinelIsMeteredArchive());\n\t\tlogger.log('pilotonlineIsMeteredArchive() - pilotonline is metered archive: ', window.engageLibrary.pilotonlineIsMeteredArchive());\n\t\tlogger.log('dailypressIsMeteredArchive() - dailypress is metered archive: ', window.engageLibrary.dailypressIsMeteredArchive());\n\t\tlogger.log('nydailynewsIsMeteredArchive() - nydailynews is metered archive: ', window.engageLibrary.nydailynewsIsMeteredArchive());\n\t\tlogger.log('baltimoresunIsMeteredArchive() - baltimoresun is metered archive: ', window.engageLibrary.baltimoresunIsMeteredArchive());\n\t\tlogger.log('capitalgazetteIsMeteredArchive() - capitalgazette is metered archive: ', window.engageLibrary.capitalgazetteIsMeteredArchive());\n\t\tlogger.log('articleSharingExpire() - Article share expire status: ', window.engageLibrary.articleSharingExpire());\n\t\tlogger.log('getRegwallSuccess() - regwallSuccess exists on local storage: ', window.engageLibrary.getRegwallSuccess());\n\t\tlogger.log('getRegwallKnown() - regwallKnown exists on local storage: ', window.engageLibrary.getRegwallKnown());\n\t\tlogger.log('userIsAuthenticated() - Is user authenticated: ', window.engageLibrary.userIsAuthenticated());\n\t\tlogger.log('getUserHhsl() - User current Hhsl is: ', window.engageLibrary.getUserHhsl());\n\t}\n\t\n\twindow.engageLibrary.bcRunTests = () => {\n\t\tlogger.log('panymaGiveBCAccess() Page is on preview: ', window.engageLibrary.panymaGiveBCAccess());\n\t\tlogger.log('bcLowaCheck() - segment for LOWA user: ', window.engageLibrary.bcLowaCheck());\n\t\tlogger.log('checkBCForNonSub() - Check for non-sub: ', window.engageLibrary.checkBCForNonSub());\n\t\tlogger.log('allSubsGiveBCAccess() - User is on All Active Subscribers segment: ', window.engageLibrary.allSubsGiveBCAccess());\n\t\tlogger.log('crossOverGiveBCAccess() - User is on CrossOver PremSubs segment: ', window.engageLibrary.crossOverGiveBCAccess());\n\t\tlogger.log('caGiveBCAccess() - User is on CA Print Only Subs segment: ', window.engageLibrary.caGiveBCAccess());\n\t\tlogger.log('bcAdblockDetection() - User is on Adblock Users segment', window.engageLibrary.bcAdblockDetection());\n\t\tlogger.log('pmpGiveBCAccess() - User is on PMP_KnownNonSubsAll segment', window.engageLibrary.pmpGiveBCAccess());\n\t}\n\t\n}\n\nexport default {\n\tinit,\n};","import engageLibrary from './engageLibrary';\nimport engageLibraryTest from './engageLibraryTest';\n\nconst init = async () => {\n\tengageLibrary.init();\n\tengageLibraryTest.init();\n\tconsole.log(`Engage Library loaded: ${new Date().getTime()}`);\n};\n\ninit();\n\n"],"sourceRoot":"webpack://"}