function move(e) {
	if (document.all?true:false) { // grab the x-y pos.s if browser is IE
		mx = event.clientX;
		my = event.clientY;
	} else {  // grab the x-y pos.s if browser is NS
		mx = Math.max(0, e.pageX);   // + catch possible negative values in NS4
		my = Math.max(0, e.pageY);
	}
	
	speed = Math.sqrt(Math.pow(mx-mxo,2) + Math.pow(my-myo,2));
	//window.status = speed;
	
	mxo = mx;
	myo = my;
	
	pool1.feed();
}

function frameloop() {
	//generatoren antreiben
	for (i = 0; i < generatoren.length; i++) generatoren[i].tick();
	
	var val = pool1.val();
	
	window.status = val;
	
	if ((bri != 0.0) && (Math.random() < Math.pow(val,3))) {
		bri = 1.0 - val;
	} else {
		bri = 1.0;
	}
	
	bgColor = hsb2rgbstring(hue,sat,bri);
	document.bgColor = bgColor;
}

function init() {
	//umgebungsvariablen initialisieren
	// die fenstergröße muß browserabhängig festgestellt werden	
	midW = ((window.innerWidth == null)? document.body.clientWidth : window.innerWidth) / 2;
	midH = ((window.innerHeight == null)? document.body.clientHeight : window.innerHeight) / 2;
	// die position auf mitte setzen
	mx = midW;
	my = midH;
	mxo = mx;
	myo = my;
	//hsb-werte setzen
	hue = 0.0;
	sat = 0.0;
	bri = 1.0;
	
	//generatoren starten
	pool1 = new pool(0.02, 0.01);
	generatoren.push(pool1);
		
	// den frameloop aktivieren
	timer = window.setInterval("frameloop()", 30);
	
	// den eventhandler initialisieren
	if (!document.all?true:false) document.captureEvents(Event.MOUSEMOVE)
	document.onmousemove = move;
}

//globale variablen deklarieren
var hue, sat, bri;
var mx, my, mxo, myo, midW, midH;

var generatoren = new Array();
var pool1;
