var m = new xMouse();

var oneDeg=(2*Math.PI)/360;


<!-- Hier kann der Typ 1-7 und die Werte verändert werden -->
/*** PINWHEEL TYPE 1 ***/
var Radius = 1;
var NumStars=32;
var NumSteps=56;
var StepAngle=(25)*oneDeg;




var StarObject=new Array();

var hexDigit=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
function dec2hex(dec)
{
	return(hexDigit[dec>>4]+hexDigit[dec&15]);
}
function hex2dec(hex)
{
	return(parseInt(hex,16))
}

function CreateStar()
{

	this.layer 		= new xLayer("X", 100, 100, 10);
	this.currAngle 	= 0;
	this.step		= 0;
	this.x		= 100;
	this.y		= 100;
	return (this);
}

/*** Choose a random pinwheel configuration ***/
function restart()
{
	var num=Math.floor(Math.random()*4);
	
	for(i=0;i<NumStars;i++)
		StarObject[i].layer.hide();

	if(num==0){
		Radius = 1;
		NumStars=32;
		NumSteps=16;
		StepAngle=(25)*oneDeg;
	}
	


	for(i=0 ; i<NumStars; i++)
	{
		var s=StarObject[i];
		s.currAngle = (StepAngle*i);
		s.step = (i%NumSteps);
		s.x=m.X;
		s.y=m.Y;
	}

	for(i=0;i<NumStars;i++)
		StarObject[i].layer.show();

	
}
function start()
{

	for(i=0 ; i<NumStars; i++)
	{
		StarObject[i]=new CreateStar();
		StarObject[i].currAngle = (StepAngle*i);
		StarObject[i].step = (i%NumSteps);
		StarObject[i].layer.clip(0,0,2,2);
		StarObject[i].layer.setBgColor("red");
	}

	for(i=0 ; i<NumStars ; i++)
		StarObject[i].layer.show();

	/*** Remove this if you only 1 type of pinwheel ***/
	
	Rotate();
}

function changeColour(s)
{
	var colour="";

	r2= Math.floor(Math.random()*2)*255;
	g2= Math.floor(Math.random()*2)*255;
	b2= Math.floor(Math.random()*2)*255;

	if(r2==0 && g2==0 && b2==0)
		r2=255;

	colour = "#" + dec2hex(r2) + dec2hex(g2) + dec2hex(b2);
	s.layer.setBgColor(colour);

	s.x=m.X;
	s.y=m.Y;
}
function Rotate() 
{
	var x;
	var y;
	for (i = 0 ; i < NumStars ; i++ ) {
		var s=StarObject[i];
		
		if(s.step==0)
			changeColour(s);

		var angle = s.currAngle;
		var rad   = s.step*Radius + 10;
		x = s.x + rad*Math.cos(angle);
		y = s.y + rad*Math.sin(angle);

		s.layer.moveTo(x,y);

		s.step = (s.step+1)%NumSteps;
	}

	setTimeout("Rotate()", 30);
}

function handle_resize()
{
	if(document.layers)
		start();
}

window.onresize=handle_resize;
window.onload=start;

