var movers = new Object;

function newMover (itemID, delay, startOffX, startOffY, endX, endY, distX, distY, doLoop, loopStartX, loopStartY ) {
	var thisMover;
	
	if (document.getElementById) {
		thisMover = document.getElementById(itemID);
	} else {
		return;
	}
	
	// thisMover.count = 0;

	thisMover.startX = thisMover.offsetLeft + startOffX;
	thisMover.startY = thisMover.offsetTop + startOffY;

	thisMover.style.left = thisMover.startX + "px";
	thisMover.style.top = thisMover.startY + "px";

	thisMover.endX = endX;
	thisMover.endY = endY;

	thisMover.delay = delay;

	thisMover.distX = distX;
	thisMover.distY = distY;

	if (loopStartX == null) {
		thisMover.loopStartX = thisMover.startX;
	} else {
		thisMover.loopStartX = loopStartX;
	}

	if (loopStartY == null) {
		thisMover.loopStartY = thisMover.startY;
	} else {
		thisMover.loopStartY = loopStartY;
	}

	thisMover.doLoop = doLoop;

	if ( ! ( movers[thisMover.delay] ) ) {
		movers[delay] = new Array;
	}

	movers[delay][movers[delay].length] = thisMover;

	return;
}

function startAllMovers () {
	var i;

	for ( i in movers ) {
		// alert (i);
		startMovers (i);
	}
}

function startMovers (thisDelay) {
	if ( ! movers[thisDelay] ) {
		return;
	}

	var i;
	var x = movers[thisDelay];
	var thisMover;
	
	for ( i=0; i<movers[thisDelay].length; i++ ) {

		thisMover = movers[thisDelay][i];

		if ( 
			((thisMover.distX > 0) && (thisMover.offsetLeft >= thisMover.endX))
			|| ((thisMover.distX < 0) && (thisMover.offsetLeft <= thisMover.endX))
			|| ((thisMover.distY > 0) && (thisMover.offsetTop >= thisMover.endY))
			|| ((thisMover.distY < 0) && (thisMover.offsetTop <= thisMover.endY)) 
			) {
			if (thisMover.doLoop) {
				// alert ("looping!" + itemID);
				thisMover.style.left = (0 + thisMover.loopStartX + "px");
				thisMover.style.top = (0 + thisMover.loopStartY + "px");
			} else {
				// alert ("noloop!" + itemID);
				return;
			}
		}
	
		var thisX = ((0 + thisMover.offsetLeft + thisMover.distX) + "px");
		var thisY = ((0 + thisMover.offsetTop + thisMover.distY) + "px");
	
		thisMover.style.visibility = "visible";
		thisMover.style.left = thisX;
		thisMover.style.top = thisY;
	}
	
	setTimeout(" startMovers(\'" + thisDelay + "\');",thisDelay);
}
