var z_RIGHT = "right";


var MARGIN_BOTTOM = 0;
var MARGIN_RIGHT = 0;


var currentItem = null;




var menuTrail = new Array();




var currentStyleOff = null;


function zon(item, level, styleOn, styleOff, submenuId, submenuPosition) {


  if (item.onmouseout == null) {
    item.onmouseout = startOffTimer;
  }


 
  stopOffTimer();




  if (currentItem != null) {
    if (styleOff != currentStyleOff && currentStyleOff != null) {
      currentItem.className = currentStyleOff;
    } else {
      currentItem.className = styleOff;
    }
  }




  currentItem = item;
  item.className = styleOn;
  currentStyleOff = styleOff;




  if (submenuId != null && document.getElementById(submenuId)) 
  {


    hide(level);




    var menu = document.getElementById(submenuId);


    if (submenuPosition == z_BOTTOM) {
      menu.style.top = findOffsetTop(item) + item.offsetHeight + MARGIN_BOTTOM;
      menu.style.left = findOffsetLeft(item);
    }


    if (submenuPosition == z_RIGHT) {
      menu.style.top = findOffsetTop(item);
      menu.style.left = findOffsetLeft(item) + item.offsetWidth + MARGIN_RIGHT;
    }


    menu.style.visibility = "visible";


    menuTrail[level] = menu;
  } else {


   
    hide(level);
  }


}






function hide(level) {
  for (var i = level; i < menuTrail.length; i++) {
    menuTrail[i].style.visibility = "hidden";
  }
}




var timerID = null;
var timerOn = false;
var timecount = 250;


function startOffTimer() {
  if (timerOn == false) {
    timerID = setTimeout("offAll()", timecount);
    timerOn = true;
  }
}


function stopOffTimer() {
  if (timerOn) {
    clearTimeout(timerID);
    timerID = null;
    timerOn = false;
  }
}


function offAll() {
  hide(0);
  
  if (currentStyleOff != null) {
    currentItem.className = currentStyleOff;
  }
 


}


function findOffsetLeft(obj){
  var curleft = 0;
  if (obj.offsetParent){
    while (obj.offsetParent){
      curleft += obj.offsetLeft;
      obj = obj.offsetParent;
    }
  } else if (obj.x) {
    curleft += obj.x;
  }


  return curleft;
}


function findOffsetTop(obj){
  var curtop = 0;
  if (obj.offsetParent)	{
    while (obj.offsetParent){
      curtop += obj.offsetTop;
      obj = obj.offsetParent;
    }
  }else if (obj.y){
    curtop += obj.y;
  }


  return curtop;
}
