/* Tracking Cluster Client v1 */ var TrackingClusterClient = new function() { this.v = '1.1.0'; this.api = 'https://api.trackingcluster.com'; //this.api = 'http://gergely.kovacs.dev.webbandflow.co.uk:8080'; this.api = 'https://api-trackingcluster-com.appspot.com'; this.isLocal = false; this.gd = function() { var domain = location.href; if (domain.indexOf('//') > -1) { domain = domain.split('//')[1]; } domain = domain.split('/')[0]; if (domain.indexOf(':') > -1) { domain = domain.split(':')[0]; } return domain; }; // get base domain this.bd = function() { var domain = this.gd(); var domainParts = domain.split('.'); if (domainParts.length > 2) { var part0 = domainParts[domainParts.length - 1]; var part1 = domainParts[domainParts.length - 2]; var part2 = domainParts[domainParts.length - 3]; if (part0.length < 4 && part1.length < 4) { return [part2, part1, part0].join('.'); } return [part1, part0].join('.'); } return domainParts.join('.'); }; // set cookie this.sc = function(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+d.toGMTString(); console.log(['sc', cvalue, this.bd()]); document.cookie = cname + "=" + cvalue + "; " + expires + "; domain=."+this.bd()+"; path=/"; console.log(['sc', cvalue, this.gd()]); document.cookie = cname + "=" + cvalue + "; " + expires + "; domain=."+this.gd()+"; path=/"; }; this.pl = function(i) { if (i < 10) { return '0'+i; } return ''+i; }; this.dt = function() { var dt = new Date(); var r = dt.getFullYear(); r += TrackingClusterClient.pl(dt.getMonth() + 1); r += TrackingClusterClient.pl(dt.getDate()); r += TrackingClusterClient.pl(dt.getHours()); r += TrackingClusterClient.pl(dt.getMinutes()); r += TrackingClusterClient.pl(dt.getSeconds()); return r; }; this.setTemporaryEmail = function(email) { sessionStorage.setItem('td-em', email); }; this.getTemporaryEmail = function() { return sessionStorage.getItem('td-em'); }; this.hasTemporaryEmail = function() { return ( sessionStorage.getItem('td-em') != null && sessionStorage.getItem('td-em') != '' ); }; this.determineTemporaryEmail = function() { if ( this.hasTemporaryEmail() || !location.search || location.search.length < 2 ) { return; } var queryParams = location.search.substr(1).split('&'); for (var qPi = 0; qPi < queryParams.length; qPi++) { if (queryParams[qPi].substr(0, 6) == 'email=') { this.setTemporaryEmail(queryParams[qPi].substr(6)); break; } } }; this.sendEvent = function(name, params, project, target) { var u = this.api+'/event.php'; var d = new Date(); u += '?ts='+d.getTime(); if (document.cookie.indexOf('findgore-id') > -1) { c = document.cookie.split(';'); for (i in c) { if (c[i].trim().indexOf('findgore-id') === 0) { u += '&findgoreid='+(c[i].split('=')[1] || ''); break; } } } var ev = { event: name }; if (typeof(params) != 'undefined') { ev.params = params; } if ( typeof(project) != 'undefined' && project.length > 0 ) { ev.project = project; } if ( typeof(target) != 'undefined' && target.length > 0 ) { ev.target = target; } u += '&'+this.serialize(ev); console.log(u); (new Image(1,1)).src = u; }; this.serialize = function(obj, prefix) { var str = [], p; for(p in obj) { if (obj.hasOwnProperty(p)) { var k = prefix ? prefix + "[" + p + "]" : p, v = obj[p]; str.push((v !== null && typeof v === "object") ? this.serialize(v, k) : encodeURIComponent(k) + "=" + encodeURIComponent(v)); } } return str.join("&"); }; this.determineTemporaryEmail(); var d = new Date(); var u = this.api+'/uuid.php'; u += '?ts='+d.getTime(); if (document.cookie.indexOf('findgore-id') > -1) { var c = document.cookie.split(';'); for (var i in c) { if (c[i].trim().indexOf('findgore-id') === 0) { u += '&findgoreid='+(c[i].split('=')[1] || ''); break; } } } //@TODO: nem kell küldeni, ha már van tc-id süti var xmlHttp = new XMLHttpRequest(); xmlHttp.open('GET', u, true); xmlHttp.timeout = 3000; xmlHttp.withCredentials = true; xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); xmlHttp.send(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { if (xmlHttp.responseText.trim().length > 0) { TrackingClusterClient.sc('tc-id', xmlHttp.responseText.trim().replace(/"/g, ''), 360); } } }; };