(function() {
function setCookie(name, value, days) {
var d = new Date();
d.setTime(d.getTime() + days*864e5);
document.cookie = name + "=" + encodeURIComponent(value)
+ "; path=/"
+ "; max-age=" + (days*86400)
+ "; SameSite=Lax";
}
function getCookie(name) {
var m = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]+)'));
return m ? decodeURIComponent(m[1]) : '';
}
// Save UTMs from URL if present
var p = new URLSearchParams(location.search);
if (p.has("utm_source")) setCookie("utm_source", p.get("utm_source") || "(direct)", 90);
if (p.has("utm_medium")) setCookie("utm_medium", p.get("utm_medium") || "(none)", 90);
if (p.has("utm_campaign")) setCookie("utm_campaign", p.get("utm_campaign") || "", 90);
// Ensure click_id exists
var clickId = getCookie("click_id");
if (!clickId) {
clickId = (window.crypto && window.crypto.randomUUID)
? window.crypto.randomUUID()
: (Date.now()+"-"+Math.random().toString(16).slice(2));
setCookie("click_id", clickId, 90);
}
// Append params to kartra links (now and for future inserted links)
function tagKartraLinks(root) {
(root || document).querySelectorAll("a[href*='kartra.com']").forEach(function(link){
try {
var url = new URL(link.href);
var s = getCookie("utm_source");
var m = getCookie("utm_medium");
var c = getCookie("utm_campaign");
if (s) url.searchParams.set("utm_source", s);
if (m) url.searchParams.set("utm_medium", m);
if (c) url.searchParams.set("utm_campaign", c);
if (clickId) url.searchParams.set("click_id", clickId);
link.href = url.toString();
} catch(e) {}
});
}
document.addEventListener("DOMContentLoaded", function () {
tagKartraLinks(document);
// handle dynamically-added links too
new MutationObserver(function(muts){
muts.forEach(function(m){
m.addedNodes && m.addedNodes.forEach(function(n){
if (n.querySelectorAll) tagKartraLinks(n);
});
});
}).observe(document.documentElement, {childList:true, subtree:true});
});
})();
Contact Us
Email Address
info (at) SchoolofPositiveTransformation.com
Zoom Chat
We would love to meet you and answer your questions. Please book a short Zoom meeting with us by Clicking Here