var opened = null;
var loaded = false;
var menuRect = false;

function pd(id) {
	if(loaded) {
		if(opened != id+'div'){ if(opened != null ) { cpd() }}
		offset = _get_offset(document.getElementById(id));

		if(document.getElementById(id+'div') != null) {
			t = offset['y'];
		
			r = offset['x']+parseInt(document.getElementById(id+'div').offsetWidth);
			b = offset['y']+parseInt(document.getElementById(id+'div').offsetHeight)+10;
			l = offset['x'];
		
			menuRect = {top : t, right : r, bottom : b, left : l};
			opened = id+'div'
			
			document.getElementById(id+'div').style.top = offset['y']+13;
			document.getElementById(id+'div').style.left = offset['x'];
			document.getElementById(id+'div').style.visibility = 'visible';
		}
	}	
}

function cpd() {
	if(opened != null) {
		if(document.getElementById(opened) != null) {
			document.getElementById(opened).style.visibility = 'hidden';
		}
		opened = null;
		menuRect = false;
	}
}

function _get_offset(obj) {
	var offset;
	possx = findPosX(obj);
	possy = findPosY(obj);
	offset = {x: possx, y: possy};
	return offset;
}
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x) { curleft += obj.x; }
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y) { curtop += obj.y; }
	return curtop;
}

function _init_MouseEventHandler() {
	var isNS4=document.layers?true:false;
	var isIE=document.all?true:false;
	var isIE6=isIE&&document.getElementById?true:false;
	var isIE4=isIE&&!isIE6?true:false;
	var isNS6=!isIE6&&document.getElementById?true:false;
	var isNS=isNS4||isNS6;
	
	if(isNS4) {
	 	document.captureEvents(Event.MOUSEMOVE); 
		document.onmousemove=MouseEventHandler; 
	}  else if(isNS6) {
		document.addEventListener('mousemove', MouseEventHandlerNS, true);
	} else if(isIE) {
		document.onmousemove=MouseEventHandler;
	}
	loaded = true;
}

function MouseEventHandler() {
	evx = event.clientX + document.body.scrollLeft;
	evy = event.clientY + document.body.scrollTop;
	
	if(menuRect != false) {
		if(	evx < menuRect['left'] || 
			evx > menuRect['right'] || 
			evy < menuRect['top']  || 
			evy > menuRect['bottom']) {	
				document.getElementById(opened).style.visibility = 'hidden';
				menuRect = false;
				opened = null;
		}
	}
}
function MouseEventHandlerNS(event) {
	if(menuRect != false) {
		if(	event.pageX < menuRect['left'] ||
			event.pageX > menuRect['right'] || 
			event.pageY < menuRect['top'] || 
			event.pageY > menuRect['bottom']) {
				document.getElementById(opened).style.visibility = 'hidden';
				menuRect = false;
				opened = null;
		}
	}
}