/*
	written by Stefan Braeu
	sb@screenteam.at
	
	(c) 2003 by screenteam
*/

var ie4=document.all && navigator.userAgent.indexOf("Opera") == -1
var ns6=document.getElementById&&!document.all
var ns4=document.layers

function showmenu(e, which, x, y, width, height)
{
	if (!document.all && !document.getElementById && !document.layers) 
	{
		alert ('die');
		return
	}
	
	clearhidemenu()
	
	menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
	menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj

	if (ie4||ns6)
		menuobj.innerHTML=which
	else
	{
		menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">' + which + '</layer>')
		menuobj.document.close()
	}

/*
	width=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
	height=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height

	if (width > max_width) 
	{
		width = max_width;
	}
	if (height > max_height) 
	{
		height = max_height;
	}
*/
	menuobj.contentheight = height;
	menuobj.contentwidth = width;
	
	menuobj.thestyle.width = width;
	menuobj.thestyle.height = height;
	
	eventX=ie4? event.clientX : ns6? e.clientX : e.x
	eventY=ie4? event.clientY : ns6? e.clientY : e.y

	//Find out how close the mouse is to the corner of the window
	var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
	var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
/*	
	//if the horizontal distance isn't enough to accomodate the width of the context menu
	if (rightedge<menuobj.contentwidth)
		//move the horizontal position of the menu to the left by it's width
		menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
	else
		//position the horizontal position of the menu where the mouse was clicked
		menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX
*/
	menuobj.thestyle.left = x;

/*	
	//same concept with the vertical position
	if (bottomedge<menuobj.contentheight)
		menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
	else
		menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
*/
		
	menuobj.thestyle.top = y;
	
	menuobj.thestyle.visibility="visible"
	
	return false
}

function contains_ns6(a, b) 
{
//Determines if 1 element in contained in another- by Brainjar.com
	while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
			
	return false;
}

function hidemenu()
{
	if (window.menuobj)
		menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}

function dynamichide(e)
{
	if (ie4&&!menuobj.contains(e.toElement))
		hidemenu()
	else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
		hidemenu()
}

function delayhidemenu()
{
	if (ie4||ns6||ns4)
		delayhide=setTimeout("hidemenu()",500)
}

function clearhidemenu()
{
	if (window.delayhide)
		clearTimeout(delayhide)
}

function highlightmenu(e,state)
{
	if (document.all)
		source_el=event.srcElement
	else if (document.getElementById)
		source_el=e.target
	
	if (source_el.className=="menuitems")
	{
		source_el.id=(state=="on")? "mouseoverstyle" : ""
	}
	else
	{
		while(source_el.id!="popmenu")
		{
			source_el=document.getElementById? source_el.parentNode : source_el.parentElement

			if (source_el.className=="menuitems")
			{
				source_el.id=(state=="on")? "mouseoverstyle" : ""
			}
		}
	}
}

if (ie4||ns6)
document.onclick=hidemenu

