	//////// CONSTANTS //////////
	// used to force width of screen to fit browser and screen resolution
	// MS = Microsoft, GK = Gekco
	/////////////////////////////
	var MSGRAPHIC_800BY600_WIDTH  = 538;		
	var GKGRAPHIC_800BY600_WIDTH  = 554;
	var MSGRAPHIC_1024BY768_WIDTH = 760;
	var GKGRAPHIC_1024BY768_WIDTH = 776;
	var DEFAULT_GRAPHIC_WIDTH = MSGRAPHIC_800BY600_WIDTH;

	var MSGRAPHIC_800BY600_HEIGHT  = 310;		
	var GKGRAPHIC_800BY600_HEIGHT  = 310;
	var MSGRAPHIC_1024BY768_HEIGHT = 478;
	var GKGRAPHIC_1024BY768_HEIGHT = 490;
	var DEFAULT_GRAPHIC_HEIGHT = MSGRAPHIC_800BY600_HEIGHT;
	
	// value constants
	var BOOLEAN_TRUE = 1;
	var BOOLEAN_FALSE = 0;
	var ZERO_VALUE = 0;
	
	// browser types
	var BROWSER_IS_UNKNOWN = 0;
	var BROWSER_IS_MICROSOFT = 1;
	var BROWSER_IS_NETSCAPE = 2;

	// define class for handling browser stuff
	UserBrowser.prototype.Company = "";
	UserBrowser.prototype.Majorversion = 0;
	UserBrowser.prototype.Minorversion = 0;
	UserBrowser.prototype.BrowserChecked = 0;
	UserBrowser.prototype.BrowserTypeId = BROWSER_IS_UNKNOWN;
	UserBrowser.prototype.GetCompanyName = UserBrowserGetCompanyName;
	UserBrowser.prototype.BrowserCheckDone = UserBrowserCheckDone;
	UserBrowser.prototype.IsMicrosoft = UserBrowserIsMicrosoft;
	UserBrowser.prototype.IsNetscape = UserBrowserIsNetscape;
	UserBrowser.prototype.SetBrowserCheck = UserBrowserSetCheckFlag;
	UserBrowser.prototype.GetMajorVersion = UserBrowserMajorversion;
	UserBrowser.prototype.GetMinorVersion = UserBrowserMinorversion;
	UserBrowser.prototype.GetBrowserType  = UserBrowserGettypeid;
	UserBrowser.prototype.DisplayBrowserInfo = UserBrowserGetClassString;
	
	function UserBrowserGettypeid() {
		return this.BrowserTypeId;
	}
	
	function UserBrowserGetClassString() {
		var str = "Company: " + this.Company + "\n";
		str += "Version: " + this.Majorversion + "." + this.Minorversion + "\n";
		return (str);
	}
	
	function UserBrowserMajorversion() {
		return this.Majorversion;
	}
	
	function UserBrowserMinorversion() {
		return this.Minorversion;
	}
	
	function UserBrowserSetCheckFlag(iFlag)
	{
		if (iFlag == BOOLEAN_TRUE)
			this.BrowserChecked = BOOLEAN_TRUE;
		else
			this.BrowserChecked = BOOLEAN_FALSE;
	}
	
	function UserBrowser() {
	
		var i = 0;
		var ua = window.navigator.userAgent.toLowerCase();
		  
		// reset check flag
		this.BrowserChecked = ZERO_VALUE;
		this.BrowserTypeId  = BROWSER_IS_UNKNOWN;
		
		if ((i = ua.indexOf('msie')) != -1)
		{
			this.Company        = 'Microsoft';
			this.Majorversion   = parseInt(ua.substr(i+5,1), 10);
			this.Minorversion   = parseInt(ua.substr(i+7,1), 10);
			this.BrowserTypeId  = BROWSER_IS_MICROSOFT;
			this.BrowserChecked = BOOLEAN_TRUE;
		}
		else if (typeof(window.controllers) != 'undefined' && typeof(window.locationbar) != 'undefined')
		{
			i = ua.lastIndexOf('/')
			this.Majorversion   = parseInt(ua.substr(i+1), 10);
			this.Minorversion   = parseInt(ua.substr(i+3), 10);
			this.Company        = 'Netscape';
			this.BrowserTypeId  = BROWSER_IS_NETSCAPE;
			this.BrowserChecked = BOOLEAN_TRUE;
		}
	}
	
	function UserBrowserCheckDone() {
		return this.BrowserChecked;
	}

	function UserBrowserIsMicrosoft() {
		if (this.BrowserTypeId == BROWSER_IS_MICROSOFT)
			return BOOLEAN_TRUE;
		else
			return BOOLEAN_FALSE;
	}

	function UserBrowserIsNetscape() {
		if (this.BrowserTypeId == BROWSER_IS_NETSCAPE)
			return BOOLEAN_TRUE;
		else
			return BOOLEAN_FALSE;
	}
	
	function UserBrowserGetCompanyName() {
		return this.Company;
	}

	// SCREEN FUNCTIONS ////////////////
	function FetchScreenHeight() {
		return parseInt(screen.height);
	}
	
	function FetchScreenWidth() {
		return parseInt(screen.width);
	}
	
	// POSITIONAL FUNCTIONS /////////////
	function SetScreenWidth(sElemId, oBrowser) {
	
		var ele = document.getElementById(sElemId);
		var iWidth = DEFAULT_GRAPHIC_WIDTH;
		var bSizeSetOk = BOOLEAN_FALSE;					
		
		if (null != ele)
		{
			switch (FetchScreenWidth())
			{
				case 800:
					switch(oBrowser.GetBrowserType())
					{
					   case BROWSER_IS_MICROSOFT:
					   	iWidth = MSGRAPHIC_800BY600_WIDTH;
					   	break;
					   case BROWSER_IS_NETSCAPE:
					   	iWidth = GKGRAPHIC_800BY600_WIDTH;
					   	break;
					}
					break;
				case 1024:
					switch(oBrowser.GetBrowserType())
					{
					   case BROWSER_IS_MICROSOFT:
					   	iWidth = MSGRAPHIC_1024BY768_WIDTH;
					   	break;
					   case BROWSER_IS_NETSCAPE:
					   	iWidth = GKGRAPHIC_1024BY768_WIDTH;
					   	break;
					}
					break;
				default:
					{
						//subtract title image width and borders and do best guess
						iWidth = FetchScreenWidth() - 220 - 50;
						break;
					}
					
			}
			
			// set width
			ele.style.width = parseInt(iWidth);
			bSizeSetOk = BOOLEAN_TRUE;

		}
		
		return bSizeSetOk;
	}
	
	// POSITIONAL FUNCTIONS /////////////
	function SetBodyHeight(sElemId, oBrowser) {
	
		var ele = document.getElementById(sElemId);
		var iHeight = DEFAULT_GRAPHIC_HEIGHT;
		var bSizeSetOk = BOOLEAN_FALSE;					
		
		if (null != ele)
		{
			switch (FetchScreenWidth())
			{
				case 800:
					switch(oBrowser.GetBrowserType())
					{
					   case BROWSER_IS_MICROSOFT:
					   	iHeight = MSGRAPHIC_800BY600_HEIGHT;
					   	break;
					   case BROWSER_IS_NETSCAPE:
					   	iHeight = GKGRAPHIC_800BY600_HEIGHT;
					   	break;
					}
					break;
				case 1024:
					switch(oBrowser.GetBrowserType())
					{
					   case BROWSER_IS_MICROSOFT:
					   	iHeight = MSGRAPHIC_1024BY768_HEIGHT;
					   	break;
					   case BROWSER_IS_NETSCAPE:
					   	iHeight = GKGRAPHIC_1024BY768_HEIGHT;
					   	break;
					}
					break;
			}
			
			// set width
			ele.style.height = parseInt(iHeight);
			bSizeSetOk = BOOLEAN_TRUE;

		}
		
		return bSizeSetOk;
	}
	

