///do browser detect stuff
// See http://www.webconcerns.co.uk/javascript/dhtml/dhtml_page.asp
var isMoz = (!document.all && document.getElementById("menu1").className=="dhtmlmenu");
var isNS = document.layers;
//var isNS = (navigator.appName == "Netscape");
var isMacIE = ( (navigator.userAgent.indexOf("IE 4")  > -1) && (navigator.userAgent.indexOf("Mac")  > -1) );
var isOp = (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById);
var layerRef = (isNS) ? "document" : "document.all";
var styleRef = (isNS) ? "" : ".style";
var isDynamic = ( (document.layers || document.all || isMoz) && !isMacIE );

var activeMenu = 0;
var finalClip;


function activateMenu(menuLayerRef, offset) {
        if (isDynamic && activeMenu != menuLayerRef) {

                if (activeMenu) hideMenu("menu" + activeMenu);
                        
                menuID = "menu" + menuLayerRef;
                activeMenu = menuLayerRef;
        
                if (isNS) {
		        offset=offset-2
                        document[menuID].top=119;
                        document[menuID].left=offset;
                } else if (isMoz) {
		        offset=offset-2;
			document.getElementById(menuID).style.top="128px";
			document.getElementById(menuID).style.left=offset+"px";
                } else {
                        document.all[menuID].style.pixelTop=119;
                        document.all[menuID].style.pixelLeft=offset;
                }

                showMenu(menuID)
                
        }
        if (isDynamic && !isNS && !isMoz) window.event.cancelBubble = true;
}

function showMenu(layerID) {
	if (isMoz) {
		cmd = "document.getElementById('" + layerID + "').style.visibility='visible'";
		//console.debug(cmd);
		eval(cmd);
	} else {
	        eval(layerRef + '["' + layerID + '"]' + styleRef + '.visibility = "visible"');
	}
}

function hideMenu(layerID) {
	if (isMoz) {
		cmd="document.getElementById('" + layerID + "').style.visibility='hidden'";
		//console.debug(cmd);
		eval("document.getElementById('" + layerID + "').style.visibility='hidden'");
	} else {
	        eval(layerRef + '["' + layerID + '"]' + styleRef + '.visibility = "hidden"');
	}
}

function killMenu(e) {
        //check if theres a menu active
        if (activeMenu) {
                menuID = "menu" + activeMenu;
                if (isNS) {
                        menuX1 = document[menuID].left;
                        menuX2 = menuX1 + document[menuID].clip.right;
                        menuY1 = document[menuID].top;
                        menuY2 = menuY1 + document[menuID].clip.bottom;
                        
                        if (e.pageY > menuY2 || e.pageX > menuX2 || e.pageX < menuX1) {
                                hideMenu(menuID);
                                activeMenu = 0;
                        }
                } else if (isMoz) {
                        menuX1 = document.getElementById(menuID).offsetLeft;
                        menuX2 = menuX1 + document.getElementById(menuID).offsetWidth;
                        menuY1 = document.getElementById(menuID).offsetTop;
                        menuY2 = menuY1 + document.getElementById(menuID).offsetHeight;
                        
                        if (e.pageY > menuY2 || e.pageX > menuX2 || e.pageX < menuX1) {
                                hideMenu(menuID);
                                activeMenu = 0;
                        }
                } else {
                                hideMenu(menuID);
                                activeMenu = 0;
                }
        }  

}


function init() {
        if (isDynamic) {
                if (isNS || isMoz) { 
                        document.captureEvents(Event.MOUSEMOVE); 
                        document.onmousemove = killMenu;
                } else {
                        document.onmouseover = killMenu;
                }
                
        }
}
