var flowermove  =  0;
var runFlowers  =  0;
var angelRun    =  0;
var angelFly    =  0;


function moveFlowerPower(id, x, y, speed)
{
	var aktX  =  parseInt(dRefS(id).left);
	var aktY  =  parseInt(dRefS(id).top);	
	var distX =  x - aktX;
	var distY =  y - aktY;	
	var dist  =  Math.sqrt(distX*distX + distY*distY);
	if(Math.abs(dist) < speed)
	{
		dRefS(id).left =  x + (dom? "px" : "");
		dRefS(id).top  =  y + (dom? "px" : "");
		controlFlowerPower(id);
		return;
	}
	dRefS(id).left  =  (aktX + (distX/dist)*speed) + (dom? "px" : "");
	dRefS(id).top   =  (aktY + (distY/dist)*speed) + (dom? "px" : "");
	if (runFlowers) flowermove[id]  =  setTimeout('moveFlowerPower("' + id + '", ' + x + ', ' + y + ', ' + speed + ')', 40);
}

function initFlowerPower()
{
	var el = new Array("fl0","fl1","fl2","fl3","fl4","fl5","fl6","fl7","fl8","fl9");
	if (!runFlowers) {
		runFlowers =  1;
		flowermove =  new Array();		
		for (var i in el) {
			controlFlowerPower(el[i]);
			dRefS(el[i]).visibility =  "visible";
		}
	}
	else {	
		runFlowers =  0;
		for (var j in el) {
			clearTimeout(flowermove[el[j]]);
			dRefS(el[j]).visibility =  "hidden";
		}
		flowermove =  0;
	}
}

function controlFlowerPower(id)
{
	var startX     =  Math.floor(Math.random() * (breit-200));
	var startY     =  0;
	dRefS(id).left =  startX + (dom? "px" : "");
	dRefS(id).top  =  startY + (dom? "px" : "");
	
	var x          =  Math.floor(Math.random() * (breit-200));
	var speed      =  Math.floor((Math.random() * 7) + 2);
		
	moveFlowerPower(id, x, hoch-100, speed);	
}


function initEngel(e) {
	if (angelFly) {
    	yPos = document.captureEvents? e.pageY : window.event.y;
    	xPos = document.captureEvents? e.pageX : window.event.x;     
    	if (angelRun) clearTimeout(angelRun);
    	angelFollowMouse ();
    }
    if (nc) routeEvent(e);
}

// control angel moving
function angelFollowMouse () {

	var aktX  =  nc? parseInt(dRef("engel").left) : parseInt(dRef("engel").offsetLeft);
	var aktY  =  nc? parseInt(dRef("engel").top)  : parseInt(dRef("engel").offsetTop);
	var dstX  =  xPos - aktX;
	var dstY  =  yPos - aktY;
	
	if (Math.abs(dstX) > 10 || Math.abs(dstY) > 10) {
		dRefS("engel").left   =  (aktX + dstX/10) + (dom? "px" : "");
		dRefS("engel").top    =  (aktY + dstY/10) + (dom? "px" : "");
		angelRun =  setTimeout('angelFollowMouse()', 40);
	} 
	else angelRun =  0;
}

function startAngel()
{
	if (!angelFly) {
		dRefS("engel").visibility =  "visible";
		angelFly                  =  1;
	}
	else {
		dRefS("engel").visibility =  "hidden";
		angelFly                  =  0;
	}
}
