function init() {
	var counter			= 0;
	objects				= new Array('earth', 'mars', 'jupiter', 'satellit', 'saturn', 'astronaut', 'shuttle', 'neptun', 'moon', 'comet', 'monolith', 'message');
	space				= new Array();
	bg_position			= $('background').getPosition();
	bg_size				= $('background').getSize();
	space_turn			= true;
	space_turn_timeout	= false;
	angle_step			= 8;
	angle_max			= Math.floor(360 / angle_step) * angle_step;

	$('message').addEvent('dblclick', function() {
		space_turn					= false;
		old_text					= $('message').get('text');
		new_text					= prompt('Nachricht ändern', old_text);
		space['message'].text		= new_text;
		space['message'].setText();

		var object					= $('message').getCoordinates();
		space['message'].width		= object.width;
		space['message'].height		= object.height;

		save_position('message');
	});

	for(i = 0; i < objects.length; i++) {
		if(objects[i] == 'comet' || objects[i] == 'satellit') {
			var preloadtext		= '';
			for(angle = 0; angle < angle_max; angle += angle_step) {
				textangle		= angle;
				if(angle < 10) {
					textangle	= '0' + textangle;
				}
				if(angle < 100) {
					textangle	= '0' + textangle;
				}
				preloadtext		+= '<img id="' + (objects[i] +''+ textangle) + '" src="img/' + objects[i] + '/' + textangle + '.gif">';
			}
			document.getElementById('preload').innerHTML += preloadtext;
		}

		$(objects[i]).setStyle('display', 'block');
		var object					= $(objects[i]).getCoordinates();
		space[objects[i]]			= new space_object;
		space[objects[i]].id		= objects[i];
		space[objects[i]].x			= object.left;
		space[objects[i]].y			= object.top;
		space[objects[i]].width		= object.width;
		space[objects[i]].height	= object.height;
		space[objects[i]].angle		= -1;
		center_x					= Math.round(space[objects[i]].width / 2);
		center_y					= Math.round(space[objects[i]].height / 2);

		// drehen
		$(objects[i]).addEvents({
			'mousewheel': function(event) {
				event.stop();
				window.clearTimeout(space_turn_timeout);
				space_turn	= false;
				if (event.wheel > 0) {
					space[this.id].setAngle(space[this.id].angle - angle_step);
				} else if (event.wheel < 0) {
					space[this.id].setAngle(space[this.id].angle + angle_step);
				}
				space_turn_timeout	= window.setTimeout('save_position("' + this.id + '")', 200);
			}
		});

		// verschieben
		var myMove = new Drag(objects[i], {
			drag: 0,
			onStart: function(element) {
				space_turn		= false;
			},
			onComplete: function(element, droppable) {
				space[element.get('id')].setX(element.getStyle('left'));
				space[element.get('id')].setY(element.getStyle('top'));
				save_position(element.get('id'));
			}
		});
	}

	$('nova').setStyle('display', 'block');
	window.setTimeout("nova()", 1000);
	checkPreload();
}
function checkPreload() {
	if($('satellit000').complete == true) {
		load_positions();
		window.setTimeout("$('preload_counter').destroy()", 1000);
	} else {
		window.setTimeout("checkPreload()", 500);
	}
}
function load_positions() {
	if(space_turn == true) {
		var myAjax = new Request({
			method: 'get',
			link: 'cancel',
			url: 'position.php?load=' + Math.random(),
			evalScripts: true,
		});
		myAjax.send();
	}
	window.setTimeout('load_positions()', 1000);
}
function save_position(object) {
	if(space_turn == false) {
		messagetext		= '';
		if(object == 'message') {
			messagetext		= encodeURI(space['message'].text);
		}
		var myAjaxSave = new Request({
			method: 'get',
			url: 'position.php',
			link: 'cancel',
			evalScripts: false,
			data: 'object=' + space[object].id + '&x=' + space[object].x + '&y=' + space[object].y + '&a=' + space[object].angle + '&message=' + space[object].text,
			onComplete: function() {
				space_turn	= true;
			}
		});
		myAjaxSave.send();
	}
}
function space_object() {
	// variablen
	this.id			= '';
	this.x			= 0;
	this.y			= 0;
	this.width		= 0;
	this.height		= 0;
	this.angle		= 0;
	this.text		= '';

	// methoden
	this.setText		= function settext() {
		if(this.id == 'message') {
			var calc_width	= (this.text.length * 7);
			if(calc_width > 350) {
				calc_width	= 350;
			}
			this.width	= calc_width;
			$('message').setStyle('width', this.width + 'px');
			$(this.id).set('html', this.text);
		}
	};
	this.setPosition	= function setposition() {
		$(this.id).position({x:this.x, y:this.y});
	};
	this.setAngle		= function(new_angle) {
		if(this.id != 'message') {
			if(new_angle < 0) {
				new_angle	= angle_max - angle_step;
			}
			if(new_angle >= angle_max) {
				new_angle	= 0;
			}
			if(this.angle != new_angle) {
				this.angle		= new_angle;
				if(this.id == 'comet' || this.id == 'satellit') {
					var image_src	= 'img/' + this.id + '/' + this.getTextAngle() + '.gif';
					$(this.id).setStyle('background-image', 'url(' + image_src + ')');
				} else {
					var angle_pos	= this.height * (this.angle / angle_step);
					$(this.id).setStyle('background-position', '0px -' + angle_pos + 'px');
				}
			}
		}
	}
	this.getTextAngle	= function gettextangle(value) {
		var textangle	= this.angle;
		if(this.angle < 10) {
			textangle	= '0' + textangle;
		}
		if(this.angle < 100) {
			textangle	= '0' + textangle;
		}
		return textangle;
	};
	this.setX	= function setx(value) {
		this.x	= value.replace(/px/, '');
	};
	this.setY	= function sety(value) {
		this.y	= value.replace(/px/, '');
	}
}
function nova() {
	var choose		= Math.round(Math.random() * 2);
	var pos_x		= Math.round(Math.random() * (bg_size.x - 60)) + bg_position.x;
	var pos_y		= Math.round(Math.random() * (bg_size.y - 60)) + bg_position.y;
	$('nova').position({x:pos_x, y:pos_y});

	switch(choose) {
		case 0:
			$('nova').setStyle('background-image', 'url(img/nova.gif?' + Math.random() + ')');
			break;
		case 1:
			$('nova').setStyle('background-image', 'url(img/nova2.gif?' + Math.random() + ')');
			break;
		default:
			$('nova').setStyle('background-image', 'url(img/nova3.gif?' + Math.random() + ')');
	}

	window.setTimeout('nova()', 3000 + Math.round(Math.random() * 6700));
}
function sf_text() {
	space['message'].text		= '';
	space['message'].setText();
	save_position('message');
}
