function xGetElementById(e) {
	if (typeof(e) != 'string')
		return e;
	if (document.getElementById)
		e=document.getElementById(e);
	else if (document.all)
		e=document.all[e];
	else
		e=null;
	return e;
}

function checkMail() {
	xGetElementById('mail').submit;
}

//Zeit die zwischen den Triggern vergehen soll (1000 = 1 Sekunde)
var delay = 10;
//Array für die Div Namen
var div_namen = new Array("box0", "box1", "box2", "box3");
//Array für die Funktionen die die Bewegung beschreiben
var div_move = new Array("move0", "move1", "move2", "move3");

//Wieviele Zeiteinheiten vergangen sind
var steps = 0;
var timerId = null;
//Läuft der Timer?
var timerRunning = false;
//Diese Div-IDs existieren
var div_existing_names = new Array();
//False = div wird noch verschoben, true = div wird nicht mehr verschoben. wenn alles auf true steht wird der Timer gestoppt.
var div_moving_done = new Array();

function initialize() {
	//Schreibe das Array mit existierenden Div-IDs
	divCheck();
	//Setze anfangs Koordinaten für die Menüboxen
	for ( i = 0; i < div_existing_names.length; i++) {
		ignore = false;
		//Check ob die Checkbox stehen bleibt
		for ( j = 0; j < div_namen_stay.length; j++ ) {
			if ( div_namen_stay[j] == div_existing_names[i] ) {
				ignore = true;
				break;
			}
		}
		
		if ( !ignore ) {
			if ( document.layers ) {
				document.layers[div_id].left = 1025 + getDivPos(div_existing_names[i])['x'];
				document.layers[div_id].top = 0 + getDivPos(div_existing_names[i])['y'];
			} else if ( document.getElementById ) {
				document.getElementById(div_existing_names[i]).style.left = 1025 + getDivPos(div_existing_names[i])['x'] + "px";
				document.getElementById(div_existing_names[i]).style.top = 0 + getDivPos(div_existing_names[i])['y'] + "px";
			} else if ( document.all ) {
				document.all[div_id].style.left = 1025 + getDivPos(div_existing_names[i])['x'];
				document.all[div_id].style.top = 0 + getDivPos(div_existing_names[i])['y'];
			}
		}
	}
	//Starte das erste mal sofort nach dem Laden (Das initialisiert auch den Timer)
	move();
}

function stopTheClock() {
    if ( timerRunning ) {
        clearTimeout(timerId);
	}
    timerRunning = false;
}

//Checkt welche Divs vorhanden sind und schreibt diese in das Array div_existing_names
function divCheck() {
	for (i = 0; i < div_namen.length; i++) {
		div_exists = false;
		if ( document.layers && document.layers[div_namen[i]] != undefined  ) {
			div_exists = true;
		} else if ( document.getElementById && document.getElementById(div_namen[i]) != undefined ) {
			div_exists = true;
		} else if ( document.all && document.all[div_namen[i]] != undefined ) {
			div_exists = true;
		}
		
		if ( div_exists ) {
			//Schreibe den Elementnamen in das Array
			div_existing_names[div_existing_names.length] = div_namen[i];
			div_moving_done[div_moving_done.length] = false;
		}
	}
}

//Sucht die richtige Funktionen für die Bewegungen und führt diese aus.
function move() {
	if ( !allMovingDone() ) {
		for (i = 0; i < div_existing_names.length; i++) {
			//Starte die Moving Funktion mit dem div_move array
			self[div_move[i]]();
		}
	} else {
		stopTheClock();
	}
	steps++;
	
	//Trigger wieder starten
	timerId = self.setTimeout("move()", delay);
	timerRunning = true;
}

//Checkt ob schon alle Divs in der Endposition stehen
function allMovingDone() {
	done = false;
	for (i = 0; i < div_moving_done.length; i++ ) {
		if ( div_moving_done[i] ) {
			done = true;
		} else {
			return false;
		}
	}
	
	return done;
}

//Holt die absoluten Koordinaten für den Div-Layer
function getDivPos(div_id) {
	koordinaten = new Array(2);
	if ( document.layers ) {
		koordinaten['x'] = document.layers[div_id].left;
		koordinaten['x'] = document.layers[div_id].top;
	} else if ( document.getElementById ) {
		koordinaten['x'] = document.getElementById(div_id).style.left;
		koordinaten['y'] = document.getElementById(div_id).style.top;
		//px weg schneiden
		koordinaten['x'] = koordinaten['x'].substring(0, koordinaten['x'].length-2);
		//px weg schneiden
		koordinaten['y'] = koordinaten['y'].substring(0, koordinaten['y'].length-2);
	} else if ( document.all ) {
		koordinaten['x'] = document.all[div_id].style.left;
		koordinaten['y'] = document.all[div_id].style.top;
	}

	return koordinaten;
}

//Absolute Div-Position links
function absLeft(el)
{
	return (el.offsetParent)? el.offsetLeft+absLeft(el.offsetParent) : el.offsetLeft;
}

//Absolute Div-Position rechts
function absTop(el)
{
	return (el.offsetParent)? el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
}

function setDivPos(div_id, xPos, yPos) {
	xPos = parseInt(xPos);
	yPos = parseInt(yPos);
	if ( !isNaN(xPos) && !isNaN(yPos) ) {
		if ( document.layers ) {
			document.layers[div_id].left = xPos;
			document.layers[div_id].top = yPos;
		} else if ( document.getElementById ) {
			document.getElementById(div_id).style.left = xPos + "px";
			document.getElementById(div_id).style.top = yPos + "px";
		} else if ( document.all ) {
			document.all[div_id].style.left = xPos;
			document.all[div_id].style.top = yPos;
		}
	}
}

function move0() {
	//Setze die neuen Koordinaten	
	if ( !div_moving_done[0] ) {
		koordinaten = Array(2);
		koordinaten = move_algo_0(getDivPos('box0')['x'], getDivPos('box0')['y']);
		setDivPos('box0',  koordinaten['x'], koordinaten['y']);
	}
	
	//Stopp nach x Steps
	if ( steps == 50 ) {
		div_moving_done[0] = true;
	}
}

function move_algo_0(xPos, yPos) {
	koordinaten = Array(2);
	koordinaten['y'] = yPos;
	koordinaten['x'] = xPos - 1/steps*223;
	
	return koordinaten;
}

function move1() {
	//Setze die neuen Koordinaten	
	if ( !div_moving_done[1] ) {
		koordinaten = Array(2);
		koordinaten = move_algo_1(getDivPos('box1')['x'], getDivPos('box1')['y']);
		setDivPos('box1',  koordinaten['x'], koordinaten['y']);
	}
	
	//Stopp nach x Steps
	if ( steps == 50 ) {
		div_moving_done[1] = true;
	}
}

function move_algo_1(xPos, yPos) {
	koordinaten = Array(2);
	koordinaten['y'] = yPos;
	koordinaten['x'] = xPos - 1/steps*223;
	
	return koordinaten;
}

function move2() {
	//Setze die neuen Koordinaten	
	if ( !div_moving_done[2] ) {
		koordinaten = Array(2);
		koordinaten = move_algo_2(getDivPos('box2')['x'], getDivPos('box2')['y']);
		setDivPos('box2',  koordinaten['x'], koordinaten['y']);
	}
	
	//Stopp nach x Steps
	if ( steps == 50 ) {
		div_moving_done[2] = true;
	}
}

function move_algo_2(xPos, yPos) {
	koordinaten = Array(2);
	koordinaten['y'] = yPos;
	koordinaten['x'] = xPos - 1/steps*223;
	
	return koordinaten;
}

function move3() {
	//Setze die neuen Koordinaten	
	if ( !div_moving_done[3] ) {
		koordinaten = Array(2);
		koordinaten = move_algo_3(getDivPos('box3')['x'], getDivPos('box3')['y']);
		setDivPos('box3',  koordinaten['x'], koordinaten['y']);
	}
	
	//Stopp nach x Steps
	if ( steps == 50 ) {
		div_moving_done[3] = true;
	}
}

function move_algo_3(xPos, yPos) {
	koordinaten = Array(2);
	koordinaten['y'] = yPos;
	koordinaten['x'] = xPos - 1/steps*223;
	
	return koordinaten;
}

//Bild PopUp
var win;

function popUp(path, width, height) {
	//Check ob der Browser die Screenresolution hergibt
	if ( screen ) {
		b_scrolling = 'yes';
		if ( width > screen.width ) {
			width = screen.width;
			b_scrolling = 'yes';
		}
		if ( height > screen.height ) {
			height = screen.height;
			b_scrolling = 'yes';
		}
		//Ist das Fenster noch offen?
		if ( win != undefined && !win.closed )
		{
			//Fenster in den Vordergrund bringen
			win.focus();
		} else {
			//Koordinaten zum Zentrieren holen
			links = (screen.width-width)/2;
			oben = (screen.height-height)/2;
			//Neues Fenster öffnen
			win = window.open(path, "", 'toolbar=0,scrollbars=' + b_scrolling + ',location=0,statusbar=no,menubar=0,resizable=yes,width=' + width + ',height=' + height + ',top=' + height/2 + ',left=' + links);
}
	} else {
		if ( win != undefined && !win.closed )
		{
			win.focus();
		} else {
			win = window.open(path, "", 'toolbar=0,scrollbars=yes,location=0,statusbar=0,menubar=0,resizable=yes,width=' + width + ',height=' + height);
		}
	}
}