var puzzle = new Array(225);
var puzzlestring =   '';
puzzle = puzzlestring.split("");
var solution = new Array(225);
var solutionstring = '';
solution = solutionstring.split("");
var charcounter;
var startwordchars = new Array();

function capcell(cellnum)
{
	var letters = new Array(10);
	var letterstring = "0123456789";
	letters = letterstring.split("");
	var lettercounter;
	var validchar = 0;

	for (lettercounter = 0; lettercounter < 10; lettercounter++)
	{
		if (document.getElementById('char' + cellnum).value == letters[lettercounter])
		{
			validchar = 1;
		}
	}
	if (validchar == 0)
	{
		document.getElementById('char' + cellnum).value = "";
	}
}
function resetpuzzle()
{
	var cellcounter;
	for (cellcounter = 0; cellcounter < 225; cellcounter++)
	{
		if (puzzle[cellcounter] == " ")
		{
			document.getElementById('char' + cellcounter).value = "";
		}
	}
}
function drawpuzzle()
{
	document.write('<table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">');
	var xcounter = 0;
	for (cellcounter = 0; cellcounter < 225; cellcounter++)
	{
		if (xcounter == 0)
		{
			document.write('<tr>');
		}
		if (puzzle[cellcounter] == '*')
		{
			document.write('<td style="width:24px;height:22px;" bgcolor="#000000">&nbsp;</td>');
		}
		else if (puzzle[cellcounter] == " ")
		{
			document.write('<td id="cell' + cellcounter + '" bgcolor="#ffffff" style="text-align:center;width:24px;height:22px;"><input style="border-width:0px;width:20px;height:18px;font-family:verdana,arial;font-size:12px;text-align:center;" size="1" type="text" maxlength="1" id="char' + cellcounter + '" onblur="capcell(' + cellcounter + ');" value=""></td>');
		}
		else
		{
			startwordchars.push(cellcounter);
			document.write('<td style="width:24px;height:22px;background-color:#ffffff;font-family:verdana,arial;font-size:12px;text-align:center;">' + puzzle[cellcounter]);
		}
		xcounter++;
		if (xcounter == 15)
		{
			document.write('</tr>');
			xcounter = 0;
		}
	}
	document.write('</table>');
}
function checkpuzzle()
{
	var cellcounter;
	var swccounter;
	var flagfound = 0;
	var flagbadchar = 0;
	var flagblanks = 0;
	var erroralert = "";

	for (cellcounter = 0; cellcounter < 225; cellcounter++)
	{
		if (solution[cellcounter] != '*')
		{
			flagfound = 0;
			for (swccounter in startwordchars)
			{
				if (cellcounter == startwordchars[swccounter])
				{
					flagfound = 1;
				}
			}	
			if (flagfound == 0)
			{
				if (document.getElementById('char' + cellcounter).value != solution[cellcounter])
				{
					if (document.getElementById('char' + cellcounter).value == "")
					{
						flagblanks = 1;
					}
					else
					{
						flagbadchar = 1;
						document.getElementById('cell' + cellcounter).style.backgroundColor = 'red';
					}
				}
			}
		}
	}
	if ((flagbadchar == 1) || (flagblanks == 1))
	{
		if (flagbadchar == 1)
		{
			erroralert = "Incorrect entries are marked in red. ";
		}
		if (flagblanks == 1)
		{
			erroralert = erroralert + "There are still one or more blank spaces in the puzzle. ";
		}			
		alert(erroralert + "Click OK to continue.");
	}
	else
	{
		alert("Congratulations! The puzzle is solved.");
	}
	for (cellcounter = 0; cellcounter < 225; cellcounter++)
	{
		if (solution[cellcounter] != '*')
		{
			flagfound = 0;
			for (swccounter in startwordchars)
			{
				if (cellcounter == startwordchars[swccounter])
				{
					flagfound = 1;
				}
			}	
			if (flagfound == 0)
			{
				document.getElementById('cell' + cellcounter).style.backgroundColor = '#ffffff';
			}
		}
	}


}
function solvepuzzle()
{
	var cellcounter;
	var swccounter;
	var flagfound = 0;

	for (cellcounter = 0; cellcounter < 225; cellcounter++)
	{
		if (solution[cellcounter] != '*')
		{
			flagfound = 0;
			for (swccounter in startwordchars)
			{
				if (cellcounter == startwordchars[swccounter])
				{
					flagfound = 1;
				}
			}	
			if (flagfound == 0)
			{
				document.getElementById('char' + cellcounter).value = solution[cellcounter];
			}
		}
	}
}
function changewordstatus(elementid)
{
	if (document.getElementById(elementid).style.textDecoration == 'none')
	{
		document.getElementById(elementid).style.textDecoration = 'line-through';
	}
	else
	{
		document.getElementById(elementid).style.textDecoration = 'none';
	}
} 

