var browserCaps = new BrowserCaps(navigator.userAgent);
//
// same code as /include/BrowserCaps.asp
//
function BrowserCaps(userAgent) {
	this.IsWinXPSP2 = false;
	this.UserAgent = new String(userAgent).toUpperCase();
	if ((/OPERA/i).test(userAgent)) {
		this.IsOpera = true;
		this.Version = getBrowserVersion(this.UserAgent, (/OPERA (\d+).(\d+)/i));
	} else if ((/FIREFOX/i).test(userAgent)) {
		this.IsFireFox = true;
		this.Version = getBrowserVersion(this.UserAgent, (/FIREFOX\/(\d+).(\d+)/i));
	} else if ((/NETSCAPE/i).test(userAgent)) {
		this.IsNetscape = true;
		this.Version = getBrowserVersion(this.UserAgent, (/NETSCAPE\/(\d+).(\d+)/i));
	} else if ((/MSIE/i).test(userAgent) == true && (/SPOOFER|WEBTV/i).test(userAgent) == false) {
		this.IsMSIE = true;
		this.Version = getBrowserVersion(this.UserAgent, (/MSIE (\d+).(\d+)/i));
		if ((/WINDOWS NT 5.0|WINDOWS NT 5.01/i).test(this.UserAgent)) {
			this.IsWin2000 = true;
			if (this.Version.Major >= 6) {
				this.IsWin2000SP4 = true;
			}
		} else if ((/WINDOWS NT 5.1|WINDOWS XP/i).test(this.UserAgent)) {
			this.IsWinXP = true;
			if ((this.Version.Major >= 7) || (this.UserAgent.indexOf("SV1") > this.UserAgent.indexOf("MSIE"))) {
				this.IsWinXPSP2 = true; // can't detect XP SP3, because version is the same
			}
		} else if ((/WINDOWS NT 6.0/i).test(this.UserAgent)) {
			this.IsVista = true;
		} else if ((/WINDOWS NT 6.1/i).test(this.UserAgent)) {
			this.IsWin7 = true;
		} else if ((/WINDOWS NT|WINNT/i).test(this.UserAgent)) {
			this.IsWinNT = true;
		} else if ((/WINDOWS 95|WIN95/i).test(this.UserAgent)) {
			this.IsWin95 = true;
		} else if ((/WINDOWS 98|WIN98/i).test(this.UserAgent)) {
			this.IsWin98 = true;
		} else if ((/WIN 9X 4.90/i).test(this.UserAgent)) {
			this.IsWinME = true;
		} else if ((/WINDOWS 3.1|WIN16/i).test(this.UserAgent)) {
			this.IsWin3x = true;
		}
	}
}
		
function getBrowserVersion(userAgent, regEx) {
	var matchResults = userAgent.match(regEx);
	if (matchResults && matchResults.length > 2) {
		Version = new Object();
		Version.Major = matchResults[1];
		Version.Minor = matchResults[2];
		return Version;
	}
}

function displayOS() {
	if (browserCaps.IsWin95) {
		return "Windows 95";
	} else if (browserCaps.IsWinME) {
		return "Windows ME";
	} else if (browserCaps.IsWin98) {
		return "Windows 98";
	} else if (browserCaps.IsWinXP) {
		if (browserCaps.IsWinXPSP2) {
			return "Windows XP Service Pack 2";
		} else {
			return "Windows XP Service Pack 1";
		}
	} else if (browserCaps.IsVista) {
		return "Windows Vista";
	} else if (browserCaps.IsWin7) {
		return "Windows 7";
	} else if (browserCaps.IsWin2000) {
		return "Windows 2000";
	} else if (browserCaps.IsWin3x || browserCaps.IsWinNT) {
		return "Windows 3.1 or NT"; 
	} else { 
		return "not supported"; 
	}
}

//'legacy support -- just in case

function isWin95() { return browserCaps.IsWin95; }
function isWinXPSP2() { return browserCaps.IsWinXPSP2; }
