var detect = navigator.userAgent.toLowerCase();
var windowsIE = (checkPlatform("msie") && checkPlatform("win"));
var launchTID;
var detected = false;

function DetectBrowser() {
	var oldOnError = window.onerror;
	var element = null;
	window.onerror = null;
	window.saveNavigator = window.navigator;
	navigator.OS		= '';
	navigator.version	= parseFloat(navigator.appVersion);
	navigator.org		= '';
	navigator.family	= '';

	var platform;
	if (typeof(window.navigator.platform) != 'undefined') {
		platform = window.navigator.platform.toLowerCase();
		if (platform.indexOf('win') != -1) {
			navigator.OS = 'windows';
		}
		else if (platform.indexOf('mac') != -1) {
			navigator.OS = 'mac';
		}
		else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1) {
			navigator.OS = 'unix';
		}
	}

	var i = 0;
	var ua = window.navigator.userAgent.toLowerCase();
	
	if (ua.indexOf('opera') != -1) {
		i = ua.indexOf('opera');
		navigator.family	= 'opera';
		navigator.org		= 'opera';
		navigator.version	= parseFloat('0' + ua.substr(i+6), 10);
	}
	else if ((i = ua.indexOf('msie')) != -1) {
		navigator.org		= 'microsoft';
		navigator.version	= parseFloat('0' + ua.substr(i+5), 10);
		
		if (navigator.version < 4) {
			navigator.family = 'ie3';
		}
		else {
			navigator.family = 'ie4';
		}
	}
	else if (ua.indexOf('gecko') != -1) {
		navigator.family = 'gecko';
		var rvStart = ua.indexOf('rv:');
		var rvEnd	 = ua.indexOf(')', rvStart);
		var rv			= ua.substring(rvStart+3, rvEnd);
		var rvParts = rv.split('.');
		var rvValue = 0;
		var exp		 = 1;

		for (var n = 0; n < rvParts.length; n++) {
			var val = parseInt(rvParts[n]);
			rvValue += val / exp;
			exp *= 100;
		}
		navigator.version = rvValue;

		if (ua.indexOf('netscape') != -1) {
			navigator.org = 'netscape';
		}
		else if (ua.indexOf('compuserve') != -1) {
			navigator.org = 'compuserve';
		}
		else {
			navigator.org = 'mozilla';
		}
	}
	else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1)) {
		var is_major = parseFloat(navigator.appVersion);
		if (is_major < 4) {
			navigator.version = is_major;
		}
		else {
			i = ua.lastIndexOf('/');
			navigator.version = parseFloat('0' + ua.substr(i+1), 10);
		}
		navigator.org = 'netscape';
		navigator.family = 'nn' + parseInt(navigator.appVersion);
	}
	else if ((i = ua.indexOf('aol')) != -1 ) {
		navigator.family	= 'aol';
		navigator.org		= 'aol';
		navigator.version	= parseFloat('0' + ua.substr(i+4), 10);
	}
	else if ((i = ua.indexOf('hotjava')) != -1 ) {
		navigator.family	= 'hotjava';
		navigator.org		= 'sun';
		navigator.version	= parseFloat(navigator.appVersion);
	}
	window.onerror = oldOnError;
}

function DetectJava() {
	jwsInstalled = 0;
	jws150Installed = 0;
	isIE = 'false';

	if ( navigator.mimeTypes && navigator.mimeTypes.length ) {
		x = navigator.mimeTypes['application/x-java-jnlp-file'];
		if ( x ) {
			jwsInstalled = 1;
		}
	}
	else {
		isIE = 'true';
		jnlp = 'application/x-java-jnlp-file';
		result = false;
		document.write( '<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("JavaWebStart.isInstalled"))</SCRIPT>\n' );
		if (result) {
			jwsInstalled = 1;
		}
		result = false;
		document.write( '<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("JavaWebStart.isInstalled.1.5.0.0"))</SCRIPT>\n' );
		if (result) {
			jws150Installed = 1;
		}
	}
}
function launchApp() {
	if (windowsIE) {
		document.write("<OBJECT codebase=http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab classid=clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284 height=0 width=0>");
		document.write("<PARAM NAME=app VALUE=http://webstart.jajuk.info/jajuk-final/app/launch.jnlp>");
		document.write("<PARAM NAME=back VALUE=false>");
		document.write("</OBJECT>");
	} else {
		if (navigator.mimeTypes && navigator.mimeTypes.length) {
			launchTID = setInterval('launchJNLP("http://webstart.jajuk.info/jajuk-final/app/launch.jnlp")', 100);
		}
	}
}
function webstartVersionCheck(versionString) {
	navigator.plugins.refresh(true);
	if (navigator.mimeTypes['application/x-java-jnlp-file']) {
		for (var i = 0; i < navigator.mimeTypes.length; ++i) {
			pluginType = navigator.mimeTypes[i].type;
			if (pluginType == "application/x-java-applet;version=" + versionString) {
				return true;
			}
		}
	}
}
function checkPlatform(string) {
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}
function launchJNLP(app) {
	if (!detected) {
		DetectBrowser();
		DetectJava();
		detected = true;
	}
	if (webstartVersionCheck("1.5")) {
		clearInterval(launchTID);
		window.location = app;
	} else if ((jws150Installed && jwsInstalled) || (navigator.userAgent.indexOf("Gecko") !=-1)) {
		clearInterval(launchTID);
		window.location = app;
	} else {
		clearInterval(launchTID);
		window.location = "http://jajuk.info/download";
	}
}

