!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n():"function"==typeof define&&define.amd?define(n):n()}(0,(function(){"use strict";function e(e){var n=this.constructor;return this.then((function(t){return n.resolve(e()).then((function(){return t}))}),(function(t){return n.resolve(e()).then((function(){return n.reject(t)}))}))}function n(e){return!(!e||void 0===e.length)}function t(){}function o(e){if(!(this instanceof o))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(e,this)}function r(e,n){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,o._immediateFn((function(){var t=1===e._state?n.onFulfilled:n.onRejected;if(null!==t){var o;try{o=t(e._value)}catch(r){return void f(n.promise,r)}i(n.promise,o)}else(1===e._state?i:f)(n.promise,e._value)}))):e._deferreds.push(n)}function i(e,n){try{if(n===e)throw new TypeError("A promise cannot be resolved with itself.");if(n&&("object"==typeof n||"function"==typeof n)){var t=n.then;if(n instanceof o)return e._state=3,e._value=n,void u(e);if("function"==typeof t)return void c(function(e,n){return function(){e.apply(n,arguments)}}(t,n),e)}e._state=1,e._value=n,u(e)}catch(r){f(e,r)}}function f(e,n){e._state=2,e._value=n,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&o._immediateFn((function(){e._handled||o._unhandledRejectionFn(e._value)}));for(var n=0,t=e._deferreds.length;t>n;n++)r(e,e._deferreds[n]);e._deferreds=null}function c(e,n){var t=!1;try{e((function(e){t||(t=!0,i(n,e))}),(function(e){t||(t=!0,f(n,e))}))}catch(o){if(t)return;t=!0,f(n,o)}}var a=setTimeout;o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,n){var o=new this.constructor(t);return r(this,new function(e,n,t){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof n?n:null,this.promise=t}(e,n,o)),o},o.prototype.finally=e,o.all=function(e){return new o((function(t,o){function r(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var u=n.then;if("function"==typeof u)return void u.call(n,(function(n){r(e,n)}),o)}i[e]=n,0==--f&&t(i)}catch(c){o(c)}}if(!n(e))return o(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])}))},o.resolve=function(e){return e&&"object"==typeof e&&e.constructor===o?e:new o((function(n){n(e)}))},o.reject=function(e){return new o((function(n,t){t(e)}))},o.race=function(e){return new o((function(t,r){if(!n(e))return r(new TypeError("Promise.race accepts an array"));for(var i=0,f=e.length;f>i;i++)o.resolve(e[i]).then(t,r)}))},o._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){a(e,0)},o._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var l=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object")}();"Promise"in l?l.Promise.prototype.finally||(l.Promise.prototype.finally=e):l.Promise=o})),function(root,factory){"function"==typeof define&&define.amd?define("calltrack",[],(function(){return root.CallTrack=factory()})):root.CallTrack=factory()}("undefined"!=typeof self?self:this,(function(){Array.prototype.findIndex=Array.prototype.findIndex||function(callback){if(null===this)throw new TypeError("Array.prototype.findIndex called on null or undefined");if("function"!=typeof callback)throw new TypeError("callback must be a function");for(var list=Object(this),length=list.length>>>0,thisArg=arguments[1],i=0;i{clearInterval(v)})),this.setIntervals=[];let extendInterval=setInterval((function(){let seconds=((new Date).getTime()-CallTrack.lastActive.getTime())/1e3;("active"==CallTrack.getCurrentState()||seconds<=30)&&CallTrack.extendLease(),CallTrack.Cookie.get("fx_info",!0)||CallTrack.init()}),2e4);this.setIntervals.push(extendInterval);["focus","blur","visibilitychange","freeze","resume","pageshow"].forEach((evt=>{let el=addEventListener(evt,(function(e){"active"==CallTrack.getCurrentState()&&(CallTrack.lastActive=new Date)}),!0);this.setIntervals.push(el)}))},getCurrentState:function(){return"hidden"===document.visibilityState?"hidden":document.hasFocus()?"active":"passive"},info:function(){var vm=this;return new Promise((function(resolve,reject){var info=vm.Cookie.get("fx_info",!0),payload={};if(location.search)try{payload=Object.fromEntries(new URLSearchParams(window.location.search))}catch(e){console.log("Unable to parse search params: ",search)}if(payload.referrer=vm.referrer,CallTrack.ga||(CallTrack.ga=info),!info||payload.gclid||payload.wbraid||payload.gbraid||payload.msclkid||payload.fbclid)vm._.ajax({type:"POST",url:"https://t.marketingcloudfx.com/visitor",data:JSON.stringify(payload),headers:{"Content-Type":"application/json"}}).then((function(response){var info=JSON.parse(response);info?.landingPage||(info.landingPage=window.location.pathname),vm.Cookie.set("fx_info",info,{expires:7}),CallTrack.ga=info,resolve(info)}),(function(err){reject(err)}));else if(info.phoneLease?.id){let payload={action:"extend-lease",leaseId:info.phoneLease.id,visitSessionId:CallTrack.visitSessionId};vm._.ajax({type:"POST",url:"https://t.marketingcloudfx.com/ctfx-call-pool-leases",data:JSON.stringify(payload),headers:{"Content-Type":"application/json"}}).then((function(response){let lease=JSON.parse(response);lease?.expire_date&&vm.Cookie.set("fx_info",info,{expires:lease.expire_date}),resolve(info)}))}else resolve(info)}))},extendLease:async function(){let vm=this;var info=this.Cookie.get("fx_info",!0);if(!info?.phoneLease)return;let payload={action:"extend-lease",leaseId:info.phoneLease.id};CallTrack.visitSessionId=CallTrack.Cookie.get("mcfxVSID"),CallTrack.visitSessionId&&(payload.visitSessionId=CallTrack.visitSessionId);let response=await vm._.ajax({type:"POST",url:"https://t.marketingcloudfx.com/ctfx-call-pool-leases",data:JSON.stringify(payload),headers:{"Content-Type":"application/json"}}),lease=JSON.parse(response);return lease?.expire_date&&vm.Cookie.set("fx_info",info,{expires:lease.expire_date}),lease},parseInfo:function(info){CallTrack.ga=info;var source=CallTrack._.getUrlParameter("utm_source"),medium=CallTrack._.getUrlParameter("utm_medium");source?(CallTrack.ga.source=source,CallTrack.Cookie.set("utm_source",source,{expires:1})):CallTrack.Cookie.get("utm_source")&&(CallTrack.ga.source=CallTrack.Cookie.get("utm_source")),medium?(CallTrack.ga.medium=medium,CallTrack.Cookie.set("utm_medium",medium,{expires:1})):CallTrack.Cookie.get("utm_medium")&&(CallTrack.ga.medium=CallTrack.Cookie.get("utm_medium"));var fx_gclid=CallTrack.Cookie.get("gclid"),wbraid=CallTrack.Cookie.get("wbraid"),gbraid=CallTrack.Cookie.get("gbraid");return(fx_gclid&&"undefined"!=fx_gclid||wbraid&&"undefined"!=wbraid||gbraid&&"undefined"!=gbraid)&&(CallTrack.ga.source="google",CallTrack.ga.medium="ppc"),CallTrack.ga},parseRules:async function(){var cache=CallTrack.Cookie.get("MCFXNumberSwap",!0);if(cache)return CallTrack.numbersToReplace=CallTrack.addRegexRules(cache),cache;var numbersMatched=[],numbersToReplace=[];for(let i=0;i0&&-1!==CallTrack.ignoredIPs.indexOf(CallTrack.ga.ip))){var content=document.querySelector("body");if(content){for(var iterator=document.createNodeIterator(content,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,CallTrack.testNode,!0),node=iterator.nextNode();node;)node=iterator.nextNode();document.querySelectorAll(".img-phone-swap").forEach((function(image){image.setAttribute("src",CallTrack.numbersToReplace[0].imgPath)}))}else CallTrack.continuousNumberSwap||setTimeout((function(){CallTrack.replace(rules)}),100)}},testNode:function(node){if(![1,3].includes(node.nodeType))return NodeFilter.FILTER_SKIP;for(var i=0;i(acc.push(number.replace(/[-()+ ]/g,"")),acc)),[...rule.number]);rule.search=new RegExp(combinedNumbers.join("|").replace(/(?=[()+ ])/g,"\\"),"gi"),rule.replace=replace.replace(re,CallTrack.regex),rule.tel="+1"+replace.replace(re,"$1$2$3");var path=""===CallTrack.imgPath||"/"!==CallTrack.imgPath[CallTrack.imgPath.length-1]?CallTrack.imgPath+"/":CallTrack.imgPath;return rule.imgPath=path+replace.replace(re,"$1$2$3")+".png",rule}))},isOrganic:function(){return"organic"===CallTrack.ga.medium},isDirect:function(){return"direct"===CallTrack.ga.source},isBranded:function(){if(null!=CallTrack.ga?.term)for(var j=0;jsetTimeout(resolve,100))),CallTrack.visitorId=CallTrack.Cookie.get("__fx")||CallTrack.Cookie.get("fx_uuid"),CallTrack.visitSessionId=CallTrack.Cookie.get("mcfxVSID"),!CallTrack.visitorId);x++);if(CallTrack.visitorId)return new Promise((function(resolve,reject){let payload={action:"get-lease",source:CallTrack.ga?.source,medium:CallTrack.ga?.medium,visitorId:CallTrack.visitorId,visitSessionId:CallTrack.visitSessionId,siteId:CallTrack.association,ctfxNumber:ctfxNumber,forwardTo:forwardTo},adClickParameters=["gclid","wbraid","gbraid","msclkid","fbclid"];try{let ls=window.localStorage;if(CallTrack.Cookie.get("gclid"))payload.ad_click_id=CallTrack.Cookie.get("gclid"),payload.ad_click_parameter="gclid";else if(CallTrack.Cookie.get("wbraid"))payload.ad_click_id=CallTrack.Cookie.get("wbraid"),payload.ad_click_parameter="wbraid";else if(CallTrack.Cookie.get("gbraid"))payload.ad_click_id=CallTrack.Cookie.get("gbraid"),payload.ad_click_parameter="gbraid";else if(ls&&ls.getItem("__fx")){let fx=ls.getItem("__fx");if(fx=JSON.parse(fx),fx?.attribution?.ad?.id)payload.ad_click_id=fx.attribution.ad.id,payload.ad_click_parameter=fx.attribution.ad.parameter;else for(let i=0;i0}},_:{getUrlParameter:function(name){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var results=new RegExp("[\\?&]"+name+"=([^&#]*)").exec(location.search);return null===results?null:decodeURIComponent(results[1].replace(/\+/g," "))},getReferrer:function(){var ref=document.referrer,cookieRef=CallTrack.Cookie.get("fx_referrer");return null!=cookieRef?ref=cookieRef:CallTrack.Cookie.set("fx_referrer",ref,{expires:7}),ref},ajax:function(args){return args.type=args.type.toUpperCase()||"GET",new Promise((function(resolve,reject){var req=new XMLHttpRequest;req.open(args.type,args.url),args.headers&&Object.keys(args.headers).forEach((function(header){req.setRequestHeader(header,args.headers[header])})),req.onload=function(){200==req.status?resolve(req.response):reject(Error(req.statusText))},req.onerror=function(){reject(Error("Network Error"))},args.data?req.send(args.data):req.send()}))},uuid4:function(options,buf,offset){var i=buf&&offset||0;"string"==typeof options&&(buf="binary"===options?new Array(16):null,options=null);var rnds=(options=options||{}).random||(options.rng||CallTrack._.rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;ii<16;++ii)buf[i+ii]=rnds[ii];return buf||CallTrack._.bytesToUuid(rnds)},bytesToUuid:function(buf,offset){if(!this.byteToHex){this.byteToHex=[];for(var i=0;i<256;++i)this.byteToHex[i]=(i+256).toString(16).substr(1)}i=offset||0;var bth=this.byteToHex;return[bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],"-",bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]]].join("")},rng:function(){var getRandomValues="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues){var rnds8=new Uint8Array(16);return getRandomValues(rnds8),rnds8}for(var r,rnds=new Array(16),i=0;i<16;i++)3&i||(r=4294967296*Math.random()),rnds[i]=r>>>((3&i)<<3)&255;return rnds},getDomainName:function(){if(void 0!==CallTrack._.domain&&""!==CallTrack._.domain)return CallTrack._.domain;for(var i=0,domain=document.domain,p=domain.split("."),s="_gd"+(new Date).getTime();i