var _menuLock;
var _menuTimer = new Array();
var _menuCounter = 0;

function showFixedMenu(id)
{
	window.clearTimeout(_menuTimer[_menuCounter]);
  l = document.getElementById(id);
  if (l.style.display != 'block')
  {
  	changeOpac(0,id);
  	_menuLock = true;
  	l.style.visibility = "visible";
  	l.style.display = "block";
  	fadeMenu(id);
  	_menuCounter++;
	}
	else
		changeOpac(100,id);
}

function openMenuStatic(id)
{
	window.clearTimeout(_menuTimer[_menuCounter]);
  changeOpac(0,id);
  _menuLock = true;
  l = document.getElementById(id);
  l.style.display = "block";
  fadeMenu(id);
}

function openMenu(event, id, noX, noY) {
  var el, x, y;
  
  el = document.getElementById(id);

  bW = document.body.clientWidth;
  bH = document.body.clientHeight;

  if (window.event) {
    sizeY = document.documentElement.clientHeight;

    mouseY = window.event.clientY;
    corrY = document.documentElement.scrollTop + document.body.scrollTop;
    x = window.event.clientX + document.documentElement.scrollLeft
                             + document.body.scrollLeft;
    y = window.event.clientY + corrY; 
  }
  else 
  {
    sizeY = window.innerHeight;
    mouseY = event.clientY;
    corrY = window.scrollY;
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  el.style.visibility = "visible";
  el.style.display = "block";

  w = document.getElementById(id).offsetWidth;
  h = document.getElementById(id).offsetHeight;

//  alert ("y=" + (event.clientY + h) + "sizeY=" + sizeY);
  
  if (w + x > bW) x -= (w + x) - bW;

  (window.event) ? overY = (window.event.clientY + h) - sizeY : overY = (event.clientY + h) - sizeY;
  if (overY > 0) y -= overY;

  if (y<0) y = 10;
  if (x<0) x = 10;
    
  x -= 20; y -= 20;
  
  if (noX) x = 0;
  if (noY) y = 0;
  
  el.style.left = x + "px";
  el.style.top  = y + "px";
  //el.style.display = "";
}

function closeMenu(event) {
  var current, related;

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

  if (current != related && !contains(current, related))
  {

		// window.setTimeout(function(){current.style.visibility = "hidden"; current.style.display = "none";}, 2000);

    current.style.visibility = "hidden";
    current.style.display = "none";
  }
}

function contains(a, b) 
{
  // als a node b bevat -> true
    while (b.parentNode)
      if ((b = b.parentNode) == a)
        return true;
    return false;
}


function killMenu(id)
{
  l = document.getElementById(id);
  //l.style.visibility = "hidden";
  l.style.display = "none";
  propertiesOpen = false;
  _menuLock = false;
}
