/* =====================================
 * メイン・ユーティリティ
 * Version	1.0.0
 * Update	2008-04-21
===================================== */

var display_index = 100;
var dd_start_flag = true;

function openWindow(id, url, x, y) {
	loadData(id, url);
	$(id).style.zIndex = display_index++;
	if(dd_start_flag == true) {
		startDragAndDrop(id, x, y);
		dd_start_flag = false;
	}
	return false;
}


function closeWindow(id) {
	$(id).innerHTML = "";
	$(id).style.zIndex = -1;
	return false;
}

function loadData(id, url) {
	url += (url.match(/\?/) ? "&" : "?");
	url += "cache=" + (new Date()).getTime();
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(httpObj) {
			$(id).innerHTML = httpObj.responseText;
		},
		onFailure: function(httpObj) {
			$(id).innerHTML = "エラーが発生しました";
		}
	});
}


// ドラッグ処理 ========================

DragObj = new Object();
DragObj.dragFlag = false;
DragObj.targetObj = null;
DragID = null;

function startDragAndDrop(divID, x, y) {
	DragID = divID;
	$(DragID).style.position = "absolute";
	$(DragID).style.left = x;
	$(DragID).style.top = y;
	$(DragID).onmousedown = DragObj.dragStart;
	$(DragID).onmouseup = DragObj.dragEnd;
	$(DragID).style.zIndex = display_index++;
	Event.observe(window.document, "mousemove", DragObj.dragProc, false);
}

DragObj.dragStart = function(event) {
	DragObj.dragFlag = true;
	DragObj.targetObj = $(DragID);
	DragObj.offsetX = mouseX - parseInt(DragObj.targetObj.style.left);
	DragObj.offsetY = mouseY - parseInt(DragObj.targetObj.style.top);
	return false;
}

DragObj.dragEnd = function() {
	DragObj.dragFlag = false;
}

DragObj.dragProc = function(event) {
	mouseX = Event.pointerX(event);
	mouseY = Event.pointerY(event);
	if(!DragObj.dragFlag) return;
	DragObj.targetObj.style.left = mouseX - DragObj.offsetX;
	DragObj.targetObj.style.top = mouseY - DragObj.offsetY;
	return false;
}


// =============================================================================

