/*

  coded by Imagician / BionFX for knuddels.com

  http://www.bionfx.de

  successfully tested with: IE4.0, IE5.0, NN4.5, NN6.0

*/

var mausX  = 0;
var mausY  = 0;
var mausXO = 0;
var mausYO = 0;
var allOff = true;
var changed = false;
var lastChanged = false;
var xP = new Array(0,0,0,0,0);
var yP = new Array(0,0,0,0,0);
var numOfDivs = 5;
var dreiundachtzig = false;

function printUnsupp()
{
  window.status = 'UNSUPPORTED BROWSER! SOME JS WONT WORK, SORRY.';
  return true;
}

function setVis(name, visi)
{
  obj = (document.layers)? document.layers[name] : (document.all)? document.all.tags("div")[name].style : (document.getElementById)? document.getElementById(name).style : 'null';
  if (obj != 'null') obj.visibility = (visi) ? 'visible':'hidden';
  else printUnsupp();
}

function setPos(name, x, y)
{
  if (document.layers)
  {
    document.layers[name].left = x;
    document.layers[name].top  = y;
  }
  else if (document.all)
  {
    document.all.tags("div")[name].style.pixelLeft = x;
    document.all.tags("div")[name].style.pixelTop  = y;
  }
  else if (document.getElementById)
  {
    document.getElementById(name).style.left = x;
    document.getElementById(name).style.top  = y;  
  }
  else printUnsupp();
  
}

function checkPosition(e)
{
  if (!document.all)
  {
    mausX = e.pageX; mausY = e.pageY; // supported by NN4+ and NN6
  }
  else
  {
    mausX = event.clientX + document.body.scrollLeft; mausY = event.clientY + document.body.scrollTop;
  }
}

function timerInt()
{
  if ((mausXO != mausX) || (mausYO != mausY))
    changed = true;
  else
    changed = false;

  for (n = numOfDivs - 1; n > 0;  n--)
  {
    xP[n] = xP[n-1]; yP[n] = yP[n-1];
  }
  xP[0] = mausXO; yP[0] = mausYO;

  for (n = 0; n < numOfDivs; n++)
  { if ((xP[n] == mausX) && (yP[n] == mausY))
    {
      if (!allOff) setVis('spur' + n, false);
      if (n == (numOfDivs - 1)) allOff = true;
    }
    else
      setPos("spur" + n, xP[n], yP[n] );
  }

  if  ((!lastChanged) && (changed))
  {
    for (n = 0; n < numOfDivs; n++)
    { xP[n] = mausX; yP[n] = mausY
      setVis('spur' + n, true); }

    allOff = false;
  }

  mausXO = mausX; mausYO = mausY;
  lastChanged = changed;
}

var gimmick = true;

function init()
{
  if (document.layers)
    document.captureEvents(Event.MOUSEMOVE); // only NN4+ _needs_ this

  document.onmousemove = checkPosition;

  window.setInterval('timerInt()',125);
}
