function ngb_regPopups() {
	var i, args = ngb_regPopups.arguments;
	document.ngb_popups = new Array;
	document.activepopup = null;
	document.popuptimer = null;
	
	for(i=0; i<args.length; i++) document.ngb_popups[i]=args[i];
}

function ngb_showPopup(n, rel) {

	var i, pN, pO, popup;
	var absLeft, absTop;
	
	popup = MM_findObj(n);
	if(popup) {

		ngb_clearTimeout()

		for(i=0; i<document.ngb_popups.length; i++) {
			pN = document.ngb_popups[i];
			if(pN != n) {
				pO = MM_findObj(pN);
				if(pO) pO.style.visibility = "hidden";
			}
		}
	
		if(popup.style.visibility != "visible") {

			absTop = rel.offsetHeight;
		
			if(rel.offsetParent) {
				for(absLeft=0; rel.offsetParent; rel=rel.offsetParent) {
					absLeft += rel.offsetLeft;
					absTop += rel.offsetTop;
					//alert(rel.tagName);
				}
			} else {
				absLeft = rel.x;
				absTop = rel.y;
			}
			
			popup.style.left = (absLeft-4) + 'px';		//4px menu border width
			popup.style.top = absTop + 'px';
			
			popup.style.visibility = "visible";
			
			document.activepopup = popup;
			
		} else {
			popup.style.visibility = "hidden";
			document.activepopup = null;
		}
	}
}

function ngb_clearTimeout() {
	if (document.popuptimer) clearTimeout(document.popuptimer);
	document.popuptimer = null;
}

function ngb_startTimeout() {
	if(document.activepopup) {
		document.popuptimer = setTimeout("ngb_hidePopup()", 1000);
	}
}

function ngb_hidePopup() {
	if(document.activepopup) {
		document.activepopup.style.visibility = "hidden";
		document.activepopup = null;
	}
}
