(function() {
	window['SB'] = {};
	window['SB']['browser'] = {};
})();



(function() {

	var BrowserTypes = {
		INTERNET_EXPLORER:1,	
		FIREFOX:2,	
		SAFARI:3,
		OTHER:4	
	};

	var OSTypes = {
		WINDOWS:1,
		MACINTOSH:2
	};

	window['SB']['browser']['type'] = BrowserTypes;
	window['SB']['browser']['ostype'] = OSTypes;

	/* This is an extremely loose function.  There are millions of ways
	 * to "detect" the browser type, and we are using one of the cheapest
	 * methods.  Basically, if a browser wants to pose as another type,
         * so be it.
	 */
	function getDeclaredBrowser()
	{
		if( window.navigator.appName.match(/Internet Explorer/) )
		{
			return BrowserTypes.INTERNET_EXPLORER; 
		}	
		else if ( window.navigator.appName.match(/Netscape/) ) 
		{
			//Stupid Safari shouldn't use Netscape for their appName
			if ( window.navigator.userAgent.match(/Safari/) )
			{
				return BrowserTypes.SAFARI; 
			}
			else
			{
				return BrowserTypes.FIREFOX; 
			}
		}

		return BrowserTypes.OTHER; 
	}
	
	window['SB']['browser']['declaredBrowser'] = getDeclaredBrowser;

	function getDotNetSupport( inVersion )
	{

		var versionString = "NET CLR "+inVersion+"";

		if( getDeclaredBrowser() != BrowserTypes.INTERNET_EXPLORER )
			return false;

		if( window.navigator.userAgent.match(versionString) )
		{
			return true; 
		}	
		else 
		{
			return false;
		}

		return BrowserTypes.OTHER; 
	}
	
	window['SB']['browser']['dotNetSupport'] = getDotNetSupport;

	function getOperatingSystem()
	{
		if (window.navigator.appVersion.indexOf("Win")!=-1) return OSTypes.WINDOWS;
		if (window.navigator.appVersion.indexOf("Mac")!=-1) return OSTypes.MACINTOSH;
	}

	window['SB']['browser']['getOperatingSystem'] = getOperatingSystem;

	function IsVersion( inVersion )
	{
		if( getDeclaredBrowser() == BrowserTypes.INTERNET_EXPLORER )
		{
			var versionString = "MSIE "+inVersion+"";
			if( window.navigator.appVersion.match( versionString ) )
				return true;
		}

		return false;
	}
	
	window['SB']['browser']['isVersion'] = IsVersion;



})();
