// 26Jan07   RDL   Formerly comet_E
// 29Mar08   RDL   Renamed
var ex=ey  =-100;
var root   = "http://RichardLawhorn.com/cursor/";
var maxD   = 30;
var depth  = 10;
var spread =  1;
var delay  = 50;
                                       // Browser detection
var version= 0.0;
var type   = 0;                        // 0:unk; 1:IE; 2:NS
var IE     = 1;
var NS     = 2;

function browserdetect() { 
  var agt   = navigator.userAgent.toLowerCase();
  var appVer= navigator.appVersion.toLowerCase();
  version   = parseFloat(appVer);
  var iePos = appVer.indexOf('msie');
  if (iePos != -1){
    version = parseFloat(appVer.substring(iePos+5, 
      appVer.indexOf(';',iePos)));
    }
  var nav6Pos = agt.indexOf('netscape6');
  if (nav6Pos != -1){
    version= parseFloat(agt.substring(nav6Pos+10));
    }
  type= (iePos != -1) ? IE : 
      (agt.indexOf('mozilla')!=-1) ? NS : 0;
  return(type>0 && version>=5);
  }
var present=browserdetect();
                                 // Find object by name or id
function PSobj(n, d) { 
  var p,i,x;
  if(!d)
    d=document;
  if((p=n.indexOf("?"))>0 && parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document;
    n=n.substring(0,p);
    }
  if(!(x=d[n]) && d.all)
    x=d.all[n]; 
  for (i=0; !x && i<d.forms.length; i++)
    x=d.forms[i][n];
  for(i=0;!x&&d.layers && i<d.layers.length;i++) 
    x=PSobj(n,d.layers[i].document);
  if(!x && d.getElementById) 
    x=d.getElementById(n);
  return x;
  }

function LoadImages(maxD){
  var d = document;
  if  (d.images){
    var Imgs = new Array("SG","SB","SW","SY","SP","SO","SR");
    d.ImList = new Array();
    d.X      = new Array();
    d.Y      = new Array();
    d.Fobj   = new Array();
    for (k=j=0; j<maxD; j++){
      d.ImList[j]     = new Image();
      d.ImList[j].src = root + Imgs[k] + '.gif';
      d.X[j]          = -16;
      d.Y[j]          = -16;
      k=(k+1)%Imgs.length;
      }
    }
  }
  
function Flyer(){
  var d=document;
  for(n=depth-1; n>0; n-=1){            // Shift old positions
    d.X[n]=d.X[n-1];
    d.Y[n]=d.Y[n-1];
    }
  var x=d.X[0];                               // New Position
  var y=d.Y[0];
  if(Math.abs(ex-x)>=10){ 
    x+=Math.floor((ex-x)*0.8);
    }
  else if(ex!=x){ 
    x+=Math.abs(ex-x)/(ex-x);
    }
  if(Math.abs(ey-y)>=10){ 
    y+=Math.floor((ey-y)*0.8); 
    }
  else if(ey!=y){ 
    y+=Math.abs(ey-y)/(ey-y);
    }
  d.X[0]=x;
  d.Y[0]=y;
                                // Activate Graphics
  k=0;
  for (j=0; j<depth; j++){
    if (Math.abs(d.X[j]-ex)>6 || Math.abs(d.Y[j]-ey)>6){
      n=Math.floor(Math.random()*depth);
      Pict=d.ImList[n].src;
      os=spread*k;
      dx=(Math.random()-.5)*os-8;
      dy=(Math.random()-.5)*os-8;
      k+=1;
      }
    else{                       // offset to clear pointer
      Pict=d.ImList[0].src;
      dx=-1000;
      dy=-1000;
      }
    d.Fobj[j].style.left = d.X[j]+dx;
    d.Fobj[j].style.top  = d.Y[j]+dy;
    d.Fobj[j].src        = Pict;
    }
  setTimeout("Flyer();",delay); // Return later
  }
                                // Locate the mouse position
function IE_MouseEvent(){
  ex=event.clientX + document.body.scrollLeft;
  ey=event.clientY + document.body.scrollTop;
//ex=event.clientX + document.documentElement.scrollLeft;
//ey=event.clientY + document.documentElement.scrollTop;
  }
  
function NS_MouseEvent(e){
  ex=e.pageX;
  ey=e.pageY;
  }
                            // Setup Anchor-Level Containers
function AddScript(){ 
  s ='';
  for (j=0; j<maxD; j++){
    s+='<A> <IMG id="comet'+j+'" SRC="'+root+'XX.gif" border="0"';
    s+='STYLE="position:absolute; top:-16; left:-16;';
    s+='width:16; height:16"></A>';
    }
  document.write(s);
  }

function getIds() {
  for (j=0; j<maxD; j++){
    document.Fobj[j] = PSobj("comet"+j);
    }
  }
                            // Initialize MouseEvent
if (present){
  AddScript();
  LoadImages(maxD);
  getIds();
  Flyer();
  if (type == IE && version >= 4){
    document.onmousemove = IE_MouseEvent;
    }
  if (type == NS && version >= 5){
    document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = NS_MouseEvent;
    }
  }
