
/* SIMenu.js 

01/26/2004 JCD - OpenMenu - Turned off scrollTop and scrollLeft adjustments to prevent scroll bar issues.
06/24/2004 SCD - Filter - Detect if browser can handle menu fade.

*/


var eDivMenuBar = null;
var eOpenMenuBarItem = null;
var eOpenMenu = null;

var openMenuStack = new Array;

function Push(eMenu)
{
	var count = openMenuStack.length;
	openMenuStack[count]= eMenu;
}
function Pop()
{
	var element = null;
	var count = openMenuStack.length;
	element = openMenuStack[count -1];
	openMenuStack.length = count - 1;
	return element
}
function Peek()
{
	var element = null;
	var count = openMenuStack.length;
	element = openMenuStack[count -1];
	return element
}
function InStack(eMenu)
{
	var index = 0;
	var count = openMenuStack.length;
	for( index = 0; index < count; index++ )
	{
		if( eMenu == openMenuStack[index] || openMenuStack[index].contains(eMenu))
			return true;
	}
	return false;
}

function WriteStack()
{
	var index = 0;
	var count = openMenuStack.length;
	Form1.TextBox1.innerText = ""
	for( index = 0; index < count; index++ )
	{
		Form1.TextBox1.innerText += openMenuStack[index].id + " --> "
	}
}

function OpenMenu(eSrc,eMenu)
{
	if( Peek() == eMenu)
		return;

	// Obtain Menu Div Control
	var eDivMenuBar = document.all[eMenu.id.substr(0,eMenu.id.indexOf("divMenu")) + "divMenuBar" ];
	
	var offsetLeft = 0;
	var offsetTop = 0;
	var currentElement = eSrc;
		
    while (currentElement) 
    {
        offsetLeft += currentElement.offsetLeft;
        offsetTop += currentElement.offsetTop;
// 		offsetTop -= currentElement.scrollTop;				01/26/2004 JCD - Turned off to prevent scroll bar issues.
//		offsetLeft -= currentElement.scrollLeft;
        currentElement = currentElement.offsetParent;
    }
  
/*
    if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined")
    {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
*/

	var screenWidth = document.body.clientWidth;
	var screenHeight = document.body.clientHeight;

	eMenu.style.display = "block"; // Turn it on so it can have dimension
	
	var menuWidth = eMenu.offsetWidth;
	var menuHeight = eMenu.offsetHeight;

	var menuTop = offsetTop;
	var menuLeft = offsetLeft;

	// Decide whether to pop above or below the Menu Bar
	if( !Peek() && eDivMenuBar.className == "divDropDownMenuBar")
	{	
		if( (offsetTop + eSrc.offsetHeight + menuHeight ) < screenHeight )
		{
			// Drop Down	
			menuTop += eSrc.offsetHeight;
		} else {
			// Drop Up
			menuTop -= menuHeight;
		}
		
		if ((offsetLeft + eSrc.offsetWidth + menuWidth ) > screenWidth )
		{
		
			// Drop Rigth 
			menuLeft -= (menuWidth - eSrc.offsetWidth);
		}
	}

	// Cascade Menu, decide whether to go left or righ
	if( Peek() || eDivMenuBar.className == "divCascadeMenuBar")
	{	
		if( (offsetLeft + eSrc.offsetWidth + menuWidth ) < screenWidth )
		{
			// Drop Left -- Add 2 to make up for border
			menuLeft += eSrc.offsetWidth + 2;
		} else {
			// Drop Right
			menuLeft -= menuWidth;
		}		
	}

	eMenu.style.top = menuTop;
	eMenu.style.left = menuLeft;

	eMenu.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration=0.5,overlap=1.0)";

	eMenu.style.visibility = "hidden";
	if (eMenu.filters[0] != null){
		eMenu.filters[0].Apply();
	}
	eMenu.style.visibility = "visible";
	if (eMenu.filters[0] != null){
	    eMenu.filters[0].Play();
	}
	Push(eMenu);
	
	/*
	// Hide all select boxes
	for (var x = 0; x < document.forms.length; x++){
		for (var i = 0; i < document.forms[0].elements.length; i++){
			if (document.forms[x].elements[i].type == "select-one"){
				//parent.resultsframe.addMessage(document.forms[x].elements[i].id);
				document.forms[x].elements[i].style.visibility = "hidden";
			}
		}
	}
	*/
}

function CloseAllMenus()
{
	var open = null;
	
	while (Peek())
	{
		open = Pop()
		open.style.display = "none";
		/*
		if (open.filters[0] != null){
			open.filters[0].Apply();
			open.style.visibility = "hidden";
			open.filters[0].Play();	
		}
		*/		
	}
	
	/*
	// Show all select boxes
	for (var x = 0; x < document.forms.length; x++){
		for (var i = 0; i < document.forms[0].elements.length; i++){
			if (document.forms[x].elements[i].type == "select-one"){
				document.forms[x].elements[i].style.visibility = "visible";
			}
		}
	}
	*/
}

function CloseMenu(eMenu)
{
	var open = null;
	
	if( Peek() )
	{
		open = Pop()
		open.style.display = "none";
		/*
		if (open.filters[0] != null){
			open.filters[0].Apply();
			open.style.visibility = "hidden";
			open.filters[0].Play();	
		}
		*/		
	}
}

function mouseOver()
{
	var eSrc = window.event.srcElement;

	if( !eSrc ) return;
	
	
	var sMsg = eSrc.className;

	// Obtain Menu being hovered over
	while(  eSrc.parentElement != null && eSrc.className != "clsMenuBarItem" && eSrc.className != "clsMenuBarImage" && eSrc.className != "clsMenuItem" && eSrc.className != "clsMenuItemImage") 
	{
		if ( eSrc.className == "clsMenuItem" && navigator.userAgent.indexOf("Mac") == -1){
			eSrc.className = "clsMenuItemOver";
		}
		eSrc = eSrc.parentElement;
		sMsg += "->"+ eSrc.className;
	}
	//window.status = "Mouse Over: " + sMsg;
	
	// See if the menu object being hovered over is a Menu Bar Item or a Menu Item	
	if (eSrc.className == "clsMenuBarItem" || eSrc.className == "clsMenuBarImage")
	{
		// Menu Bar
		if (eSrc.className == "clsMenuBarItem" && navigator.userAgent.indexOf("Mac") == -1){
			if( eOpenMenuBarItem && eOpenMenuBarItem != eSrc )
			{
				// Since this is a new Menu Bar Item, reset Menu Bar Item that is currently open. 
				eOpenMenuBarItem.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration=0.5,overlap=1.0)";
				if (eOpenMenuBarItem.filters[0] != null){
					eOpenMenuBarItem.filters[0].Apply();
				}
				eOpenMenuBarItem.className = "clsMenuBarItem";
				if (eOpenMenuBarItem.filters[0] != null){
					eOpenMenuBarItem.filters[0].Play();
				}
			}
			// Cache current Menu Bar Item and do class roll-over
			eOpenMenuBarItem = eSrc;
			eOpenMenuBarItem.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration=0.5,overlap=1.0)";
			if (eOpenMenuBarItem.filters[0] != null){
				eOpenMenuBarItem.filters[0].Apply();
			}
			eOpenMenuBarItem.className = "clsMenuBarItemOver";
			if (eOpenMenuBarItem.filters[0] != null){
				eOpenMenuBarItem.filters[0].Play();
			}
		}
		// Get Popup menu reference
		var eMenu = document.all[eSrc.id.replace("tdMenuBarItem","divMenu")];
		
		if (eMenu) 
		{
			// A new Popup is being requested, so remove all others until you run out or the only one open is the same one
			while( Peek() && Peek() != eMenu )
				CloseMenu();
			// Open Menu (won't open it if eMenu is already opened)
			OpenMenu(eSrc,eMenu);
		} else {
			// No popup available, so close all
			CloseAllMenus();
		}
	}
	else if (eSrc.className == "clsMenuItem" || eSrc.className == "clsMenuItemImage")
	{
		// Menu Item
		if (eSrc.className == "clsMenuItem" && navigator.userAgent.indexOf("Mac") == -1){
			eSrc.className = "clsMenuItemOver";
		}
		// Get Popup menu reference
		var eMenu = document.all[eSrc.id.replace("divMenuItem","divMenu")];
		
		if (eMenu) 
		{
			// A new Popup is being requested, so remove the last one unless the only one open is the same one
			if( Peek() && !Peek().contains(eSrc) && Peek() != eMenu )
				CloseMenu();
			// Open Menu (won't open it id eMenu is already opened)	
			OpenMenu(eSrc,eMenu);
		} 
		else 
		{
			// No popup available, so close if the src object isn't contained in the last opened menu
			if( Peek() && !Peek().contains(eSrc))
				CloseMenu();
		}
	} 
	if ( window.event.srcElement.className.indexOf("Menu") == -1)
	{
		// Not a Menu object so close all
		if( Peek() )
			CloseAllMenus();
		
		if( eOpenMenuBarItem )
		{
			eOpenMenuBarItem.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration=0.5,overlap=1.0)";
			if (eOpenMenuBarItem.filters[0] != null){
				eOpenMenuBarItem.filters[0].Apply();
			}
			eOpenMenuBarItem.className = "clsMenuBarItem";
			if (eOpenMenuBarItem.filters[0] != null){
				eOpenMenuBarItem.filters[0].Play();
			}
			eOpenMenuBarItem = null;
		}
	}
}

function mouseOut()
{
	var eSrc = window.event.srcElement;

	if( !eSrc ) return;
	
	var sMsg = eSrc.className;
	
	// Obtain Menu being hovered over
	while(  eSrc.parentElement != null && eSrc.className != "clsMenuItemOver" && eSrc.className != "clsMenuBarItemOver") 
	{
		if ( eSrc.className == "clsMenuItem" && navigator.userAgent.indexOf("Mac") == -1){
			//eSrc.className = "clsMenuItemOver";
		}
		eSrc = eSrc.parentElement;
		sMsg += "->"+ eSrc.className;
	}
	//window.status = "Mouse Out: " + sMsg;
	
	// Revert classes back when not hovering over them
	if ( eSrc.className == "clsMenuItemOver" && navigator.userAgent.indexOf("Mac") == -1){
		eSrc.className = "clsMenuItem";
	}
	if ( eSrc.className == "clsMenuBarItemOver" && navigator.userAgent.indexOf("Mac") == -1){
	//	eSrc.className = "clsMenuBarItem";
	}
}

function revealMenuPanel( image, id )
{
	if (document.getElementById){
		var ePanel = document.getElementById('MenuPanel_' + id);
		
		//parent.resultsframe.addMessage(ePanel);
	}
	else if (document.all) {
		var ePanel = document.all["MenuPanel_" + id];
	}
	
	if ( ePanel.style.display == "block" )
	{
		ePanel.style.display = "none";
		image.src = "images/menugadget_closed.gif"
	}
	else
	{
		ePanel.style.display = "block";
		image.src = "images/menugadget_opened.gif"
	}
}

if (document.all){
	//window.setInterval( WriteStack, 60 )
	document.onmouseover = mouseOver;
	document.onmouseout = mouseOut;
}

function PopupFeedback() {
	var oPop;
	oPop = window.open("SiteFeedback.aspx", "Popup", "width=550,height=325,toolbar=0,location=0,directories=0,status=0,scrollbars=no,resizable=1,copyhistory=0,top=2,left=2");
	oPop.opener = this;
}

function PopupUpload( id) {
	var oPop;
	oPop = window.open("CaseDocUpload.aspx?id=" + id, "Upload", "width=550,height=325,toolbar=0,location=0,directories=0,status=0,scrollbars=no,resizable=1,copyhistory=0,top=2,left=2");
	oPop.opener = this;
}
