/**************************************************************************
  레이어 팝업 모듈            - 07. 2. 13  by Hamt -



  모든 페이지에 인클루드 되는 파일에 이 소스를 추가한다.

  <!-- new popup start -->
  <div id="dialogbackgroundlayer" style="display:none;position:absolute;z-index:11;" onclick="win.dialog_close()">
  </div>
  <div id="dialoglayer" style="display:none;position:absolute;z-index:12;">
  </div>
  <div id=message style="display:none;position:absolute;left:0px;top:0px;padding:3px;background:#cc0000;color:#ffffff;font-size:13px;font-weight:bold;z-index:100;"></div>
  <script>
  var win = new new_popup();
  </script>
  <!-- new popup end -->
/***************************************************************************/

var popup_req = false;//for popup ajax
var popup_script = false;//dialog_open 네번째 인자로, 레이어 팝업창을 띄운 직후 실행할 스크립트 값
var in_alertcount = 0;
function new_popup()
{
	this.agent_name = navigator.userAgent.toLowerCase();
	this.is_ie = ((this.agent_name.indexOf("msie") != -1) && (this.agent_name.indexOf("opera") == -1));
	this.is_gecko = navigator.product;

	this.position_x = 0;
	this.position_y = 0;
	this.ajax_url = '';	

	this.dlg_bg = document.getElementById('dialogbackgroundlayer');
	this.dlg = document.getElementById('dialoglayer');
	this.msg = document.getElementById('message');

	this.dlg_bg.style.left = '0px';

	this.dlg_bg.style.top = '0px';
	this.dlg_bg.style.width = '100%';

	this.dialog_open= function(url, w_width, w_height, run_script)
	{
		var height = document.body.clientHeight;		
		var st = document.body.scrollTop;	

		if(!w_height) w_height = 170;
		if (this.is_gecko) height += 10;

		this.dlg_bg.style.height = height + 'px';
		this.dlg_bg.style.display = '';

		this.dlg.style.left = "50%";
		this.dlg.style.top = st + w_height + "px";
		this.dlg.style.marginLeft = w_width/2*-1+"px";
		if (run_script)
			popup_script = run_script;
		else
			popup_script = false;

		this.load(url);
		this.dlg.style.display = '';
	}
	this.dialog_close= function()
	{			
		this.dlg_bg.style.display = 'none';
		this.dlg.style.display = 'none';
	}

	this.in_alert = function(message)
	{
		this.msg.innerHTML = message;
		this.msg.style.display = '';
		window.setTimeout(this.in_alert_hidden, 2000);
		in_alertcount++;
	}
	this.in_alert_hidden = function()
	{
		in_alertcount--;
		if(!in_alertcount)
			document.getElementById('message').style.display = 'none';
	}

	this.load = function(url) {
		popup_req= false;
		// branch for native XMLHttpRequest object
		if (window.XMLHttpRequest) {
			try {
				popup_req = new XMLHttpRequest();
			}
			catch(e) {
				popup_req = false;
			}
		}
		// branch for IE/Windows ActiveX version
		else if (window.ActiveXObject) {
			try {
				popup_req = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e) {
				try {
					this.req= new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e) {
					popup_req  = false;
				}
			}
		}
		if (popup_req ) {

			popup_req.onreadystatechange = this.processPopup;
			popup_req.open("GET", url, false);
			popup_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
			popup_req.send("");
		}
	}
	this.processPopup = function() {
		// only if req shows "loaded"
		var obj = document.getElementById('dialoglayer');
		if (popup_req.readyState == 4) {
			// only if "OK"
			obj.innerHTML = popup_req.responseText;
			if (popup_script)
				eval(popup_script);
		}
	}

}


function selectBoxHidden(layer_id)  {
      //var ly = eval(layer_id);
	var ly = document.getElementById(layer_id);

	// 레이어 좌표
	var ly_left   = ly.offsetLeft;
	var ly_top    = ly.offsetTop;
	var ly_right  = ly.offsetLeft + ly.offsetWidth;
	var ly_bottom = ly.offsetTop + ly.offsetHeight;

	// 셀렉트박스의 좌표
	var el;

	for (i=0; i<document.forms.length; i++) {
		for (k=0; k<document.forms[i].length; k++) {
			el = document.forms[i].elements[k];    
			if (el.type == "select-one") {
				var el_left = el_top = 0;
				var obj = el;
				if (obj.offsetParent) {
					while (obj.offsetParent) {
						el_left += obj.offsetLeft;
						el_top  += obj.offsetTop;
						obj = obj.offsetParent;
					}
				}
				el_left   += el.clientLeft;
				el_top    += el.clientTop;
				el_right  = el_left + el.clientWidth;
				el_bottom = el_top + el.clientHeight;

				// 좌표를 따져 레이어가 셀렉트 박스를 침범했으면 셀렉트 박스를 hidden 시킴
				if ( (el_left >= ly_left && el_top >= ly_top && el_left <= ly_right && el_top <= ly_bottom) || 
					 (el_right >= ly_left && el_right <= ly_right && el_top >= ly_top && el_top <= ly_bottom) ||
					 (el_left >= ly_left && el_bottom >= ly_top && el_right <= ly_right && el_bottom <= ly_bottom) ||
					 (el_left >= ly_left && el_left <= ly_right && el_bottom >= ly_top && el_bottom <= ly_bottom) ||
					 (el_top <= ly_bottom && el_left <= ly_left && el_right >= ly_right)
					)
					el.style.visibility = 'hidden';
			}
		}
	}
}

// 감추어진 셀렉트 박스를 모두 보이게 함
function selectBoxVisible() {
	for (i=0; i<document.forms.length; i++) 
	{
		for (k=0; k<document.forms[i].length; k++) 
		{
			el = document.forms[i].elements[k];    
			if (el.type == "select-one" && el.style.visibility == 'hidden')
				el.style.visibility = 'visible';
		}
	}
}
