if(!window.zitag){window.zitag={}}function loadZILogs(msg,feature){window.ZILogs[feature].scriptLoad=msg;window.ZILogs.ziScript.scriptsLoaded.indexOf(feature)===-1&&window.ZILogs.ziScript.scriptsLoaded.push(feature)}function errorHandler(logFrom,error,feature="ziScript"){let errorMsg="Error while loading scripts";let statusCode;let timeout=false;if(error&&typeof error==="object"&&error.status){statusCode=error.status;timeout=error.name==="AbortError"}if(error!=null){try{var str=error.toString();errorMsg=str&&str!=="[object Object]"?str:JSON.stringify(error)}catch{errorMsg=String(error)}}window.ZILogs.ziScript.err+=logFrom+";"+errorMsg+";";window.zitag.emit({event:"script.load.error",ts:Date.now(),feature:feature,statusCode:statusCode,timeout:timeout,errorName:logFrom,errorMessage:errorMsg,stackTrace:error?.stack});var errorData={scriptName:feature,error:{message:`${logFrom}`,stack:errorMsg},_zitok:window?.zitag?.readCookie?.("_zitok"),url:window?.location?.href,userAgent:navigator?.userAgent,timestamp:(new Date).toISOString()};try{fetch(`${window.zitag.ZI_TAG_BACKEND_URL}logError`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+window.ZIProjectKey},body:JSON.stringify(errorData)})}catch{}}window.ZILogs={ziScript:{info:"",err:"",scriptsLoaded:[]},chat:{},ws:{},sch:{},fc:{}};window.zitag.ZI_TAG_BACKEND_URL=window.ZITagEnv==="dev"?"https://js-staging.zi-scripts.com/unified/v1/master/":"https://js.zi-scripts.com/unified/v1/master/";var TAG_VERSION="1.0.0";function _sendTelemetry(endpoint,beacon,body){try{if(navigator.sendBeacon&&navigator.sendBeacon(endpoint,beacon)){return}}catch(_){}try{fetch(endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:body,keepalive:true}).catch(()=>{})}catch(_){}}window.zitag.DEFAULT_FORM_TIMEOUT=4e3;window.zitag._perfStart=Date.now();window.zitag._perfFirstFeatureEmitted=false;window.zitag.telemetryEvents=[];window.zitag.flushTelemetry=function(){var isFlushing=false;return function flushTelemetry(){if(isFlushing)return;isFlushing=true;try{const raw=sessionStorage.getItem("ziScriptSession")||"{}";try{JSON.parse(raw)}catch(e){console.warn("Malformed ziScriptSession blob:",e)}const evts=window.zitag.telemetryEvents;if(!evts.length)return;const blobFromSession=(()=>{try{return JSON.parse(sessionStorage.getItem("ziScriptSession")||"{}")}catch{return{}}})();const payload={eventId:blobFromSession.eventId||"MISSING_EVENT_ID",sessionId:blobFromSession.sessionId||"MISSING_SESSION_ID",visitorId:blobFromSession.visitorId||"MISSING_VISITOR_ID",websiteId:blobFromSession.websiteId||window.ZIWebsiteId||"MISSING_WEBSITE_ID",tagVersion:TAG_VERSION,url:window.ZIPageurl||location.href,userAgent:navigator.userAgent,projectKey:window.ZIProjectKey,entitlements:window.zitag.expectedFeatures||[],events:evts};const bodyPrimary=JSON.stringify(payload);const primary=window.zitag.ZI_TAG_BACKEND_URL.replace(/\/$/,"")+"/telemetry/batch";const beaconPrimary=new Blob([bodyPrimary],{type:"application/json"});if(window.location.hostname.includes("zoominfo.com")){const SECONDARY_TELEMETRY_ENDPOINT="https://zi-script-telemetry-dev.clickagydev.io/telemetry/batch";const payloadSecondary={...payload,tagVersion:TAG_VERSION+"-direct"};const bodySecondary=JSON.stringify(payloadSecondary);const beaconSecondary=new Blob([bodySecondary],{type:"application/json"});_sendTelemetry(SECONDARY_TELEMETRY_ENDPOINT,beaconSecondary,bodySecondary)}window.zitag.telemetryEvents=[];sessionStorage.removeItem("ziPendingTelemetry")}finally{isFlushing=false}}}();var saved;try{saved=JSON.parse(sessionStorage.getItem("ziPendingTelemetry"));if(Array.isArray(saved)&&saved.length){window.zitag.telemetryEvents=saved;window.zitag.flushTelemetry()}}catch(e){console.warn("Could not parse ziPendingTelemetry, wiping it:",e);sessionStorage.removeItem("ziPendingTelemetry")}window.zitag.emit=function(evt){window.zitag.telemetryEvents.push(evt);try{sessionStorage.setItem("ziPendingTelemetry",JSON.stringify(window.zitag.telemetryEvents))}catch(e){console.warn("Could not set ziPendingTelemetry:",e)}if(evt.event==="script.load.success"){if(!window.zitag._perfFirstFeatureEmitted){window.zitag.emit({event:"perf.ttff",ts:Date.now(),feature:evt.feature,firstFeatureLoadMs:Date.now()-window.zitag._perfStart});window.zitag._perfFirstFeatureEmitted=true}if(Array.isArray(window.zitag.expectedFeatures)&&window.ZILogs.ziScript.scriptsLoaded.length===window.zitag.expectedFeatures.length){window.zitag.emit({event:"perf.allScriptsLoaded",ts:Date.now(),feature:window.zitag.expectedFeatures.join(","),totalLoadMs:Date.now()-window.zitag._perfStart})}}};window.addEventListener("pagehide",()=>window.zitag.flushTelemetry());document.addEventListener("visibilitychange",function(){if(document.visibilityState==="hidden")window.zitag.flushTelemetry()});setInterval(()=>{window.zitag.flushTelemetry()},3e4);window.zitag.emit({event:"tag.init",ts:Date.now(),feature:"ziScript"});window.zitag.isScheduleScriptAlreadyLoaded=()=>{if(window.zischedule)return true;else return false};window.zitag.isChatScriptAlreadyLoaded=()=>{if(window.insentCompanyDomain&&window.insentProjectName&&window.insentProjectKey)return true;else return false};window.zitag.isFormCompleteScriptAlreadyLoaded=()=>{if(window._zi_fc&&(window._zi_fc.formId||window._zi_fc.projectKey))return true;else if(window._zi&&(window._zi.formId||window._zi.projectKey||window._zi.forms))return true;else return false};window.zitag.waitForFormCompleteScript=function(){window.zitag.fcForms.forEach(form=>{const timeout=isNaN(form?.additionalSettings?.formLoadTimeout)?window.zitag.DEFAULT_FORM_TIMEOUT:parseInt(form.additionalSettings.formLoadTimeout,10);setTimeout(()=>{if(!window.zitag.isFormCompleteScriptAlreadyLoaded()){console.error(`FormComplete script failed to load within ${timeout/1e3} seconds. Showing fields.`);window.zitag.hideOrShowFormFields("show",form)}},timeout)})};window.zitag.InsertChatScript=keys=>{if(window.isChatDisabled===true||keys.enabled===false)return;if(window.ZIWhiteList&&Array.isArray(window.ZIWhiteList)&&window.ZIWhiteList.indexOf("chat")===-1)return;if(window?.zitag?.isChatScriptAlreadyLoaded()){loadZILogs("Chat Script already present. Skipping","chat");return}window.insentCompanyDomain=window.location.hostname.replace("www.","");window.insentProjectName=keys.projectName;window.insentProjectKey=keys.projectKey;var t=window.insent||{};t.queue=[];t.SCRIPT_VERSION="0.1.3",t.methods=["widget","listener","setVisitor"],t.factory=function(e){return function(){var n=Array.prototype.slice.call(arguments);return n.unshift(e),t.queue.push(n),t}},t.methods.forEach(function(e){t[e]=t.factory(e)});window.insent=t;var s=document.createElement("script");s.type="text/javascript",s.charset="utf-8",s.defer=!0,s.src=`https://${keys.projectName}.widget.insent.ai/insent`,document.readyState==="complete"?document.body.appendChild(s):window.addEventListener("load",function(n){document.body.appendChild(s)});loadZILogs("Chat Script Loaded!","chat");s.onload=()=>{window.zitag.emit({event:"script.load.success",ts:Date.now(),feature:"chat",src:s.src})};s.onerror=e=>{window.zitag.emit({event:"script.load.error",ts:Date.now(),feature:"chat",errorName:e.name,errorMessage:e.message})}};window.zitag.InsertFormCompleteLegacyScript=keys=>{if(window.isFormCompleteDisabled===true)return;if(window.ZIWhiteList&&Array.isArray(window.ZIWhiteList)&&window.ZIWhiteList.indexOf("formcomplete")===-1)return;if(window?.zitag?.isFormCompleteScriptAlreadyLoaded()){loadZILogs("FormComplete Script already present. Skipping","fc");return}window._zi={formId:"9a4b5c4c-fdba-41f7-87c9-bfbf714f9c04",formLoadTimeout:4e3};var zi=document.createElement("script");zi.type="text/javascript";zi.async=true;zi.src="https://ws-assets-staging.zoominfo.com/formcomplete.js";zi.onload=()=>{window.zitag.emit({event:"script.load.success",ts:Date.now(),feature:"fc",src:zi.src})};zi.onerror=e=>{window.zitag.emit({event:"script.load.error",ts:Date.now(),feature:"fc",errorName:e.name,errorMessage:e.message})};var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(zi,s);loadZILogs("FormComplete Legacy Script Loaded!","fc")};window.zitag.InsertFormCompleteScript=keys=>{try{if(!keys.projectKey)return;if(window.isFormCompleteDisabled===true)return;if(window.ZIWhiteList&&Array.isArray(window.ZIWhiteList)&&window.ZIWhiteList.indexOf("formcomplete")===-1)return;if(window?.zitag?.isFormCompleteScriptAlreadyLoaded()){loadZILogs("FormComplete Script already present. Skipping","fc");return}let FormcompleteParameters={projectKey:keys.projectKey};if(window.FCpostSubmissionEvent)FormcompleteParameters.postSubmissionEvent=true;window._zi_fc={...window._zi_fc,...FormcompleteParameters};var zi=document.createElement("script");zi.type="text/javascript";zi.async=true;zi.src=window?.zitag?.FORMCOMPLETE_BACKEND_URL;zi.onload=()=>{window.zitag.emit({event:"script.load.success",ts:Date.now(),feature:"fc",src:zi.src})};var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(zi,s);loadZILogs("FormComplete Script Loaded!","fc");zi.onerror=e=>{window.zitag.emit({event:"script.load.error",ts:Date.now(),feature:"fc",errorName:e.name,errorMessage:e.message});errorHandler("[InsertFCScript][ZIOnError]","FCScriptLoadError","fc");fetch(`${window?.zitag?.FORMCOMPLETE_BACKEND_URL}`).then(response=>errorHandler("[InsertFCScript][FetchResponse]",response,"fc")).catch(e=>{errorHandler("[InsertFCScript][FetchCatch]",e,"fc")})}}catch(e){errorHandler("[InsertFCScript][Catch]",e,"fc")}};window.zitag.InsertScheduleScript=keys=>{if(window.isScheduleDisabled===true)return;if(window.ZIWhiteList&&Array.isArray(window.ZIWhiteList)&&window.ZIWhiteList.indexOf("schedule")===-1)return;let tx=window.zischedule||{};tx.queue=[];tx.SCRIPT_VERSION="0.1.3",tx.methods=["triggerSchedule"],tx.factory=function(e){return function(){const n=Array.prototype.slice.call(arguments);return n.unshift(e),tx.queue.push(n),tx}},tx.methods.forEach(function(e){tx[e]=tx.factory(e)});window.zischedule=tx;const s=document.createElement("script");s.type="text/javascript",s.charset="utf-8",s.defer=!0,s.src=window?.zitag?.SCHEDULE_BACKEND_URL,document.readyState==="complete"?document.body.appendChild(s):window.addEventListener("load",function(n){document.body.appendChild(s)});s.onload=()=>{window.zitag.emit({event:"script.load.success",ts:Date.now(),feature:"sch",src:s.src})};s.onerror=e=>{window.zitag.emit({event:"script.load.error",ts:Date.now(),feature:"sch",errorName:e.name,errorMessage:e.message})};loadZILogs("Schedule Script Loaded!","sch")};window.zitag.InsertWebSightsScript=(keys,_vtok,evi,sessionId,eventId)=>{if(window.ZIWhiteList&&Array.isArray(window.ZIWhiteList)&&window.ZIWhiteList.indexOf("websights")===-1)return;if(!keys.websiteId&&!window.ZIWebsiteId){return}const websiteId=keys.websiteId||window.ZIWebsiteId;const _zitok=window?.zitag?.readCookie("_zitok");let headers={"Content-Type":"text/javascript",_zitok:_zitok,_vtok:window.testip&&window.ZITagEnv==="dev"?btoa(window.testip):_vtok,"visited-url":window?.ZIPageurl||window?.location?.href,"event-id":eventId,"session-id":sessionId};if(evi===true){headers.evi=true}if(window?.ZIPageurl){headers["page-url"]=window.ZIPageurl}fetch(`${window?.zitag?.ZI_WS_BACKEND_URL}${websiteId}/?iszitag=true`,{headers:headers,credentials:"include",referrerPolicy:"unsafe-url"}).then(response=>response.text()).then(data=>{try{var blob=new Blob([data],{type:"text/javascript"});var urlCreator=window.webkitURL||window.URL;var url=urlCreator.createObjectURL(blob);const s=document.createElement("script");s.type="text/javascript",s.charset="utf-8",s.async=true,s.src=url,document.readyState==="complete"?document.body.appendChild(s):window.addEventListener("load",function(n){document.body.appendChild(s)});s.onload=()=>{window.zitag.emit({event:"script.load.success",ts:Date.now(),feature:"ws",src:s.src})};s.onerror=e=>{window.zitag.emit({event:"script.load.error",ts:Date.now(),feature:"ws",errorName:e.name,errorMessage:e.message})};loadZILogs("WebSights Script Loaded!","ws")}catch(e){errorHandler(`[InsertWebSightsScript][Catch] websiteId: ${websiteId}`,e,"ws");eval(data);loadZILogs("WebSights Script Loaded!","ws")}}).catch(e=>{window.zitag.emit({event:"script.load.error",ts:Date.now(),feature:"ws",errorName:"WebSightsFetchError",errorMessage:e.message||String(e)})})};window.zitag.readCookie=name=>{let nameEQ=name+"=";let cookieParts=document.cookie.split(";");let tokens=[];for(let i=0;i{var pathname=location.pathname.replace(/\/$/,""),segments=pathname.split("/"),paths=[];for(var i=0,l=segments.length,path;i{if(!form){window.ZILogs.fc.err+="[FormHandler] No form mapping found;";return}let formElements=document.querySelectorAll(form.selector);if(formElements?.length){formElements.forEach(formElement=>{let emailInput=(form.inputs||[]).find(input=>input.mappedField==="email");if(!emailInput)return;let emailSelector=window.zitag.getElementSelector(emailInput);let emailField=formElement.querySelector(emailSelector);if(!emailField)return;(form.inputs||[]).forEach(function(input){if(input.mappedField==="email")return;let selector=window.zitag.getElementSelector(input);let el=formElement.querySelector(selector);el=findEl(el);if(el){el.style.display=hideOrShow==="hide"?"none":""}})})}else{let iframeFormElements=getIframeWrapperForm(form?.formIframeWrapperSelector,form.selector);iframeFormElements?.forEach(iframeFormElement=>{let emailInput=(form.inputs||[]).find(input=>input.mappedField==="email");if(!emailInput)return;let emailSelector=window.zitag.getElementSelector(emailInput);let emailField=iframeFormElement.querySelector(emailSelector);if(!emailField)return;(form.inputs||[]).forEach(function(input){if(input.mappedField==="email")return;let selector=window.zitag.getElementSelector(input);let el=iframeFormElement.querySelector(selector);el=findEl(el);if(el){el.style.display=hideOrShow==="hide"?"none":""}})})}};window.zitag.isFormPresentInDocumentOrIframes=function(formSelector){if(document.querySelectorAll(formSelector).length>0){return true}const iframes=document.querySelectorAll("iframe");for(let i=0;i0){return true}}return false};window.zitag.observeAndHideFormFields=function(){if(!window.zitag.fcForms||window.zitag.fcForms.length===0){window.ZILogs.fc.err+="[FormHandler] No form mappings found;";return}window.zitag.fcForms.forEach(form=>{const timeout=isNaN(form?.additionalSettings?.formLoadTimeout)?window.zitag.DEFAULT_FORM_TIMEOUT:parseInt(form.additionalSettings.formLoadTimeout,10);const interval=100;const startTime=Date.now();const pollForForm=()=>{if(window.zitag.isFormPresentInDocumentOrIframes(form.selector)){window.zitag.hideOrShowFormFields("hide",form);return}if(Date.now()-startTime{window.zitag.emit({event:"entitlements.fetch.start",ts:Date.now()});var entStart=Date.now();try{const ziwsKey=window?.ZITagEnv==="dev"?"ziwss":"ziws";let sessionId=sessionStorage.getItem(ziwsKey+"SessionId")||null;if(!sessionId){sessionId=JSON.parse(sessionStorage.getItem("ziScriptSession"))?.sessionId||null}const _zitok=window?.zitag?.readCookie("_zitok");let headers={"Content-Type":"application/json",Authorization:"Bearer "+window.ZIProjectKey,visited_url:window?.ZIPageurl||window.location.href,"session-id":sessionId};if(_zitok){let actualTokenArray=_zitok.toString().split(",");if(actualTokenArray.length>0){let actualtoken=actualTokenArray.filter(e=>e.trim()!=="undefined")[0];if(actualtoken&&actualtoken!=="undefined"&&actualtoken!==undefined){headers._zitok=actualtoken}}}let response=await fetch(`${window?.zitag?.ZI_TAG_BACKEND_URL}getSubscriptions`,{method:"GET",headers:headers});var entLatency=Date.now()-entStart;window.zitag.emit({event:"entitlements.fetch.end",ts:Date.now(),latencyMs:entLatency});const data=await response.json();sessionId=data.sessionId;sessionStorage.setItem("ziScriptSession",JSON.stringify({sessionId:sessionId}));window.zitag.expectedFeatures=[];window.zitag.FORMCOMPLETE_BACKEND_URL=data?.productUrls?.fc;window.zitag.SCHEDULE_BACKEND_URL=data?.productUrls?.sch;window.zitag.ZI_WS_BACKEND_URL=data?.productUrls?.ws;if(response.status===200&&data&&data.subscriptions){window.zitag.expectedFeatures=Object.keys(data.subscriptions);let canSetCookie=true;if(window?.ZIWhiteList?.length===1&&window?.ZIWhiteList?.[0]==="formcomplete"){canSetCookie=false}if(canSetCookie){await window?.zitag?.deleteZiTok();window?.zitag?.setCookie({name:"_zitok",value:data._zitok,days:data?.cookieExpiry||365,samesite:data?.samesite||"strict"})}let subscriptions=data?.subscriptions;if(subscriptions&&Object.keys(subscriptions).length===0){window.ZILogs.ziScript.info+="No ZI subscriptions found"}if(subscriptions.sch){window?.zitag?.InsertScheduleScript(subscriptions.sch)}if(subscriptions.fc){window.zitag.fcForms=data?.fcForms||[];if(window.zitag.fcForms.length>0){window.zitag.observeAndHideFormFields();window.zitag.waitForFormCompleteScript()}window?.zitag?.InsertFormCompleteScript(subscriptions.fc)}if(subscriptions.chat){window?.zitag?.InsertChatScript(subscriptions.chat)}if(subscriptions.ws||window.ZIWebsiteId){window?.zitag?.InsertWebSightsScript(subscriptions.ws,data?._vtok,data?.evi,data.sessionId,data.eventId)}window.zitag.flushTelemetry()}else{window.zitag.emit({event:"entitlements.fetch.failure",ts:Date.now(),statusCode:response.status,timeout:false});errorHandler("[GetEntitlements][Response]",data||response?.body);window.zitag.flushTelemetry()}}catch(e){window.zitag.emit({event:"entitlements.fetch.failure",ts:Date.now(),errorName:e.name,errorMessage:e.message,timeout:e.name==="AbortError"});errorHandler("[GetEntitlements][Catch]",e);window.zitag.flushTelemetry()}};function getIframeWrapperForm(iframeSelector,formSelector){let formEl=[];let formIframeWrappers=document.querySelectorAll(iframeSelector);for(let i=0;i1)return el;return findEl(parent)}window?.zitag?.GetListOfEntitlements();if(typeof module!=="undefined"&&module.exports){module.exports={loadZILogs:loadZILogs,errorHandler:errorHandler}}