(function(){
'use strict';
var STORAGE_KEY='soak_utm_data';
var EXPIRY_DAYS=30;
var UTM_PARAMS=[
'utm_source',
'utm_medium',
'utm_campaign',
'utm_term',
'utm_content',
'gclid',
'fbclid',
'msclkid',
'li_fat_id',
'ttclid',
'twclid'
];
function getUrlParams(){
var params={};
var urlParams=new URLSearchParams(window.location.search);
UTM_PARAMS.forEach(function(param){
var value=urlParams.get(param);
if(value){
params[param]=value;
}});
return params;
}
function hasUtmParams(params){
return Object.keys(params).length > 0;
}
function getStoredData(){
try {
var stored=localStorage.getItem(STORAGE_KEY);
if(!stored) return null;
var data=JSON.parse(stored);
if(data.expires&&new Date(data.expires) < new Date()){
localStorage.removeItem(STORAGE_KEY);
return null;
}
return data;
} catch (e){
console.warn('SOAK UTM Tracker: Error reading localStorage', e);
return null;
}}
function storeData(params){
try {
var expires=new Date();
expires.setDate(expires.getDate() + EXPIRY_DAYS);
var data={
params: params,
landing_url: window.location.href,
referrer_url: document.referrer||'',
first_visit: new Date().toISOString(),
expires: expires.toISOString()
};
localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
return data;
} catch (e){
console.warn('SOAK UTM Tracker: Error writing to localStorage', e);
return null;
}}
function init(){
var urlParams=getUrlParams();
var stored=getStoredData();
if(hasUtmParams(urlParams)&&!stored){
stored=storeData(urlParams);
}
else if(hasUtmParams(urlParams)&&stored){
var newSource=urlParams.utm_source||urlParams.gclid||urlParams.fbclid||'';
var oldSource=stored.params.utm_source||stored.params.gclid||stored.params.fbclid||'';
if(newSource&&newSource!==oldSource){
stored=storeData(urlParams);
}}
}
function getParams(){
var stored=getStoredData();
if(!stored) return {};
return stored.params||{};}
function getAllData(){
var stored=getStoredData();
if(!stored) return null;
return stored;
}
function getJson(){
var stored=getStoredData();
if(!stored) return '';
var params=stored.params||{};
var data={
utm_source: params.utm_source||'',
utm_medium: params.utm_medium||'',
utm_campaign: params.utm_campaign||'',
utm_term: params.utm_term||'',
utm_content: params.utm_content||'',
gclid: params.gclid||'',
fbclid: params.fbclid||'',
msclkid: params.msclkid||'',
li_fat_id: params.li_fat_id||'',
ttclid: params.ttclid||'',
twclid: params.twclid||'',
landing_url: stored.landing_url||'',
referrer_url: stored.referrer_url||'',
first_visit: stored.first_visit||'',
expiry: stored.expires||''
};
Object.keys(data).forEach(function(key){
if(!data[key]) delete data[key];
});
return Object.keys(data).length > 0 ? JSON.stringify(data):'';
}
function hasData(){
return getStoredData()!==null;
}
function clear(){
try {
localStorage.removeItem(STORAGE_KEY);
} catch (e){
console.warn('SOAK UTM Tracker: Error clearing localStorage', e);
}}
init();
window.soakUtmTracker={
getParams: getParams,
getAllData: getAllData,
getJson: getJson,
hasData: hasData,
clear: clear
};})();
document.addEventListener("DOMContentLoaded", function(){
const iconLists=Array.prototype.slice.call(document.getElementsByClassName("et-social-icons")
);
iconLists.forEach(function(list){
if(!list.classList.contains("social-divi-icons")){
list.remove();
}});
});