var versionOK = (parseInt(navigator.appVersion) >= 4);
var ns4 = false;
var menuReady = false;
var layerIndex;
function setUp()
  {
	if (!versionOK)
		return;
  if(document.layers)
		{
    ns4 = true;
    for(document.all=document.layers,x=0;x<document.all.length;x++)
      document.all[x].style=document.all[x];
		}
  if(!document.all)
    {
   	if(document.getElementsByTagName)
			{
			document.all=document.getElementsByTagName("div");
			}
    }
  for(x=0;x<layerIndex.length;x++)
		{
		var menuname = layerIndex[x];
		var element = document.all[menuname];
    element.layerid = menuname;
    element.style.held = 0;
    element.style.shown = 0;
    element.style.entered = 0;
		element.onmouseover = new Function("", "enter(this)");
		element.onmouseout  = new Function("", "leave(this)");
		}
	menuReady = true;
  }
function show(obj, layerid, nspos)
  {
	if (!menuReady)
		return;
	var element = document.all[layerid];
  if(element)
		{
		element.style.shown = 1;
    element.style.left = findX(obj)-10;
    if (ns4)
      element.style.top = findY(obj) + nspos;
    else
      element.style.top = findY(obj) + obj.offsetHeight;
	  element.style.visibility='visible';
		}
  }
function showRight(obj, layerid, nspos)
  {
	if (!menuReady)
		return;
	var element = document.all[layerid];
  if(element)
		{
		element.style.shown = 1;
    if (ns4)
      element.style.left = findX(obj) + nspos;
    else
      element.style.left = findX(obj) + obj.offsetWidth;
    element.style.top = findY(obj);
	  element.style.visibility='visible';
		}
  }
function hide(layerid)
  {
	if (!menuReady)
		return;
//java.lang.System.out.println('hide-');
	document.all[layerid].style.shown = 0;
	var inst = "hideNow('" + layerid + "')";
  setTimeout(inst, 50);
  }
function hideNow(layerid)
  {
	var element = document.all[layerid];
//java.lang.System.out.println('hideNow- entered=' + element.style.entered + ' shown=' + element.style.shown);
	if (element.style.entered == 0 && element.style.shown == 0)
	 	element.style.visibility='hidden';
  }
function enter(element)
  {
//java.lang.System.out.println('enter- element=' + element.layerid);
	element.style.entered = 1;
  }
function leave(element)
  {
//java.lang.System.out.println('leave- element=' + element.layerid);
	element.style.entered = 0;
	var inst = "hideAfterLeave('" + element.layerid + "')";
  setTimeout(inst, 50);
  }
function hideAfterLeave(layerid)
  {
	var element = document.all[layerid];
//java.lang.System.out.println('hideAfterLeave- element=' + element.layerid + ' shown=' + element.style.shown + ' entered=' + element.style.entered);
	if (element.style.shown == 0 && element.style.entered == 0)
		{
	 	element.style.visibility='hidden';
		}
  }
function findX(obj)
  {
  if (typeof obj.offsetLeft != 'undefined')
    {
    if (obj.offsetParent)
      return (obj.offsetLeft + findX(obj.offsetParent));
    else
      return obj.offsetLeft;
    }
  else
    if (typeof obj.x != 'undefined')
      return obj.x;
    else
      return 20;
  }
function findY(obj)
  {
  var yOffset, theParent;
  if (typeof obj.offsetTop != 'undefined')
    {
    yOffset = obj.offsetTop;
    theParent = obj.offsetParent;
    while (theParent)
      {
      yOffset += theParent.offsetTop;
      theParent = theParent.offsetParent;
      }
    return yOffset;
    }
  else
    if (typeof obj.y != 'undefined')
      return obj.y;
    else
      return 200;
  }
function showDiv(obj, layerid, pos)
  {
  var element = document.all[layerid];
  if (pos == 0)
    element.style.left = calcPosX(obj, element);
  else
    element.style.left = pos;
  element.style.top = calcPosY(obj, element);
  element.style.visibility='visible';
  }
function hideDiv(layerid)
  {
  document.all[layerid].style.visibility='hidden';
  }
function calcPosX(obj, element)
  {
  var x = findX(obj) - 10;
  var i;
  var winX;
  if (ns4)
    {
    i = window.pageXOffset + window.innerWidth - element.clip.width;
    winX = window.pageXOffset;
    }
  else
    {
    winX = document.body.scrollLeft;
    if (typeof winX == 'undefined')
      winX = window.pageXOffset;
    var winW = window.innerWidth;
    if (typeof winW == 'undefined')
      winW = document.body.offsetWidth;
    i = winX + winW - element.offsetWidth;
    }
  if (x > i)
    x = i - 20;
  if (x < winX)
    x = winX;
  return x;
  }
function calcPosY(obj, element)
  {
  var y;
  var i;
  var j;
  var winY;
  if (ns4)
    {
    y = findY(obj) + 15 + 15;
    i = window.pageYOffset + window.innerHeight - element.clip.height;
    j = findY(obj) - element.clip.height;
    winY = window.pageYOffset;
    }
  else
    {
    winY = document.body.scrollTop;
    if (typeof winY == 'undefined')
      winY = window.pageYOffset;
    var winH = window.innerHeight;
    if (typeof winH == 'undefined')
      winH = document.body.offsetHeight;
    y = findY(obj) + obj.offsetHeight + 15;
    i = winY + winH - element.offsetHeight;
    j = findY(obj) - element.offsetHeight;
    }
  if (y > i - 20)
    {
    if (winY <= j)
      y = j;
    }
  return y;
  }

