Ysf.Dom.quiet = true;

PanelMenu = {
   timers: new Array (),
   elements: new Array (),
   offsetX: {'vertical': 0,  'horizontal': 154, 'default': 144, 'inverse': -144, 'left': -150},
   offsetY: {'vertical': 19, 'horizontal': 0,  'default': 0, 'inverse': 0, 'left': 0},
   
   enter: function (el) {
      var c = $child(el, 'ul');
      
      if (el.parentNode.parentNode.tagName.toLowerCase () == 'li') {
         this.hold(el.parentNode.parentNode);
      }
      if (c) {
         var r = el.parentNode.parentNode.parentNode;
         var orientation = 'default';
         if (r.tagName.toLowerCase () == 'map' && r.id == 'root-nav') {
         	orientation = 'vertical';
         } else if ($ancestor (el, 'map').id == 'root-nav') {
            orientation = 'inverse';
         } else if ($ancestor (el, 'map').id == 'main-left') {
            orientation = 'left';
         } else if (r.tagName.toLowerCase () == 'map' && r.id == 'main-nav') {
            orientation = 'horizontal';
         }
         c.style.zIndex = 100;
	     c.style.top = px(el.offsetTop + this.offsetY[orientation]);
	     c.style.left = px(el.offsetLeft + this.offsetX[orientation]);
	     c.style.display = 'block';
	  }
   },
   
   hold: function (el) {
      if (this.timers[el.id]) {
         clearTimeout(this.timers[el.id]);
      }
      if (el.parentNode.parentNode.tagName.toLowerCase () == 'li') {
         this.hold(el.parentNode.parentNode);
      }
   },
   
   exit: function (el) {
      this.elements[el.id] = el;
      this.timers[el.id] = setTimeout('PanelMenu.close(\'' + el.id + '\')', 200);
   },
   
   close: function (id) {
      el = this.elements[id];
      var c = $child(el, 'ul');
      if (c) {
         c.style.display = 'none';
      }
   }
};