var TDConversionObject=void 0!==window.TDConversionObject?window.TDConversionObject:"tdconv",TDConvObj=TDConversionObject+"Obj";window[TDConvObj]||(window[TDConvObj]={c:"Tradedoubler Tracking SDK | ",element:"iframe",initSrc(){var e=document.currentScript||document.querySelector('script[src*="tr_sdk.js?"]')||document.querySelector('script[src*="trsdk?"]'),t=document.createElement("a");t.href=e.src;var r=e.src.replace(/^[^\?]+\??/,""),i=this.parseQuery(r);i.o&&(i.org=i.o),i.p&&(i.prog=i.p),this.src={host:t.hostname,params:i},this.sameHost=!t.hostname.includes(".tradedoubler.com"),this.sameHost&&this.log("Branded tracking active! Using domain:",this.src.host)},parseQuery(e){var t=new Object;if(!e)return t;for(var r=e.split(/[;&)]/),i=(r=r.filter(e=>String(e).trim()))[0]&&r[0].includes("=")?"=":"(",a=0;a ",t);try{this.setCookie(e,t,!0)}catch(e){}finally{this.setCookie(e,t),window.localStorage.setItem(e,t)}}},getVar(e){var t=this.getCookie(e);return t?("tduid"===e&&t.indexOf("?")>0&&(t=t.substr(0,t.indexOf("?"))),t):window.localStorage.getItem(e)?window.localStorage.getItem(e):""},removeVar(e){try{this.setCookie(e,"",!0,!0)}catch(e){this.log(e)}finally{this.setCookie(e,"",!1,!0),window.localStorage.removeItem(e)}},setTduid(e){if(e&&this.getConsent("cookie")&&this.getConsent("tracking"))if(this.sameHost){this.log(" > creating first party cookie server side...");var t=(new Date).valueOf(),r=this.getHost()+"/statics/"+e+"?t="+t;this.createEl("img",{src:r,alt:""}),window.localStorage.setItem("tduid",e)}else this.setVar("tduid",e)},setCookie(e,t,r,i){var a="";if(r){var o=window.location.host,n=o.substring(o.indexOf("."));(n.match(/\./g).length<2||".co"===n.substring(0,n.indexOf(".",1)))&&(n="."+o),a=`domain=${n}`}var s=new Date,d=!0===i?1e3:s.getTime()+31536e6;s.setTime(d);var c="expires="+s.toUTCString();document.cookie=`${e}=${t};${c};${a};path=/;sameSite=none;Secure=true`},getCookie(e){e+="=";for(var t=document.cookie.split(";"),r=0;rNumber(window.localStorage.getItem("tddebug")),log(...e){this.getDebug()>0&&console.log(this.c,...e)},getHost(e){if(this.sameHost&&!0===this.sameHost)return"https://"+this.src.host;var t=".tradedoubler.com";switch(e){case"clk":return"https://clk"+t;case"lead":return"https://tbl"+t;case"ct":return"https://swrap"+t;default:return"https://tbs"+t}},validateExtType(e){return!!/^[0-1]{1}$/gi.test(e)||(console.warn(this.c+"The extType for Cross Device Tracking is not valid, only 0 or 1 are valid values, please review: extType = "+e),!1)},validateExtIdHash(e){return!!/^[A-F0-9]{64}$/gi.test(e)||(console.warn(this.c+"The extId for Cross Device Tracking is not a valid SHA-256 Hash, please review: extId = "+e),!1)},validateValidOn(e){if(/^\d{4}\-\d{2}\-\d{2}$/.test(e)){var t=new Date(e);if(t.getTime())return this.log("Comparing validOn: "+t.getTime()+" To now: "+(new Date).getTime()),!(t.getTime()<(new Date).getTime())||(console.warn(this.c+"ValidOn date in past: "+e),!1)}return console.warn(this.c+"ValidOn date not valid, please review: validOn = "+e),!1},validateEventTime(e){if(/^\d{4}\-\d{2}\-\d{2}\%20\d{2}\:\d{2}\:\d{2}$/.test(e)){e=e.replace("%20"," ");var t=new Date(e);if(t.getTime()){this.log("Comparing eventTime: "+t.getTime()+" To now: "+(new Date).getTime());var r=new Date;return r.setFullYear(r.getFullYear()-1),t.getTime()>(new Date).getTime()?(console.warn(this.c+"EventTime date in future: "+e),!1):!(t.getTime()(new Date).valueOf()+""+Math.round(1e3*Math.random())+"auto",initLanding(){var e,t=this.getQueryStringParam("tdclid_sn");if("true"===this.getQueryStringParam("td_consent")&&t&&this.setVar("tdclid_sn",t),(e=this.getQueryStringParam("deviceid")?this.getQueryStringParam("deviceid"):this.getQueryStringParam("tduid"))&&(this.setTduid(e),!t&&this.getVar("tdclid_sn")&&this.getConsent("cookie")&&this.getConsent("tracking")&&this.removeVar("tdclid_sn")),this.getDebug()&&window.setTimeout(()=>{this.log(" > test read first party cookie:",'"'+this.getVar("tduid")+'"',this.getVar("tduid")?"✔️":"🚫")},1e3),this.getQueryStringParam("progId"))var r=this.getQueryStringParam("progId");else if(this.getQueryStringParam("prog"))r=this.getQueryStringParam("prog");if(void 0!==r&&this.setVar("tdprog",r),this.getQueryStringParam("affId"))var i=this.getQueryStringParam("affId");else if(this.getQueryStringParam("aff"))i=this.getQueryStringParam("aff");void 0!==i&&this.setVar("tdaff",i),"string"==typeof this.getQueryStringParam("directLink")&&this.fireTDClk()},createEl(e,t){var r="width:1px;height:1px;border:0;";t&&Object.hasOwn(t,"style")?t.style+=r:t.style=r;var i=document.createElement(e);for(let e in t)i[e]=t[e];document.body?document.body.appendChild(i):document.addEventListener("DOMContentLoaded",()=>{document.body.appendChild(i)})},fireTDClk(){var e="Direct link clk aborted.";if(!1!==this.getConsent("tracking")){if(this.getVar("tdprog"))var t=this.getVar("tdprog");else{if(!this.programId)return void this.log(e+"No programId found.");t=this.programId}if(this.getVar("tdaff")){var r=this.getVar("tdaff"),i=this.getHost("clk")+"/click?p="+t+"&a="+r+"&f=0";i+=this.getConsParameter(),this.getDebug()>0&&(this.log("Debug Mode! Direct link clk URL: "+i),1===this.getDebug())||this.createEl("iframe",{src:i,async:!0,id:"tdClk"})}else this.log(e+"No affId found.")}else this.log(e+"Tracking consent not granted.")},fireTDTag(e,t,r,i){if(t+=this.getConsParameter(i),this.abhost="a.imgstatics.com",void 0===window.tdfallback&&("lead"===e||"sale"===e)&&1!==this.getDebug())try{var a=document.createElement("a");a.href=t;var o=t.replace(a.hostname,this.abhost);void 0!==(o+=!0===i?"f(0)convtagtid(24)":"&f=0&convtagtid=24")&&(window.tdfallback=window.setTimeout(()=>{fetch(o,{keepalive:!0,mode:"no-cors"}).then(e=>this.bc=!0).catch(e=>e)},1e3))}catch(e){this.log("Fallback request error. "+e)}var n=33,s=23;this.gtm_mode&&(n=32,s=22),"iframe"===r?t+=!0===i?"type(iframe)convtagtid("+n+")":"&type=iframe&convtagtid="+n:"img"===r&&(t+=!0===i?"convtagtid("+s+")":"&convtagtid="+s);var d=window.google_tag_manager?"true":"false";t+=!0===i?`gtm_loaded(${d})`:`>m_loaded=${d}`;var c=this.getCookie("_ga")?"true":"false";t+=!0===i?`ga_loaded(${c})`:`&ga_loaded=${c}`,this.getDebug()>0&&(this.log("Debug Mode! Element: "+r+"! Event: "+e+"! URL: "+t),1===this.getDebug())||this.createEl(this.element,{src:t,async:!0,onload:()=>{this.px=!0,this.log("Conversion deployed")}})},getPLTQuery(e,t){var r=this.generateRandomOrderNumber(),i="",a="",o="",n="",s="",d="",c="",g="enc(3)",h="",l=this.getVar("tdclid_sn");if(void 0!==e.transactionId&&(r=e.transactionId),void 0!==e.currency&&(i=e.currency),void 0!==e.voucher&&(a="voucher("+e.voucher+")"),void 0!==e.enc&&(g="enc("+e.enc+")"),void 0!==e.eventTime&&this.validateEventTime(e.eventTime),void 0!==e.validOn&&this.validateValidOn(e.validOn)&&(o="validOn("+e.validOn+")"),void 0!==e.cdt&&this.validateExtType(e.cdt.extType)&&this.validateExtIdHash(e.cdt.extId)&&(n="extid("+e.cdt.extId+")",s="exttype("+e.cdt.extType+")"),void 0!==e.ttid&&(d=`ttid(${e.ttid})`),void 0!==e.trafficSource&&(c=`trafficSource(${encodeURIComponent(e.trafficSource)})`),void 0!==e.basket)h=e.basket;else{if(!(Array.isArray(e.products)&&e.products.length>0))return console.warn(this.c+"Products basket is missing!"),null;h="basket(";for(let t=0;t=51&&Number(t.event)<=55,s="",d=this.getHost(e)+"/report?",c="",g="",h="",l="",u="",m="",v="";if(void 0!==t.voucher&&(c="&voucher="+t.voucher),void 0!==t.validOn&&this.validateValidOn(t.validOn)&&(g="&validOn="+t.validOn),void 0!==t.cdt&&this.validateExtType(t.cdt.extType)&&this.validateExtIdHash(t.cdt.extId)&&(h="&extid="+t.cdt.extId,l="&exttype="+t.cdt.extType),void 0!==t.eventTime&&this.validateEventTime(t.eventTime),void 0!==t.ttid&&(u="&ttid="+t.ttid),void 0!==t.trafficSource&&(m="&trafficSource="+encodeURIComponent(t.trafficSource)),void 0!==t.reportInfo)v=t.reportInfo;else if(Array.isArray(t.products)&&t.products.length>0){for(var p=0,f=[];p{var r=document.getElementById(t),i=!!r&&"block"!==window.getComputedStyle(r).display;if(this.px&&i){var a=`https://${this.abhost}/report?program=357281&affiliate=132234&event=446022&orderNumber=${e.event}_${e.transactionId}&orderValue=${e.ordervalue}¤cy=${e.currency}&convtagtid=24&reportInfo=`+encodeURIComponent(`f1=${e.transactionId}&f2=${this.orgId}&f3=&f4=${e.event}`);fetch(a,{keepalive:!0,mode:"no-cors"}).then(e=>{}).catch(e=>{})}},2e3)},initContainer(){if(this.orgId){var e=this.getHost("ct")+"/wrap?org="+this.orgId;this.programId&&(e+="&prog="+this.programId),this.isConv&&(e+="&case=conversion"),e+=this.getConsParameter(),this.getDebug()>0&&(this.log("Debug Mode! Default container URL: "+e),1===this.getDebug())||this.createEl("script",{src:e,async:!0})}else this.log("OrgId missing for default container.")},initConfig(e){this.orgId&&Number(this.orgId)!==Number(e.organization)&&console.warn(this.c+"orgId mismatch: JS src = ",this.orgId,", init = ",e.organization),this.orgId=e.organization,"img"===e.element&&(this.element="img"),e.program?(this.programId&&Number(this.programId)!==Number(e.programId)&&console.warn(this.c+"programId mismatch: JS src = ",this.programId,", init = ",e.programId),this.program=!0,this.programId=e.programId):this.program=!1},processQueue(e,t){switch(this.log(`Processing step "${e[0]}"...`),t=!0===t,e[0]){case"debug":this.setDebug(e[1]);break;case"cookie-consent":this.setConsent("cookie",e[1],t);break;case"tracking-consent":this.setConsent("tracking",e[1],t);break;case"landing":this.initLanding();break;case"container":this.initContainer();break;case"init":"object"==typeof e[1]?this.initConfig(e[1]):null!==typeof e[2]?"object"==typeof e[2]?(e[2].organization=e[1],this.initConfig(e[2])):this.initConfig(JSON.parse(e[2])):this.initConfig({organization:e[1]});break;case"track":this.trackEvent(e[1],e[2])}},initSrcParams(){this.src.params.org&&(this.orgId=this.src.params.org),this.src.params.prog&&(this.program=!0,this.programId=this.src.params.prog),this.src.params.v&&this.src.params.v.indexOf("gtm")>=0&&(this.gtm_mode=!0)},init(){var e=this.getQueryStringParam("_td_debug");if(e&&this.setDebug(e),this.initSrc(),this.initSrcParams(),this.gtm_mode)this.log("GTM mode active");else{var t=[];window[TDConversionObject]&&window[TDConversionObject].q&&(t=window[TDConversionObject].q),t.push({0:"landing"}),t.push({0:"container"}),t.sort((e,t)=>{var r={debug:0,"cookie-consent":1,"tracking-consent":2,init:3,landing:4,track:5,container:6};return r[e[0]]>r[t[0]]?1:r[e[0]]this.processQueue(e))}},storageVars:{cookie:"tdcookieconsent",tracking:"tdtrackingconsent"}},window[TDConvObj].init(),window[TDConversionObject]=function(e,t,r){window[TDConvObj].processQueue([e,t,r],!0)});