pre = (new Image()).src = "ul_d.gif";
pre = (new Image()).src = "ur_d.gif";
pre = (new Image()).src = "rl_d.gif";
pre = (new Image()).src = "rr_d.gif";

var press_time = .5;
var move;
var comp_moves;
var comp_button;
var player_button;
var player_turn;
var len;

function start_game() {
	player_turn = false;
	comp_moves = new Array();
	comp_button = null;
	player_button = null;
	move = 0;
	len = 0;
	update_status("Starting game...pay attention!");
	setTimeout("comp_turn(" + move + ")", 3000);
}

function comp_turn(i) {
	if (i > len) {
		move = 0;
		player_turn = true;
		update_status("It's your turn!");
	} else {
		update_status("Its Simon's turn...");
		if (i == len)
			comp_moves[i] = new_move(Math.floor(Math.random() * 4) + 1);
		comp_button = comp_moves[i];
		press_button_c();
	}
}

function player_move(str) {
	if (!player_turn)
		return;
	player_button = str;
	press_button_h();
	comp_button = comp_moves[move];
	move++;
	if (comp_button != player_button)
		lost_game();
	if (move > len) {
		player_turn = false;
		move = 0;
		len++;
		update_status("Great job! Simon's thinking...");
		setTimeout("comp_turn(" + move + ")", 3000);
	}
}

function press_button_c() {
	document.getElementById(comp_button).src = comp_button + "_d.gif";
	setTimeout("depress_button_c()", press_time * 1000);
}

function depress_button_c() {
	document.getElementById(comp_button).src = comp_button + ".gif";
	setTimeout("comp_turn(" + ++move + ")", 500);
}

function press_button_h() {
	document.getElementById(player_button).src = player_button + "_d.gif";
	setTimeout("depress_button_h()", press_time * 1000);
}

function depress_button_h() {
	document.getElementById(player_button).src = player_button + ".gif";
}

function new_move(num) {
	switch (num) {
		case 1: return "ul";
		case 2: return "ur";
		case 3: return "dl";
		case 4: return "dr";
	}
}

function update_status(msg) {
	document.getElementById("status").innerHTML = msg;
}

function lost_game() {
	update_status("Game over. You made it through " + len + " rounds!");
	move = 0;
	len = 0;
}