
/* xMenu1A Object Prototype

  Parameters:
    triggerId   - id string of trigger element.
    menuId      - id string of menu.
    mouseMargin - integer margin around menu;
                  when mouse is outside this margin the menu is hid.
    slideTime   - integer time for menu slide (in milliseconds).
    openEvent   - string name of event on which to open menu ('click', 'mouseover', etc).
*/

function xMenu1A(triggerId, menuId, mouseMargin, slideTime, openEvent, baseClass)
{
  var isOpen = false;
  var trg = xGetElementById(triggerId);
  var mnu = xGetElementById(menuId);
  var css = baseClass;
  var cnt = 0;
  if (trg && mnu) {
    mnu.hasChildOpen = false;
	xMoveTo(mnu, xPageX(trg) - (xWidth(mnu) -  xWidth(trg)), xPageY(trg) + xHeight(trg));
    xHide(mnu);
	xMoveTo(mnu, xPageX(trg) - (xWidth(mnu) -  xWidth(trg)), xPageY(trg) + xHeight(trg));
    xAddEventListener(trg, openEvent, onOpen, false);
  }
  function onOpen()
  {
    if (!isOpen) {
	  cnt++
	  xMoveTo(mnu, xPageX(trg) - (xWidth(mnu) -  xWidth(trg)), xPageY(trg) + xHeight(trg));
      xShow(mnu);
	  if(cnt < 3)
	  {
	      xMoveTo(mnu, xPageX(trg) - (xWidth(mnu) -  xWidth(trg)), xPageY(trg) + xHeight(trg));
	  }
      xAddEventListener(document, 'mousemove', onMousemove, false);
      isOpen = true;
	  trg.className = 'TabMenuOver';
    }
  }
  function onMousemove(ev)
  {
    var e = new xEvent(ev);
    if (!xHasPoint(mnu, e.pageX, e.pageY, -mouseMargin) &&
        !xHasPoint(trg, e.pageX, e.pageY, -mouseMargin) && !mnu.hasChildOpen)
    {
      xRemoveEventListener(document, 'mousemove', onMousemove, false);
      setTimeout("xHide('" + menuId + "')", slideTime);
  	  trg.className = css;
      isOpen = false;
    }
  }
} // end xMenu1A

//submenu 3rd
function xMenu3A(triggerId, menuId, mouseMargin, slideTime, openEvent, parent)
{
  var isOpen = false;
  var trg = xGetElementById(triggerId);
  var mnu = xGetElementById(menuId);
  var parent = xGetElementById(parent);
  if (trg && mnu) {
    xHide(mnu);
    xAddEventListener(trg, openEvent, onOpen3, false);
  }
  function onOpen3()
  {
    if (!isOpen) {
      xMoveTo(mnu, xWidth(trg), xPageY(trg) - xPageY(parent) - 4);
      xShow(mnu);
      xAddEventListener(document, 'mousemove', onMousemove, false);
      isOpen = true;
	  parent.onOpen;
	  parent.hasChildOpen = true;
	  trg.className = 'dover';
    }
  }
  function onMousemove(ev)
  {
    parent.onOpen;
    var e = new xEvent(ev);
    trg.className = 'dover';
    if (!xHasPoint(mnu, e.pageX, e.pageY, -mouseMargin) &&
        !xHasPoint(trg, e.pageX, e.pageY, -mouseMargin))
    {
      xRemoveEventListener(document, 'mousemove', onMousemove, false);
      setTimeout("xHide('" + menuId + "')", slideTime);
      isOpen = false;
	  parent.hasChildOpen = false;
	  trg.className = 'dnormal';
    }
  }
} // end xMenu3A
