var layerRef,layerStyleRef,styleSwitch;
var targetY = new Array();
var actualY = new Array();
var startY = new Array();
var targetX = new Array();
var actualX = new Array();
var startX = new Array();
var layerStatus = new Array();
var interRupt = new Array();
var dSet = new Array();
if (navigator.appName == "Netscape")
	{ layerStyleRef="layer."; layerRef="document.layers"; styleSwitch=""; pxSwitch=""; }
	else
	{ layerStyleRef="layer.style."; layerRef="document.all"; styleSwitch=".style"; pxSwitch="px"; }
function oneStep(layerName)
	{
	if (interRupt[layerName])
		{
		layerStatus[layerName] = 0;
		return;
		}
	if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.top != targetY[layerName]'))
		{
		mean = Math.round((targetY[layerName] - actualY[layerName])/3);
		actualY[layerName]+=mean;
		if (mean == 0) {actualY[layerName] = targetY[layerName];}
		eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.top = actualY[layerName]');
		}
	if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.left != targetX[layerName]'))
		{
		mean = Math.round((targetX[layerName] - actualX[layerName])/5);
		actualX[layerName]+=mean;
		if (mean == 0) {actualX[layerName] = targetX[layerName];}

		eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.left = actualX[layerName]');
		}
	if ((actualY[layerName] != targetY[layerName]) || (actualX[layerName] != targetX[layerName]))
		{
		setTimeout('oneStep("'+layerName+'")',20);
		}
	else
		{
		layerStatus[layerName] = 0;
		}
	}
function defineLayer(layerName,xo,yo)
{
actualY[layerName] = yo;
actualX[layerName] = xo;
startY[layerName] = yo;
startX[layerName] = xo;
layerStatus[layerName] = 0;
moveTo(layerName,xo,yo);
}
function moveBack(layerName)
{
interRupt[layerName] = 1;
moveTo(layerName,startX[layerName],startY[layerName]);
}
function moveTo(layerName,xo,yo)
{
if (layerStatus[layerName] == 0)
	{
	interRupt[layerName] = 0;
	targetY[layerName] = yo;
	targetX[layerName] = xo;
	layerStatus[layerName] = 1;
	oneStep(layerName);
	}
else
	{
	setTimeout('moveTo("'+layerName+'",'+xo+','+yo+')',100);
	}
}
function moveBackDelayed(laywer)
{
dSet[laywer]=0;
setTimeout('moveBackDel2("'+laywer+'")',1000);
}
function moveToDelayed(laywer,xx,yy)
{
dSet[laywer]=1;
setTimeout('moveToDel2("'+laywer+'",' +xx+ ',' + yy + ')', 20);
}
function moveBackDel2(layw)
{
if (dSet[layw] == 0)
	{ moveBack(layw);}
}
function moveToDel2(layw,xx,yy)
{
if (dSet[layw] == 1)
	{ moveTo(layw,xx,yy);}
}
