var Menu = null;
var MenuTimer = null;

function ClearMenuTimeout() {
	if(MenuTimer) clearTimeout(MenuTimer);
	MenuTimer = null;
}

function StartMenuTimeout() {
	if(MenuTimer) clearTimeout(MenuTimer);
	MenuTimer = setTimeout("HideMenu()", 500);
}

function ShowPopup(menu_name, mode) {
	ClearMenuTimeout();
	if(Menu) {
		HideMenu();
	}

    if(Menu = document.getElementById('popup'+menu_name)) {
		if(mode == 'top') {
			holder = document.getElementById('topPopupHolder'+menu_name)
			Menu.style.left = moveXbySlicePos(0, holder) + 1;
			Menu.style.top  = moveYbySlicePos(0, holder) + 2;
		}
		else if(mode == 'left') {
			holder = document.getElementById('leftPopupHolder'+menu_name)
			Menu.style.left = moveXbySlicePos(0, holder);
			Menu.style.top  = moveYbySlicePos(0, holder) - 5;
		}
		else if(mode == 'right') {
			holder = document.getElementById('rightPopupHolder'+menu_name)
			Menu.style.left = moveXbySlicePos(0, holder);
			Menu.style.top  = moveYbySlicePos(0, holder);
		}

		Menu.style.visibility = 'visible';
	}
}

function HideMenu() {
	ClearMenuTimeout();
	if (Menu) {
		Menu.style.visibility = 'hidden';
		MenuTimer = null;
	}
}

function getExplorerVersion() {
	var ieVers = parseFloat(navigator.appVersion);
	if( navigator.appName != 'Microsoft Internet Explorer' ) return ieVers;
	var tempVers = navigator.appVersion;
	var i = tempVers.indexOf( 'MSIE ' );
	if( i >= 0 ) {
		tempVers = tempVers.substring( i+5 );
		ieVers = parseFloat( tempVers );
	}
	return ieVers;
}

function moveXbySlicePos (x, img) {
	if (!document.layers) {
		var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
		var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
		var par = img;
		var lastOffset = 0;
		while(par){
			if( par.leftMargin && ! onWindows ) x += parseInt(par.leftMargin);
			if( (par.offsetLeft != lastOffset) && par.offsetLeft ) x += parseInt(par.offsetLeft);
			if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;
			par = macIE45 ? par.parentElement : par.offsetParent;
		}
	} else if (img.x) x += img.x;
	return x;
}

function moveYbySlicePos (y, img) {
	if(!document.layers) {
		var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
		var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
		var par = img;
		var lastOffset = 0;
		while(par){
			if( par.topMargin && !onWindows ) y += parseInt(par.topMargin);
			if( (par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);
			if( par.offsetTop != 0 ) lastOffset = par.offsetTop;
			par = macIE45 ? par.parentElement : par.offsetParent;
		}
	} else if (img.y >= 0) y += img.y;
	return y;
}
