
	//  Global 'corrector' for IE/Mac et al., but doesn't hurt others
	var fudgeFactor = {top: -1, left: -1};

	//  Global x position variable
	var edgeX;

    //  Global timeout
    var theTimeout;

	//  Global script object
	var globel;

	//  Center a positionable element whose name is passed as a parameter
	//  in the current window/frame, and show it
	function centerIt(layerName)
		{
		// 'obj' is the positionable object
		var obj = getRawObject(layerName);
		// set fudgeFactor values only first time
		if (fudgeFactor.top == -1)
			{
			if ((typeof obj.offsetTop == "number") && obj.offsetTop > 0)
				{
				fudgeFactor.top = obj.offsetTop;
				fudgeFactor.left = obj.offsetLeft;
				}
			else
				{
				fudgeFactor.top = 0;
				fudgeFactor.left = 0;
				}
			if (obj.offsetWidth && obj.scrollWidth)
				{
				if (obj.offsetWidth != obj.scrollWidth)
					{
					obj.style.width = obj.scrollWidth;
					}
				}
			}
		var x = Math.round((getInsideWindowWidth()/2) - (getObjectWidth(obj)/2));
		var y = Math.round((getInsideWindowHeight()/2) - (getObjectHeight(obj)/2));
		edgeX = x-fudgeFactor.left;
		if (edgeX < 0)
			{
			edgeX = 0;
			}
		shiftTo(obj, edgeX, 42);
		show(obj);
		}

function positionSubMenu(layerName, x, y)
		{
		// 'obj' is the positionable object
		var obj = getRawObject(layerName);

		// set fudgeFactor values only first time
		if (fudgeFactor.top == -1)
			{
			if ((typeof obj.offsetTop == "number") && obj.offsetTop > 0)
				{
				fudgeFactor.top = obj.offsetTop;
				}
			else
				{
				fudgeFactor.top = 0;
				}
			}

		shiftTo(obj, x, y);
		}

function openMenu(event, id, x, y) {
  var el, x, y;

  if (theTimeout) clearTimeout(theTimeout);
  closeFromOpen();

  positionSubMenu(id, x, y);
  el = document.getElementById(id);
  if (window.event) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  else {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }
  x -= 2; y -= 2;
  //el.style.left = x + "px";
  //el.style.top  = y + "px";
  el.style.visibility = "visible";
}

function closeMenu(event, id) {
  var el, current, related, topEl;

  if (theTimeout) clearTimeout(theTimeout);
  el = document.getElementById(id);
  globel = el;

  if (window.event) {
    current = el;
    related = window.event.toElement;
  }
  else {
    current = event.currentTarget;
    related = event.relatedTarget;
  }

  if (current != related && !contains(current, related) && !contains(el, related))  {
		theTimeout = setTimeout("globel.style.visibility = 'hidden';", 500);
    // Changed this line to add the delay before the hide command is executed.
    // Change the '500' to leave menus up longer.  It is in milliseconds.
  }
}

function closeFromOpen()  {
    var el, id;

    for(var i=1; i<1; i++)  {
    id = "subMenu" + i;
    el = document.getElementById(id);
    el.style.visibility = "hidden";
    }
}

function contains(a, b) {

  // Return true if node a contains node b.

  while (b.parentNode)
    if ((b = b.parentNode) == a)
      return true;
  return false;
}

function handleResize()
	{
	if (isNN4)
		{
		//  causes extra re-draw, but gotta do it to get banner object color drawn
		location.reload();
		}
	else
		{
		centerIt('pagediv')
		}
	}

window.onresize = handleResize;
