var visibleMenu = new Array()
var visibleCount = -1;
var mnu = false;

var ie5 = (document.getElementById && document.all);
var ns6 = (document.getElementById && !document.all);
var isMac = navigator.userAgent.indexOf("Mac") != -1

function showMenu(item, parent, menu, d, clName)
{
	parent = document.getElementById(parent);
	menu = document.getElementById(menu);
	var mainTable = document.getElementById("mainTable");	
    switch (d)
    {
	case 'tl':
		newLeft = mnPosX(item);
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(item) + item.offsetWidth - menu.offsetWidth;
		newTop = mnPosY(item); // + item.offsetHeight + 1;
		break;
	case 'bl':
		newLeft = mnPosX(item) + 2;
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(item) + item.offsetWidth - menu.offsetWidth;
		if ((isMac) && (ie5))
		{
			newTop = document.getElementById("pathTable").offsetTop + item.offsetHeight;
			break;
		}
		if (ie5) 
			newTop = mnPosY(item) + item.offsetHeight + 6;
		if (ns6)
			newTop = mnPosY(item) + item.offsetHeight;
			break;
	case 'bl2':
		newLeft = mnPosX(parent);
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(parent) + item.offsetWidth - menu.offsetWidth;
			if (ie5) 
			newTop = mnPosY(parent) + parent.offsetHeight;
		if (ns6)
			newTop = mnPosY(parent) + parent.offsetHeight;
		if (isMac)
		  if (ie5)
			    newTop = parent.offsetHeight;
		break;
		case 'bl3':
		newLeft = mnPosX(item) + 2;
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(item) + item.offsetWidth - menu.offsetWidth;
		if (ie5) 
			newTop = mnPosY(item) + item.offsetHeight + 6;
		if ((ns6) || (isMac))
			newTop = mnPosY(item) + item.offsetHeight;
			break;
	case 'leolia':
		newLeft = mnPosX(item);
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(item) + item.offsetWidth - menu.offsetWidth;
		newTop = mnPosY(item) + item.offsetHeight;
		break;
	case 'ParentTopRight':
		newLeft = mnPosX(parent) + parent.offsetWidth - 1;
		if (!isMac)
			newLeft += 3;
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(parent) + item.offsetWidth - menu.offsetWidth;
		newTop = mnPosY(parent);		
		break; 
	case 'rd':
	default:
		newLeft = mnPosX(item) + item.offsetWidth;
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(item) - menu.offsetWidth + 1;
		newTop = mnPosY(item);
		if (newTop + menu.offsetHeight > window.document.body.clientHeight)
			newTop = mnPosY(item) - menu.offsetHeight + item.offsetHeight;
		break;
	case 'tp7':
		newLeft = mnPosX(parent);
		if (newLeft + menu.offsetWidth > window.document.body.clientWidth)
			newLeft = mnPosX(parent) + item.offsetWidth - menu.offsetWidth;
		newTop = mnPosY(parent) ;
		menu.style.width = parent.clientWidth; 
		break;     
	}
	if ((isMac) && (ie5))
	{
		newLeft = newLeft - mainTable.offsetLeft;
	}
    menu.style.left = newLeft;
    menu.style.top = newTop;
	if (visibleMenu[visibleCount] != parent)
		collapseTo(parent);
	if (visibleMenu[visibleCount] == menu)
		return ;
	menu.style.display="";
	visibleCount++;
	visibleMenu[visibleCount] = menu;
	changeClass(item, clName, false);
	if (d != 'ParentTopRight')
		changeClass(parent, clName, false);
}

function menuOut(menu, parentItem, parentMenu, clName)
{
	parentItem = document.getElementById(parentItem);
	parentMenu = document.getElementById(parentMenu);
		if (isMouseOnObject(menu) || isMouseOnObject(visibleMenu[visibleCount]) || isMouseOnObject(parentItem))
			mnu = true;
		else
		{
		mnu = false;
		if (isMouseOnObject(parentMenu))
			collapse(menu);
		else
		{
			collapseAll();
			window.status='';
			changeClass(parentItem, clName, false);
		}
	}
}

function collapse(menu)
{
	var pos = -1;
	for (i=0; i < visibleCount+1; i++)
	{
		if ((pos < 0) && (visibleMenu[i] == menu))
			pos = i;
		if (pos >= 0)
		{
			visibleMenu[i].style.display="none";
			visibleMenu[i] = null;
		}
	}
	if (pos >= 0)
		visibleCount = pos-1;
}

function collapseAll()
{
	collapse(visibleMenu[0]);
}

function collapseTo(menu)
{
	for (i=0; i < visibleCount; i++)
		if (visibleMenu[i] == menu)
		{
			collapse(visibleMenu[i+1]);
			return ;
		}
	collapseAll();
}

function mnPosX(element)
{
	var x = 0;
	do 
	{
		if (element.style.position == 'absolute') 
		{
			return x + element.offsetLeft; 
		}
		else
		{
			x += element.offsetLeft;
			if (element.offsetParent) 
				if (element.offsetParent.tagName == 'TABLE') 
					if (parseInt(element.offsetParent.border) > 0)
					{
						x += 1; 
					}
		}
	}
	while ((element = element.offsetParent));
	return x; 
}

function mnPosY(element)
{
	var y = 0;
	do 
	{
		if (element.style.position == 'absolute') 
		{
			return y + element.offsetTop; 
		}
		else
		{
			y += element.offsetTop;
			if (element.offsetParent) 
				if (element.offsetParent.tagName == 'TABLE') 
					if (parseInt(element.offsetParent.border) > 0)
					{
						y += 1; 
					}
		}
	}
	while ((element = element.offsetParent));
	return y; 
}

function hideMenu(parent, elem, clName)
{
	elem = document.getElementById(elem);
	{
		if (!isMouseOnObject(elem))
			collapse(elem);
	}
	unselectItem(parent, clName);
}

function unselectItem(elem, clName)
{
	window.status='';
	changeClass(elem, clName, false);
}

function isMouseOnObject(obj)
{
	if (obj)
	{
		var objLeft = mnPosX(obj) - window.document.body.scrollLeft; 
		var objTop = mnPosY(obj) - window.document.body.scrollTop; 
		var objRight = objLeft + obj.offsetWidth; 
		var objBottom = objTop + obj.offsetHeight;

	if (ie5)
		{
		if ((event.x > objLeft) && (event.x < objRight) && 
				(event.y > objTop) && (event.y < objBottom))
			return true; 
		else	
			return false;
		}
		else if (ns6)
		{
		if ((newLeft > objLeft) && (newLeft < objRight) && 
				(newTop > objTop) && (newTop < objBottom))
			return true; 
		else	
			return false;
		}

	}
	return false; 
}

function changeClass(elem, clName, recursive)
{
	var i;
	elem.className = clName;
	if (ie5 && recursive && elem.children)
		for (i=0; i < elem.children.length; i++)
			if ((elem.children[i].tagName.toUpperCase() != "DIV"))
				changeClass(elem.children[i], clName, recursive);
}

function changeSource(obj, img)
{
	document.getElementById(obj).src = img;
}

function _HandleCR(obj)
{
	if (window.event.keyCode == 13)
		return false;
	else
		return true;
}

function _GetSearchResult(obj)
{
	if (ie5)
		window.document.location = "CtrlSearchResult.ascx?expression=" + window.document.all["edtSearch"].value;
	else
		if (ns6)
		{
			window.document.location = "CtrlSearchResult.ascx?expression=" +  document.getElementById("edtSearch").value;
		}
}