// Initialize
function InitMouseMover() {
   havingLayers = document.layers;
   browserName = navigator.userAgent;
   offsetX = 1; offsetY = -36;
   changeX = -10;
   pict[0] = new Image();
   pict[1] = new Image();
   pict[0].src = "img/cursor.gif";
   pict[1].src = "img/cursor.gif";
   delayedFrames = 20;
   delayedX = new Array();
   delayedY = new Array();
   for(var i=0; i<delayedFrames; i++) {
      delayedX[i] = delayedY[i] = 0;
   }
   if (havingLayers) document.captureEvents( Event.MOUSEMOVE );
   document.onmousemove = MouseMover;
}

// Event on MouseMove
function MouseMover(NNevent) {
   cursorImg = document["picture"];
   if(!cursorImg)
     cursorImg = document.getElementById("picture");
   if ( havingLayers || browserName.indexOf( "MSIE" ) < 0){
      changePicture(pict[NNevent.pageX < changeX ? 0 : 1].src);
      cursorImg.left = cursorImg.style.left = delayedX[0];
      cursorImg.top  = cursorImg.style.top  = delayedY[0];
      for(var i=0; i<delayedFrames - 1; i++) {
         delayedX[i] = delayedX[i + 1];
         delayedY[i] = delayedY[i + 1];
      }
      delayedX[delayedFrames - 1] = NNevent.pageX + offsetX;
      delayedY[delayedFrames - 1] = NNevent.pageY + offsetY;
      document.routeEvent(NNevent);

   } else if( browserName.indexOf( "MSIE 4." ) >= 0) {
      picture.style.pixelLeft = event.x + offsetX;
      picture.style.pixelTop  = event.y + offsetY;

   } else if( browserName.indexOf( "MSIE 5." ) >= 0 ) {
      picture.style.pixelLeft = document.body.scrollLeft + event.x + offsetX;
      picture.style.pixelTop  = document.body.scrollTop  + event.y + offsetY;
   } else {
      
   }
}

// Change Picture
function changePicture(_src_) {
   if(cursorImg.src != _src_) {
      cursorImg.src = _src_;
   }
}

// Do Initialization
pict = new Array();
window.onload = InitMouseMover();
