var Menu = function(){
	var prev = null;
  var overElem = false;
  var idtimeout = null;
  var _idMenu = null;
  
  function checkVisibile(){
  	if (!overElem && prev != null){
    	prev.parentNode.className = "";
      var dd = prev.parentNode.parentNode.getElementsByTagName("ul");
      if (dd && dd.length > 0)
    		dd[0].style.display = "none";
      prev = null;
    }
  }
  
  function over(){
  	if (idtimeout != null)
    	clearTimeout(idtimeout);
  	overElem = true;
  }
  
  function out(){
  	overElem = false;
    idtimeout = setTimeout(checkVisibile,300);
  }
  
  function show(){
  	resetLeft();
  	if (prev != null){
    	prev.parentNode.className = "";
      var dd = prev.parentNode.parentNode.getElementsByTagName("ul");
      if (dd && dd.length > 0)
	    	dd[0].style.display = "none";
    }
  	this.parentNode.className = "hover";
  	var dd = this.parentNode.parentNode.getElementsByTagName("ul");
    if (dd && dd.length > 0)
	    dd[0].style.display = "inline";
    prev = this;
    over();
  }  
  
  function getOffsetTop(elm) {
    var mOffsetTop = elm.offsetTop;
    var mOffsetParent = elm.offsetParent;
  
    while(mOffsetParent){
      mOffsetTop += mOffsetParent.offsetTop;
      mOffsetParent = mOffsetParent.offsetParent;
    }
    return mOffsetTop;
  }
  
  function getOffsetLeft(elm){
    var mOffsetLeft = elm.offsetLeft;
    var mOffsetParent = elm.offsetParent;  
    while(mOffsetParent){
      mOffsetLeft += mOffsetParent.offsetLeft;
      mOffsetParent = mOffsetParent.offsetParent;
    }
    return mOffsetLeft;
  }
  
  function resetLeft(){
  	var elems = document.getElementById(_idMenu).getElementsByTagName("a");
    for (var i = 0; i < elems.length; i++){
    	if (elems[i].parentNode.tagName == "H1"){
        var ul = elems[i].parentNode.parentNode.getElementsByTagName("ul");
        if (ul && ul.length){
          ul = ul[0];
          var left = getOffsetLeft(elems[i].parentNode) - 8;
          var top = getOffsetTop(elems[i].parentNode) + 26;
          ul.style.left = left;
          ul.style.top = top;
          ul.setAttribute("style","top:" + top + "px; left:" + left + "px;")
        }
      }
    }  
  }
  
	return{
  	init : function(idMenu){
    	_idMenu = idMenu;   
    	var elems = document.getElementById(idMenu).getElementsByTagName("a");
      for (var i = 0; i < elems.length; i++){
      	if (elems[i].parentNode.tagName == "H1"){
    	   	elems[i].onmouseover = show;
          var ul = elems[i].parentNode.parentNode.getElementsByTagName("ul");
          if (ul && ul.length){
            ul = ul[0];
            ul.style.position = "absolute";
            var left = getOffsetLeft(elems[i].parentNode) - 8;
            var top = getOffsetTop(elems[i].parentNode) + 26;
            ul.style.left = left;
            ul.style.top = top;
            ul.setAttribute("style","top:" + top + "px; left:" + left + "px;")
          }
        }
        else
      	 	elems[i].onmouseover = over;
      	elems[i].onmouseout = out; 
      }
    }  
  }
}();