/* 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) {

  var isOpen = false;
  var trg = xGetElementById(triggerId);
  var mnu = xGetElementById(menuId);
  
  // window.status='xPageX(trg)= ' +xPageX(trg)+ ' xPageY(trg)= '+xPageY(trg);
      
  if (trg && mnu) {
    xHide(mnu);
    xAddEventListener(trg, openEvent, onOpen, false);
  }
  function onOpen()
  {
    if (!isOpen) {
      if (document.all)
	  	{		
        mnu.style.filter += "progid:DXImageTransform.Microsoft.alpha(enabled=1,opacity=100)";
        mnu.style.filter += "progid:DXImageTransform.Microsoft.shadow(direction=135,color=#8E8E8E,strength=3)";
		  }
      //  alert('xPageX(trg)= ' +xPageX(trg)+ ' xPageY(trg)= '+xPageY(trg));
        
      xMoveTo(mnu, xPageX(trg), xPageY(trg)); 
      xShow(mnu);
      //xSlideTo(mnu, xPageX(trg), xPageY(trg) + xHeight(trg), slideTime);
      
      
      //alert(mnu.offsetLeft);
      
      var intervalX = Math.ceil(mnu.offsetWidth / 10);
      var intervalY = Math.ceil(mnu.offsetHeight / 10);
      menu_slide_left(menuId, intervalX, intervalY, mnu.offsetWidth, 0, 0);
      
      xAddEventListener(document, 'mousemove', onMousemove, false); //PW: this naming is weird fix it.... 
      isOpen = true;
    }
  }
  function onMousemove(ev)
  {
    var e = new xEvent(ev);
    if (!xHasPoint(mnu, e.pageX, e.pageY, -mouseMargin) &&
        !xHasPoint(trg, e.pageX, e.pageY, -mouseMargin))
    {
      xRemoveEventListener(document, 'mousemove', onMousemove, false);
      //xSlideTo(mnu, xPageX(trg), xPageY(trg), slideTime);
      setTimeout("xHide('" + menuId + "')", slideTime);
      isOpen = false;
    }
  }
} // end xMenu1A



// internet explorer slide menu open from left
function menu_slide_left(menuid, intervalX, intervalY, clipX, clipY, opacity)
{
	var menuobj = xGetElementById(menuid);
	
	if (clipX < menuobj.offsetWidth || clipY < menuobj.offsetHeight)
	{
 		if (document.all)
		{
			opacity += 10;
			menuobj.filters.item('DXImageTransform.Microsoft.alpha').opacity = opacity;
		}
		clipX += intervalX;
		clipY += intervalY;
		menuobj.style.clip = "rect(auto, " + clipX + "px, " + clipY + "px, auto)";
		slidetimer = setTimeout("menu_slide_left('" + menuid + "', " + intervalX + ", " + intervalY + ", " + clipX + ", " + clipY + ", " + opacity + ");", 0);
	}
	else
	{
   // if (slidetimer) { //PW quick hack if check cause its not always around... (need to test if this breaks things)
    //  clearTimeout(slidetimer);
  //  }
	}
}


