
var all_popups = new Array();

function PopupItem(popup_id)
{
  this.need_close=false;
}


function closePopup(popup_id, force)
{
try {
	if (all_popups[popup_id].need_close == true || force==true) {
	  var d = document.getElementById(popup_id);

	  if (d){
		  d.style.display='none';
	  }
	
	  closeModalPane(popup_id);
	  
	  all_popups.splice(popup_id,1);
	}
}
catch (e)
{
  alert(e);
  
}


}


function showPopup(popup_id, trigger, h_pos, v_pos, modal, disable_close)
{


	try{
		var d = document.getElementById(popup_id);

		

		if (!h_pos){
			h_pos="left";

		}
		if (!v_pos){
			v_pos="down";
			
		}
		
		if (trigger) {

			d.style.position="absolute";
			
			var oElement = document.getElementById(trigger);
			
			if (oElement){
				if (h_pos=="left"){
					d.style.left = oElement.offsetLeft -5 + "px";
				}
				else if (h_pos == "right"){
					d.style.left = oElement.offsetLeft - d.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
 			positionPopup(d);
			document.body.onresize = function() {
			  positionPopup(d);
			};
		}
		
		all_popups[popup_id]=new PopupItem(popup_id);
		
		if (modal) {
			return createModalPane(popup_id,disable_close);
		}
		else {
			d.style.display='block';
			
		}
		

	}
	catch (e){
		alert(e);
	}
	
}
function closeModalPane(popup_id)
{
  
	var mp = document.getElementById("modal_pane");
	if (mp) {
		var d = document.getElementById(popup_id);
		if (d) {
		  mp.removeChild(d);
		  document.body.appendChild(d);
		}
		document.body.removeChild(mp);
	  	
		try {
		  document.body.parentElement.style.overflow="";
		}
		catch (e) {}
		
		document.body.style.overflow="";
	}
	
		

}
function createModalPane(popup_id, disable_close)
{
 
  
		var d = document.getElementById(popup_id);
// 		try {
// 		document.body.removeChild(d);
// 		}
// 		catch (e){};
		
		var pane = document.getElementById("modal_pane");
		if (!pane) {
		var elm = document.createElement('div');
		elm.setAttribute('id','modal_pane');
		elm.setAttribute('frameBorder','0');
		elm.setAttribute('border','0');
		elm.setAttribute('marginWeight','0');	
		elm.setAttribute('marginHeight','0');
		elm.setAttribute('scrolling','no');
		}
		
		var scr = getScrollXY();
// 		alert(scr[1]);

		

		document.body.appendChild(elm);

		try {
		  document.body.parentElement.style.overflow="hidden";
		}
		catch (e) {}
		
		document.body.style.overflow="hidden";
		
		
// 		elm.style.top=scr[1]+"px";
		
// 		
		elm.style.cursor="pointer";
		
		if (disable_close == null || !disable_close) {
		  elm.onclick=function() {
			  closePopup(popup_id, true);	
		  };
		
		}
		elm.appendChild(d);
		d.style.display='block';
		
// 		disableSelection(elm);
		
		positionPopup(d);
		
		return elm;
}
function positionPopup(d)
{
  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_size[1] - d.clientHeight)/2)) + "px";
  d.style.visibility="visible";
  
}

function writeDebug(str)
{
	var d = document.getElementById("debug");
	if (d){
		d.innerHTML=str;
	}
}


function closePopupCheck(event, elm)
{
  
  //var elm = document.getElementById("submenu_"+parentID);

  if(!event) var event = window.event

  var relTarg = event.relatedTarget || event.toElement;
  var obj = relTarg.parentNode;

  while (obj) {
	if (obj.id == elm.id) {

		return false;
	}
	obj = obj.parentNode;
  }

  //doClose=true;

  all_popups[elm.id].need_close=true;
  setTimeout("closePopup('"+elm.id+"')", 1200);

}

function stopClose(e, elm)
{
  all_popups[elm.id].need_close=false;
  //doClose=false;
}

// function stopEvent(e) {
// 	doClose=false;
// 	
// 	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 ];
}
function disableSelection(target){
if (typeof target.onselectstart!="undefined") //IE route
	target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
	target.style.MozUserSelect="none"
else //All other route (ie: Opera)
	target.onmousedown=function(){return false}
target.style.cursor = "default"
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
//
function disableEnterKey(e)
{
     var key;
     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox
     if(key == 13)
          return false;
     else
          return true;
}
