var detect = navigator.userAgent.toLowerCase();
var thestring;

function checkIt(string){
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

function ReturnBrowser() {
    var Browser;
    Browser=((navigator.appName == "Microsoft Internet Explorer")?"MSIE":Browser);
    Browser=((navigator.appName == "Netscape")?"Netscape":Browser);
    Browser=((navigator.userAgent.indexOf("Firefox") > -1)?"Firefox":Browser);
    Browser=((navigator.userAgent.indexOf("Camino") > -1)?"Camino":Browser);
    Browser=((navigator.userAgent.indexOf("Safari") > -1)?"Safari":Browser);
    Browser=((navigator.userAgent.indexOf("Opera") > -1)?"Opera":Browser);
    return Browser=((Browser)?Browser:"Other");
    }




// USed in Window bit
var browserScreen = -1;
var browserScreenWidth = -1;
var browserScreenHeight = -1;
var browserAvailableScreenWidth = -1;
var browserAvailableScreenHeight = -1;
var browserColourDepth = -1;


// Used in Flash bit
var flashinstalled	= -1;
var flashversion	= -1;
var x;
var y;
var i; // general purpose counter

// Used in Navigator Object bit
var OS			= -1;
var browser		= -1;
var version		= -1;
var MVersion	= -1;
var total;

// Used for XML compliance
var XMLCompliant = -1;
var xmlObj;

// Used in DHTML support detection
var DHTMLCompliant = -1;

// Used in DOM support detection
var DOMCompliant = -1;

// Used in Java detection
var javaDetected = -1;
var javaVersion = -1;
var javaString;
var javaStringArray;

// This is what we pipe through to stats collection
var URLStringToSend;


// screen info
if (window.screen) {
	browserScreen				= 1;
	browserScreenWidth			= screen.width;
	browserScreenHeight			= screen.height;
	browserAvailableScreenWidth	= screen.availWidth;
	browserAvailableScreenHeight= screen.availHeight;
	browserColourDepth			= screen.colorDepth;


}else{
	browserScreen				= 0;
	browserScreenWidth			= -1;
	browserScreenHeight			= -1;
	browserAvailableScreenWidth	= -1;
	browserAvailableScreenHeight= -1;
	browserColourDepth			= -1;
}




// Test for flash plug-in
if(navigator.plugins && navigator.plugins.length){
	x = navigator.plugins["Shockwave Flash"];
	if(x){
		flashinstalled = 1;
		if(x.description){
			y = x.description;
			flashversion = y.charAt(y.indexOf('.')-1);
		}
	}else{
		flashinstalled = 0;
	}

	if (navigator.plugins["Shockwave Flash 2.0"]){
		flashinstalled = 1;
		flashversion = 2;
	}

}else if(navigator.mimeTypes && navigator.mimeTypes.length){
	x = navigator.mimeTypes['application/x-shockwave-flash'];
	if(x && x.enabledPlugin){
		flashinstalled = 1;
	}else{
		flashinstalled = 0;
	}
}else{
	eval('for(i=2;i<=15;i++){try{var xObj=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);if(xObj){flashinstalled=1;flashversion=i;}}catch(e){}}');
	if(flashinstalled = -1){
		flashinstalled = 1
	}
}





// Get Browser details

if(checkIt('konqueror')){
	//browser = "Konqueror";
	//OS = "Linux";
}else if(checkIt('omniweb')){
	//browser = "OmniWeb";
}else if(checkIt('opera')){
	//browser = "Opera";
}else if(checkIt('webtv')){
	//browser = "WebTV";
}else if(checkIt('icab')){
	//browser = "iCab";
}else if(checkIt('msie')){
	//browser = "Internet Explorer";
}else if(!checkIt('compatible')){
	//browser = "Netscape Navigator";
	version = detect.charAt(8);
}else{
	//browser = "An unknown browser";
}

browser = ReturnBrowser();

if(version == -1){
	version = detect.charAt(place + thestring.length);
}

if(OS == -1){
	if(checkIt('linux')){
		OS = "Linux";
	}else if(checkIt('x11')){
		OS = "Unix";
	}else if(checkIt('intel mac')){
		OS = "Mac Intel";
	}else if(checkIt('mac')){
		OS = "Mac";
		
	}else if(checkIt('win')){
		OS = "Windows";
	}else{
		OS = "an unknown operating system";
	}
}

MVersion = detect.split(" ");
MVersion = MVersion[0];
MVersion = MVersion.split("/");
MVersion = MVersion[1];







// XML Support
 if(navigator.mimeTypes && navigator.mimeTypes.length){
	if (navigator.mimeTypes["image/svg-xml"] != null){
		XMLCompliant = 1;
	}else{
		XMLCompliant = 0;
	}
}else{
	eval('try{var xmlObj=new ActiveXObject("Adobe.SVGCtl");if(xmlObj){XMLCompliant = 1;}}catch(e){}');
}






// DHTML Support
if (document.getElementById || document.all || document.layers){
	DHTMLCompliant = 1;
}else{
	DHTMLCompliant = 0;
}






// WC3 DOM SUpport
if(document.getElementById && document.createElement){
	DOMCompliant = 1;
}else{
	DOMCompliant = 0;
}





// Java support
if(window.clientInformation){
	// IE is just yes/no.  Well you can find out what version, but you have to load an applet which tells you :-(
	javaDetected = window.clientInformation.javaEnabled();
	if(javaDetected == true){
		javaDetected = 1;
	}else{
		javaDetected = 0;
	}
}else{
	// NS can give you versioning
	if(navigator.plugins && navigator.plugins.length > 0){
		for (i=0; i < navigator.plugins.length; i++){
			if(navigator.plugins[i].description.substring(0,4) == "Java"){
				javaString = navigator.plugins[i].description;
				javaStringArray = javaString.split(" ");
				javaDetected = 1;
				javaVersion = javaStringArray[2];
				break;
			}
		}
		if(javaDetected == -1){
			javaDetected = 0;
		}
	}
}





// This is what we send off to the stats collecting page
URLStringToSend = browserScreen + "|" + browserScreenWidth + "|" + browserScreenHeight + "|" + browserAvailableScreenWidth + "|" + browserAvailableScreenHeight + "|" + browserColourDepth + "|" + flashinstalled + "|" + flashversion + "|" + detect + "|" + MVersion + "|" + browser + "|" + version + "|" + OS + "|1|1.x|" + XMLCompliant + "|" + DHTMLCompliant + "|" + DOMCompliant + "|" + javaDetected + "|" + javaVersion;

URLStringToSend = escape(URLStringToSend);

/*
// This stuff handy for debugging


// Populate test form
document.StatsSummary.browserScreen.value				= browserScreen;
document.StatsSummary.browserScreenWidth.value			= browserScreenWidth;
document.StatsSummary.browserScreenHeight.value			= browserScreenHeight;
document.StatsSummary.browserAvailableScreenWidth.value	= browserAvailableScreenWidth;
document.StatsSummary.browserAvailableScreenHeight.value= browserAvailableScreenHeight;
document.StatsSummary.browserColourDepth.value			= browserColourDepth;
document.StatsSummary.browserFlash.value				= flashinstalled;
document.StatsSummary.browserFlashVersion.value			= flashversion;
document.StatsSummary.browserString.value				= detect;
document.StatsSummary.browserMozillaVersion.value		= MVersion;
document.StatsSummary.browserName.value					= browser;
document.StatsSummary.browserVersion.value				= version;
document.StatsSummary.browserPlatform.value				= OS;
document.StatsSummary.browserJavascript.value			= JSEnabled;
document.StatsSummary.browserJavascriptVersion.value	= JSVersion;
document.StatsSummary.browserXML.value					= XMLCompliant;
document.StatsSummary.browserDHTML.value				= DHTMLCompliant;
document.StatsSummary.browserDOM.value					= DOMCompliant;
document.StatsSummary.browserJava.value					= javaDetected;
document.StatsSummary.browserJavaVersion.value			= javaVersion;
*/


