//Een rijdende trekker die de muiscursor volgt.
//(C) Michiel van 't Hof - 2010

var Trekker = new Array(
"images/Trekker000.gif", "images/Trekker010.gif", "images/Trekker020.gif", "images/Trekker030.gif", "images/Trekker040.gif", "images/Trekker050.gif", "images/Trekker060.gif", "images/Trekker070.gif", "images/Trekker080.gif",
"images/Trekker090.gif", "images/Trekker100.gif", "images/Trekker110.gif", "images/Trekker120.gif", "images/Trekker130.gif", "images/Trekker140.gif", "images/Trekker150.gif", "images/Trekker160.gif", "images/Trekker170.gif",
"images/Trekker180.gif", "images/Trekker190.gif", "images/Trekker200.gif", "images/Trekker210.gif", "images/Trekker220.gif", "images/Trekker230.gif", "images/Trekker240.gif", "images/Trekker250.gif", "images/Trekker260.gif",
"images/Trekker270.gif", "images/Trekker280.gif", "images/Trekker290.gif", "images/Trekker300.gif", "images/Trekker310.gif", "images/Trekker320.gif", "images/Trekker330.gif", "images/Trekker340.gif", "images/Trekker350.gif");

var Cache = new Array(36);

var MuisX = 0;
var MuisY = 0;
var PosX = 200;
var PosY = 900;
var Richting = 0.0;

var Snelheid = 3;
var Interval = 100;
var DraaiSnelheid = 0.10;
var PerspectiefFactor = 1.8;

//==============================================================================
function MuisPos(event)
{
  var x = 0;
  var y = 0;

  if (!event)
    event = window.event;
  if (event.pageX) {
    x = event.pageX;
    y = event.pageY;
  }
  else if (event.clientX) {
    x = event.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
    y = event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
  }
  MuisX = (x < 168)? 144 : x - 24;
  MuisY = (y < 16)? 16 : y - 16;
}

//==============================================================================
function Timer()
{
  var dx = MuisX - PosX;
  var dy = MuisY - PosY;

  if (document.getElementById) {
    //draaien
    var DoelRichting = Math.atan2(-dy, dx);
    var Delta = DoelRichting - Richting;
    if (Delta > Math.PI)
      Delta -= 2*Math.PI;
    if (Delta <= -Math.PI)
      Delta += 2*Math.PI;
    if (Delta > DraaiSnelheid)
      Richting += DraaiSnelheid;
    else if (Delta < -DraaiSnelheid)
      Richting -= DraaiSnelheid;
    else
      Richting = DoelRichting;
    //verplaatsen
    var VX = Math.cos(Richting) * Snelheid;
    var VY = Math.sin(Richting) * Snelheid;
    var i = Math.atan2(VY * PerspectiefFactor, VX) * 18 / Math.PI + 36;
    PosX += VX;
    PosY -= VY;
    //afbeelding met nieuwe richting naar nieuwe positie
    document.getElementById("trekkerimg").src = Trekker[Math.round(i) % 36];
    var obj = document.getElementById("trekker").style;
    obj.visibility = 'visible';
    obj.left = Math.ceil(PosX) + 'px';
    obj.top = Math.ceil(PosY) + 'px';
  }
}

//==============================================================================
function Init()
{
  if (window.document.images) {
    for (var i = 0; i < 36; i++) {
      Cache[i] = new Image();
      Cache[i].src = Trekker[i];
    }
    window.document.onmousemove=MuisPos;
    window.setInterval("Timer()",Interval);
  }
}

//==============================================================================

window.onload=Init;

