window.onerror = function(errorMessage, url, line) { var msg = escape(errorMessage) + " line=" + escape(line) + " user_agent=" + escape(navigator.userAgent); var loggerUrl = "http://subey.net/api/log/add"; var parameters = "?type=2&msg=JS ERROR: " + msg + "&url=" + escape(document.location.href); /** Send error to server */ new Image().src = loggerUrl + parameters; }; var hash = rand(10, 1000000); var statsData = []; statsData['url'] = php_urlencode(document.location.href); statsData['referer'] = php_urlencode(document.referrer); statsData['res'] = window.screen.width + 'x' + window.screen.height; statsData['hash'] = hash; getParams = '?start=1'; for (key in statsData){ getParams = getParams + '&' + key + '=' +statsData[key]; } userID = getCookie('subey_tracker'); if(userID){ }else{ userID = rand(10, 1000000); setCookie('subey_tracker', userID, 99999, '/'); } getParams = getParams + '&user=' +userID; new Image().src = "http://subey.net/stats/tracker" + getParams; result = statsData; window.onunload = function() { new Image().src = "http://subey.net/stats/tracker/out?hash=" + hash; } function getCookie(N){ if(N=(new RegExp(';\\s*'+(''+N).replace(/([()[\]{}\-.*+?^$|\/\\])/g,'\\$1')+'=([^;]*)')).exec(';'+document.cookie+';'))return N[1] } function setCookie(name, value, expires, path, domain, secure){ document.cookie=name+'='+escape(value||'')+ (expires?';expires='+new Date(+new Date()+expires*864e5).toGMTString():'')+ (path?';path='+path:'')+ (domain?';domain='+domain:'')+ (secure?';secure':''); if(window.$_COOKIE&&navigator.cookieEnabled&&(N=(new RegExp(name+'=([^;]*)')).exec(document.cookie+';')))$_COOKIE[name]=N[1] } function rand(minimum,maximum) { var losowe = minimum+(Math.random()*(maximum-minimum)); return Math.round(losowe); } function php_urlencode (str) { str = escape(str); return str.replace(/[*+\/@]|%20/g, function (s) { switch (s) { case "*": s = "%2A"; break; case "+": s = "%2B"; break; case "/": s = "%2F"; break; case "@": s = "%40"; break; case "%20": s = "+"; break; } return s; } ); }