//original code by ruel mandoza
//this menu function can be set to call AJAX databind
window.onload = function()
{//Initialize menu on page load
  new xMenu1('trigger1', 'menu1', 10, 'mouseover');
  new xMenu1('trigger2', 'menu2', 10, 'mouseover');
  new xMenu1('trigger3', 'menu3', 10, 'mouseover');
  new xMenu1('trigger4', 'menu4', 10, 'mouseover');

  new xMenu2('trigger5', 'menu5', 2, 'mouseover');
  new xMenu2('trigger6', 'menu6', 2, 'mouseover');
  new xMenu2('trigger7', 'menu7', 2, 'mouseover');
	//new xMenu2('trigger8', 'menu8', 2, 'mouseover');
		//new xMenu2('trigger9', 'menu9', 0, 'mouseover');
	//new xMenu2('trigger10', 'menu10', 2, 'mouseover');
		//new xMenu2('trigger11', 'menu11', 0, 'mouseover');
	//new xMenu2('trigger12', 'menu12', 2, 'mouseover');
		//new xMenu2('trigger13', 'menu13', 0, 'mouseover');
  new xMenu2('trigger14', 'menu14', 2, 'mouseover');
  new xMenu2('trigger15', 'menu15', 2, 'mouseover');
  new xMenu2('trigger16', 'menu16', 2, 'mouseover');
  new xMenu2('trigger17', 'menu17', 2, 'mouseover');
  if(menuOn != null && trig != null){
  loadMenu(menuOn,trig);
  }
  if(menuChild != null && childTrig != null){
	  loadChildMenu(menuChild,childTrig);
  }
  if(childParent != null && childParentTrig != null){
	  loadChildMParent(childParent,childParentTrig);
  }
  if(childMenu != null && childMenuTrig != null){
	  loadParentChildMenu(childMenu,childMenuTrig);
  }
}

var layerOn;

function getOffSetx(obj) {
	return(obj.offsetParent);
}
//build main menu on call
function xMenu1(triggerId, menuId, mouseMargin, openEvent)
{
  var isOpen = false;
  var trg = xGetElementById(triggerId);
  var mnu = xGetElementById(menuId);
  if (trg && mnu) {
    xAddEventListener(trg, openEvent, onOpen, false);
  }
  function onOpen()
  {
    if (!isOpen) {
      xMoveTo(mnu, 90, (findPosY(triggerId)) - 2);
      xShow(mnu);
      xAddEventListener(document, 'mousemove', onMousemove, false);
      isOpen = true;
	  trg.src = trg.src.replace("_off","_on");
    }
  }
  function onMousemove(ev)
  {
    var e = new xEvent(ev);
    if (!xHasPoint(mnu, e.pageX, e.pageY, -mouseMargin) &&
        !xHasPoint(trg, e.pageX, e.pageY, -mouseMargin))
    {
      xHide(mnu);
      xRemoveEventListener(document, 'mousemove', onMousemove, false);
      isOpen = false;
	  trg.src = trg.src.replace("_on","_off");
  if(menuOn != null && trig != null){
  loadMenu(menuOn,trig);
  }
  if(menuChild != null && childTrig != null){
	  loadChildMenu(menuChild,childTrig);
  }
  if(childParent != null && childParentTrig != null){
	  loadChildMParent(childParent,childParentTrig);
  }
  if(childMenu != null && childMenuTrig != null){
	  loadParentChildMenu(childMenu,childMenuTrig);
  }
    }
  }
} 
// build sub menu and child menu on parent call
function xMenu2(triggerId, menuId, mouseMargin, openEvent)
{
  var isOpen = false;
  var trg = xGetElementById(triggerId);
  var mnu = xGetElementById(menuId);
  if (trg && mnu) {
    xAddEventListener(trg, openEvent, onOpen, false);
  }
  function onOpen()
  {
    if (!isOpen) {
      xMoveTo(mnu, 0, (findPosY(triggerId)) + 0);
      xShow(mnu);
      xAddEventListener(document, 'mousemove', onMousemove, false);
      isOpen = true;
	  trg.src = trg.src.replace("_off","_on");
	  mnu.style.height = "auto";
	}
  }
  function onMousemove(ev)
  {
    var e = new xEvent(ev);
    if (!xHasPoint(mnu, e.pageX, e.pageY, -mouseMargin) &&
        !xHasPoint(trg, e.pageX, e.pageY, -mouseMargin))
    {
      xHide(mnu);
      xRemoveEventListener(document, 'mousemove', onMousemove, false);
      isOpen = false;
	  trg.src = trg.src.replace("_on","_off");
	  mnu.style.height = "auto";
  if(menuChild != null && childTrig != null){
	  loadChildMenu(menuChild,childTrig);
  }	  
  if(childParent != null && childParentTrig != null){
	  loadChildMParent(childParent,childParentTrig);
  }	  
  if(childMenu != null && childMenuTrig != null){
	  loadParentChildMenu(childMenu,childMenuTrig);
  }
    }
  }
}

function loadMenu(mnu,trg){
  var mnu = xGetElementById(mnu);
  var trg = xGetElementById(trg);
  xMoveTo(mnu, 90, (findPosY(trg)) - 2);
  if(mnu=='menu1')
  	document.write("hello");
  xShow(mnu);
  isOpen = true;
  trg.src = trg.src.replace("_off","_on");  
}

function loadChildMenu(mnu,trg){
  var mnu = xGetElementById(mnu);
  var trg = xGetElementById(trg);
  xMoveTo('menu1', 90, (findPosY('trigger1')) - 2);
  xShow(mnu);
  isOpen = true;
  trg.src = trg.src.replace("_off","_on");
}

function loadChildMParent(mnu,trg){
  var mnu = xGetElementById(mnu);
  var trg = xGetElementById(trg);
  xMoveTo(mnu, 0, (findPosY(trg)) + 0);
  xShow(mnu);
  isOpen = true;
  trg.src = trg.src.replace("_off","_on");
  mnu.style.height = "auto";
}

function loadParentChildMenu(mnu,trg){
  var mnu = xGetElementById(mnu);
  var trg = xGetElementById(trg);
  xMoveTo(mnu, 0, (findPosY(trg)) + 0);
  xShow(mnu);
  isOpen = true;
  trg.src = trg.src.replace("_off","_on");
  mnu.style.height = "auto";
}

function onMenuOver(trg){
	trg.src = trg.src.replace("_off","_on");
}
function onMenuMove(trg){
	trg.src = trg.src.replace("_on","_off");
}
