var kBottom=1;
var kTop=2;
var kLeft=3;
var kRight=4;
var ActiveA;
var ua;
var isIE = false;
ua = navigator.userAgent;
s = "MSIE";
if ((i = ua.indexOf(s)) >= 0) {
    isIE = true;
}
function FixAWidthInMenu( MenuID ) {
	if ( isIE ) {
		var OutEl = document.getElementById( MenuID );
		var AList = OutEl.getElementsByTagName("A");
		
		w = AList[0].offsetWidth;
		AList[0].style.width = w + "px";
		dw = AList[0].offsetWidth - w;
		w += dw;
		AList[0].style.width = w + "px";
	}
}

function OpenTopMenu( event,SubMenuID,Location)
{
	if ( isIE )
		SrcEl = window.event.srcElement;
	else
		SrcEl = event.currentTarget;
	var TheMenu = OpenMenu( SrcEl,SubMenuID,Location);
	SrcEl.onmouseout = MenuMouseOut;
	TheMenu.onmouseout = MenuMouseOut;
	SrcEl.menu = TheMenu;
	ActiveA = SrcEl;
	SrcEl.className += " selected";
}
function OpenSubMenu(event, SubMenuID, Location )
{
	if ( isIE )
		SrcEl = window.event.srcElement;
	else
		SrcEl = event.currentTarget;
	var cont = GetParrent( SrcEl, "DIV", "PopUpMenu" );
	if ( cont.ActiveA != null )	{
		CloseMenu( cont.ActiveA.menu );
		cont.ActiveA.className = "";
	}
	var TheMenu = OpenMenu( SrcEl,SubMenuID,Location);
	TheMenu.onmouseout = MenuMouseOut;
	SrcEl.menu = TheMenu;
	cont.ActiveA = SrcEl;
	SrcEl.className += " selected";
	if (isIE)
		window.event.cancelBubble = true;
	else
		event.stopPropagation();
	return false;
}
function OpenMenu(SrcEl,SubMenuID,Location) {
//debugger;
	FixAWidthInMenu( SubMenuID );
	var SubMenu = document.getElementById( SubMenuID );
	var top;
	var left;
	switch ( Location )	{
		case kBottom:
			top = SrcEl.offsetTop + SrcEl.offsetHeight + SrcEl.offsetParent.offsetTop + 10;
			left = SrcEl.offsetLeft + SrcEl.offsetParent.offsetLeft + SrcEl.offsetParent.offsetParent.offsetLeft;
			break;
		
		case kRight:	
			top = SrcEl.offsetTop + SrcEl.offsetParent.offsetTop;
			left = SrcEl.offsetLeft + SrcEl.offsetWidth + SrcEl.offsetParent.offsetLeft;
			break;
			
		default:
			alert("not implemented");
	}
	top += document.body.offsetTop;
	left += document.body.offsetLeft;
	SubMenu.style.top = top + "px";
	SubMenu.style.left = left + "px";
	if ( SubMenu.ActiveA != null )
	{
		SubMenu.ActiveA.className = "";
		CloseMenu( SubMenu.ActiveA.menu );
		SubMenu.ActiveA = null;
	}
	SubMenu.style.visibility = "visible";
	SubMenu.onmouseover = MOverPopup;
	return SubMenu;
}
function IsInPopupMenu( SrcEl )
{
	var node = SrcEl;
	while (node != null ) {
		if ( node.tagName == "DIV" && node.className.indexOf( "PopUpMenu" ) >=0 ) {
			return true;
		}
		node = node.parentNode;
	}
	return false;
}
function GetParrent( SrcEl, Tag, Class )
{
	var node = SrcEl;
	while (node != null ) {
		if ( node.tagName == Tag && node.className.indexOf( Class ) >=0 ) {
			return node;
		}
		node = node.parentNode;
	}
	return null;
}
function MenuMouseOut(event)
{
	if ( isIE )
		SrcEl = window.event.toElement;
	else
		SrcEl = event.relatedTarget;

	if ( !IsInPopupMenu( SrcEl ) )
	{
		if ( ActiveA != null ) {
			CloseMenu( ActiveA.menu );
			ActiveA.className = "";
			ActiveA = null;
		}
	}
}
function CloseMenu( AMenu )
{
	if ( AMenu != null )
	{
		if ( AMenu.ActiveA != null ) {
			CloseMenu( AMenu.ActiveA.menu );
			AMenu.ActiveA.className = "";
		}
		AMenu.style.visibility = "hidden";
	}
}
function MOverPopup(event)
{
	if ( isIE )
		el = window.event.srcElement;
	else
		el = event.currentTarget;
	var popup = GetParrent( el, "DIV", "PopUpMenu" );
	if ( popup.ActiveA != null )
	{
		CloseMenu( popup.ActiveA.menu );
		popup.ActiveA.className = "";
		popup.ActiveA = null;
	}
}

