
//===============================================================
//  MENU FUNCTIONS
//===============================================================

var POPUP = null;
var strCrLf = "\x0D\x0A";

function nop()
{
}

function supportsPopup()
{
	return false; //navigator.userAgent.indexOf( "MSIE 5.5" ) != 0;
}

function supportsCapture()
{
	return navigator.userAgent.indexOf( "MSIE 5" ) != 0;
}

function doBeginMenu( Id )
{
	return "<div id=POPUP_MENU" +
		" onclick=\"onClick" + Id + "()\"" +
		" class=menu" +
		" onkeydown=\"onkeydownPopup()\"" + 
		" onmouseover=\"onmouseoverPopup()\"" +
		" onmouseout=\"onmouseoutPopup()\"" +
		" style=\"filter:blendTrans(duration=0.25);padding:0;margin:0;position:absolute;display:;visibility:hidden;width:100;z-index:98\">" + strCrLf +
		"<table cellpadding=0 cellspacing=0 width=\"100%\">" + strCrLf
}

function doEndMenu()
{
	//return doMenuSep() + doMenuItem( "mnuClose", "", "Close menu" ) + "</table></div>"
	return "</table></div>"
}

function doMenuHeading( Text )
{
	return "<tr>" + strCrLf +
		"<td class=menuIcon>&nbsp;<br></td>" + strCrLf +
		"<td class=menuHeading nowrap>" + Text + "<br></td>" + strCrLf +
		"</tr>" + strCrLf
}

function doMenuItem( Id, Button, Text )
{
	var HTML= "<tr>" + strCrLf;
	
	if( Button != "" )
		HTML = HTML + "<td id=" + Id + " class=menuIcon><img class=menuButton border=0 width=16 height=16 src=\"" + Button + "\"><br></td>" + strCrLf;
	else
		HTML = HTML + "<td id=" + Id + " class=menuIcon>&nbsp;<br></td>" + strCrLf;
	
	HTML = HTML + "<td id=" + Id + " class=menuItem nowrap>" + Text + "<br></td>" + strCrLf;
	HTML = HTML + "</tr>" + strCrLf;
	return HTML;
}

function doMenuCheck( Id, IsChecked, Text )
{
	var Button = "";
	if( IsChecked )
		Button = "/images/toolbar/menu_check.gif";
	return doMenuItem( Id, Button, Text );
}

function doMenuSep() 
{
	return "<tr>" + strCrLf + "<td colspan=2><hr></td>" + strCrLf + "</tr>" + strCrLf
}

function onkeydownPopup()
{
	if( window.event.keyCode == 27 ) {
		document.all.POPUP_MENU.click();
	}
}

function onmouseoverPopup()
{
	var srcElement = window.event.srcElement;
	
	switch( srcElement.className )
	{
		case "menuIcon":
			if( srcElement.tagName.toUpperCase() == "TD" )
				srcElement = srcElement.parentElement.cells(1);
			break;
		case "menuButton":
			srcElement = srcElement.parentElement.parentElement.cells(1);
			break;
	}
	
	switch( srcElement.className )
	{
		case "menuItem":
		case "highlightItem":
			if( srcElement.tagName.toUpperCase() == "TD" )
				srcElement.parentElement.cells(0).style.backgroundColor = "red"
			srcElement.className = "highlightItem"
			srcElement.style.cursor = "hand"
			break;
	}
}
	
function onmouseoutPopup()
{
	var srcElement = window.event.srcElement;
	
	switch( srcElement.className )
	{
		case "menuIcon":
			if( srcElement.tagName.toUpperCase() == "TD" )
				srcElement = srcElement.parentElement.cells(1);
			break;
		case "menuButton":
			srcElement = srcElement.parentElement.parentElement.cells(1);
			break;
	}
	
	switch( srcElement.className )
	{
		case "menuItem":
		case "highlightItem":
			if( srcElement.tagName.toUpperCase() == "TD" )
				srcElement.parentElement.cells(0).style.backgroundColor = ""
			srcElement.className = "menuItem";
			srcElement.style.cursor = "";
			break;
	}
}

function showPopupMenu( HTML )
{
	// get coordinates	
	var popupLeft = document.body.scrollLeft + window.event.clientX - 5;
	var popupTop = document.body.scrollTop + window.event.clientY - 5;
	
	// set popup menu HTML
	POPUP_MENU.outerHTML = HTML
	
	// the following two lines are *REQUIRED* to a work around an IE bug 
	// which prevents the display of <IMG> tags, which have not been
	// previously loaded
	window.event.cancelBubble = true;
	window.event.returnValue = false;
	
	// show popup menu
	POPUP_MENU.filters[0].apply();
	POPUP_MENU.style.visibility = "visible";
	POPUP_MENU.style.display = "";
	POPUP_MENU.filters[0].play();
	
	// check if extends past width
	rightMargin = document.body.clientWidth + document.body.scrollLeft - 5
	if( popupLeft + POPUP_MENU.offsetWidth > rightMargin ) {
		popupLeft = rightMargin - POPUP_MENU.offsetWidth
	}

	// check if extends past height
	bottomMargin = document.body.clientHeight + document.body.scrollTop - 5
	if( popupTop + POPUP_MENU.offsetHeight > bottomMargin ) {
		popupTop = bottomMargin - POPUP_MENU.offsetHeight
	}

	// show menu
	if( supportsPopup() ) {	
		POPUP = window.createPopup()
		POPUP.document.createStyleSheet( "/global.css" );
		POPUP.document.body.innerHTML = 
			"<div id=POPUP_MENU" + 
			" onclick=\"onClick" + Id + "()\"" + 
			" class=menu" + 
			" onmouseover=\"onmouseoverPopup()\"" + 
			" onmouseout=\"onmouseoutPopup()\"" + 
			" style=\"padding:0;margin:0;position:absolute;width:100;z-index:98\">" + strCrLf + 
			POPUP_MENU.innerHTML + 
			"</div>"
		POPUP.Show( popupLeft, popupTop, POPUP_MENU.offsetWidth, POPUP_MENU.offsetHeight, document.body );
		
	} 
	else {
		POPUP_MENU.style.posLeft = popupLeft;
		POPUP_MENU.style.posTop = popupTop;
		POPUP_MENU.style.visibility = "visible";
		POPUP_MENU.style.display = "";
	}
	
	// note: the popup menu is positioned so that it deliberately overlaps
	// the cursor position (this causes the hover state to be cancelled),
	// so that when the setCapture method is called, the appearance looks
	// right (this is required to work around bug in IE 5.0)
	if( supportsCapture() ) {
		if( supportsPopup() ) {
			POPUP.setCapture;
		}
		else { 
			window.event.srcElement.blur();
			POPUP_MENU.focus();
			window.setTimeout( "ShowPopupMenuCapture();", 1 );
		}
	}
	
}

function ShowPopupMenuCapture()
{
	POPUP_MENU.setCapture();
}

function hidePopupMenu()
{

	// hide popup menu
	if( supportsCapture() ) {
		if( supportsPopup() ) {
			POPUP.releaseCapture()
			POPUP = null
		}
		else {
			POPUP_MENU.releaseCapture()
		}
	}
	POPUP_MENU.style.display = "none"

}

