// JavaScript Document v:1.3
// Requires navigator 2.0, Internet Explorer 3.0

// Browser ::
//navigator.appVersion
//navigator.appName
//navigator.appCodeName(code name of browser)

var agt, os, browser, version, place, thestring, osVer;
var notCompatiblePage = "../html/os_not_compatible_page.html";
var compatiblePage = "../html/launch.html";
var flashDetectionPage = "../html/fpi_detection.html";

// Browser Version Required for Windows
var winIEVer = 4;
var winNetscapeVer = 4;
var winOperaVer = 6;
var winAOLVer = 7;
var winMozillaVer = 1;

// Browser Version Required for Mac
var macIEVer = 5;
var macNetscapeVer = 4.7;
var macOperaVer = 5;
var macMozillaVer = 1;

// Browser Version Required for Linux
var linuxMozillaVer = 1.1;

function getAgtInfo() {
	agt = navigator.userAgent.toLowerCase();
	if (checkIt('konqueror')) {
		browser = "Konqueror";
		os = "Linux";
		osVer = "na";
	} else if (checkIt('safari')) {
		browser = "Safari";
	} else if (checkIt('aol')) {
		browser = "AOL";
	} else if (checkIt('opera')) {
		browser = "Opera";
		if (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1) {
			version = 2;
		} else if (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1) {
			version = 3;
		} else if (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1) {
			version = 4;
		} else if (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) {
			version = 5;
		} else if (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1) {
			version = 6;
		} else if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) {
			version = 7;
		} else {
			version = 0;
		}
	} else if (checkIt('msie')) {
		browser = "IE";
	} else if (!checkIt('compatible')) {
		browser = "Netscape";
		//alert(navigator.appVersion.substr(0, 3));
		//version = agt.charAt(8);
		version = navigator.appVersion.substr(0, 3);
		if(Number(version) == NaN || Number(version) == "NaN") {
			version = agt.charAt(8);
		}
	} else if ((agt.indexOf("mozilla")) != -1 && browser == undefined) {
		browser = "Mozilla";
	} else {
		browser = "unknown browser";
	}
	if (!version) {
		version = agt.charAt(place+thestring.length);
	}
	if (!os) {
		if (checkIt('linux')) {
			os = "Linux";
			osVer = "na";
		} else if (checkIt('x11')) {
			os = "Unix";
			osVer = "na";
		} else if (checkIt('mac')) {
			os = "Mac";
			if((((agt.indexOf("68k")!=-1) || (agt.indexOf("68000")!=-1)))){
				osVer = "mac 68k"
			} else if((((agt.indexOf("ppc")!=-1) || (agt.indexOf("powerpc")!=-1)))) {
				osVer = "mac powerpc"
			}
		} else if (checkIt('win')) {
			os = "Win";
			if((((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1)))){
				osVer = "Win 98"
			} else if((((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1)))) {
				osVer = "Win 95"
			} else if((((agt.indexOf("win 9x 4.90")!=-1)))) {
				osVer = "Win ME"
			} else if((((agt.indexOf("windows nt 5.0")!=-1) || (agt.indexOf("windows 2000")!=-1)))) {
				osVer = "Win 2k"
			} else if((((agt.indexOf("windows nt 5.1")!=-1) || (agt.indexOf("windows xp")!=-1)))) {
				osVer = "Win XP"
			} else if((((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1)))) {
				osVer = "Win NT"
			}
		} else {
			os = "unknown operating system";
		}
	}
	checkCompatibility();
}
function checkIt(string) {
	place = agt.indexOf(string)+1;
	thestring = string;
	return place;
}
function checkCompatibility() {
	//alert("agt: "+agt+" Your OS is: "+os+" & browser is: "+browser+" & version: "+Number(version));
	//alert(navigator.appCodeName);
	if(os != "unknown operating system") {
		if (os == "Win") {		 
			if (osVer == "Win 95" || osVer == "Win 98" || osVer == "Win ME" || osVer == "Win NT" || osVer == "Win 2k" || osVer == "Win XP") {
				if (browser == "IE" && (Number(version) >= winIEVer)) {
					window.location.replace(compatiblePage);
					parent.bottomFrame.location.replace(flashDetectionPage);					
				} else if (browser == "Netscape" && (Number(version) >= winNetscapeVer)) {
					window.location.replace(compatiblePage);
					parent.bottomFrame.location.replace(flashDetectionPage);
				} else if (browser == "Opera" && (Number(version) >= winOperaVer)) {
					window.location.replace(compatiblePage);
					parent.bottomFrame.location.replace(flashDetectionPage);
				} else if (browser == "AOL" && (Number(version) >= winAOLVer)) {
					window.location.replace(compatiblePage);
					parent.bottomFrame.location.replace(flashDetectionPage);
				} else if (browser == "Mozilla" && (Number(version) >= winMozillaVer)) {
					window.location.replace(compatiblePage);
					parent.bottomFrame.location.replace(flashDetectionPage);
				} else {
					window.location.replace(notCompatiblePage);
					//window.location = compatiblePage;
				}	
			} else {
				window.location.replace(notCompatiblePage);
				//window.location = notCompatiblePage;
			}
		} else if (os == "Mac") {
			//alert("browser: "+browser+" & macIEVer: "+macIEVer+" & macNetscapeVer: "+macNetscapeVer+" & navigator.appVersion: "+navigator.appVersion);
			if (browser == "IE" && (Number(version) >= macIEVer)) {
				window.location.replace(compatiblePage);
				parent.bottomFrame.location.replace(flashDetectionPage);
			} else if (browser == "Netscape" && (Number(version) >= macNetscapeVer)) {
				window.location.replace(compatiblePage);
				parent.bottomFrame.location.replace(flashDetectionPage);
			} else if (browser == "Opera" && (Number(version) >= macOperaVer)) {
				window.location.replace(compatiblePage);
				parent.bottomFrame.location.replace(flashDetectionPage);
			} else if (browser == "AOL") {
				window.location.replace(compatiblePage);
				parent.bottomFrame.location.replace(flashDetectionPage);
			} else if (browser == "Mozilla" && (Number(version) >= macMozillaVer)) {
				window.location.replace(compatiblePage);
				parent.bottomFrame.location.replace(flashDetectionPage);
			} else {
				window.location.replace(notCompatiblePage);
				//window.location = compatiblePage;
			}	
		} else if (os == "Linux") {
			if(browser == "Konqueror") {
				//window.location.replace(compatiblePage);
				window.location.replace(notCompatiblePage);
			} else if (Number(version) >= linuxMozillaVer) {
				window.location.replace(compatiblePage);
				parent.bottomFrame.location.replace(flashDetectionPage);
			} else {
				window.location.replace(notCompatiblePage);
				//window.location = compatiblePage;
			}	
		} else {
			window.location.replace(notCompatiblePage);
			//window.location = compatiblePage;
		}
	} else {
		window.location.replace(notCompatiblePage);
		//window.location = notCompatiblePage;
	}
}
getAgtInfo();
