// JavaScript Document

var hexChars = "0123456789ABCDEF";

function Dec2Hex(Dec)
{
  if (Dec > 255) {
    hex = 'ff';
  } else {
    var a = Dec % 16;
    var b = (Dec - a) / 16;
    hex = "" + hexChars.charAt(b) + hexChars.charAt(a);
  }
  return hex;
}

function colorshift(e)
{
  var ev = e || window.event;
  
  var body = document.getElementsByTagName('body')[0];

  var x = ev.clientX;
  var y = ev.clientY;
  var w = body.clientWidth;
  var h = body.clientHeight;

  /* original code:
  var r = x;
  var g = y;
  var b = (w-x-y); */

  x = Math.round(x/3);
  y = Math.round(y/3);
  w = Math.round(w/3);
  h = Math.round(h/3);

  var r = Math.round((x / w) * 128)+128;
  var g = (y % 128)+128;
  var b = (Math.abs(w-x-y) % 128)+128;

  body.style.backgroundColor = '#'+Dec2Hex(r)+Dec2Hex(g)+Dec2Hex(b);
}

function init()
{
  body = document.getElementsByTagName('body')
  body[0].onmousemove = colorshift;  
}

window.onload = init;
