// º¯¼ö ÃÊ±âÈ­
var pointerX = 0;
var pointerY = 0;
var moveX = 0;
var moveY = 0;
var drobj;
var droparray = new Array();

// µå·¡±× °´Ã¼¸¦ ¸¸µé¾îÁÜ
function drag_init() {
	count = document.all.length;

	for (i = count-1 ; i > 0; i--) {
		obj = document.all[i];
		isdrag = obj.getAttribute("dragable");
		isdrop = obj.getAttribute("dropzone");

		if (isdrag != null) {
			obj.onmousedown = function() { dragCK(this); }
			obj.onselectstart = function() { return false; }	
			obj.ondragstart = function() { return false; }	
			document.body.onmouseup= function() { dragEnd(this); }
			document.body.onmousemove = function() { dragging(drobj) }
			obj.style.left = obj.offsetLeft;
			obj.style.top = obj.offsetTop;
			obj.style.position = "absolute";
		}

		if (isdrop != null) droparray.push(obj);

	}
}

// µå·¡±× °´Ã¼·Î ÁöÁ¤
function dragCK(obj) {
	obj.style.zIndex = 1;
	drobj = obj;
}

function dragEnd() {
	dr = overcheck(drobj);
	if (dr) dr.style.background = "";

	if (pointerX && pointerY) {
		drobj.style.zIndex = '';
		drobj = '';
		pointerX = '';
		pointerY = '';
	}
}

// ½ÇÁ¦·Î µå·¡±× ½ÇÇà
function dragging() {

	if (drobj) {

		if (event.button) {
			if (!pointerX && !pointerY) {
				pointerX = event.x - drobj.offsetLeft;
				pointerY = event.y - drobj.offsetTop
			}

			limitTop = 0;
			limitBottom = document.body.scrollHeight - drobj.offsetHeight;
			limitLeft = 0;
			limitRight = document.body.scrollWidth - drobj.offsetWidth;

			moveX = event.x - pointerX;
			moveY = event.y - pointerY;

			if (moveX > limitRight) moveX = limitRight;
			if (moveX < limitLeft) moveX = limitLeft;
			if (moveY > limitBottom) moveY = limitBottom;
			if (moveY < limitTop) moveY = limitTop;

			drobj.style.left = moveX;
			drobj.style.top = moveY;

			dr = overcheck(drobj);
			if (dr) dr.style.background = "#ffffcc";

		}
	}
}

// µå·¡±× ¿Â ¿À¹ö Ã¼Å©
function overcheck(drobj) {

	if (drobj) {

		Y1 = drobj.offsetTop;
		X1 = drobj.offsetLeft;
		Y2 = drobj.offsetTop + drobj.offsetHeight;
		X2 = drobj.offsetLeft + drobj.offsetWidth;

		for (i = 0; i < droparray.length; i++){

			t = droparray[i];

			_Y1 = t.offsetTop;
			_X1 = t.offsetLeft;
			_Y2 = t.offsetTop + t.offsetHeight;
			_X2 = t.offsetLeft + t.offsetWidth;

			
			if ( Y1 >= _Y1 && Y2 <= _Y2 && X1 >= _X1 && X2 <= _X2) return t;
			else t.style.background = "";
		}
	}
}
