window.onload = function initialSetup() {
	setup();
}

function setup() {
	
	// Clear the board
	var chessPuzzle = document.getElementById("chesspuzzle");
	var allSquares = chessPuzzle.getElementsByTagName("div");
	 
	for (var i = 0; i < allSquares.length; i++) {    	allSquares[i].className = "empty";
}
	// Setup the pieces for the puzzle
	puzzleSetup();
	//Determine whose move it is
	document.getElementById("to_move").innerHTML = toMove;
}

function select(square) {
	if (selectCounter == 0) {
		square.style.border = "1px solid #F00";
		sqOne = square;
		newClass = square.className;
		sqOneId = square.getAttribute("id");
		document.getElementById("announcement").innerHTML = "";
		selectCounter += 1;
	}
	else if (selectCounter == 1) {
		sqTwo = square;
		sqTwoId = square.getAttribute("id");
		
		// Load chess puzzle
		puzzleMoves();
		
		// Test to see if they have chosen the correct move
		if ((sqOneId == move) && (sqTwoId == target)) {
			movePiece(sqOne,sqTwo);
			if(toMove == "Black to move, and checkmate&ndash;in&ndash;two moves!") {
				document.getElementById("notation").innerHTML += notation;
			}
			else {
				document.getElementById("notation").innerHTML += "<br />" + notation;
			}
			
			if (lastMove == true) {
				document.getElementById("to_move").innerHTML = "";
				document.getElementById("click").innerHTML = "";
announcement = "Congratulations! You solved the problem. Please fill out the form below to enter our Weekly Contest drawing."
				document.getElementById("contest_form").style.display = "block";	
			}
			else {
				respond(response1,response2,response3);	
			}
			document.getElementById("announcement").innerHTML = announcement;
			puzzleCounter += 1;
		}
		else {
			document.getElementById("announcement").innerHTML = "That move is incorrect. Please try again.";	
			setup();
			puzzleCounter = 0;
			lastMove = false;
			document.getElementById("notation").innerHTML = "";
		}
		sqOne.style.border = "none";
		selectCounter = 0;
	}
	else {
		alert("false");	
	}
}

function movePiece(squareOne,squareTwo) {
	squareOne.className = "empty";
	squareTwo.className = newClass;
}

function respond(respondSqOne,respondSqTwo,respondNotation) {
	sqThree = document.getElementById(respondSqOne);
	sqFour = document.getElementById(respondSqTwo);
	newClass = sqThree.className;
	movePiece(sqThree,sqFour);
	if(toMove == "Black to move, and checkmate&ndash;in&ndash;two moves!") {
		document.getElementById("notation").innerHTML += "<br />" + respondNotation;
	}
	else {
		document.getElementById("notation").innerHTML += respondNotation;
	}
}
var puzzleCounter = 0;
var selectCounter = 0;
var move, target, notation, response = "";
var announcement = "That move is correct!";
var lastMove = false;
var newClass;
var sqOneId;
var sqTwoId;
var sqOne;
var sqTwo;
//White to move first unless otherwise specified
var toMove = "White to move, and checkmate&ndash;in&ndash;two moves!";


//Unique to the individual puzzle
function puzzleMoves() {
		// Check to see which move the person is on
		if (puzzleCounter == 0) {
			move = "dfive";
			target = "fsix";
			notation = "1. Nf6+";
			response1 = "gseven";
			response2 = "fsix";
			response3 = " gxf6";
		}
		else if (puzzleCounter == 1) {
			move = "bthree";
			target = "fseven";
			notation = "2. Bxf7#, Checkmate!";
			lastMove =  true;
		}
		else {
			move = "";
			target = "";
		}	
}

function puzzleSetup() {
	document.getElementById("aeight").className = "brook";
	document.getElementById("deight").className = "bqueen";
	document.getElementById("eeight").className = "bking";
	document.getElementById("feight").className = "bbishop";
	document.getElementById("height").className = "brook";
	
	document.getElementById("cseven").className = "bpawn";
	document.getElementById("eseven").className = "bknight";
	document.getElementById("fseven").className = "bpawn";
	document.getElementById("gseven").className = "bpawn";
	document.getElementById("hseven").className = "bpawn";
	
	document.getElementById("asix").className = "bpawn";
	document.getElementById("dsix").className = "bpawn";
	
	document.getElementById("afive").className = "bknight";
	document.getElementById("bfive").className = "bpawn";
	document.getElementById("dfive").className = "wknight";
	document.getElementById("efive").className = "wknight";
	
	document.getElementById("efour").className = "wpawn";
	
	document.getElementById("bthree").className = "wbishop";
	document.getElementById("cthree").className = "wpawn";
	
	document.getElementById("atwo").className = "wpawn";
	document.getElementById("btwo").className = "wpawn";
	document.getElementById("dtwo").className = "wpawn";
	document.getElementById("ftwo").className = "wpawn";
	document.getElementById("gtwo").className = "wpawn";
	document.getElementById("htwo").className = "wpawn";

	document.getElementById("aone").className = "wrook";
	document.getElementById("cone").className = "wbishop";
	document.getElementById("done").className = "bbishop";
	document.getElementById("eone").className = "wking";
	document.getElementById("hone").className = "wrook";
	
}
