	
	function stopError() 
	{
		return true;
	}
	window.onerror = stopError;

	
	function ultranav_set(page) 
	{
		for (x = 0; x < ultramenuArray.length; x++) 
		{
			if (page == ultramenuArray[x]) 
			{ 
				navitem = true; // this page is a nav item
				break;
			} 
			else 
			{ 
				navitem = false; // this page is not a nav item
			}
		}
		currMenuItem = 'none';
		onMenuItem = 'none';
		if (navitem) 
		{
			getElement(page + "Image").src= eval("ultranav_" + page + "_over");
			//currMenuItem = page;
			onMenuItem = page;
			ultranav_over(page);
			
		}
	}

	function init() 
	{
		document.onmousemove = ultramouseMove;
		if (is.ns) 
		{
			document.captureEvents(Event.MOUSEMOVE);
		}
	}

	function ultramouseMove(e) 
	{
		var x = (is.ns)? e.pageX : event.x + document.body.scrollLeft;
		var y = (is.ns)? e.pageY : event.y + document.body.scrollTop;

		//mouse_x.innerHTML = x;
		//mouse_y.innerHTML = y;
		
		//py = (document.all)?document.body.scrollTop:window.pageYOffset;
		//page_y.innerHTML = py;
	
		if (currMenuItem != 'none') 
		{
			// need to make these configurable vars
			//if ((y > 167) || (y < 128) ||  ( x > 825) || (x < 8)) {ultranav_out();}
			if ((y > 175) || (y < 115)) {ultranav_out();}
			
			//if ((y > bufferBottom) || (y < bufferTop) ||  ( x > 725) || (x < 8)) {ultranav_out();}
		}
		
		return true;
	}
	
	function ultranav_over(id) 
	{
		if(!currMenuItem) { currMenuItem = ''; }
		if(currMenuItem != id)
		{
	  		
			// if it has a submenu, just hide it
			if (getElement(id + "SubMenu"))
			{
				if(getElement(onMenuItem + "SubMenu"))
				{
					getElement(onMenuItem + "SubMenu").style.visibility="hidden";
				}
				
				getElement(id + "Image").src= eval("ultranav_" + id + "_overwithsubnav");
	  			getElement(id + "SubMenu").style.visibility="visible";
				
				//var newX = page_width/2 - 350;
				//var testX = findPosX(getElement(id + "Image"));
				//var newY = findPosY(getElement(id + "Image")) + 20;
				//menu_x.innerHTML = newX;

				//getElement(id + "SubMenu").style.top = newY + 'px';
				//getElement(id + "SubMenu").style.left = newX + 'px';
			}
			// else if it is on
			else if(id == onMenuItem)
			{
				x = 0;
			}
			// else set img to over
			else
			{
				getElement(id + "Image").src= eval("ultranav_" + id + "_over");
			}
	  
	  		if (id != currMenuItem && currMenuItem != 'none')
			{
				getElement(currMenuItem + "Image").src= eval("ultranav_" + currMenuItem + "_up");
			}
	  		if (currMenuItem == onMenuItem)
			{
				getElement(currMenuItem + "Image").src= eval("ultranav_" + currMenuItem + "_over");
			}
	  		if (getElement(currMenuItem + "SubMenu"))
			{
				getElement(currMenuItem + "SubMenu").style.visibility="hidden" 
			} 
	  		currMenuItem = id;
		}
	}

	function ultranav_out() 
	{
		if (currMenuItem != 'none')
		{
			if (getElement(currMenuItem + "SubMenu"))
			{
				getElement(currMenuItem + "SubMenu").style.visibility="hidden";
				if(getElement(onMenuItem + "SubMenu"))
				{
					getElement(onMenuItem + "SubMenu").style.visibility="visible";
				}
			}
			if (currMenuItem == onMenuItem)
			{
				getElement(currMenuItem + "Image").src= eval("ultranav_" + currMenuItem + "_over");
			}
			else 
			{
				getElement(currMenuItem + "Image").src= eval("ultranav_" + currMenuItem + "_up");
			}
		}
		currMenuItem = "none";
	}
	
	function BrowserCheck() 
	{
		var b = navigator.appName 
		if (b=="Netscape")
		{
			this.b = "ns"
			offset_y = -10;
		}
		else if (b=="Microsoft Internet Explorer") this.b = "ie"
		else this.b = b
		this.v = parseInt(navigator.appVersion)
		
		this.ns = (this.b=="ns" && this.v>=4)
		this.ns4 = (this.b=="ns" && this.v==4)
		this.ns5 = (this.b=="ns" && this.v==5)
		this.ie = (this.b=="ie" && this.v>=4)
		this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0)
		this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0)
		if (this.ie5) this.v = 5
		this.min = (this.ns||this.ie)
		
	}

	// automatically create the "is" object
	is = new BrowserCheck()

	function getElement(id) 
	{
		var element=document.getElementById?document.getElementById(id):(document.all?document.all(id):null)
		return element;
	}
	
	function findPosX(obj)
	{
		var curleft = 0;

		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}

	function findPosY(obj)
	{
		var curtop = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}
	
	function get_width()
	{
		return findPosX(getElement('pixel_right')) - findPosX(getElement('pixel_left'));
	}
	
	function get_height()
	{
		return findPosY(getElement('pixel_left')) - findPosY(getElement('pixel_right'));
	}
