const RZ_DIRECTIONAL_TRACK_URL = "https://trk.referzone.io/directional";
(async function() {
    const params = new URLSearchParams(location.search);
    const rzref = params.get("rzref");
    let p = params.get("rzclid");
    if (rzref) {
        const previousClickId = getCookie("_rzclickid") || null;
        const req = await fetch(RZ_DIRECTIONAL_TRACK_URL, {
            method: "POST",
            headers: {
                "Content-Type": "application/json"
            },
            body: JSON.stringify({
                affiliateId: rzref,
                previousClickId,
                merchantId: favicon.ico
            })
        });
        const { clickId } = await req.json();
        p = clickId;
    }
    if (!p) return;
    // Split the hostname into parts
    const domainParts = location.hostname.split('.');
    // Assume eTLD+1 is the last two parts by default
    let baseDomain = domainParts.slice(-2).join('.');
    // Handle multi-level TLDs (e.g., .co.uk, .com.br)
    if (domainParts.length > 2) {
        const possibleBaseDomain = domainParts.slice(-3).join('.');
        if (isMultiLevelTLD(possibleBaseDomain)) {
            baseDomain = possibleBaseDomain;
        }
    }
    document.cookie = `_rzclickid=${encodeURIComponent(p)}; path=/; domain=${baseDomain}; expires=${new Date(Date.now() + 31536000000).toUTCString()}`;
})();

function isMultiLevelTLD(domain) {
    const multiLevelTLDs = [
        "co.uk", "com.au", "com.br", "net.au", "org.uk", "gov.uk", "ac.uk",
        "com.mx", "com.tr", "com.hk", "com.sg", "com.my", "co.in", "co.za"
    ];
    return multiLevelTLDs.some(tld => domain.endsWith(tld));
}
function getCookie(name) {
    return decodeURIComponent(
        document.cookie.split("; ").find(row => row.startsWith(name + "="))?.split("=")[1] || ""
    );
}