////////////////////////////////////////////////////////////////////////////////
/*

BrowserSniffer API
Version 1.0.1 
Last Modified 11/08/2004
Written by Craig Phares
Special Thanks To: Joe Tozzini, Macromedia

Supported Platforms:
Windows, Macintosh

Supported Browsers:
IE, NS, Opera, Firefox, Safari, AOL

This class will identify the operating system and browser for the executing 
local client, including its full version and abbreviated version. All info is
stored in the global variable gBrowser - accessible through JavaScript.

*/
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Name: BrowserSniffer()
// Desc: class to store all browser information
BrowserSniffer = function() {

	// get the navigator info
	var navAppName = navigator.appName.toLowerCase();
	var navUserAgent = navigator.userAgent.toLowerCase();
	
	// temp
	this.navAppVersion = navigator.appVersion;
	this.userAgent = navUserAgent;
	
	// check browser
	if ((navAppName.indexOf("microsoft")>=0) && !(navUserAgent.indexOf("opera")>=0)) {
	
		// microsoft internet explorer
		this.ie = true;
		
		// get version
		var startPos = navUserAgent.indexOf("msie") + 4;
		this.version = parseInt(navUserAgent.substring(startPos));
		this.fullVersion = parseFloat(navUserAgent.substring(startPos));
		
		// set browser version
		if (this.version == 6)      this.ie6 = true; // using internet explorer 6
		else if (this.version == 5) this.ie5 = true; // using internet explorer 5
		else if (this.version == 4) this.ie4 = true; // using internet explorer 4 
		else if (this.version == 3) this.ie3 = true; // using internet explorer 3
			
	} else if ((navAppName.indexOf("netscape")>=0) && !(navUserAgent.indexOf("firefox")>=0) && !(navUserAgent.indexOf("safari")>=0) && !(navUserAgent.indexOf("aol")>=0)) {
		
		// netscape
		this.ns = true;
		
		// get version
		if (parseInt(navigator.appVersion) == 5) {
			// netscape 6+
			var startPos = navUserAgent.indexOf("netscape") + 9;
			this.version = parseInt(navUserAgent.substring(startPos));
			this.fullVersion = parseFloat(navUserAgent.substring(startPos));
		} else {
			// netscape 4-
			this.version = parseInt(navigator.appVersion); 
			this.fullVersion = parseFloat(navigator.appVersion); 	 
		}
		
		// set browser version
		if (this.version == 7)      this.ns7 = true; // using netscape 7
		else if (this.version == 6) this.ns6 = true; // using netscape 6
		else if (this.version == 4) this.ns4 = true; // using netscape 4
		else if (this.version == 3) this.ns3 = true; // using netscape 3
		
	} else if (navUserAgent.indexOf("opera")>=0) {
		
		// opera
		this.opera = true;
		
		// get version
		var startPos = navUserAgent.indexOf("opera") + 6;
		this.version = parseInt(navUserAgent.substring(startPos));
		this.fullVersion = parseFloat(navUserAgent.substring(startPos));
		
	} else if (navUserAgent.indexOf("firefox")>=0) {
	
		// firefox
		this.firefox = true;
		
		// get version
		var startPos = navUserAgent.indexOf("firefox") + 8;
		this.version = parseInt(navUserAgent.substring(startPos));
		this.fullVersion = parseFloat(navUserAgent.substring(startPos));
		
	} else if (navUserAgent.indexOf("safari")>=0) {
	
		// safari
		this.safari = true;
		
		// get version
		var startPos = navUserAgent.indexOf("safari") + 8;
		this.version = parseInt(navUserAgent.substring(startPos));
		this.fullVersion = parseFloat(navUserAgent.substring(startPos));
		
	} else if (navUserAgent.indexOf("aol")>=0) {
	
		// aol
		this.aol = true;
		var startPos = navUserAgent.indexOf("aol") + 4;
		this.version = parseInt(navUserAgent.substring(startPos));
		this.fullVersion = parseFloat(navUserAgent.substring(startPos));
	   
	} else {
		this.ie = true;       // default to ie4 if browser is unknown
		this.version = 4;     // default to ie4
		this.fullVersion = 4; // default to ie4
	}

	// get the platform
	var navPlatform = navigator.platform.toLowerCase();
	
	// check platform
	if (navPlatform.indexOf("win")>=0) this.win = true;
	else if (navPlatform.indexOf("mac")>=0) this.mac = true;
	else this.win = true; //default to win platform if platform is not identified

}

// create new browser sniffer object
gBrowser = new BrowserSniffer();
