function GetPopupBodyOffsetX(elem_id, shift)
{
	var x;var y;x = 0;y = 0;
	var elem = document.getElementById(elem_id);
	do
	{
		x += elem.offsetLeft;
		y += elem.offsetTop;
		if (elem.tagName == "BODY")
			break;
		elem = elem.offsetParent;
	} while  (1 > 0);

	shift[0] = x;shift[1] = y;
}

function SetPopupTxtOnElement(tab_id, elem_id, ibottomPad)
{
	var shift = new Array(2);
	GetPopupBodyOffsetX(elem_id, shift);
	document.getElementById(tab_id).style.left  = shift[0] + "px";
	document.getElementById(tab_id).style.top = shift[1] - ibottomPad + "px";
}

function ShowPopup(tab_id, elem_id, ibottomPad)
{
	SetPopupTxtOnElement(tab_id, elem_id, ibottomPad);
	document.getElementById(tab_id).style.display="inline";
}

function ShowPopupSlow(tab_id, elem_id, ibottomPad)
{
	SetPopupTxtOnElement(tab_id, elem_id, ibottomPad);
	document.getElementById(tab_id).className = 'opaqueHide';
	document.getElementById(tab_id).style.display="inline";
	popupShowOpacity('opaqueHide',tab_id);
}

//speed='fast' (200 ms) and 'slow' (600 ms)
function JQ_ShowPopup(placeholderElem, popupElm, leftPad, topPad, speed)
{
  //get the position of the placeholder element
  var pos = $("#"+placeholderElem).offset();
  var width = $("#"+placeholderElem).width();
  //show the popup
  $("#"+popupElm).css( {"left": (pos.left + leftPad) + "px", "top":(pos.top + topPad) + "px" } );
  $("#"+popupElm).slideDown(speed);
}

function HidePopup(tab_id)
{
	document.getElementById(tab_id).style.display="none";
}

function HidePopupSlow(tab_id)
{
	popupHideOpacity('opaqueShow',tab_id);
}

function togglePopup(tab_id, elem_id, ibottomPad)
{
	if(document.getElementById(tab_id).style.display == "none")
		ShowPopup(tab_id, elem_id, ibottomPad);
	else {
		HidePopup(tab_id);
	}
}

function popupShowOpacity(strClass, tab_id)
{
	document.getElementById(tab_id).className = strClass;
	var cTime;
	if (strClass == 'opaqueHide')
		cTime = setTimeout("popupShowOpacity('opaqueFade25','"+tab_id+"')",100);
	else if (strClass == 'opaqueFade25')
		cTime = setTimeout("popupShowOpacity('opaqueFade50','"+tab_id+"')",100);
	else if (strClass == 'opaqueFade50')
		cTime = setTimeout("popupShowOpacity('opaqueFade75','"+tab_id+"')",100);
	else if (strClass == 'opaqueFade75')
		cTime = setTimeout("popupShowOpacity('opaqueShow','"+tab_id+"')",200);
	else if (strClass == 'opaqueShow') {
		document.getElementById(tab_id).className = "";
		clearTimeout(cTime);
	}
}

function popupHideOpacity(strClass, tab_id)
{
	document.getElementById(tab_id).className = strClass;
	var cTime;
	if (strClass == 'opaqueShow')
		cTime = setTimeout("popupHideOpacity('opaqueFade75','"+tab_id+"')",100);
	else if (strClass == 'opaqueFade75')
		cTime = setTimeout("popupHideOpacity('opaqueFade50','"+tab_id+"')",100);
	else if (strClass == 'opaqueFade50')
		cTime = setTimeout("popupHideOpacity('opaqueFade25','"+tab_id+"')",100);
	else if (strClass == 'opaqueFade25')
		cTime = setTimeout("popupHideOpacity('opaqueHide','"+tab_id+"')",200);
	else if (strClass == 'opaqueHide') {
		document.getElementById(tab_id).style.display="none";
		clearTimeout(cTime);
	}
}
