var currentVisibleEl = null;
var goingToHideSubMenu = false;
var allowedOnOvers = false;



function showSubMenu(el) {
  if (!allowedOnOvers) return;
  if (currentVisibleEl != null) {
    goingToHideSubMenu = true;
    hideSubMenuDiv(currentVisibleEl);
  }
  goingToHideSubMenu = false;
  var isCurrent = el.className.indexOf("cur") != -1;
  showSubMenuDiv(el);
}

function hideSubMenu(el) {
  if (!allowedOnOvers) return;
	if (currentVisibleEl != null) {
		goingToHideSubMenu = true;
		setTimeout("hideSubMenuDiv(currentVisibleEl);", 500);
	} else {
		var id = el.id;  
		var isCurrent = el.className.indexOf("cur") != -1;
		if (!isCurrent) {
			el.className = "mainmenu";
		} else {
			el.className = "mainmenu cur";
		}
	}
}

function showSubMenuDiv(el) {
  var id = el.id;
  var isCurrent = el.className.indexOf("cur") != -1;

  var curMenuItemPos = findPos(el);
  var curMenuWidth = el.offsetWidth;
  var el = document.getElementById("mainmenu");
  var totalWidth = el.offsetWidth;
  var menuPos = findPos(el);
  if (!isCurrent) {
    el = document.getElementById(id);
    el.className = "mainmenu over";
  }
  
  el = document.getElementById("submenu-" + id);
  if (el == null) {
    return;
  }

  var borderOffset = 3;
  currentVisibleEl = el;
  el.style.display = "block";
  var curSubMenuWidth = el.offsetWidth;
  var destinationPos = curMenuItemPos[0] - menuPos[0] + borderOffset;
  while (destinationPos + curSubMenuWidth + 12 + borderOffset > totalWidth) {
    destinationPos--;
  }
  
  while (destinationPos < 12 + borderOffset) {
    destinationPos++;
  }
  // el.style.width = curSubMenuWidth + "px";
  el.style.left = destinationPos + "px";
}

function hideSubMenuDiv(el) {
  if (goingToHideSubMenu)
  {
    var el = currentVisibleEl;
    if (el == null) {
      return;
    }
    el.style.display = "none";
	
	var id = el.id.substring(8);
	var MainMenuEl = document.getElementById(id);
	if (MainMenuEl.className.indexOf("cur") == -1) {
  	  MainMenuEl.className = "mainmenu";
	}

    currentVisibleEl = null;
    goingToHideSubMenu = false;
  }
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

function showDetails(checkbox, panelID)
{
	var panel = document.getElementById(panelID);
	if (panel != null && checkbox != null)
	{
		panel.style.display = checkbox.checked ? "block" : "none";
	}
}
