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)); } }