// JavaScript Document
function traceValues(){
	var agent
	var version
	var versionNum
	var appCodeName
	var appName
	var platform
	var userAgent
	var onLine
	var cpuClass
	var systemLanguage
	var browserLanguage
	var userLanguage
	var cookieEnabled
	var java
	var taint
	var location
	var opener
	var status
	var windowX
	var windowY
	var scrollX
	var scrollY
	var screenOX
	var screenOY
	var screenX
	var screenY
	var barHeight
	var barWidth
	var colourDepth
	var returnArray
	//Navigator VARS:
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
		agent = "Internet Explorer";
 		version=RegExp.$1; 
		versionNum=new Number(RegExp.$1);
	}else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ 
		agent = "Firefox";
		version=RegExp.$1;
		versionNum=new Number(RegExp.$1);
	}else if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
		agent = "Opera";
 		version=RegExp.$1;
		versionNum=new Number(RegExp.$1);
	}else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
		agent = "Chrome";
 		version=RegExp.$1;
		versionNum=new Number(RegExp.$1);
	}else if (/Version[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
		agent = "Safari";
 		version=RegExp.$1;
		versionNum=new Number(RegExp.$1);
	}
	returnArray = new Array();
	returnArray.push("Viewing through: "+agent+", version "+version+"<br>");
	returnArray.push("<strong>Navigator properties:</strong>");
	returnArray.push("Application properties:");
	appCodeName = navigator.appCodeName;
	returnArray.push("Code name: "+appCodeName);
	appName  = navigator.appName;
	returnArray.push("Application name: "+appName);
	appVersion  = navigator.appVersion;
	returnArray.push("Application version: "+appVersion);
	returnArray.push("<br>User system properties:");
	platform  = navigator.platform;
	returnArray.push("Operating system: "+platform);
	userAgent  = navigator.userAgent;
	returnArray.push("User agent: "+userAgent);
	if ((agent=="Internet Explorer")&&(versionNum>3)){
		onLine  = navigator.onLine;
		returnArray.push("Connected: "+onLine);
		cpuClass  = navigator.cpuClass;
		returnArray.push("CPU: "+cpuClass);
		systemLanguage  = navigator.systemLanguage;
		returnArray.push("System language: "+systemLanguage);
	}
	if(agent=="Firefox"){
		browserLanguage = navigator.appVersion.substring(navigator.appVersion.length-6,navigator.appVersion.length-1)
		returnArray.push("Browser Language: "+browserLanguage);
	}
	if (((agent=="Internet Explorer")&&(versionNum>3))||((agent=="Opera")&&(versionNum>8))){
		browserLanguage  = navigator.browserLanguage;
		returnArray.push("Browser Language: "+browserLanguage);
		userLanguage  = navigator.userLanguage;
		returnArray.push("User language: "+userLanguage);
	}
	if((agent=="Chrome")||(agent=="Safari")){
		browserLanguage = navigator.language ? navigator.language : navigator.userLanguage;
		returnArray.push("Browser language: "+browserLanguage);
	}
	returnArray.push("<br>User security properties:");
	cookieEnabled  = navigator.cookieEnabled;
	returnArray.push("Cookies: "+cookieEnabled);
	if (((agent=="Internet Explorer")&&(versionNum>3))||((agent=="Firefox")&&(versionNum>0))||((agent=="Opera")&&(versionNum>8))){
		java  = navigator.javaEnabled();
		returnArray.push("Java: "+java);
		taint  = navigator.taintEnabled();
		returnArray.push("Taint: "+taint);
	}
//Window VARS:
	returnArray.push("<br><strong>Window properties:</strong>");
	location  = window.location;
	returnArray.push("Address to display: "+location);
	if (null!= window.opener){
		opener  = window.opener;
	}else{
		opener  = "Page opened directly";
	}
	returnArray.push(opener);
	if (((agent=="Internet Explorer")&&(versionNum>3))||((agent=="Opera")&&(versionNum>8))){
		status  = window.status;
		if (""!=status){
			returnArray.push("HTTP status: "+status);
		}else{
			returnArray.push("HTTP status: None");
		}
	}
	windowX=getScreenDetails (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
	returnArray.push("Width of window: "+windowX);
	windowY=getScreenDetails (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
	returnArray.push("Height of window: "+windowY);
	scrollX=getScreenDetails (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
	returnArray.push("Horizontal scroll: "+scrollX);
	scrollY=getScreenDetails (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
	returnArray.push("Vertical scroll: "+scrollY);
//Screen VARS:
	returnArray.push("<br><strong>Screen properties:</strong>");
	screenOX  = screen.width;
	returnArray.push("Outer width of screen: "+screenOX);
	screenOY  = screen.height;
	returnArray.push("Outer height of screen: "+screenOY);
	screenX  = screen.availWidth;
	returnArray.push("Available width of screen: "+screenX);
	screenY  = screen.availHeight;
	returnArray.push("Available height of screen: "+screenY);
	if (screenOX>screenX){
		barWidth = screenOX-screenX;
		returnArray.push("OS menu bar width: "+barWidth);
	}else if(screenOY>screenY){
		barHeight = screenOY-screenY;
		returnArray.push("OS menu bar height: "+barHeight);
	}
	colourDepth  = screen.colorDepth;
	returnArray.push("Colour depth of screen: "+colourDepth+"bit");
//Return string
	/*if (document.getElementById){
		var output=document.getElementById("insertHere");
	}else if (document.all){
		var output=document.all["insertHere"];
	}else{
		var output=document.insertHere;
	}
	output.innerHTML = returnArray.join("<br>");*/
	function getScreenDetails(n_win, n_docel, n_body) {
		var n_result = n_win ? n_win : 0;
		if (n_docel && (!n_result || (n_result > n_docel)))
			n_result = n_docel;
		return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
	}
	function queryBrowserData(whatData,valueBeforeCheck){
		if(null!=valueBeforeCheck){
			return valueBeforeCheck;
		}else{
			return "not available";
		}
	}
	startReport+=" Browser: "+agent+" Version: "+version+"^Cookies: "+cookieEnabled+", Referer: "+opener+"^Screen Resolution: "+screenOX+"x"+screenOY+" "+colourDepth+"Bit" ;
}
window.onresize=function(){
	traceValues();
}