//  WAYANAY INKA - Cursor Trailer for IE, NS4, Mozilla
//  Copyright (c) 2002 WAYANAY INKA - All Rights Reserved

//  Sprite Constants
var NUMBER_OF_SPRITES = 6
var X_OFFSET = -8
var Y_OFFSET = 8

//  Begin: Initialization

//  Browser Detection
var usingNS4 = document.layers
var usingIE = document.all
var usingMozilla = document.getElementById && !document.all

//  Browser Dependencies
var layerRef = usingNS4 ? "document" : "document.all"
var styleRef = usingNS4 ? "" : ".style"

//  Sprite Array (Requires star1.gif, ..., star<NUMBER_OF_SPRITES>.gif)
var spriteArray = new Array();
for (k = 1; k <= NUMBER_OF_SPRITES; k++) {
  eval("sprite" + k + " = new Image")
  eval("sprite" + k + ".src = 'star" + k + ".gif'")
}
for (k = 0; k < NUMBER_OF_SPRITES; k++) spriteArray[k] = new spriteObj(k + 1)

//  Capture Mouse Handler
if (usingMozilla) document.addEventListener("mousemove", mouseMoveEventHandler, true)
if (usingIE) document.onmousemove = mouseMoveEventHandler
else if (usingNS4) {
  document.captureEvents(Event.MOUSEMOVE)
  document.onmousemove = mouseMoveEventHandler
}

window.setInterval("animate()", 50)  

//  End: Initialization

//  The sprite Object
function spriteObj(id) {
  this.id = id
  this.sprite = "sprite" + id
  this.pic = "pic" + id
  this.doAnimationStep = doAnimationStep  
}

//  Method
function doAnimationStep() {
  if (this.id <= NUMBER_OF_SPRITES) {
    if (usingNS4)
      eval("document." + this.sprite + ".document['" + this.pic + "'].src = sprite" + this.id + ".src")
    else if (usingIE)
      eval("document['" + this.pic + "'].src = sprite" + this.id + ".src")
    else if (usingMozilla) {
      document.getElementById(this.sprite).src =  this.sprite 
    }
    this.id++
  }
    else {
      if (usingNS4) eval("document."  + this.sprite + '.visibility = "hidden"')
      else if (usingIE) eval("document.all." + this.sprite + '.style.visibility = "hidden"')
      else if (usingMozilla) document.getElementById(this.sprite).style.visibility = "hidden"
    }
}

function animate() { 
  for (k = 0; k < NUMBER_OF_SPRITES; k++)
    spriteArray[k].doAnimationStep()
}

function mouseMoveEventHandler(e) { 
  rotatedSprites = rotateSprites()
  if (usingNS4) {
    eval("document." + rotatedSprites + ".left = e.pageX + " + X_OFFSET)
    eval("document." + rotatedSprites + ".top = e.pageY + " + Y_OFFSET)
  }
  else if (usingIE) {
    eval("document.all." + rotatedSprites + ".style.pixelLeft = event.clientX + document.body.scrollLeft + " + X_OFFSET)
    eval("document.all." + rotatedSprites + ".style.pixelTop = event.clientY + document.body.scrollTop + " + Y_OFFSET)
  }
  else if (usingMozilla){
    document.getElementById(rotatedSprites).style.left = e.pageX + X_OFFSET
    document.getElementById(rotatedSprites).style.top = e.pageY + Y_OFFSET
  }
}

function rotateSprites() {
  oldTop = spriteArray[NUMBER_OF_SPRITES - 1]
  for (k = NUMBER_OF_SPRITES - 1; k > 0; k--) {
    spriteArray[k] = spriteArray[k - 1] 
    spriteArray[k].id = k + 1
  }
  spriteArray[0] = oldTop 
  spriteArray[0].id = 1
  if (usingMozilla) document.getElementById(spriteArray[0].sprite).style.visibility = "visible"
  else eval(layerRef + '.' + spriteArray[0].sprite +  styleRef + '.visibility = "visible"')	
  return spriteArray[0].sprite
}