var leave_popup=false;
var popup_vis = false;

function closePopup(popup_id)
{
	var d = document.getElementById(popup_id);
	if (d){
		d.style.display='none';
	}
	popup_vis=false;

}


function showPopup(popup_id, trigger, h_pos, v_pos)
{
	try{
		var d = document.getElementById(popup_id);
		d.style.display='';
		
		if (!h_pos){
			h_pos="right";

		}
		if (!v_pos){
			v_pos="up";
			
		}
		if (trigger) {
			var oElement = document.getElementById(trigger);
			//alert(oElement.offsetLeft);
			if (oElement){
				if (h_pos=="right"){
					if (right  && right == "left") {
						d.style.left= (oElement.offsetLeft) + "px";
					}
					else {
						d.style.left= (oElement.offsetLeft + oElement.offsetWidth) - d.offsetWidth + "px";
					}
				}
				else if (h_pos=="left"){

					d.style.left= (oElement.offsetLeft + oElement.offsetWidth) + "px";

					
				}
				
				if (v_pos=="up"){
					d.style.top = oElement.offsetTop - d.offsetHeight + "px";
				}
				else if (v_pos=="down"){
					d.style.top = (oElement.offsetTop + oElement.offsetHeight) + "px";
				}
				popup_vis=popup_id;
			}
		}
		else {
// 			var scr_width = document.body.clientWidth;
// 			var scr_height = document.body.clientHeight; // whole document height not viewport
 			var scr_scroll = getScrollXY();
			var scr_size = getWindowSize();

				d.style.left =  (scr_scroll[0] + ((scr_size[0] - d.offsetWidth)/2)) + "px";

				d.style.top =  (scr_scroll[1] + ((scr_size[1] - d.clientHeight)/2)) + "px";
			
		}
		

	}
	catch (e){
// 		alert(e);
	}
	
}
function writeDebug(str)
{
	var d = document.getElementById("debug");
	if (d){
		d.innerHTML=str;
	}
}
function closePopupCheck(e)
{
	if (!e) var e = window.event
	stopEvent(e);

	var relTarg = e.relatedTarget || e.fromElement;

	var doClose = false;
	if (relTarg && relTarg.className=="popup_panel_div"){
		doClose=true;
	}
	if (doClose)closePopup(popup_vis);

	if (relTarg){
		writeDebug(relTarg.className);
	}

}
function stopEvent(e) {
	if(!e) var e = window.event;
	
	//e.cancelBubble is supported by IE - this will kill the bubbling process.
	e.cancelBubble = true;
	e.returnValue = false;

	//e.stopPropagation works only in Firefox.
	if (e.stopPropagation) {
		e.stopPropagation();
		e.preventDefault();
	}
	return false;
}
function getWindowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  //window.alert( 'Width = ' + myWidth );
  //window.alert( 'Height = ' + myHeight );
	return [ myWidth, myHeight ];
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
