//defaults
var defaultMenuWidth='165px'; 
var defaultMenuBackgroundColor='white';  
var defaultDisappearDelay=250;
var defaultHideMenuOnClick="yes";
var disappear;
var dropX;
var dropY;
var height;
var width;

document.onmousemove=checkMouseXY;

document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+defaultMenuWidth+';background-color:'+defaultMenuBackgroundColor+';position:absolute;left:0px;top:0px;" onMouseover="clearhidemenu()"></div>')

function getposOffset(what, offsettype)
{
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null)
	{
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}


function showhide(obj, e, visible, hidden, defaultMenuWidth)
{
	dropmenuobj.style.left=dropmenuobj.style.top="-500px"
	if (defaultMenuWidth!="")
	{
		dropmenuobj.widthobj=dropmenuobj.style
		dropmenuobj.widthobj.width=defaultMenuWidth
	}
	
	if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
		obj.visibility=visible
	else if (e.type=="click")
		obj.visibility=hidden
}

function iecompattest()
{
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge)
{
	var edgeoffset=0
	if (whichedge=="rightedge")
	{
		var windowedge=!window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
		if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
			edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
	}
	else
	{
		var topedge=!window.opera? iecompattest().scrollTop : window.pageYOffset
		var windowedge=!window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
		dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
		{ //move up?
			edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
			if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
				edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
		}
	}
	return edgeoffset
}

function DhtmlDropDownMenu(obj, e, menucontents, defaultMenuWidth, xoffset, yoffset, disappearOnMouseOut)
{
    disappear=disappearOnMouseOut;
	if (!xoffset)
		xoffset=0
	if (!yoffset)
		yoffset=0
	if (window.event) 
		event.cancelBubble = true
	else if (e.stopPropagation) 
		e.stopPropagation()
		
	clearhidemenu()
	dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
	dropmenuobj.innerHTML = menucontents

	showhide(dropmenuobj.style, e, "visible", "hidden", defaultMenuWidth)
	dropmenuobj.x=getposOffset(obj, "left") + xoffset
	dropmenuobj.y=getposOffset(obj, "top") + yoffset
	dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
	dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
	
	dropX = dropmenuobj.x;
	dropY = dropmenuobj.y;
	height = dropmenuobj.clientHeight;
	width = defaultMenuWidth.replace(/[px]/gi, '');

if (defaultHideMenuOnClick=="yes"){
	document.onclick=hidemenu;
}

	return clickreturnvalue()
}

function checkMouseXY(e)
{
    if(disappear == "True") {
        getMouseXY(e);
        if(dropX) {
            if (mouseX < (dropX - 10) || mouseX > (parseInt(dropX,10) + parseInt(width,10) + 20))
            {
                hidemenu(e);
            }
            
            if (mouseY < dropY || mouseY > (parseInt(dropY,10) + parseInt(height,10) + 20)) {
                hidemenu(e);
            }
            
        }
    }
}

function getMouseXY(e) 
{
    ie = document.all?true:false
    if (ie) {
        mouseX = event.clientX + document.body.scrollLeft
        mouseY = event.clientY + document.body.scrollTop
    } else {
        mouseX = e.pageX
        mouseY = e.pageY
    }  
    // catch possible negative values
    if (mouseX < 0) {
        mouseX = 0
    }
    if (mouseY < 0) {
        mouseY = 0
    }
    return true;    
}

function clickreturnvalue()
{
	return false;
}

function contains_ns6(a, b) 
{
	while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
	
	return false;
}

function dynamichide(e)
{
	delayhidemenu();
}

function hidemenu(e)
{
	if (typeof dropmenuobj!="undefined")
	{
		dropmenuobj.style.visibility="hidden"
	}
}

function delayhidemenu()
{
	delayhide=setTimeout("hidemenu()",defaultDisappearDelay)
}

function clearhidemenu()
{
	if (typeof delayhide != "undefined")
		clearTimeout(delayhide)
}

function popUp(string)
{
    alert(string);
}