var DEAnalytics=function(){"use strict";return{init:function(){DEAnalytics.regionTld=".com",DEAnalytics.regionTldMappings={".com":{de:".com",segment:".com"},".ca":{de:".ca",segment:".com"},".co":{de:".com",segment:".com"},".mx":{de:".com",segment:".com"},".co.uk":{de:".co.uk",segment:".co.uk"},".ie":{de:".co.uk",segment:".co.uk"},".ekb.eg":{de:".co.uk",segment:".co.uk"}},DEAnalytics.baseEndpoints={ipLookup:"https://www.discoveryeducation{TLD}/api/v1/ip/",integrations:"https://segment.discoveryeducation{TLD}/v1/projects/{WRITE_KEY}/integrations",segment:"https://segment.discoveryeducation{TLD}/analytics.js/v1/{WRITE_KEY}/analytics.min.js",defaultJSLibraryPath:"https://apollo.discoveryeducation{TLD}/js/",cookiePolicyUrl:"https://www.discoveryeducation{TLD}/cookie-policy/"},DEAnalytics.apis={ipLookup:null,integrations:null,segment:null},DEAnalytics.thisFile="enterprise-analytics.min.js",DEAnalytics.consentManagerJSFile="enterprise-analytics.cm.min.js",DEAnalytics.defaultJSLibraryPath=null,DEAnalytics.cookiePolicyUrl=null,DEAnalytics.version="20240401.1",DEAnalytics.clickEventTypes={media:"File Downloaded",outbound:"Outbound Link Clicked",product:"Product Link Clicked"},DEAnalytics.cookie={debug:"DE_ANALYTICS_DEBUG",ajsAnonymousId:"ajs_anonymous_id",anonymousId:"de_anonymous_id",identify:"de_identify_sent",mip:"mip"},DEAnalytics.flags={consentManager:!1,disableAutoPageTrack:!1,modalConsent:!1,scrollTracking:!1},DEAnalytics.host=window.location.hostname,DEAnalytics.ip="0.0.0.0",DEAnalytics.protocolVersion="version"in DEAnalyticsInitData&&DEAnalyticsInitData.version&&parseInt(DEAnalyticsInitData.version)?parseInt(DEAnalyticsInitData.version):2,DEAnalytics.eventContext={ea_version:DEAnalytics.version,ip:DEAnalytics.ip,protocols:{event_version:DEAnalytics.protocolVersion},page:{path:window.location.pathname,referrer:document.referrer,search:window.location.search,url:window.location.href}},DEAnalytics.eventTags,DEAnalytics.writeKey,DEAnalytics.domainParts=window.location.host.split("."),DEAnalytics.bypassAnalytics=!1,DEAnalytics.libraryLoaded=!1,DEAnalytics.setup(),DEAnalytics.addListeners()},setup:function(){DEAnalytics.activateDebug(),DEAnalytics.setExternalEndpoints(),DEAnalytics.setContextTags(),DEAnalytics.setFlags(),DEAnalytics.setIPThenLoadLibrary()},loadConsentManagerLibrary:function(){DEAnalytics.debugMessage("Loading CM Library.");let currentScript=document.querySelector('script[src*="'+DEAnalytics.thisFile+'"]'),script=document.createElement("script"),jstz=document.createElement("script"),consentManagerPath=DEAnalytics.defaultJSLibraryPath+DEAnalytics.consentManagerJSFile,jstzPath="https://cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js";currentScript&&"src"in currentScript&&(consentManagerPath=currentScript.src.replace(DEAnalytics.thisFile,DEAnalytics.consentManagerJSFile)),script.onload=function(){DEConsentManager.init()},script.src=consentManagerPath,jstz.src=jstzPath,document.head.appendChild(jstz),document.head.appendChild(script)},setupLibrary:function(){let activeSession=DEAnalyticsInitData&&DEAnalyticsInitData.id;DEAnalytics.flags.consentManager&&!activeSession?DEAnalytics.loadConsentManagerLibrary():DEAnalytics.loadSegmentLibrary()},addListeners:function(){"complete"==document.readyState||"interactive"==document.readyState?DEAnalytics.scrollEvent():window.addEventListener("DOMContentLoaded",()=>{DEAnalytics.scrollEvent()}),document.addEventListener("click",(function(ev){let targetElement=ev.target,fileExtensionRegex=new RegExp(/(7z|csv|doc(x|m)?|mp(2|3|4|e?g)|pdf|ppt(x|m)?|pps(x|m)?|tar|tgz|wav|xls(x|m|b)?|xlt(x|m)|zip)$/i),props=DEAnalytics.trackProperties();if(targetElement){if("attributes"in targetElement&&"href"in targetElement.attributes&&(props.url=targetElement.attributes.href.value),!props.url){if(targetElement=targetElement.closest("a, button, label"),!targetElement)return;props.url="attributes"in targetElement&&"href"in targetElement.attributes?targetElement.attributes.href.value:null}if("attributes"in targetElement&&"target"in targetElement.attributes&&(props.target=targetElement.attributes.target.value),"classList"in targetElement&&(targetElement.classList.contains("cookie_settings")||targetElement.classList.contains("ot-sdk-show-settings")))return ev.preventDefault(),DEConsentManager.showConsentManagerModal(),void DEAnalytics.debugMessage("Consent Manager Opened");if(props.url){let url=props.url.split("?")[0];if(fileExtensionRegex.test(url.split(".").pop())){let fileData=DEAnalytics.fileData(url);props={...props,...fileData},"assetId"in targetElement.dataset&&(props.asset_id=targetElement.dataset.assetId),DEAnalytics.debugMessage({props:props},DEAnalytics.clickEventTypes.media),DEAnalytics.sendTrack(DEAnalytics.clickEventTypes.media,props)}else targetElement.hostname&&!targetElement.hostname.includes(DEAnalytics.host)&&(DEAnalytics.debugMessage({props:props},DEAnalytics.clickEventTypes.outbound),DEAnalytics.sendTrack(DEAnalytics.clickEventTypes.outbound,props))}DEAnalytics.productClickEvent(targetElement,props)}})),document.addEventListener("fullscreenchange",(function(event){document.fullscreenElement&&DEAnalytics.pageTrack()}))},experiment:async function(code){const env=window.location.host.split(".").slice(1,DEAnalytics.domainParts.length-2).join("."),api="https://api"+(env.length?".":"")+env+".discoveryeducation"+DEAnalytics.regionTldMappings[DEAnalytics.regionTld].de+"/v1/experiment/member/"+code,fetchExperiment=fetch(api,{method:"GET",headers:{"Content-Type":"application/json"},cache:"no-cache",mode:"cors",credentials:"include"});function errorHandler(e){DEAnalytics.debugMessage(e,"Experiment Fetch Error")}fetchExperiment.then(response=>response.json()).catch(errorHandler)},flag:async function(code){const env=window.location.host.split(".").slice(1,DEAnalytics.domainParts.length-2).join("."),api="https://api"+(env.length?".":"")+env+".discoveryeducation"+DEAnalytics.regionTldMappings[DEAnalytics.regionTld].de+"/v1/flag/access_check/"+code,fetchFeatureFlag=fetch(api,{method:"GET",headers:{"Content-Type":"application/json"},cache:"no-cache",mode:"cors",credentials:"include"});function errorHandler(e){DEAnalytics.debugMessage(e,"Feature Flag Fetch Error")}fetchFeatureFlag.then(response=>response.json()).catch(errorHandler)},loadSegmentLibrary:function(){DEAnalytics.debugMessage("Loading Segment Library.");var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Analytics Library snippet included twice.");else{analytics.invoked=!0,analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"],analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);return t.unshift(e),analytics.push(t),analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=DEAnalytics.apis.segment;var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n),analytics._loadOptions=e};var analytics_ready_event=document.createEvent("CustomEvent");analytics_ready_event.initCustomEvent("deAnalyticsReady",!0,!1),document.dispatchEvent(analytics_ready_event),analytics.SNIPPET_VERSION="4.15.3",DEAnalytics.flags.consentManager||(DEAnalytics.debugMessage("Analytics library ready."),analytics.load(DEAnalytics.writeKey)),DEAnalytics.debugMessage("Analytics library loaded."),DEAnalytics.libraryLoaded=!0,DEAnalytics.flags.disableAutoPageTrack||(DEAnalytics.sendIdentifyWithCheck(),DEAnalytics.pageTrack())}},activateDebug:function(){null!==DEAnalytics.getCookie(DEAnalytics.cookie.debug)&&(DEAnalytics.debugEnabled=!0,DEAnalytics.debugMessage("DE Enterprise Analytics v."+DEAnalytics.version))},addObjectPropertiesInSnakeCase:function(baseObj,newObj){return Object.getOwnPropertyNames(newObj).forEach(name=>{DEAnalytics.snakeCase(name)in baseObj==!1&&(baseObj[DEAnalytics.snakeCase(name)]=newObj[name])}),baseObj},debugMessage:function(message,title){DEAnalytics.debugEnabled&&null!=message&&console.log(title?`DEBUG: ${title} - `:"DEBUG: ",DEAnalytics.maskObject(message))},disableDebug:function(){let date=new Date,daysToExpire=-30,expires;return date.setTime(date.getTime()+-2592e6),expires="; expires="+date.toUTCString(),document.cookie=DEAnalytics.cookie.debug+"=DISABLED"+expires+"; path=/",DEAnalytics.debugEnabled=!1,"DEBUG: DISABLED"},enableDebug:function(){let date=new Date,daysToExpire=30,expires;return date.setTime(date.getTime()+2592e6),expires="; expires="+date.toUTCString(),document.cookie=DEAnalytics.cookie.debug+"=ENABLED"+expires+"; path=/",DEAnalytics.activateDebug(),"DEBUG: ENABLED"},fileData:function(url){let response={filename:null,extension:null},file=url.split("/").pop();if(!file)return response;let ext=file.split(".").pop();return ext?(response.extension=ext,response.filename=file.replace("."+ext,""),response):response},getCookie:function(name){if(!name)return null;let decodedCookies,cookies=decodeURIComponent(document.cookie).split(";");name+="=";for(let i=0;i<cookies.length;i++){let c=cookies[i];for(;" "==c.charAt(0);)c=c.substring(1);if(0==c.indexOf(name))return c}return null},getCookieValue:function(name,removeQuotes=!0){let cookie=DEAnalytics.getCookie(name),response=null,v;return cookie?(v=cookie.split("="),v[1]&&(response=v[1],removeQuotes&&(response=response.replace(/"/g,""))),response):response},getTimezoneOffset:function(timezone,formatted=!0,date=new Date){const utcDate=new Date(date.toLocaleString("en-US",{timeZone:"UTC"})),tzDate=new Date(date.toLocaleString("en-US",{timeZone:timezone})),offsetInMinutes=(tzDate.getTime()-utcDate.getTime())/6e4;return formatted?(offsetInMinutes/60).toFixed(2):offsetInMinutes},isGuid:function(str=null){let regex=new RegExp(/^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$/),response=!1;return str&&regex.test(str)&&(response=!0),response},maskedIp:function(ip){const ipv4Pattern=/^(([0-9]{1,4}\.){3})([0-9]{1,4})$/,ipv6Pattern=/^(([0-9a-fA-F]{0,4}:){2,7})([0-9a-fA-F]){1,4}$/;return ipv4Pattern.test(ip)?ip.replace(ipv4Pattern,"$10"):(ipv6Pattern.test(ip)||DEAnalytics.debugMessage("Received malformed IP address "+ip),ip)},maskObject:function(object){if("object"!=typeof object)return object;for(let field in object)null!=field&&"object"==typeof field&&(object[field]=DEAnalytics.maskObject(field));const PII_FIELDS=["email"],MASKED_STRING="***MASKED***";return PII_FIELDS.forEach((function(field){null!=object[field]&&(object[field]=MASKED_STRING)})),object},snakeCase:function(string){return string=string.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map((function(i){return i[0].toLowerCase()+i.substr(1).toLowerCase()})).join("_")},sharedSearchProperties:function(attrs){const attrKeys=["copyrightYearMax","copyrightYearMin","courseId","courseName","elasticBoostVersion","elasticSoftwareVersion","groupId","groupName","hasClosedCaptions","hasQuiz","hasRelatedMaterials","isPrimarySource","isQueryCorrected","lexileRanges","productCode","productName","query","queryCorrected","sort","taxonomyId","taxonomyName","totalResults"],arrayAttrKeys=["assetTypeIds","assetTypeNames","languageId","languageName","readingLevels","gradeIds","gradeNames"];let props={publisher_id:null},publisherIds=[];for(let i=0;i<attrKeys.length;i++)props[DEAnalytics.snakeCase(attrKeys[i])]=null,attrKeys[i]in attrs&&(props[DEAnalytics.snakeCase(attrKeys[i])]=attrs[attrKeys[i]]);for(let i=0;i<arrayAttrKeys.length;i++)props[DEAnalytics.snakeCase(arrayAttrKeys[i])]=null,arrayAttrKeys[i]in attrs&&Array.isArray(attrs[arrayAttrKeys[i]])&&attrs[arrayAttrKeys[i]].length&&(props[DEAnalytics.snakeCase(arrayAttrKeys[i])]=attrs[arrayAttrKeys[i]]);if("publishers"in attrs&&Array.isArray(attrs.publishers)&&attrs.publishers.length){for(let i=0;i<attrs.publishers.length;i++)publisherIds.push(attrs.publishers[i].id);props.publisher_id=publisherIds}function durationMinMax(){let durations,durationPair=[],maxFound=!1,response={duration_min:null,duration_max:null};if("durations"in attrs==!1)return response;durations=attrs.durations;for(let i=0;i<durations.length;i++)"string"!=typeof durations[i]&&durations[i]instanceof String||(durationPair=durations[i].split("-"),1===durationPair.length?(maxFound=!0,response.duration_max=null):!maxFound&&(null===response.duration_max||response.duration_max<parseInt(durationPair[1]))&&(response.duration_max=parseInt(durationPair[1])),(null===response.duration_min||response.duration_min>parseInt(durationPair[0]))&&(response.duration_min=parseInt(durationPair[0])));return response}return props=Object.assign(props,durationMinMax()),props},sendIdentify:function(data=null){if(DEAnalytics.bypassAnalytics||DEAnalyticsInitData.isImpersonated)return;let id=null;data&&"id"in data&&(id=data.id),DEAnalytics.debugMessage("Sending Identify"),analytics&&analytics.identify(id,{},{ip:DEAnalytics.ip})},sendIdentifyWithCheck:function(){let ajsAnonymousId=DEAnalytics.getCookieValue(DEAnalytics.cookie.ajsAnonymousId),anonymousId=DEAnalytics.getCookieValue(DEAnalytics.cookie.anonymousId);ajsAnonymousId&&anonymousId!=ajsAnonymousId&&(DEAnalytics.sendIdentify(),DEAnalytics.setAnonymousId(ajsAnonymousId))},sendTrack:function(type,trackProps,context=null){DEAnalytics.bypassAnalytics||DEAnalyticsInitData.isImpersonated||"id"in trackProps&&trackProps.id&&trackProps.id.includes("impersonate")||(DEAnalytics.updateContext(),context&&DEAnalytics.addObjectPropertiesInSnakeCase(context,DEAnalytics.eventContext),analytics&&analytics.track(type,trackProps,context||DEAnalytics.eventContext))},setAnonymousId:function(ajsAnonymousId){let date=new Date,minutesToExpire=720,expires;date.setTime(date.getTime()+432e5),expires="; expires="+date.toUTCString(),document.cookie=DEAnalytics.cookie.anonymousId+"="+ajsAnonymousId+";"+expires+"; path=/",DEAnalytics.debugMessage("Anonymous ID Cookie Set.("+ajsAnonymousId+")")},setCookieIp:function(){let date=new Date,minutesToExpire=15,expires;date.setTime(date.getTime()+9e5),expires="; expires="+date.toUTCString(),document.cookie=DEAnalytics.cookie.mip+"="+DEAnalytics.ip+";"+expires+"; path=/",DEAnalytics.debugMessage("MIP Cookie Set.("+DEAnalytics.ip+")")},setContextTags:function(){"tags"in DEAnalyticsInitData&&DEAnalyticsInitData.tags&&("string"==typeof DEAnalyticsInitData.tags||DEAnalyticsInitData.tags instanceof String)&&(DEAnalytics.eventTags=DEAnalyticsInitData.tags.split(",").map((function(item){return item.trim()})))},setCookieIdentify:function(){let date=new Date,minutesToExpire=5,expires;date.setTime(date.getTime()+3e5),expires="; expires="+date.toUTCString(),document.cookie=DEAnalytics.cookie.identify+"=true;"+expires+"; path=/",DEAnalytics.debugMessage("Identify Cookie Set.")},setFlags:function(){Object.keys(DEAnalytics.flags).forEach(key=>{DEAnalytics.flags[key]=!1,key in DEAnalyticsInitData&&DEAnalyticsInitData[key]&&(DEAnalytics.flags[key]=!0)}),".co.uk"==DEAnalytics.regionTld&&(DEAnalytics.flags.modalConsent=!0)},setIPThenLoadLibrary:function(){if("ip"in DEAnalyticsInitData)return DEAnalytics.ip=DEAnalytics.maskedIp(DEAnalyticsInitData.ip),DEAnalytics.setCookieIp(),void DEAnalytics.setupLibrary();DEAnalytics.checkMaskedIp()?DEAnalytics.setupLibrary():DEAnalytics.fetchGetMaskedIp()},checkMaskedIp:function(){let maskedIp,maskedIpCookie=DEAnalytics.getCookie(DEAnalytics.cookie.mip);return null!==maskedIpCookie&&(maskedIp=maskedIpCookie.replace(DEAnalytics.cookie.mip+"=",""),DEAnalytics.ip=DEAnalytics.maskedIp(maskedIp)),maskedIp},fetchGetMaskedIp:function(){const url=DEAnalytics.apis.ipLookup,fetchIp=fetch(url,{method:"GET"});function errorHandler(e){DEAnalytics.debugMessage("Masked IP Lookup failed."),console.log("Masked IP GET Error",e),DEAnalytics.setupLibrary()}fetchIp.then(response=>response.json()).then(data=>{DEAnalytics.ip=data.masked,DEAnalytics.setCookieIp(),DEAnalytics.setupLibrary()}).catch(errorHandler)},setExternalEndpoints:function(){if("regionTLD"in DEAnalyticsInitData)DEAnalytics.regionTld=DEAnalyticsInitData.regionTLD;else{var hostname=document.location.hostname,isUK=hostname.endsWith(".co.uk"),tld=hostname.split(".").pop();isUK?DEAnalytics.regionTld=".co.uk":tld&&(DEAnalytics.regionTld="."+tld)}DEAnalytics.apis.ipLookup=DEAnalytics.baseEndpoints.ipLookup.replace("{TLD}",DEAnalytics.regionTldMappings[DEAnalytics.regionTld].de),DEAnalytics.apis.integrations=DEAnalytics.baseEndpoints.integrations.replace("{TLD}",DEAnalytics.regionTldMappings[DEAnalytics.regionTld].de),DEAnalytics.apis.segment=DEAnalytics.baseEndpoints.segment.replace("{TLD}",DEAnalytics.regionTldMappings[DEAnalytics.regionTld].segment),DEAnalytics.defaultJSLibraryPath=DEAnalytics.baseEndpoints.defaultJSLibraryPath.replace("{TLD}",DEAnalytics.regionTldMappings[DEAnalytics.regionTld].de),DEAnalytics.cookiePolicyUrl=DEAnalytics.baseEndpoints.cookiePolicyUrl.replace("{TLD}",DEAnalytics.regionTldMappings[DEAnalytics.regionTld].de),"key"in DEAnalyticsInitData&&(DEAnalytics.writeKey=DEAnalyticsInitData.key,DEAnalytics.apis.integrations=DEAnalytics.apis.integrations.replace("{WRITE_KEY}",DEAnalytics.writeKey),DEAnalytics.apis.segment=DEAnalytics.apis.segment.replace("{WRITE_KEY}",DEAnalytics.writeKey))},trackProperties:function(){const versions={1:"nonstudent",2:"unauthenticated",3:"student",4:"cep",5:"np-nonstudent",6:"np-student"};let props={version:versions[DEAnalytics.protocolVersion],impersonator_id:null,is_impersonated:!1};"accountId"in DEAnalyticsInitData&&(props.account_id=DEAnalyticsInitData.accountId),"accountName"in DEAnalyticsInitData&&(props.account_name=DEAnalyticsInitData.accountName),"id"in DEAnalyticsInitData&&(props.id=DEAnalytics.isGuid(DEAnalyticsInitData.id)?DEAnalyticsInitData.id.toLowerCase():DEAnalyticsInitData.id),"isImpersonated"in DEAnalyticsInitData&&(props.is_impersonated=DEAnalyticsInitData.isImpersonated),"impersonatorId"in DEAnalyticsInitData&&(props.impersonator_id=DEAnalyticsInitData.impersonatorId),"orgId"in DEAnalyticsInitData&&(props.org_id=DEAnalyticsInitData.orgId),"orgName"in DEAnalyticsInitData&&(props.org_name=DEAnalyticsInitData.orgName),"siteId"in DEAnalyticsInitData&&(props.site_id=DEAnalyticsInitData.siteId),"siteName"in DEAnalyticsInitData&&(props.site_name=DEAnalyticsInitData.siteName),"username"in DEAnalyticsInitData&&(props.username=DEAnalyticsInitData.username),"atlasProductId"in DEAnalyticsInitData&&(props.atlas_product_id=DEAnalyticsInitData.atlasProductId),"partnershipId"in DEAnalyticsInitData&&(props.partnership_id=DEAnalyticsInitData.partnershipId),DEAnalytics.eventTags&&(props.tags=DEAnalytics.eventTags),"isStudent"in DEAnalyticsInitData&&DEAnalyticsInitData.isStudent&&delete props.username,["unauthenticated","np-nonstudent","np-student","cep"].includes(props.version)&&["is_impersonated","impersonator_id"].forEach(e=>delete props[e]),["np-nonstudent","np-student"].includes(props.version)&&delete props.atlas_product_id,"cep"==props.version&&["account_id","account_name","id","site_name","site_id","username"].forEach(e=>{void 0!==props[e]&&""===props[e]&&delete props[e]});let timezone=Intl.DateTimeFormat().resolvedOptions().timeZone;return props.timezone={name:timezone,offset:DEAnalytics.getTimezoneOffset(timezone)},props},updateContext:function(context){DEAnalytics.eventContext.ip=DEAnalytics.ip,DEAnalytics.eventContext.page={path:window.location.pathname,referrer:document.referrer,search:window.location.search,url:window.location.href}},ajaxRefreshPageTrack:function(attrs){let anchorTag,props=DEAnalytics.trackProperties();attrs=attrs||{},DEAnalytics.updateContext(),"url"in attrs&&(anchorTag=document.createElement("a"),anchorTag.href=attrs.url,DEAnalytics.eventContext.page.path=anchorTag.pathname,DEAnalytics.eventContext.page.search=anchorTag.search,DEAnalytics.eventContext.page.title="",DEAnalytics.eventContext.page.url=attrs.url),"previousUrl"in attrs&&(DEAnalytics.eventContext.page.referrer=attrs.previousUrl),"assetId"in attrs&&(props.asset_id=attrs.assetId),props.ajax=!0,props.path=DEAnalytics.eventContext.page.path,props.referrer=DEAnalytics.eventContext.page.referrer,props.search=DEAnalytics.eventContext.page.search,props.title=DEAnalytics.eventContext.page.title,props.url=DEAnalytics.eventContext.page.url,props.fullscreen=!!document.fullscreenElement,DEAnalytics.debugMessage({attrs:attrs,context:DEAnalytics.eventContext,props:props},"Ajax Refreshing Page"),DEAnalytics.pageViewed(props)},assetDownloadTrack:function(attrs){let eventName="Asset Downloaded",props=DEAnalytics.trackProperties();"assetId"in attrs&&"assetTitle"in attrs&&"formatId"in attrs&&"url"in attrs&&(props.asset_id=attrs.assetId,props.asset_title=attrs.assetTitle,props.format_id=attrs.formatId,props.resolution="resolution"in attrs?attrs.resolution:null,props.url=attrs.url,DEAnalytics.debugMessage({attrs:attrs,props:props},eventName),DEAnalytics.sendTrack(eventName,props))},carouselTrack:function(eventName,attrs){let props=DEAnalytics.trackProperties(),trackEvents={clicked:"Carousel Clicked",viewed:"Carousel Viewed"};if(eventName&&attrs&&eventName in trackEvents&&"carouselTitle"in attrs&&attrs.carouselTitle){if(props.recommendation_id=void 0!==attrs.recommendationId?attrs.recommendationId:null,props.impressions="impressions"in attrs?attrs.impressions:null,props.carousel_title="carouselTitle"in attrs?attrs.carouselTitle:null,"clicked"===eventName&&(props.asset_id="assetId"in attrs?attrs.assetId:null,props.asset_title="assetTitle"in attrs?attrs.assetTitle:null,props.position="position"in attrs?attrs.position:null,props.promo_asset_id="promoAssetId"in attrs?attrs.promoAssetId:null),"viewed"===eventName){if(!props.carousel_title&&"student"==props.version)return;props.promo_asset_ids="promoAssetIds"in attrs?attrs.promoAssetIds:null}DEAnalytics.debugMessage({attrs:attrs,props:props},trackEvents[eventName]),DEAnalytics.sendTrack(trackEvents[eventName],props)}},lessonProgressed:function(attrs){let props=DEAnalytics.addObjectPropertiesInSnakeCase(DEAnalytics.trackProperties(),attrs),eventName="Lesson Progressed";DEAnalytics.debugMessage({attrs:attrs,props:props},eventName),DEAnalytics.sendTrack(eventName,props)},linkClicked:function(attrs){let props=DEAnalytics.addObjectPropertiesInSnakeCase(DEAnalytics.trackProperties(),attrs);(props.name||props.type)&&(DEAnalytics.debugMessage({attrs:attrs,props:props},DEAnalytics.clickEventTypes.product),DEAnalytics.sendTrack(DEAnalytics.clickEventTypes.product,props))},pageTrack:function(){let props=DEAnalytics.trackProperties();props.ajax=!1,props.fullscreen=!!document.fullscreenElement,DEAnalytics.eventTags&&(props.tags=DEAnalytics.eventTags),DEAnalytics.updateContext(),DEAnalytics.debugMessage({props:props,context:DEAnalytics.eventContext},"Page Track"),DEAnalytics.pageViewed(props)},pageViewed:function(props){DEAnalytics.bypassAnalytics||DEAnalyticsInitData.isImpersonated||"id"in props&&props.id&&props.id.includes("impersonate")||("assetId"in DEAnalyticsInitData&&(props.asset_id=DEAnalyticsInitData.assetId),analytics&&analytics.page(props,DEAnalytics.eventContext),DEAnalyticsInitData&&DEAnalyticsInitData.id&&!DEAnalytics.getCookie(DEAnalytics.cookie.identify)&&(DEAnalytics.sendIdentify({id:DEAnalyticsInitData.id}),DEAnalytics.setCookieIdentify()))},productClickEvent:function(element,trackProps){let context,props={...trackProps},sendEvent=!1;if("dataset"in element&&(element.dataset.clickName&&(props.name=element.dataset.clickName),element.dataset.clickType&&(props.type=element.dataset.clickType),element.dataset.clickAssetId&&(props.asset_id=element.dataset.clickAssetId),element.dataset.clickMeta&&(context=JSON.parse(element.dataset.clickMeta)),element.dataset.clickExperience)){let experienceKeys=["experiment_id","flag_id","audience_ids","variation_code","variation_id","variation_is_control","variation_percentage"];try{let experienceData=JSON.parse(element.dataset.clickExperience);experienceKeys.forEach((function(key){null!=experienceData[key]&&(props[key]=experienceData[key])}))}catch(e){}}props.url||delete props.url,sendEvent=props.name||props.type,sendEvent&&!props.name&&props.type&&"atlas"==props.type&&(sendEvent=!1),sendEvent&&(DEAnalytics.debugMessage({props:props,context:context},DEAnalytics.clickEventTypes.product),DEAnalytics.sendTrack(DEAnalytics.clickEventTypes.product,props,context))},scrollEvent:function(){if(!DEAnalytics.flags.scrollTracking)return;const scrollDelayMS=1200;let positionReached={"25%":!1,"50%":!1,"75%":!1,"95%":!1},scrollPercentageCurrent=0,timeout,props=DEAnalytics.trackProperties();function checkAndSendScrollEvent(scrollPercentage){let thresholds=[{completed:25,reported:25},{completed:50,reported:50},{completed:75,reported:75},{completed:95,reported:100}];if(!(scrollPercentage<thresholds[0].completed))for(let i=0;i<thresholds.length;i++){let completed=thresholds[i].completed,reported=thresholds[i].reported;scrollPercentage>=completed&&!positionReached[completed+"%"]&&(positionReached[completed+"%"]=!0,props.completed=reported,DEAnalytics.sendTrack("Scroll Depth Reached",props),DEAnalytics.debugMessage({props:props},"Scroll Depth Reached"))}}window.addEventListener("scroll",(function(){const body=document.body,html=document.documentElement;let documentHeight=Math.max.apply(Math,[body.scrollHeight,body.offsetHeight,html.clientHeight,html.offsetHeight]),position=window.scrollY,scrollPercentageRaw=0,scrollPercentage=0,windowHeight=window.innerHeight;position&&(scrollPercentageRaw=position/(documentHeight-windowHeight),scrollPercentage=Math.round(100*scrollPercentageRaw),0!==scrollPercentage&&clearTimeout(timeout),timeout=setTimeout(()=>{checkAndSendScrollEvent(scrollPercentage)},1200))}))},searchQueryEntered:function(attrs){let eventName="Search Query Entered",props={},sharedSearchProps=DEAnalytics.sharedSearchProperties(attrs),trackProps=DEAnalytics.trackProperties();props=Object.assign(trackProps,sharedSearchProps),props.search_query_source="searchQuerySource"in attrs?attrs.searchQuerySource:null,DEAnalytics.debugMessage({attrs:attrs,props:props},eventName),DEAnalytics.sendTrack(eventName,props)},searchResultClicked:function(attrs){let eventName="Search Result Clicked",props={},sharedSearchProps=DEAnalytics.sharedSearchProperties(attrs),trackProps=DEAnalytics.trackProperties();props=Object.assign({},trackProps,sharedSearchProps),props.asset_id="assetId"in attrs?attrs.assetId:null,props.asset_name="assetName"in attrs?attrs.assetName:null,props.page="page"in attrs?attrs.page:null,props.position="position"in attrs?attrs.position:null,props.url="url"in attrs?attrs.url:null,props.is_preview="isPreview"in attrs&&attrs.isPreview,DEAnalytics.debugMessage({attrs:attrs,props:props},eventName),DEAnalytics.sendTrack(eventName,props)},videoTrack:function(eventName,attrs){let props=DEAnalytics.trackProperties(),trackEvents={video_playback_completed_25:"Video Playback Completed",video_playback_completed_50:"Video Playback Completed",video_playback_completed_75:"Video Playback Completed",video_playback_completed_100:"Video Playback Completed",video_playback_started:"Video Playback Started",video_playback_paused:"Video Playback Paused",video_playback_resumed:"Video Playback Resumed"};if(eventName&&attrs&&eventName in trackEvents){switch(eventName){case"video_playback_completed_25":props.completed=.25;break;case"video_playback_completed_50":props.completed=.5;break;case"video_playback_completed_75":props.completed=.75;break;case"video_playback_completed_100":props.completed=1}props.is_trimmed=void 0!==attrs.isTrimmed&&attrs.isTrimmed,props.trimmed_start_position=void 0!==attrs.trimmedStartPosition?attrs.trimmedStartPosition:null,props.is_preview=!1,"isPreview"in attrs&&"boolean"==typeof attrs.isPreview&&(props.is_preview=attrs.isPreview),"assetId"in attrs&&"assetTitle"in attrs&&"partnershipId"in attrs&&"partnershipTitle"in attrs&&"duration"in attrs&&"position"in attrs&&(props.asset_id=attrs.assetId,props.asset_title=attrs.assetTitle,props.partnership_id=attrs.partnershipId,props.partnership_title=attrs.partnershipTitle,props.duration=attrs.duration,props.position=attrs.position,DEAnalytics.debugMessage({attrs:attrs,props:props},trackEvents[eventName]),DEAnalytics.sendTrack(trackEvents[eventName],props))}},viewStateChange:function(page,data=null){data&&"object"==typeof data&&!Array.isArray(data)&&(DEAnalyticsInitData={...DEAnalyticsInitData,...data},DEAnalytics.setFlags()),DEAnalytics.ajaxRefreshPageTrack(page)}}}();document.addEventListener("DOMContentLoaded",(function(){DEAnalytics.init()}));