var _x;
var _y;
var _vx;
var _vy;
var _startx;
var _starty;
var _startTime;		// Startzeit
var _timer;			// Timer Objekt für Animation
var _movingitem;	// Bewegtes Puzzelteil
/*
var _p_order = new Array(3, 1, 2, 0, 5, 4); /* Reihenfolge der angezeigten Puzzleteile
                                             * 0 1 2
                                             * 3 4 5 */

var PUZZLE_ROWS = 3;
var PUZZLE_COLUMNS = 5;

/* Obere linke Ecke des Flugbereichs */
var PUZZLE_CONTAINER_TOP = 140;
var PUZZLE_CONTAINER_LEFT = 190;

/* Untere rechte Ecke des Flugbereichs */
var PUZZLE_CONTAINER_BOTTOM = 320;
var PUZZLE_CONTAINER_RIGHT = 640;

var MIDPOINT_X = (PUZZLE_CONTAINER_RIGHT - PUZZLE_CONTAINER_LEFT) / 2;
var MIDPOINT_Y = (PUZZLE_CONTAINER_BOTTOM - PUZZLE_CONTAINER_TOP) / 2;

var ROTATION_DURATION = 10000;	// Dauer einer Rotation

/*
 * @desc Ermittelt den aktuell gültigen Bildindex
 *
 */
function highestIndexForToday()
{
	var index = -1;
	var step = 2;				// Intervall (Tage) für nächstes Puzzelteil
	var date = new Date();
	var today = new Date();

	// Startdatum für erstes Puzzelteil (05.05.2006)
	date.setYear(2006);
	date.setMonth(4);
	date.setDate(5);
	date.setHours(0);
	date.setMinutes(0);
	date.setSeconds(0);

	var tmp = new Date(date);
	tmp.setDate(date.getDate() - 4);		// 4 Tage wegen Verzögerung abziehen

	if (today >= tmp && today < date)
	{
		return (PUZZLE_ROWS * PUZZLE_COLUMNS) + (today.getDate() - tmp.getDate());
	}

	for (var i = 0; i <= (PUZZLE_ROWS * PUZZLE_COLUMNS); i++)
	{
		if (today < date)
			return index;

		date.setDate(date.getDate() + step);

		index++;
	}

	return -1;
}

function redirect()
{
	window.clearInterval(_timer);
	document.location = "?DOCID=2129&x=" + (parseInt(_movingitem.style.left) + PUZZLE_CONTAINER_LEFT) + "&y=" + (parseInt(_movingitem.style.top) + PUZZLE_CONTAINER_TOP);
	// Für Live-Betrieb:
	//document.location = "?DOCID=2143&x=" + (parseInt(_movingitem.style.left) + PUZZLE_CONTAINER_LEFT) + "&y=" + (parseInt(_movingitem.style.top) + PUZZLE_CONTAINER_TOP);
}

function startPuzzle()
{
	container = document.getElementById("img_container");

	if (null != container)
	{
		container.style.position = "absolute";
		container.style.left = PUZZLE_CONTAINER_LEFT + "px";
		container.style.top = PUZZLE_CONTAINER_TOP + "px";

		var index = highestIndexForToday();

		if (index >= (PUZZLE_ROWS * PUZZLE_COLUMNS))
		{
				var img = new Image();
				img.src = "imguser/puzzel_" + (index + 1) + ".gif";
				img.style.borderWidth = "0";

				_movingitem = img;
				_movingitem.style.position = "absolute";
				_movingitem.style.visibility = "hidden";

				container.appendChild(_movingitem);
		}
		else
		{
			for (var i = 0; i < (PUZZLE_ROWS * PUZZLE_COLUMNS); i++)
			{
				if (i == index)
				{
					var img = new Image();
					//img.src = "imguser/Puzzel_" + (_p_order[i] + 1) + ".gif";
					img.src = "imguser/puzzel_" + (i + 1) + "_T.gif";
					img.style.borderWidth = "0";

					_movingitem = document.createElement("a");
					_movingitem.setAttribute("onFocus", "if(this.blur)this.blur()");
					_movingitem.style.textDecoration = "none";
					_movingitem.href = "javascript:redirect();";
					_movingitem.style.position = "absolute";
					_movingitem.style.visibility = "hidden";
                	_movingitem.appendChild(img);

					container.appendChild(_movingitem);
					break;
				}
			}
		}

		if (0 <= index)
		{
			startTimer();
		}
	}
}

function startTimer()
{
	_startTime = new Date();

	_movingitem.style.left = "0px";
	_movingitem.style.top = "0px";
	_movingitem.style.visibility = "visible";

	_timer = window.setInterval("updatePosition()", 20);
}

function updatePosition()
{
	var diff = new Date();
	diff = diff - _startTime;

	var val = (diff / ROTATION_DURATION) * Math.PI * 2;
	var x = Math.cos(val) * MIDPOINT_X + MIDPOINT_X;
	var y = Math.sin(val) * MIDPOINT_Y + MIDPOINT_Y;

	_movingitem.style.left = x + "px";
	_movingitem.style.top = y + "px";
}
