var imgset = new Array();
var elemset = new Array();
var imgptr = new Array();
var movestep = 75;

var pausetime = 5000;

function CrazyItem(elem) {
  for(var i = 0; i < elemset.length; i++) {
    if(elemset[i] == elem) {
      return i;
    }
  }
  return -1;
}

var moveflag = 0;
function CrazyMove(item, tgtleft, tgttop) {

  var img = imgset[item][imgptr[item]];

  if((img.style.left == '')||(img.style.top == '')) {
    return;
  }
  var left = parseInt(img.style.left.substring(0, img.style.left.length - 2));
  var top = parseInt(img.style.top.substring(0, img.style.top.length - 2));
  var jump;
  moveflag = 0;
  if(left != tgtleft) {
    if(Math.abs(tgtleft - left) < movestep) {
      jump = (Math.abs(tgtleft - left) / 2) + 1;
    } else {
      jump = movestep;
    }
    if(left < tgtleft) {
      img.style.left = (left + jump) + 'px';
    } else {
      img.style.left = (left - jump) + 'px';
    }
    moveflag = 1;
  }
  if(top != tgttop) {
    if(Math.abs(tgttop - top) < movestep) {
      jump = (Math.abs(tgttop - top) / 2) + 1;
    } else {
      jump = movestep;
    }
    if(top < tgttop) {
      img.style.top = (top + jump) + 'px';
    } else {
      img.style.top = (top - jump) + 'px';
    }
    moveflag = 1;
  }
}

var tgtleft;
var tgttop;
function CrazyNext(item) {
  var elem = elemset[item];
  for(var i = 0; i < imgset[item].length; i++) {
    imgset[item][i].style.visibility = 'hidden';
  }
  if(imgptr[item] >= 0) {
    imgset[item][imgptr[item]].style.visibility = 'visible';
    imgset[item][imgptr[item]].style.zIndex = '1';
  }
  imgptr[item] += 1;
  if(imgptr[item] >= imgset[item].length) {
    imgptr[item] = 0;
  }
  tgtleft = parseInt(elem.offsetLeft);
  tgttop = parseInt(elem.offsetTop);
  var img = imgset[item][imgptr[item]];
  img.style.visibility = 'visible';
  img.style.zIndex = '2';
  img.style.position = 'absolute';

//  var choicel = (Math.floor(Math.random() * 3) - 1);
//  var choicet = (Math.floor(Math.random() * 3) - 1);
//  while((choicel == 0) && (choicet == 0)) {
//    choicel = (Math.floor(Math.random() * 3) - 1);
//    choicet = (Math.floor(Math.random() * 3) - 1);
//  }
  choicel = 1;
  choicet = 0;
  img.style.left = ((choicel * img.width) + tgtleft) + 'px';
  img.style.top = ((choicet * img.height) + tgttop) + 'px';
  CrazyMove(item, tgtleft, tgttop);
}

var divs = new Array();
var nextEvent = new Array();
function CrazyLoop() {
  for(var i = 0; i < divs.length; i++) {
    if(!nextEvent[i]) {
      nextEvent[i] = new Array('next');
    }
    if(nextEvent[i][0] == 'next') {
      CrazyNext(CrazyItem(divs[i]));
    } else {
      CrazyMove(CrazyItem(divs[i]), nextEvent[i][1], nextEvent[i][2]);
    }
    if(moveflag == 1) {
      nextEvent[i] = new Array('move', tgtleft, tgttop);
      wait(50);
    } else {
      nextEvent[i] = new Array('next');
      wait(pausetime);
    }
  }
}

function CrazyBoxInit(elem) {
  var item = CrazyItem(elem);
  if(item < 0) {
    // New id
    item = elemset.length;
    elemset.push(elem);
  }
  imgset[item] = elem.getElementsByTagName('IMG');
  imgptr[item] = -1;
  return item;
}

function crazyPageInit() {
  var mydivs = document.getElementsByTagName('DIV');
  for(var i = 0; i < mydivs.length; i++) {
    if(mydivs[i].className == 'crazy') {
      var item = CrazyBoxInit(mydivs[i]);
      if(imgset[item].length > 0) {
	divs.push(mydivs[i]);
      }
    }
  }
  createThread(CrazyLoop, RUN);
}


