try {
var nnsLoadStart = new Date();
nnsLoadStart.getTime();
var nnsLoadTime = 0;
var nnsStayTime = 0;
var nnsScriptPath = "http://service.noname-media.com/13011/noname_statistic";
var nnStatistic = {
addEvent: function(eventName, eventFunction, eventObject) {
//Ueberwacht eventName an eventObject und fuehrt eventFunction aus
//Event Name ohne on Uebergeben (click, load, mouseover)
if (eventObject.addEventListener) {
eventObject.addEventListener(eventName, eventFunction, false);
return true;
}
else if(eventObject.attachEvent) {
eventObject.attachEvent("on" + eventName, eventFunction);
return true;
}
else {
return false;
}
},
makeXMLRequestObject: function () {
// Erzeuge XMLRequest Objekt
// Bei Erfolg wird das Objekt zurckgegeben
// ansonsten false
var requestObject = null;
try {
requestObject = new XMLHttpRequest();
}
catch (Error) {
try {
requestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (Error) {
try {
requestObject = new ActiveXObject("MSXML2.XMLHTTP");
}
catch (Error) {
requestObject = false;
}
}
}
return requestObject;
},
sendRequest: function (responseFunction, query, async) {
// *Funktion sendet eine Anfrage an den Server.
// Funktion erwartet einen Query
// Bei Erfolg wird func handleResponse aufgerufen
if (devMode) {
this.developerMsg('Send Request (' + query + ')
');
}
if (!async) {
async = true;
}
//Erzeuge neues requestObject
var requestObject = this.makeXMLRequestObject();
if (requestObject) {
requestObject.open("get", query, true);
if (responseFunction) {
requestObject.onreadystatechange = function () {
nnStatistic.requestError(requestObject);
responseFunction(requestObject);
}
}
requestObject.send(null);
var return_var = true;
}
else {
var return_var = 1301;
}
},
requestError: function (requestObject) {
if (requestObject.readyState == 4 && requestObject.responseText.search(/(Parse error|Fatal error|Warning|Notice)<\/b>/i) > -1) {
// jambo.developer.errMsg(requestObject.responseText);
}
},
versionCompare: function(version1, version2) {
splitedVersion1 = version1.split(".");
splitedVersion2 = version2.split(".");
var return_var = version1;
for (var i = 0; i < Math.max(version1.length, version2.length); i++) {
if (!version2[i] || splitedVersion1[i] > splitedVersion2[i]) {
return_var = version1;
break;
}
else if (!version1[i] || splitedVersion1[i] < splitedVersion2[i]) {
return_var = version2;
break;
}
}
return return_var;
},
browserName: function() {
if (window.opera) {
return "Opera";
}
else if (window.clientInformation) {
if (window.clientInformation.vendor) {
return "Konqueror";
}
else {
return "Internet Explorer";
}
}
else {
if (navigator.userAgent.indexOf("Safari") > -1) {
return "Safari";
}
else if (navigator.userAgent.indexOf("Firefox") > -1) {
return "Firefox";
}
else {
return "undefined";
}
}
},
browserVersion: function() {
if (window.opera) {
return window.opera.version();
}
else if(navigator.userAgent) {
var version = navigator.userAgent;
var preg = version.match(/(KHTML|MSIE|Firefox).?(\d(\.\d+)*)/);
if (preg && preg.length >= 2) {
return preg[2];
}
else {
var preg = version.match(/(rv).?(\d(\.\d+)*)/);
if (preg && preg.length >= 2) {
return preg[2];
}
else {
return version;
}
}
}
else {
return "undefined";
}
},
browserLanguage: function() {
//Ermittle Browser Sprache das Users
if (navigator.language) {
var language = navigator.language;
}
else if (navigator.userLanguage) {
var language = navigator.userLanguage;
}
if (language) {
var language = language.match(/[a-z]{2}/);
return language[0];
}
else {
return "undefined";
}
},
colorDepth: function() {
if (screen.colorDepth) {
var screenColor = screen.colorDepth;
}
else if (screen.pixelDepth) {
var screenColor = screen.pixelDepth;
}
return screenColor;
},
checkXMLRequest: function() {
var return_var = 0;
if (window.XMLHttpRequest) {
return_var = 1;
}
else if (window.ActiveXObject) {
return_var = 2;
}
return return_var;
},
checkJava: function() {
if (typeof navigator.javaEnabled() == "boolean" && navigator.javaEnabled()) {
return 1;
}
else {
return 0;
}
},
checkCookies: function() {
if (navigator.cookieEnabled) {
return 1;
}
else {
return 0;
}
},
osName: function() {
if (navigator.platform) {
if (navigator.platform == "Win32") {
if (navigator.userAgent.indexOf("Windows NT 6.0") > -1) {
return "Windows Vista";
}
else if (navigator.userAgent.indexOf("Windows NT 5.2") > -1) {
return "Windows 2003";
}
else if (navigator.userAgent.indexOf("Windows NT 5.1") > -1) {
return "Windows XP";
}
else if (navigator.userAgent.indexOf("Windows NT 5.0") > -1) {
return "Windows 2000";
}
else if (navigator.userAgent.indexOf("Windows NT 4") > -1) {
return "Windows NT";
}
else if (navigator.userAgent.indexOf("Windows ME") > -1) {
return "Windows ME";
}
else if (navigator.userAgent.indexOf("Windows 98") > -1) {
return "Windows 98";
}
else if (navigator.userAgent.indexOf("Windows 95") > -1) {
return "Windows 95";
}
else if (navigator.userAgent.indexOf("Windows CE") > -1) {
return "Windows CE";
}
else {
return "undefined";
}
}
else {
var osName = navigator.platform.match("Linux|Mac Os|Sun");
return osName[0];
}
}
else {
return "undefined";
}
},
installedFlashVersion: function() {
var flashVersion = null;
var version = null;
if (!window.ActiveXObject) {
for (var i = 0; i < navigator.plugins.length; i++) {
if (navigator.plugins[i].name.indexOf("Flash") >= -1) {
version = navigator.plugins[i].description.match(/Shockwave Flash (\d+)(\.\d+)*/);
if (!version) {
version = navigator.plugins[i].name.match(/(\d+)(\.\d+)*/);
}
if (version && version[1]) {
flashVersion = flashVersion ? nnStatistic.versionCompare(flashVersion, version[1]) : version[1];
}
}
}
}
else {
for (var i = 10; i >= 5; i--) {
try {
if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i)) {
flashVersion = i;
break;
}
}
catch (e) {
// jambo.developer.errMsg(e);
}
}
}
return flashVersion;
},
createQuery: function() {
try {
var query = "";
query += "browser=" + nnStatistic.browserName();
query += "&version=" + nnStatistic.browserVersion();
query += "&language=" + nnStatistic.browserLanguage();
query += "&osname=" + nnStatistic.osName();
query += "&screen=" + screen.width + "x" + screen.height;
query += "&color_depth=" + this.colorDepth();
query += "&flash=" + nnStatistic.installedFlashVersion();
query += "&java=" + this.checkJava();
query += "&cookies=" + this.checkCookies();
query += "&javascript=1";
query += "&xml_request=" + this.checkXMLRequest();
query += "&referer=" + encodeURIComponent(top.document.referrer);
return query;
}
catch (e) {
//Fehler aufgetreten
nnsSendError("[CREATE QUERY]\n" . query + "\n\n" + e);
}
},
createPageQuery: function() {
var query = "";
var curTime = new Date();
nnsStayTime = curTime.getTime() - nnsLoadStart;
query = query + "ptime=" + Math.round(nnsLoadStart / 1000);
query = query + "&load_time=" + Math.round(nnsLoadTime / 100);
// query = query + "&stay_time=" + Math.round(nnsStayTime / 1000);
query = query + "&page=" + encodeURIComponent(location.href);
return query;
},
alternateRequest: function(query) {
if (document.getElementsByTagName('body')[0]) {
var iframe = document.createElement("iframe");
iframe.setAttribute("name", "noname_statistic_frame");
iframe.setAttribute("width", "1px");
iframe.setAttribute("height", "1px");
iframe.setAttribute("frameborder", "0");
iframe.setAttribute("style", "visibility: hidden; position: absolute");
iframe.setAttribute("src", query);
document.getElementsByTagName('body')[0].appendChild(iframe);
}
else {
window.setTimeout("nnStatistic.alternateRequest('" + query + "')", 200);
}
},
sendStatisticData: function() {
// jambo.developerMsg(top.document.referrer + " - " + top.location.host);
if (top.document.referrer.indexOf(top.location.hostname) != 7) {
var query = this.createQuery();
// jambo.developerMsg(query);
if (nnsScriptPath.indexOf(document.hostname) -1) {
this.alternateRequest(nnsScriptPath + "/request/noname_statistic.php?" + query);
}
else {
nnStatistic.sendRequest(null, nnsScriptPath + "/request/noname_statistic.php?" + query);
}
}
},
sendPageData: function() {
nnStatistic.setLoadTime();
var query = nnStatistic.createPageQuery();
// alert("Send Page Request: " + query);
if (true || nnsScriptPath.indexOf(document.hostname) -1) {
nnStatistic.alternateRequest(nnsScriptPath + "/request/pages.php?" + query);
}
else {
nnStatistic.sendRequest(null, nnsScriptPath + "/request/pages.php?" + query);
}
// alert("Wait");
},
setLoadTime: function() {
var curTime = new Date();
nnsLoadTime = curTime.getTime() - nnsLoadStart;
// jambo.developerMsg("Set Load Time: " + nnsLoadTime);
}
}
nnStatistic.sendStatisticData();
try {
nnStatistic.addEvent("load", nnStatistic.sendPageData, window);
}
catch (e) {
//Fehler ausgetreten
nnsSendError("[ADD EVENT] load\n\n" + e);
}
// if (window.onbeforeunload) {
//
// jambo.addEvent("beforeunload", nnStatistic.sendPageData, window);
// }
// else {
//
// jambo.addEvent("unload", nnStatistic.sendPageData, window);
// }
}
catch (e) {
nnsSendError("[MAIN ERROR]\n\n" + e);
}
function nnsSendError(e) {
//Fehler ausgetreten
if (nnsScriptPath.indexOf(document.hostname) -1) {
nnStatistic.alternateRequest(nnsScriptPath + "/request/noname_statistic.php?error=" + encodeURIComponent(e));
}
else {
nnStatistic.sendRequest(null, nnsScriptPath + "/request/noname_statistic.php?error=" + encodeURIComponent(e));
}
}