function placevalues() {
var allInputs = document.getElementsByTagName("input");
for (var i =0; i < allInputs.length; i++) {
if (allInputs[i].type=="text") {
if (spos[i]) {
allInputs[i].value = spos[i];
}
//fontSize = "14pt";
}

}
countup = 0; //
}
//


function capturekey(evt) {
evt = (evt) ? evt : ((window.event) ? event : null);
if (evt) {
var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if (elem) {
var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
//alert (charCode);
if (charCode == 38) { //up: do yellow border
focussedelem = elem.id;
//get just ref
justcell = focussedelem.substring(4,6);
if (document.getElementById(elem.id).style.background == "#ff0"  || document.getElementById(elem.id).style.background == "rgb(255, 255, 0) none repeat scroll 0% 0%") {
document.getElementById(elem.id).style.background = "#ffe";
document.getElementById(elem.id).style.color = "#000";
var cellbg = document.getElementById("ct"+justcell);
cellbg.style.background = "#ffe";

}
else {
document.getElementById(elem.id).style.background = "#ff0";
document.getElementById(elem.id).style.color = "#000";
var cellbg = document.getElementById("ct"+justcell);
cellbg.style.background = "#ff0";
}

}//
if (charCode == 40) { // down: do black
focussedelem = elem.id;
//get just ref
justcell = focussedelem.substring(4,6);
if (document.getElementById(elem.id).style.background == "#000" || document.getElementById(elem.id).style.background == "rgb(0, 0, 0) none repeat scroll 0% 0%") {
document.getElementById(elem.id).style.background = "#ffe";
document.getElementById(elem.id).style.color = "#000";
var cellbg = document.getElementById("ct"+justcell);
cellbg.style.background = "#ffe";

}
else {
document.getElementById(elem.id).style.background = "#000";
document.getElementById(elem.id).style.color = "#fff";
var cellbg = document.getElementById("ct"+justcell);
cellbg.style.background = "#000";
}
}

}
}
}


function showsolution() {
resetgrid();
var allInputs = document.getElementsByTagName("input");
for (var i =0; i < allInputs.length; i++) {
if (allInputs[i].type=="text") {
if (sol[i]) {
allInputs[i].value = sol[i];
}
else {
//
allInputs[i].style.background = "#000";
allInputs[i].style.color = "#fff";
var cellbg = document.getElementById("ct"+i);
cellbg.style.background = "#000";
}
}

}
}

function resetgrid() {
// reset the grid
var allInputs = document.getElementsByTagName("input");
for (var i =0; i < allInputs.length; i++) {
if (allInputs[i].type=="text") {
if (spos[i]) {
allInputs[i].value = spos[i];
allInputs[i].style.background = "#ffe";
allInputs[i].style.color = "#000";
var cellbg = document.getElementById("ct"+i);
cellbg.style.background = "#ffe";
}
//fontSize = "14pt";
}

}
countup = 0; //
}
var wronganswer = 0;
function checksolution() {
var allInputs = document.getElementsByTagName("input");
for (var i =0; i < allInputs.length; i++) {
if (allInputs[i].type=="text") {
if (sol[i]) {
// check colour of cell is not black
if (document.getElementById("cell"+i).style.background == "#000" || document.getElementById("cell"+i).style.background == "rgb(0, 0, 0) none repeat scroll 0% 0%") {
// error
wronganswer += "mistake";
}
}
else {
// check colour of cell is black!
if (document.getElementById("cell"+i).style.background != "#000" && document.getElementById("cell"+i).style.background != "rgb(0, 0, 0) none repeat scroll 0% 0%") {
wronganswer += "mistake";
}
}
}

}
if (wronganswer !=0) {
alert ("Your solution is not correct. This may be because you have not yet finished the puzzle, or you have not determined correctly which cells are filled.");
wronganswer = 0;
}
else {
alert ("Congratulations, you got the answer right!");
}
}