	var MouseX, MouseY, openDiv;
	var divOpen;
	var menuOffsetLeft = 0;
	var menuOffsetTop = 0;
	var menuWidth = 0;
	var menuHeight = 0;
	var divOpenLeft = 0;
	var divOpenTop = 0;
	var divOpenWidth = 0;
	var divOpenHeight = 0;


var msgInit = false;
function Msg( text ) {
	/*
	var msg = document.getElementById("right");
	if ( !msgInit ) {
		msg.innerHTML = "Diagnostic Messages";
		msgInit = true;
	}
	if ( msg ) {
		msg.innerHTML = text + msg.innerHTML;
	}
	*/
}


function Category( divID ) {
	Msg("Category('" + divID + "')<br>");

	if ( false ) {
		DisplayDivs( divID, 'block' );

		if ( openDiv ) {
			DisplayDivs( openDiv, 'none' );
		}

		openDiv = divID;
	}

}

function DisplayDivs( divID, strDisplay ) {
	//window.status = "DisplayDivs('" + divID + "','" + strDisplay + "')";
	var eventDiv = document.getElementById(divID);
	var divList = eventDiv.getElementsByTagName('div');
	for ($i=0; $i<divList.length; ++$i) {
		divList[$i].style.display=strDisplay;
	}
}


function ShowPage( strWhich ) {
	Msg("ShowPage('" + strWhich + "')<br>");
}

function PopUp( e, divID ) {
	getMousePosition(e);
	//window.status = 'PopUp()';

	var subMenu = document.getElementById("DIVSUBCAT");
	subMenu.style.top = MouseY;
	subMenu.style.visibility = 'visible';

	var eventDiv = document.getElementById(divID);
	var divList = eventDiv.getElementsByTagName('div');
	for ($i=0; $i<divList.length; ++$i) {
		divList[$i].style.display='inline';
	}
} 

function PopDown( e, divID ) {
	var subMenu = document.getElementById("DIVSUBCAT");
	subMenu.style.visibility = 'hidden';

	var eventDiv = document.getElementById(divID);
	var divList = eventDiv.getElementsByTagName('div');
	for ($i=0; $i<divList.length; ++$i) {
		divList[$i].style.display='none';
	}
}

function getMousePosition(e) {
	var isIE = document.all?true:false;
	isIE = document.all?true:false;

	if (!isIE) {
		MouseX = e.pageX;
		MouseY = e.pageY;
	} else {
		var scroll = new Array();
		scroll = getScrollXY();
		MouseX = window.event.clientX + scroll[0];
		MouseY = window.event.clientY + scroll[1];
		Msg("getMousePosition window.event.client=(" + window.event.clientX + "," + window.event.clientY + ")<br>");
	}
	return true;
}


function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  Msg("getScrollXY(" + scrOfX + "," + scrOfY + ")<br>");
  return [ scrOfX, scrOfY ];
}
// use as a mouseover event target
// what is the name of the DIV we are going to open
// obj is the link tag
// e is an event object
function Show(what,linkObj,e,rolloverImage) {
	Hide();
	var offsetTop = 0;
	var offsetLeft = 0;

	rollover( 'IMG' + what, rolloverImage);
	Msg("Show '" + what + "'->" + linkObj.tagName + " Obj(" + linkObj.offsetLeft + "," + linkObj.offsetTop + ")<br>");

	var objHeight = document.images['IMG'+what].height;
	var obj = document.images['IMG'+what];

	if ( obj.offsetParent ) {
		while( obj.offsetParent ) {
			Msg(obj.nodeName + "(" + obj.offsetLeft + "," + obj.offsetTop + ")<br>");
			offsetLeft += obj.offsetLeft;
			offsetTop  += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if ( obj.x ) {
		offsetLeft = obj.x;
		offsetTop  = obj.y;
	}


	divOpen = document.getElementById(what + "_classes");
	if ( divOpen ) {
		getMousePosition(e);

		divOpenTop = offsetTop+0;
		divOpenLeft = offsetLeft+143;

		divOpen.style.top = divOpenTop + "px";
		divOpen.style.left = divOpenLeft + "px";
		divOpen.style.display = 'inline';

		divOpenWidth = divOpen.clientWidth;
		divOpenHeight = divOpen.clientHeight;

		Msg("Show: divOpen @ (" + divOpenLeft + "," + divOpenTop + ") Size (" 
				+ divOpenWidth + "," + divOpenHeight + ")<br>");

	} else {
		Msg("Could not get divOpen<br>");
	}


}

// rollover without a popup
function NoShow( what, rolloverImage ) {
	Hide();
	rollover( 'IMG' + what, rolloverImage);
}

function Hide() {
	if ( activeRollover ) rollout( activeRollover );
	if ( divOpen ) {
		Msg("Hiding Open Div:" + divOpen.id + "<br>");
		divOpen.style.display = 'none';
		divOpen = null;
	}
}

function HideAll(e) {
	if ( menuOffsetLeft + menuOffsetTop  == 0 ) Startup(); 
	// If the mouse is not in the open div then close it
	getMousePosition(e);
	if ( divOpen ) {
		if ( MouseX > divOpenLeft 
			&& MouseX < divOpenLeft + divOpenWidth  &&
			MouseY > divOpenTop && MouseY < divOpenTop + divOpenHeight ) {
				// Ok, its in the popup box area
				Msg("HideAll: not closing in popup box area (" + MouseX + "," + MouseY + ")<br>");
		} else {
			if ( MouseX > menuOffsetLeft && MouseX < menuOffsetLeft + menuWidth &&
			MouseY > menuOffsetTop && MouseY < menuOffsetTop + menuHeight ) {
				// its ok, its in the menu area
				Msg("HideAll: not closing in nav menu area (" + MouseX + "," + MouseY + ")<br>");
			} else {
				Msg("Mouse at (" + MouseX + "," + MouseY + ")<br>");
				Msg("menuOffsetLeft=" + menuOffsetLeft + " menuWidth=" + menuWidth + "<br>");
				Msg("menuOffsetTop=" + menuOffsetTop + " menuHeight=" + menuHeight + "<br>");
				Msg("HideAll: Open Div is Outside the box so we close it<br>");
				divOpen.style.display = 'none';
				divOpen = null;
				if ( activeRollover ) rollout( activeRollover );
			}
		}
	}
}


function Startup() {
	// find out where the menu box is
	var menu = document.getElementById("NAV");
	menuOffsetLeft = 0;
	menuOffsetTop = 0;
	menuWidth = menu.clientWidth;
	menuHeight = menu.clientHeight;
	if ( menuWidth == 0 ) menuWidth = 100;
	if ( menuHeight == 0 ) menuHeight = 637;
	while( menu ) {
		if (!isNaN( menu.offsetTop )) {
			menuOffsetTop += menu.offsetTop;
			menuOffsetLeft += menu.offsetLeft;
		}
		menu = menu.offsetParent;
	}
	Msg("Startup: NAV @ (" + menuOffsetLeft + "," + menuOffsetTop + ") Size (" + menuWidth + "," + menuHeight + ")<br>");

}

function Go() {
	Msg("Go()<br>");
}

var rollOverImages =new Array();
var activeRollover;

function LoadRollOver( imgName, imgSrc )
{
	rollOverImages[imgName]=new Object;
	rollOverImages[imgName].overImg = new Image;
	rollOverImages[imgName].overImg.src=imgSrc;
}

function rollover(imgName, rollOverImage )
{
	if ( activeRollover ) rollout( activeRollover );
	//window.status="rollover:'" + imgName + "'->'" + rollOverImage + "'";
	if (!document.images) return;
	if (!rollOverImages[imgName]) {
		LoadRollOver( imgName, rollOverImage );
	}
	if (!rollOverImages[imgName].outImg)
    {
		rollOverImages[imgName].outImg = new Image;
		rollOverImages[imgName].outImg.src = document.images[imgName].src;
    }
	document.images[imgName].src=rollOverImages[imgName].overImg.src;
	activeRollover = imgName;
}

function rollout(imgName)
{
	if (!document.images || !rollOverImages[imgName]) return;
	document.images[imgName].src=rollOverImages[imgName].outImg.src;
	activeRollover = null;
}


