/******************************************************************
This file is desinged to be able to retrieve information about the 
browser that is being used to access the page.  Each browser must 
have it's own object with the parameters:
	name
	displayName
optional parameters are:
	minVer
	maxVer
	displayMivVer
	displaymaxVer

The object then needs to be added to the browserMap object in the
order that the browser needs to be checked.
******************************************************************/

	var msie = {
		name:"msie",
		displayName:"Internet Explorer",
		minVer:6,
		maxVer:7
	};
	
	var firefox = {
		name:"firefox", 
		displayName:"Firefox", 
		minVer:2, 
		maxVer:3 
	};
	
	var safari = { 
		name:"safari", 
		displayName:"Safari", 
		minVer:412, 
		displayMinVer:2, 
		maxVer:526, 
		displayMaxVer:3.12 
	};
	
	var opera = { 
		name:"opera", 
		displayName:"Opera" 
	};
	
	var mozilla = { 
		name:"mozilla", 
		displayName:"Mozilla"
	};
	
	var chrome = { 
		name:"chrome", 
		displayName:"Chrome"
	};
	
	var seamonkey = {
		name:"seamonkey", 
		displayName:"SeaMonkey"
	};
	
	var konqueror = {
		name:"kde", 
		displayName:"Konqueror"
	};
	
	var browserMap = {
		OPERA:opera, 
		MSIE:msie, 
		CHROME:chrome, 
		SAFARI:safari, 
		FIREFOX:firefox, 
		SEAMONKEY:seamonkey, 
		MOZILLA:mozilla,
		KONQUEROR:konqueror
	};
	
	// Get the browser dimensions
	function getBrowserDims()
	{
		var windowWidth = 0;
		var windowHeight = 0;
		
		if (typeof(window.innerWidth) == 'number') {
			windowWidth = window.innerWidth;
			windowHeight = window.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientWidth)
		{
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		}
		else if (document.body && document.body.clientWidth)
		{
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}
		
		return {width:windowWidth, height:windowHeight};
	}

	// Get information about the browser.
	function getBrowser()
	{
		var browser;
		var browserVersion = -1;
		var index;
		var ua = navigator.userAgent.toLowerCase();
		
		for(var key in browserMap) {
			if(ua.indexOf(browserMap[key].name) != -1) {
				browser = browserMap[key];
				break;
			}
		}
		
		index = ua.indexOf(browser.name);
		if (index == -1)
		{
			browserVersion = -1;
		}
		else 
		{
			browserVersion = parseFloat(ua.substring(index + browser.name.length + 1));
		}
		
		return {name:browser.name, version:browserVersion, object:browser};
	}

	// Display an error message if the browser version is not supported.
	function checkBrowserVersion()
	{
		var browser = getBrowser();
	
		//**************** Supported Version Set ***************
//		var defaultMessage = "I'm sorry, " + browser.object.displayName + " " + browser.version + " is not supported."
		var defaultMessage = "This application is best viewed using one of the following supported browsers:";
		for(var key in browserMap) {
			if(browserMap[key].minVer != undefined) {
				defaultMessage += "\n" + browserMap[key].displayName + " ";
				if(browserMap[key].displayMinVer == undefined) {
					defaultMessage += browserMap[key].minVer + " - " + browserMap[key].maxVer;
				} else {
					defaultMessage += browserMap[key].displayMinVer + " - " + browserMap[key].displayMaxVer;
				}
			}
		}
		//******************************************************
		
		if(browser.object.minVer == undefined || browser.version < browser.object.minVer || browser.version > browser.object.maxVer)
		{
			alert(defaultMessage);
		}
		
	}//end of browser version check
	
