var objSetTimeout = null;
var TimerRunning = false;
var HideMenuTimeout = 300;
var args = '';
var parentControlID = '';

// Set Netscape up to run the "captureMousePosition" function whenever
// the mouse is moved. For Internet Explorer and Netscape 6, you can capture
// the movement a little easier.
if (document.layers) { // Netscape
	document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = captureMousePosition;
} else{
	document.onmousemove = captureMousePosition;
}

// Global variables
var xMousePos = 0; // Horizontal position of the mouse on the screen
var yMousePos = 0; // Vertical position of the mouse on the screen
var xMousePosMax = 0; // Width of the page
var yMousePosMax = 0; // Height of the page

function captureMousePosition(e) {
	if (document.layers) {
		// When the page scrolls in Netscape, the event's mouse position
		// reflects the absolute position on the screen. innerHight/Width
		// is the position from the top/left of the screen that the user is
		// looking at. pageX/YOffset is the amount that the user has 
		// scrolled into the page. So the values will be in relation to
		// each other as the total offsets into the page, no matter if
		// the user has scrolled or not.
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMousePosMax = window.innerWidth+window.pageXOffset;
		yMousePosMax = window.innerHeight+window.pageYOffset;
	} else if (document.all) {
		// When the page scrolls in IE, the event's mouse position 
		// reflects the position from the top/left of the screen the 
		// user is looking at. scrollLeft/Top is the amount the user
		// has scrolled into the page. clientWidth/Height is the height/
		// width of the current page the user is looking at. So, to be
		// consistent with Netscape (above), add the scroll offsets to
		// both so we end up with an absolute value on the page, no 
		// matter if the user has scrolled or not.
		if(document.body != null)
		{
		    xMousePos = window.event.x+document.body.scrollLeft;
		    yMousePos = window.event.y+document.body.scrollTop;
		    xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
		    yMousePosMax = document.body.clientHeight+document.body.scrollTop;
		}
	} else if (document.getElementById) {
		// Netscape 6 behaves the same as Netscape 4 in this regard 
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMousePosMax = window.innerWidth+window.pageXOffset;
		yMousePosMax = window.innerHeight+window.pageYOffset;
	}
}

function displayMenu(_hideMenuTimeout, _args, _parentControlID, _menuID)
{
    //alert('xMousePos:' + xMousePos + ' and yMousePos:' + yMousePos);
    args = _args;
    parentControlID = _parentControlID;
    HideMenuTimeout = _hideMenuTimeout;
    var menu = document.getElementById(_menuID);
    menu.style.posLeft=xMousePos-15;
    menu.style.posTop=yMousePos-5;
    menu.style.display="";
    menu.setCapture();
    
    var e = window.event;
    // prevent the event from bubbling up and causing the regular browser context menu to appear.
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation(); 
    if (e.preventDefault) e.preventDefault();

    return false;
    
}

function clickMenu(_menu) 
{
    _menu.releaseCapture();
    _menu.style.display='none';
    el = event.srcElement;
    //alert(parentControlID);
    var tmpArgs = el.id + ':' + args;
    __doPostBack(parentControlID,tmpArgs);
}


function switchMenu(_menu) 
{
    el=event.srcElement;
    if (el.className=="menuItem") 
    {
        el.className="hoverMenuItem";
        clearTimeout(objSetTimeout); 
        objSetTimeout = null; 
    }
    else if (el.className=="hoverMenuItem") 
    {
        el.className="menuItem";  
        clearTimeout(objSetTimeout); 
        objSetTimeout = null; 
    }

    else // if (el.className == "")
    {
        if(objSetTimeout == null)
        { 
            objSetTimeout = setTimeout('hideMenu(\'' + _menu.id + '\')', HideMenuTimeout);
        }
    }
}

function hideMenu(controlID)
{   
    var _menu = document.getElementById(controlID);
    if(TimerRunning){return;} 
    _menu.releaseCapture();
    //contextMenu.releaseCapture();
    //contextMenu.style.display='none';
    _menu.style.display='none';
}
