var Tom;
var balls;
var timer;
var running;
var points;
var highest;

function setup() {
  balls = new Array();
  Tom = new movingObject("Tom",100,100,59,87,1);
  balls.unshift(Tom);
  Tom.update();
  running = false;
  tick();
  points = 0;
  highest = 0;
}

function tick() {
  
  if (running) {
    if (document.getElementById("arena").style.background == "#f00") {
      document.getElementById("arena").style.background = "#fff";
    }
    for (x in balls) {
      
      // gravity
      balls[x].ay=1;

      if (balls[x].y>400) {
        points = 0;
        document.getElementById('score').innerHTML = points.toString();
        document.getElementById("arena").style.background = "#f00";
        if (Math.abs(balls[x].dy) < 2) {
          balls[x].y=401;
	  balls[x].dy = 0;
          balls[x].ay = 0;
          balls[x].dx = 0;          
        } else {
          balls[x].y -= 1;
          balls[x].dy = -balls[x].dy;
        }
      } else if (balls[x].y<0) {
        balls[x].y += 1;
        balls[x].dy = -balls[x].dy; 
      }
      if (balls[x].x>300) {
        balls[x].x -= 1;
        balls[x].dx = -balls[x].dx;
      } else if (balls[x].x<balls[x].width) {
        balls[x].x += 1;
        balls[x].dx = -balls[x].dx;
      }

      balls[x].update();
    }
  }
  timer = setTimeout("tick()",20);
} 

function pause() {
  running = false;
}
function play() {
  running = true;
}

function bounce() {
  if (running) {
    if ((Tom.dy > 0) || (Tom.y >399)) {
      Tom.dy = -15;
      Tom.dx += Math.random()*5-2.5;
      points++;
      if (points > highest) {
        highest = points;
      }
      document.getElementById('score').innerHTML = points.toString();
      document.getElementById('highest').innerHTML = highest.toString();
    }
  }
}