(()=>{var c="session",P=["id","className","name"],y=[{hostname:"www.google.com",utm_medium:"search",utm_source:"google"},{hostname:"google.com",utm_medium:"search",utm_source:"google"},{hostname:"www.bing.com",utm_medium:"search",utm_source:"bing"},{hostname:"bing.com",utm_medium:"search",utm_source:"bing"},{hostname:"www.yahoo.com",utm_medium:"search",utm_source:"yahoo"},{hostname:"yahoo.com",utm_medium:"search",utm_source:"yahoo"},{hostname:"www.facebook.com",utm_medium:"social",utm_source:"facebook"},{hostname:"facebook.com",utm_medium:"social",utm_source:"facebook"},{hostname:"www.twitter.com",utm_medium:"social",utm_source:"twitter"},{hostname:"twitter.com",utm_medium:"social",utm_source:"twitter"},{hostname:"www.x.com",utm_medium:"social",utm_source:"x"},{hostname:"x.com",utm_medium:"social",utm_source:"x"},{hostname:"www.linkedin.com",utm_medium:"social",utm_source:"linkedin"},{hostname:"linkedin.com",utm_medium:"social",utm_source:"linkedin"},{hostname:"www.instagram.com",utm_medium:"social",utm_source:"instagram"},{hostname:"instagram.com",utm_medium:"social",utm_source:"instagram"},{hostname:"threads.net",utm_medium:"social",utm_source:"threads"}],s={utm_source:{defaultValue:"none",defaultFormField:"utm_source"},utm_medium:{defaultValue:"none",defaultFormField:"utm_medium"},utm_campaign:{defaultValue:"none",defaultFormField:"utm_campaign"},utm_term:{defaultValue:"none",defaultFormField:"utm_term"},utm_content:{defaultValue:"none",defaultFormField:"utm_content"},gclid:{defaultValue:null,defaultFormField:"gclid"}};function a(e){if(window?.passetto?.debug){let t=typeof e=="string"?e:JSON.stringify(e);console.log(`Passetto: ${t}`)}}function _(){let e=new URLSearchParams(window.location.search),t={utm_source:e.get("utm_source"),utm_medium:e.get("utm_medium"),utm_campaign:e.get("utm_campaign"),utm_term:e.get("utm_term"),utm_content:e.get("utm_content"),gclid:e.get("gclid")};return Object.keys(t).reduce((m,o)=>(m[o]=t[o]||s[o].defaultValue,m),{})}function p(){let e=new URLSearchParams(window.location.search),t=new URL(location.href).hostname,r=document?.referrer?new URL(document.referrer).hostname:null;if(r===null||t===r)return{utm_source:"direct",utm_medium:"direct",utm_campaign:s.utm_campaign.defaultValue,utm_term:s.utm_term.defaultValue,utm_content:s.utm_content.defaultValue,gclid:null};let m="referral",o=r,i=e.get("gclid"),n=y.find(u=>u.hostname===r);return n&&(m=n.utm_medium,o=n.utm_source),{utm_source:o,utm_medium:m,utm_campaign:s.utm_campaign.defaultValue,utm_term:s.utm_term.defaultValue,utm_content:s.utm_content.defaultValue,gclid:i}}function d(){let e=JSON.parse(localStorage.getItem(c));return e?e.utm:{}}function F(e){if(a("Appending UTMs to URLs defined in the appendHostnames setting."),!e||!Array.isArray(e)||e.length===0){a("No appendHostnames provided, skipping URL appending.");return}let t=e.map(m=>(m=m.replace(/\./g,"\\."),m.includes("*")&&(m=m.replace("*",".*")),new RegExp(`^${m}$`,"i"))),r=document.getElementsByTagName("a");M(r,t)}function M(e,t){let r=d();Array.from(e).forEach(m=>{if(!m.href||!m.hostname)return;let o=new URLSearchParams(m.search);if(o.has("utm_source")||o.has("utm_medium")||o.has("utm_campaign")||o.has("utm_term")||o.has("utm_content")){a(`Anchor ${m.href} already has UTM params, skipping.`);return}t.some(n=>n.test(m.hostname))&&(Object.keys(s).forEach(n=>{r[n]&&o.set(n,r[n])}),m.search=o.toString())})}function f({container:e,inputSelectType:t="name",customFormFields:r={}}){a("Filling form fields with UTM parameters.");let{FORM_FIELD_IDS_LIST:m,FORM_FIELD_IDS_TO_UTM_MAP:o}=k({customFormFields:r}),i=d();m.forEach(n=>{let u=e||"";t==="className"?u+=` input.${n}`:t==="name"?u+=` input[name='${n}']`:t==="id"&&(u+=` input#${n}`);let h=l=>{let S=l.querySelectorAll(u.trim());for(let O of S)O.value=i[o[n]]||""};h(document),frames.length&&setTimeout(()=>{for(let l=0;l{let t={utm_medium:e?.utm_medium||"utm_medium",utm_source:e?.utm_source||"utm_source",utm_campaign:e?.utm_campaign||"utm_campaign",utm_term:e?.utm_term||"utm_term",utm_content:e?.utm_content||"utm_content",gclid:e?.gclid||"gclid"},r=Object.values(t),m={[t.utm_medium]:"utm_medium",[t.utm_source]:"utm_source",[t.utm_campaign]:"utm_campaign",[t.utm_term]:"utm_term",[t.utm_content]:"utm_content",[t.gclid]:"gclid"};return{FORM_FIELD_IDS_MAP:t,FORM_FIELD_IDS_LIST:r,FORM_FIELD_IDS_TO_UTM_MAP:m}};function x(){let e=new URLSearchParams(window.location.search),t={utm_source:e.get("utm_source"),utm_medium:e.get("utm_medium"),utm_campaign:e.get("utm_campaign"),utm_term:e.get("utm_term"),utm_content:e.get("utm_content")};return Object.values(t).some(r=>r!==null)}function b(){if(!document?.referrer)return!1;let e=new URL(document.referrer).hostname;return new URL(location.href).hostname!==e}function E({sessionExpirationTime:e}){let t=new URLSearchParams(window.location.search);x()?(a("Creating new session with UTM parameters."),a(_()),g({utmParams:_(),sessionExpirationTime:e})):b()?(a("Creating new session with referrer."),a(p()),g({utmParams:p(),sessionExpirationTime:e})):N()?(a("Creating new session with default parameters."),g({utmParams:{utm_medium:"direct",utm_source:"direct",utm_campaign:"none",utm_term:"none",utm_content:"none",gclid:null},sessionExpirationTime:e})):(a("Updating expiration of existing session."),A(e))}function U(e){let t=new Date;return t.setMinutes(t.getMinutes()+e),t}function A(e){let r={...JSON.parse(localStorage.getItem(c)),expirationDate:U(e)};localStorage.setItem(c,JSON.stringify(r))}function g({utmParams:e,sessionExpirationTime:t}){let r={utm:e,expirationDate:U(t)};localStorage.setItem(c,JSON.stringify(r))}function N(){let e=JSON.parse(localStorage.getItem(c));if(!e)return!0;let t=new Date(e.expirationDate);return new Date>t}var D=e=>{if(e&&Array.isArray(e)&&e.every(t=>typeof t=="string"))return e;throw new Error("appendHostnames must be an array.")},I=e=>{if(typeof e=="string"&&P.includes(e))return e;throw new Error('inputSelectType must be "id", "className", or "name".')},R=e=>{if(typeof e=="number"&&e>0)return e;throw new Error("sessionExpirationTime must be a number greater than 0.")},T=e=>{if(typeof e=="object"&&Object.keys(s).every(t=>t in e&&typeof e[t]=="string"))return e;throw new Error("customFormFields must include utm_medium, utm_source, utm_campaign, utm_term, utm_content, and gclid.")},L=e=>{if(typeof e=="string")return e;throw new Error("container must be a string representing the name of the modal form container.")};var v={sessionExpirationTime:30,inputSelectType:"name",debug:!1};async function w(e){try{let t={...v,...e};window.passetto.debug=t.debug,a("Initializing web tracking script.");let r=R(t.sessionExpirationTime),m=I(t.inputSelectType),o=t.customFormFields?T(t.customFormFields):null,i=t.container?L(t.container):null,n=t.appendHostnames?D(t.appendHostnames):null;E({sessionExpirationTime:r});let u=()=>{f({inputSelectType:m,customFormFields:o,container:i}),n&&F(n)};document.readyState==="complete"?u():window.addEventListener("load",u),typeof window?.MktoForms2<"u"&&(a("Marketo script detected."),window.MktoForms2.whenReady(()=>{f({inputSelectType:m,customFormFields:o,container:i})})),typeof window?.HubSpotForms<"u"&&(a("HubSpot script detected."),window.HubSpotForms.onFormReady(()=>{f({inputSelectType:m,customFormFields:o,container:i})}))}catch(t){console.error(t instanceof Error?t.message:t)}}window.UtmTags||(window.UtmTags={init:w,customInit:w});window.passetto||(window.passetto={init:w});})();