/*

  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 = true;
var inited = 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;

var picPath = "http://www.knuddelsweb.de/images/";

var spurPic = new Array(
  "wincur0.gif",
  "wincur1.gif",
  "wincur2.gif",
  "wincur3.gif",
  "wincur4.gif");

var spurPicMc = new Array(
  "mc_0.gif",
  "mc_1.gif",
  "mc_2.gif",
  "mc_3.gif",
  "mc_4.gif");

if (navigator.platform.toLowerCase().indexOf('mac') != -1) spurPic = spurPicMc;

var spurPicNN = new Array(
  "nn_a0.gif",
  "nn_a1.gif",
  "nn_a2.gif",
  "nn_a3.gif",
  "nn_a4.gif");

var spurPicIE4 = new Array(
  "ie4_a0.gif",
  "ie4_a1.gif",
  "ie4_a2.gif",
  "ie4_a3.gif",
  "ie4_a4.gif");

var spurPicMcA = new Array(
  "mc_a0.gif",
  "mc_a1.gif",
  "mc_a2.gif",
  "mc_a3.gif",
  "mc_a4.gif");


var spurObj  = new Array(numOfDivs);
var spurObjA = new Array(numOfDivs);

function checkBrowser()
{
  for (i = 0; i < spurPic.length; i++)
  {
    spurObj[i] = new Image();
    spurObj[i].src = picPath+spurPic[i];
  }
  if (navigator.platform.toLowerCase().indexOf('mac') != -1) // oh boy, it's a mac!
  {
    for (i = 0; i < spurPic.length; i++)
    {
      spurObjA[i] = new Image();
      spurObjA[i].src = picPath+spurPicMcA[i];
    }
  }
  else // a pc, hopefully
  {
    if (!document.all) // assume NN
    {
      for (i = 0; i < spurPic.length; i++)
      {
        spurObjA[i] = new Image();
        spurObjA[i].src = picPath+spurPicNN[i];
      }
    }
    else //assume IE
    {
      for (i = 0; i < spurPic.length; i++)
      {
        spurObjA[i] = new Image();
        spurObjA[i].src = picPath+spurPicIE4[i];
      }
    }
  }
}

function changeImgObj(layername, imgname, imgobjname)
{
  if (document.layers)
    eval("document.layers[layername].document.images[imgname].src = eval(imgobjname+'.src')");
  else if ((document.all) || (document.getElementById))
    eval("document.images[imgname].src = eval(imgobjname+'.src')");
  else printUnsupp();
}

function doHover()
{
  if (inited)
    for (i = 0; i < numOfDivs; i++)
      changeImgObj('spur'+i, 's'+i, 'spurObjA[i]');
}

function dontHover()
{
  if (inited)
    for (i = 0; i < numOfDivs; i++)
      changeImgObj('spur'+i, 's'+i, 'spurObj[i]');

}

function init()
{
  if (document.layers)
    document.captureEvents(Event.MOUSEMOVE); // only NN4+ _needs_ this

  document.onmousemove = checkPosition;

  checkBrowser();

  window.setInterval('timerInt()',200);

  inited = true;
}
