
var menuHideTimeout = 500;

function $(id)
{
	return document.getElementById(id);
}

function mn_up(obj)
{
	obj.style.backgroundColor="#c7c7c7";
}

function mn_dn(obj)
{
	obj.style.backgroundColor="";
}

var openMenus = new Object();
var openMenusCnt = 0;

function menu_over(tgtid)
{
	$(tgtid).style.display = '';
	setMO(tgtid);
	
	openMenus[tgtid]=1;
	openMenusCnt++;
}

function menu_out(tgtid,immediate,hideTimeout)
{
	if (!$(tgtid))
		return 0;
	
	setMO("");

	if (!hideTimeout)
		hideTimeout = menuHideTimeout;
	
	if (!immediate)
		setTimeout("hideMenuObj('"+tgtid+"');",hideTimeout);
	else
		hideMenuObj(tgtid);
}

var mouseoverMenuID="";
function setMO(tgtid)
{

	bFlag=0;
	if (mouseoverMenuID && tgtid!="")
	{
		if (mouseoverMenuID.indexOf(tgtid)==-1)
			bFlag=1;
	}
	else
		bFlag=1;
				
	if (bFlag)
		mouseoverMenuID = tgtid;
}


function hideMenuObj(tgtid)
{
	if (mouseoverMenuID.indexOf(tgtid)==-1)
	{
		$(tgtid).style.display = 'none';
		
		openMenus[tgtid]=null;
		openMenusCnt--;
	}

}	

function hideAll()
{
	for(key in openMenus)
	{
		menu_out(key,true);
	}
	
	openMenus = new Object();
	openMenusCnt = 0;
}

function mOut(id,evt)
{
	element = $(id);
	
	var current_mouse_target = null;
	if( evt.toElement ) {				
		current_mouse_target 			 = evt.toElement;
	} else if( evt.relatedTarget ) {				
		current_mouse_target 			 = evt.relatedTarget;
	}
	if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
		menu_out(id);
	}

}

function is_child_of(parent, child) {
	try
	{
		if( child != null ) {			
			while( child.parentNode ) {
				if( (child = child.parentNode) == parent ) {
					return true;
				}
			}
		}
		return false;
	}
	catch(err)
	{
		return false;
	}
}

//debug
function d(str)
{
	$('debugtest').innerHTML += " ^"+str+"^";
}

function collapse_expand(container,handle)
{
	c = $(container);
	h = $(handle)
	
	curContainerHt = (c.style.height=='')? -1:parseInt(c.style.height);
	curHandleHt = (h.style.height=='')? 10:parseInt(h.style.height);
	
	curHandleHt += 5;

	if (curContainerHt==-1 || curContainerHt > h.style.height)
	{
		c.style.height = (curHandleHt)+'px';
		c.style.overflow = 'hidden';
		h.innerHTML = '+';
	}
	else
	{
		c.style.height = '';
		c.style.overflow = '';
		h.innerHTML = '-';
	}
	
}