// 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.body.scrollLeft;
		initY=e.clientY + document.body.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;
}
