//StarbaseArcade.com UFO Script
//By Jordan Mack

var ufo_x = 0;
var ufo_y = 0;
var ufo_size_x = 23;
var ufo_size_y = 11;
var ufo_x_vector = 0;
var ufo_y_vector = 0;
var ufo_x_vector_max = 15;
var ufo_y_vector_max = 5;
var ufo_movement_delay = 50;
var ufo_recreate_delay = 3000;
var ufo_map_size_x = 580;
var ufo_map_size_y = 160;
var ufo_vector_change_chance = 7;
var ufo_graphic_count = 5;

function ufo_create()
{
  document.getElementById("ufo").style.display="block";
}

function ufo_destroy()
{
  document.getElementById("ufo").style.display="none";
}

function ufo_set_vectors()
{
  ufo_x_vector = Math.round(Math.random() * ufo_x_vector_max);
  ufo_y_vector = Math.round(Math.random() * ufo_y_vector_max);
  if(ufo_x > (ufo_map_size_x / 2))
  {
    ufo_x_vector = ufo_x_vector * -1;
  }
  if(ufo_y > (ufo_map_size_y / 2))
  {
    ufo_y_vector = ufo_y_vector * -1;
  }
}

function ufo_init()
{
  document.getElementById("ufo").src="grfx/ufo0"+(Math.round(Math.random() * ufo_graphic_count)+1)+".gif";
  ufo_x = Math.round(Math.random() * (ufo_map_size_x - ufo_size_x));
  ufo_y = Math.round(Math.random() * (ufo_map_size_y - ufo_size_y));

  ufo_start_pos = Math.round(Math.random() * 3);
  if(ufo_start_pos == 0)
  {
    ufo_x = 0;
  }
  else if(ufo_start_pos == 1)
  {
    ufo_x = (ufo_map_size_x - ufo_size_x);
  }
  else if(ufo_start_pos == 2)
  {
    ufo_y = 0;
  }
  else if(ufo_start_pos == 3)
  {
    ufo_y = (ufo_map_size_y - ufo_size_y);
  }

  document.getElementById("ufo").style.left=ufo_x+"px";
  document.getElementById("ufo").style.top=ufo_y+"px";

  ufo_set_vectors();
  while ((ufo_x_vector == 0) && (ufo_y_vector == 0))
  {
    ufo_set_vectors();
  }
  ufo_create();
  ufo_move();
}

function ufo_check_location()
{
  var valid = 1;

  if(ufo_x > (ufo_map_size_x - ufo_size_x))
  {
    valid = 0;
  }
  if(ufo_x < 0)
  {
    valid = 0;
  }
  if(ufo_y > (ufo_map_size_y - ufo_size_y))
  {
    valid = 0;
  }
  if(ufo_y < 0)
  {
    valid = 0;
  }

  if(valid == 1)
  {
    setTimeout("ufo_move()", ufo_movement_delay);
  }
  else
  {
    ufo_destroy();
    ufo_recreate_delay = Math.round(Math.random() * 10000);
    setTimeout("ufo_init()", ufo_recreate_delay);
  }
}

function ufo_move()
{
  if(Math.round(Math.random() * ufo_vector_change_chance) == 0)
  ufo_set_vectors();
  while ((ufo_x_vector == 0) && (ufo_y_vector == 0))
  {
    ufo_set_vectors();
  }

  ufo_x = ufo_x + ufo_x_vector;
  ufo_y = ufo_y + ufo_y_vector;
  document.getElementById("ufo").style.left=ufo_x+"px";
  document.getElementById("ufo").style.top=ufo_y+"px";

  ufo_check_location();  
}