<SCRIPT language=JavaScript>
<!-- Pretty by kurt.grigg@virgin.net http://website.lineone.net/~kurt.grigg/javascript

colours=new Array('ff00ff','00ff00','0000ff','00ff00'); //Add as many as you like, minimum of 2!
dots=12; //Number of dots, choose your own amount!
hght=70; //Width of effect!
wdth=70; //Height of effect!
dotsize=3; //Size of dots in pixels!
step=0.05; //Speed of dots twist and spin!
delay=0.2; //Follow mouse speed!

//Alter nothing past here!!!
dstrbt=360/dots;
currStep=0;
ypos=0;
xpos=0;
count1=0;
count2=0;
move=1;
ny=0;
nx=0;
ns=(document.layers);
ie=(document.all);
if (ns){
for (i=0; i < dots; i++)
document.write('<layer name="N'+i+'" left=0 top=0 bgcolor=#'+colours[0]+' clip="0,0,'+dotsize+','+dotsize+'"></layer>');
}
if (ie){
document.write('<div id="S" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < dots; i++){
document.write('<div id="E" style="position:absolute;top:0px;left:0px;width:'+dotsize+'px;height:'+dotsize+'px;background:#'+colours[0]+';font-size:'+dotsize+'px"></div>');
}
document.write('</div></div>');
}
(ns)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
ypos = (document.layers)?evnt.pageY:event.y;
xpos = (document.layers)?evnt.pageX:event.x;
}
if (ns)window.onMouseMove=Mouse;
if (ie)document.onmousemove=Mouse;
var D=null;
function TwistnSpin(){
if (ie) S.style.top=document.body.scrollTop;
for (i=0; i < dots; i++)
{
if (ns)D=document.layers["N"+i];
if (ie)D=E[i].style;
D.top=ny+hght*Math.cos(currStep+i*dstrbt*Math.PI/180)*Math.sin(currStep/2);
D.left=nx+wdth*Math.sin(currStep+i*dstrbt*Math.PI/180)*Math.cos(1+currStep/2);
}
currStep-=step;
}
function colourStep(){
count1+=move;
if (count1 >= dots) {count1=0;count2+=move}
if (count2 == colours.length) count2=0;
if (ns) document.layers["N"+count1].bgColor=colours[count2];
if (ie) E[count1].style.background=colours[count2];
}

function MouseFollow(){
ay = ny+=(ypos-ny)*delay;
ax = nx+=(xpos-nx)*delay;
TwistnSpin();
colourStep();
setTimeout('MouseFollow()',10);
}
if (ns||ie)MouseFollow();
//-->
</SCRIPT>