// JavaScript Document
var ok=0, offset, initX, initY, MX, MY, divX, divY, order=0, forbidden=0, ID, time=1, timeH=1, nowID, browser;
var Left = new Array(10);
var Top = new Array(10);
var W = new Array(10);
var H = new Array(10);
var TargetW = new Array(10);
var TargetH = new Array(10);
var stepX = new Array(30);
var stepY = new Array(30);
var stepWShow = new Array(30);
var stepHShow = new Array(30);
var stepLShow = new Array(30);
var stepTShow = new Array(30);
var stepWHide = new Array(30);
var stepHHide = new Array(30);
var stepLHide = new Array(30);
var stepTHide = new Array(30);

function getX(object) {
	var x = 0;
	while (object) {
		x += object.offsetLeft;
		object = object.offsetParent;
	}
	return x;
}

function getY(object) {
	var y = 0;
	while (object) {
		y += object.offsetTop;
		object = object.offsetParent;
	}
	return y;
}

function getNum(temp) {
	var num = temp.slice(5, temp.length);
	num = parseInt(num);
	return num;
}

function showing(attempt) {
	var sec = 5*attempt;
	setTimeout("document.getElementById('animate').style.width=(stepWShow[time-1])+'px'", sec);
	setTimeout("document.getElementById('animate').style.height=(stepHShow[time-1])+'px'", sec);
	setTimeout("document.getElementById('animate').style.left=(stepLShow[time-1])+'px'", sec);
	setTimeout("document.getElementById('animate').style.top=(stepTShow[time-1])+'px'; ++time", sec);
}

function actionShow(currentID) {
	var num = getNum(currentID);
	document.getElementById("animate").style.display="inline";
	document.getElementById('animate').style.width=W[num]+"px";
	document.getElementById('animate').style.height=H[num]+"px";
	document.getElementById("animate").style.left=Left[num]+"px";
	document.getElementById("animate").style.top=Top[num]+"px";
	var i;
	for (i=1; i<=30; ++i)
		showing(i);
}

function memo(currentID, mW, mH, trgW, trgH) {
	var num = getNum(currentID);
	var elem = document.getElementById("framePos"+num);
	Left[num] = getX(elem);
	Top[num] = getY(elem);
	W[num] = mW;
	H[num] = mH;
	TargetW[num] = trgW;
	TargetH[num] = trgH;
}

function initDiv(cntID, e, sX, sY, tX, tY) {
	var currentID = "frame" + cntID;
	offset = -tX/2;
	offset = parseInt(offset);
	browser = navigator.appName;
	memo(currentID, sX, sY, tX, tY);
	ID = currentID;
	var element = document.getElementById(currentID);
	document.getElementById("framePos"+getNum(currentID)).style.opacity = 0;
	document.getElementById("framePos"+getNum(currentID)).style.filter = "alpha(opacity=0)";
	if (browser == "Microsoft Internet Explorer") {
		initX = e.clientX + document.documentElement.scrollLeft;
		initY = e.clientY + document.documentElement.scrollTop;
	}
	else {
		initX = e.pageX;
		initY = e.pageY;
	}
	element.style.left = initX + offset + "px";
	element.style.top = initY + offset + "px";
	var num = getNum(currentID);
	var stepWidth = (tX - sX + 20) / 30;
	var stepHeight = (tY - sY) / 30;
	var stepLeft = (Left[num] - (initX+offset)) / 30;
	var stepTop = (Top[num] - (initY + offset)) / 30;
	var i;
	for (i=0; i<30; ++i) {
		stepWShow[i] = sX + parseInt((i+1) * stepWidth);
		stepHShow[i] = sY + parseInt((i+1) * stepHeight);
		stepLShow[i] = Left[num] - parseInt((i+1) * stepLeft);
		stepTShow[i] = Top[num] - parseInt((i+1) * stepTop);
	}
	actionShow(currentID);
	setTimeout("document.getElementById('animate').style.display='none'", 150);
	setTimeout("document.getElementById(ID).style.display='inline'; time=1;", 150)
}

function allow(cntID, mouseX, mouseY) {
	var currentID = "frame" + cntID;
	if (forbidden == 0) {
		var elem = document.getElementById(currentID);
		MX = mouseX;
		MY = mouseY;
		divX = getX(elem);
		divY = getY(elem);
		ok = 1;
	}
}

function show(cntID) {
	var currentID = "frame" + cntID;
	var elem = document.getElementById(currentID);
	elem.style.zIndex = ++order;
}

function move(cntID, mouseX, mouseY) {
	var currentID = "frame" + cntID;
	if (forbidden == 0) {
		var newX, newY;
		var elem = document.getElementById(currentID);
		if (ok == 1) {
			newX = mouseX-MX;
			newY = mouseY-MY;
			elem.style.left = divX + newX + "px";
			elem.style.top = divY + newY + "px";
		}
	}
}

function hiding(attempt) {
	var sec = 5*attempt;
	setTimeout("document.getElementById('animate').style.width=(stepWHide[timeH-1])+'px'", sec);
	setTimeout("document.getElementById('animate').style.height=(stepHHide[timeH-1])+'px'", sec);
	setTimeout("document.getElementById('animate').style.left=(stepLHide[timeH-1])+'px'", sec);
	setTimeout("document.getElementById('animate').style.top=(stepTHide[timeH-1])+'px'; ++timeH", sec);
}

function actionHide(currentID) {
	var num = getNum(currentID);
	var elem = document.getElementById(currentID);
	document.getElementById("animate").style.left = elem.style.left;
	document.getElementById("animate").style.top = elem.style.top;
	document.getElementById("animate").style.width = TargetW[num] + 20 + "px";
	document.getElementById("animate").style.height = TargetH[num] + 20 + "px";
	document.getElementById("animate").style.display = "inline";
	var leftStart = getX(document.getElementById("animate"));
	var topStart = getY(document.getElementById("animate"));
	var leftEnd = Left[num];
	var topEnd = Top[num];
	var differenceX = leftEnd - leftStart;
	var differenceY = topEnd - topStart;
	var SX = differenceX / 30;
	var SY = differenceY / 30;
	var SW = (TargetW[num] - W[num]) / 30;
	var SH = (TargetH[num] - H[num]) / 30;
	var i;
	for (i=0; i<30; ++i) {
		stepLHide[i] = leftStart + parseInt((i+1) * SX);
		stepTHide[i] = topStart + parseInt((i+1) * SY);
		stepWHide[i] = TargetW[num] - parseInt((i+1) * SW);
		stepHHide[i] = TargetH[num] - parseInt((i+1) * SH);
	}
	for (i=1; i<=30; ++i)
		hiding(i);
}

function closeDiv(currentID) {
	nowID = currentID;
	var elem = document.getElementById(currentID);
	elem.style.display = "none";
	actionHide(currentID);
	setTimeout("document.getElementById('animate').style.display='none'; timeH=1", 150);
	setTimeout("document.getElementById('framePos'+getNum(nowID)).style.opacity=1", 150);
	setTimeout("document.getElementById('framePos'+getNum(nowID)).style.filter='alpha(opacity=100)'", 150);
}

function deny(cntID) {
	var currentID = "frame" + cntID;
	if (forbidden == 0) {
		ok = 0;
		var elem = document.getElementById(currentID);
		var checkX = getX(elem);
		var checkY = getY(elem);
		if (checkX == divX && checkY == divY)
			closeDiv(currentID);
	}
}

function YES() {
	forbidden = 1;
}

function NO() {
	forbidden = 0;
}
