JSFiddle - React, Tailwind, and code Playground
by Vladimir Kutepov
JavaScript
// need to compress by https://closure-compiler.appspot.com
(function () {
var global = this;
var location = global.location;
var document = global.document;
var l;
var i;
// get url query parameters
var path = location.search;
if (path.indexOf('?') === 0) {
path = path.substr(1);
} else {
path = '';
}
// parse url query parameters
var urlQueryParams = {};
if (path.length) {
var pairs = path.split('&');
var pair;
for (i = 0, l = pairs.length; i < l; i++) {
pair = pairs[i].split('=');
urlQueryParams[pair[0]] = decodeURIComponent(pair[1]);
}
}
// find utm markers in url query parameters
var _landing = {};
var hasParametersToSave = false;
var parameterName;
var parametersNames = [
'utm_source',
'utm_medium',
'utm_term',
'utm_content',
'utm_campaign'
];
for (i = 0, l = parametersNames.length; i < l; i++) {
parameterName = parametersNames[i];
if (urlQueryParams[parameterName]) {
_landing[parameterName] = urlQueryParams[parameterName];
hasParametersToSave = true;
}
}
// save utm markers (if exists) to cookie
if (hasParametersToSave) {
var expires = new Date();
expires.setTime(expires.getTime() + (365 * 24 * 60 * 60 * 1000));
document.cookie = '_landing=' + encodeURIComponent(JSON.stringify(_landing)) +
'; expires=' + expires.toUTCString() +
'; path=/; domain=' + '.' + location.host.split('.').slice(-2).join('.');
}
// lookup partners url query parameters
var data = [];
if (urlQueryParams['partner_id'] !== undefined) {
data.push('partner_id=' + urlQueryParams['partner_id']);
}
if (urlQueryParams['cpamit_uid'] !== undefined) {
data.push('cpamit_uid=' + urlQueryParams['cpamit_uid']);
}
if (urlQueryParams['utm_kod'] !==...