var pics=new Array();
var used=new Array();
var pieces=new Array();
var selected = false;
var activePiece;
var rightCount=0;
var wrongSpot;
var selectable=new Array();
//Download pieces
for(i=1; i<13; i++){
	pics[i]=new Image();
	pics[i].src=i+".jpg";
}

setPieces();
setSelectable();



function setPieces(){
	for (i=1; i<13; i++){
		var x;
		var filled=false;
		while (!filled){
			x = Math.round(Math.random()*11)+1;
			if (!used[x]) {
				pieces[i]=pics[x].src;
				used[x]=true;
				filled=true;
			}
		}
	}
}

function setSelectable(){
	for (i=1; i<13; i++){
		selectable[i]=true;
	}	
}

function filler(){
	for (i = 1; i < 13; i++){
		document.getElementById("piece"+i).src = pieces[i];
	}
}

function processPiece(piece){
	selected=true;
	document.getElementById("curPiece").src=piece.src;
	activePiece=piece.id;
}

function checkPiece(spot){
	if(!selected){
		alert("You have to select a piece before clicking in the puzzle");
		return;
	}
		if (!selectable[spot.id.substr(4)]) return;
	var ans=spot.id.substr(4)+".jpg";
	var guess=document.getElementById("curPiece").src;
	var startofguess=guess.lastIndexOf("/");
	if (startofguess!=-1){
		var guess=document.getElementById("curPiece").src.substring(startofguess+1);
	}  else {
		guess=document.getElementById("curPiece").src;
	}
//	if (document.getElementById("curPiece").src.indexOf(ans)!=-1){
	if (guess==ans){
		spot.src=document.getElementById("curPiece").src;
		document.getElementById("curPiece").src="rect.jpg";
		selected=false;
		document.getElementById(activePiece).src="rect.jpg";
//		spot.selectable=false;
		selectable[spot.id.substr(4)]=false;
		rightCount++;
		if(rightCount==12) {
			alert("CONGRATULATIONS!"+ "\n" +"You have completed the puzzle!");
			document.getElementById("again").style.visibility="visible";
		}
	} else {
			spot.src="wrong.jpg";
			wrongSpot=spot;
			setTimeout("wrongSpot.src='rect.jpg'", 500);
	}
}

function restart(){
	for (i=1; i<13; i++){
	}
	selected=false;
	rightCount=0;
	setSelectable();
	for (i=1; i<13; i++){
		used[i]=false;
	}
	setPieces();
	filler();	
	for (i=1; i<13; i++){
		document.getElementById("spot"+i).src="rect.jpg";
	}
	document.getElementById("again").style.visibility="hidden";
}
