
//********************************************************//
//	ÀÎÅÍÆäÀÌ½º µ¥ÄÚ·¹ÀÌ¼Ç °ü·Ã ÇÔ¼ö
//  ÀÛ¼ºÀÚ : Á¤º´ÅÂ
//  ÀÛ¼ºÀÏ : 2007-01-27
//
//  browserInfo.js ÇÊ¿ä 
//
//********************************************************//

function initOverlay() {	

	var objBody = document.getElementsByTagName("body").item(0);

	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.style.display = 'none';
	objOverlay.style.position = 'absolute';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '50';
	objOverlay.style.width = '100%';
	objBody.insertBefore(objOverlay, objBody.firstChild);
}

//
function showOverlay(color,opacity) {

	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.getElementById('overlay');
	var arrayPageSize = getPageSize();
	
	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.backgroundColor = color;
	objOverlay.style.opacity = "."+opacity;
	objOverlay.style.filter = "Alpha(opacity="+opacity+")";
	objOverlay.style.display = "block";
}

function hideOverlay() {
	var objOverlay = document.getElementById('overlay');
	objOverlay.style.display = "none";
}

function showWithOverlay(name,color,opacity) {

	var obj = document.getElementById(name);
	var objOverlay = document.getElementById('overlay');
	
	if(!color) color = "#000000";
	if(!opacity) opacity = "30";
	showOverlay(color,opacity);
	obj.style.zIndex = objOverlay.style.zIndex+1;
	obj.style.display = "block";
	LayerPopup(name).draggable();
	selectbox_hidden(name);
}

function hideWithOverlay(name) {
	var obj = document.getElementById(name);
	obj.style.display = "none";
	hideOverlay();
	selectbox_visible();	
}

function positionCenter(name,width,height) {

	var obj = document.getElementById(name);

	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	obj.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2) + 'px');
	obj.style.left = (((arrayPageSize[0] - 20 - width) / 2) + 'px');
	selectbox_hidden(name);
}

var zIndex = 51;

function LayerPopup(name) {
	
	return {
		
		init : function(width,height) {
			var objBody = document.getElementsByTagName("Body").item(0);
			var objOverlay = document.createElement("div");
			objOverlay.setAttribute('id',name);
			objOverlay.style.position = 'absolute';
			objOverlay.style.top = '0';
			objOverlay.style.left = '0';
			objOverlay.style.zIndex = zIndex;
			objOverlay.style.width = width + 'px';
			objOverlay.style.heignt = height + 'px';
			objOverlay.style.display = 'block';
			objBody.insertBefore(objOverlay, objBody.firstChild);
			LayerPopup(name).draggable();
			zIndex++;
		},
		
		draggable : function() {
			$(name).mousemove_draggable = LayerPopup(name).doMove;
			$(name).mousestop_draggable = LayerPopup(name).doMoveStop;
			$(name).mousedrag_draggable = LayerPopup(name).doDrag;
			Event.observe($(name), 'mousedown', LayerPopup(name).doMouseDown, false);
		},
		
		doMouseDown : function(e) {
			var srcObj=(e.srcElement||e.target);
			if(srcObj.nodeName != "DIV" && srcObj.nodeName != "INPUT") {
				$(name).style.zIndex = zIndex;
				var arrayPageSize = getPageSize();
				offset = Position.cumulativeOffset($(name));
				$(name)._x = (e.pageX||e.clientX) - offset[0];
				$(name)._y = (e.pageY||e.clientY) - offset[1];
				Event.observe(document, 'mousemove', $(name).mousemove_draggable, false);
				Event.observe(document, 'mouseup', $(name).mousestop_draggable, false);
				Event.observe(document, 'dragstart', $(name).mousedrag_draggable, false);
				Event.observe(document, 'selectstart', $(name).mousedrag_draggable, false);
				zIndex++;
			}
		},
		
		doMove : function(e) {
			
			offset = Position.cumulativeOffset($(name));
			var arrayPageSize = getPageSize();
			dimension = Element.getDimensions($(name));
			
			if((e.pageX||e.clientX)-$(name)._x < 20) $(name).style.left = "0px";
			else if(((e.pageX||e.clientX)-$(name)._x)+dimension.width > arrayPageSize[0]-20)  $(name).style.left = (arrayPageSize[0]-dimension.width)+"px";
			else $(name).style.left = (e.pageX||e.clientX)-$(name)._x+"px";
			
			if((e.pageY||e.clientY)-$(name)._y < 20) $(name).style.top = "0px";
			else if(((e.pageY||e.clientY)-$(name)._y)+dimension.height > arrayPageSize[1]-20)  $(name).style.top = (arrayPageSize[1]-dimension.height)+"px";
			else $(name).style.top = (e.pageY||e.clientY)-$(name)._y+"px";
				
		},
		
		doMoveStop : function(e) {
			Event.stopObserving(document, 'mousemove', $(name).mousemove_draggable, false);
			Event.stopObserving(document, 'dragstart', $(name).mousedrag_draggable, false);
			Event.stopObserving(document, 'selectstart', $(name).mousedrag_draggable, false);
		},
		
		doDrag : function() {
			return false;
		}
	}
}

// DIV ÀÚ¿¬½º·´°Ô À§Ä¡/Å©±â Á¶Àý
function Resize(obj) {

		return {

			smoothly : function(x, y, w, h, func, flag) // flag : /* 0:Á¡Á¡´À¸®°Ô / 1:Á¡Á¡ºü¸£°Ô */
			{

				obj.style.display = "block";
				obj.style.overflow = "hidden";

				if (!(isNaN(x) && isNaN(y) && isNaN(w) && isNaN(h)))
				{
					var coord = Position.cumulativeOffset(obj);

					obj._tmp_h = h;
					obj._tmp_w = w;

					if(h <= 0 && !isNaN(h)) h = 1;
					if(w <= 0 && !isNaN(w)) w = 1;

					obj._spstn = [coord[0], coord[1]];
					obj._ssize = [obj.offsetWidth, obj.offsetHeight];
					obj._dpstn = [x, y];
					obj._dsize = [w, h];

					obj._func = func;
					obj._flag = flag;

					obj._percent = obj._flag ? 0 : 0.05;
				}

				var speed = 0.3; // 0.3

				if (obj._flag)	obj._percent = (1 - obj._percent) * speed + obj._percent;
				else			obj._percent += obj._percent * speed;

				if (obj._percent > 1) obj._percent = 1;

				//var opacity = (obj._flag ? parseInt(obj._percent * 100) : 100 - parseInt(obj._percent * 100));
				//obj.style.filter = "alpha(opacity=" + opacity + ")";
				//obj.style.opacity = opacity / 100;

				var x = (obj._dpstn[0] - obj._spstn[0]) * obj._percent + obj._spstn[0];
				var y = (obj._dpstn[1] - obj._spstn[1]) * obj._percent + obj._spstn[1];

				var w = (obj._dsize[0] - obj._ssize[0]) * obj._percent + obj._ssize[0];
				var h = (obj._dsize[1] - obj._ssize[1]) * obj._percent + obj._ssize[1];

				var completed = false;

				var done_rate = 0;
				var valid_num = 0;

				if (!isNaN(obj._dpstn[0])) { done_rate += Math.abs(obj._dpstn[0] - x); valid_num++; }
				if (!isNaN(obj._dpstn[1])) { done_rate += Math.abs(obj._dpstn[1] - y); valid_num++; }
				if (!isNaN(obj._dsize[0])) { done_rate += Math.abs(obj._dsize[0] - w); valid_num++; }
				if (!isNaN(obj._dsize[1])) { done_rate += Math.abs(obj._dsize[1] - h); valid_num++; }

				if ((done_rate / valid_num <= 2) || obj._percent >= 1) // ¸ñÀû À§Ä¡¿¡ ÃæºÐÈ÷ Á¢±ÙÇßÀ¸¸é
				{
					x = obj._dpstn[0];
					y = obj._dpstn[1];

					w = obj._dsize[0];
					h = obj._dsize[1];

					completed = true;
				}
				else
				{
					if (!(obj._ms_timer)) // Å¸ÀÌ¸Ó°¡ ¾øÀ¸¸é »ý¼º
						obj._ms_timer = setInterval(function() { Resize(obj).smoothly(); }, 15);
				}

				if (!isNaN(x)) obj.style.left = x + "px";
				if (!isNaN(y)) obj.style.top = y + "px";

				if (!isNaN(w) && w >= 0) obj.style.width = w + "px";
				if (!isNaN(h) && h >= h) obj.style.height = h + "px";

				if (completed) Resize(obj).stop();
			},

			stop : function()
			{

				if(obj._tmp_h == 0 || obj._tmp_w == 0) obj.style.display = "none";
				obj.style.overflow = "visible";

				if (obj._ms_timer) // Å¸ÀÌ¸Ó°¡ ÀÖÀ¸¸é ÆÄ±«
					clearInterval(obj._ms_timer);

				obj._ms_timer = null;

				obj._dpstn[0] = null;
				obj._dpstn[1] = null;
				obj._dsize[0] = null;
				obj._dsize[1] = null;

				if (obj._func) obj._func();

				obj._func = null;
			}
		};
	}
