// copyright 2006 bullscows.com
var gs = new Array(4);var num = new Array(4);var guess = 1;var gameOver=false;

function generateDigit(){var dig = Math.floor (Math.random()*10);return dig;}
function checkExist(digit, numArray, el){
var exist = false;
if (el==null) el=numArray.length;
for(var k=0;k<el;k++){if (digit==numArray[k]) exist=true;}
return exist;
}
function generateNumber(){
var digit = 0;
while ( !digit )digit = generateDigit();
var exist = false;
for(var i=0;i<num.length;i++){
while (exist){
digit = generateDigit();
exist = checkExist(digit, num, i);
}
num[i] = digit;
exist = true;
}
}
function keyAnalyser(e){
var ascii = 0;
var el = null;
if ("which" in e){ascii=e.which}
else if("keyCode" in e){ascii=e.keyCode}
else if("keyCode" in window.event){ascii=window.event.keyCode }
if (ascii==0 && ("which" in window.event)){ascii=e.which}
if (NN){el = e.target;
}else{el = event.srcElement;
}
elname = el.name;
if (((elname=='login'))||(elname=='password')) return 0; //this fixes a strange bug in Mozilla Firefox. This function analyzed log-in form without being asked to do this
if (ascii==9) return true;
if (ascii==13){checkGuess();}
else if (ascii < 48 || ascii > 57 )
{if (!NN) event.keyCode = 0;
return false;
}else{
if ( (elname=='d1' && (ascii-48)==0)){
if (!NN) event.keyCode = 0;
return false;
}
getGuess();
if ( checkExist(ascii-48, gs, gs.length ) ){
if (!NN) event.keyCode = 0;
return false;
}
if (elname=='d1') gs[0] = ascii-48;
else if (elname=='d2') gs[1] = ascii-48;
else if (elname=='d3') gs[2] = ascii-48;
else if (elname=='d4') gs[3] = ascii-48;
}
}
function getGuess(){
gs[0] = document.bc.d1.value==""?-1:parseInt(document.bc.d1.value);
gs[1] = document.bc.d2.value==""?-1:parseInt(document.bc.d2.value);
gs[2] = document.bc.d3.value==""?-1:parseInt(document.bc.d3.value);
gs[3] = document.bc.d4.value==""?-1:parseInt(document.bc.d4.value);
}
function checkGuess (){
if (gameOver) {alert('Game Over. Click "new" to Start a New Game');return false;}
if ( checkExist (-1, gs, gs.length) ) return false;
var countExist=0, countMatch=0;
for (var i=0; i<gs.length; i++ ){
if ( checkExist (gs[i], num, num.length) ) countExist++;
if ( gs[i]==num[i] ) countMatch++;
eval('document.bc.d'+(i+1)+'.value=""');
}
eval('document.bc.n'+guess+'.value=gs.toString().replace(/,/g,"")');
eval('document.bc.e'+guess+'.value=countExist');
eval('document.bc.m'+guess+'.value=countMatch');
for (var i=0; i<gs.length; i++ ){gs[i]=-1;}
if ( countMatch==4 ){
document.bc.original.value=num.toString().replace(/,/g,"");
gameOver=true;
document.getElementById('frame').contentWindow.document.getElementById('status').value = '2';
document.getElementById('frame').contentWindow.document.getElementById('basic_form').submit();
alert ('Well Done!');
clearInterval(timerId);
}
if ( countMatch!=4 && guess==7 ){
document.bc.original.value=num.toString().replace(/,/g,"");
gameOver=true;
document.getElementById('frame').contentWindow.document.getElementById('status').value = '1';
document.getElementById('frame').contentWindow.document.getElementById('basic_form').submit();
alert ('Try Again! The answer is ' + num.toString().replace(/,/g,""));
clearInterval(timerId);
}
if (!gameOver) {
  document.getElementById('frame').contentWindow.document.getElementById('basic_form').submit();
}
guess++;document.bc.d1.focus();
}
function showTime(){
var hours = document.getElementById('hours').innerHTML * 1;
var minutes = document.getElementById('minutes').innerHTML * 1;
var seconds = document.getElementById('seconds').innerHTML * 1;
seconds = seconds+1;
if (seconds == 60) {
  minutes += 1;
  seconds = 0;
}
if (minutes == 60) {
  hours += 1;
  minutes = 0;
}
if (seconds<10) seconds = '0'+seconds;
if (minutes<10) minutes = '0'+minutes;
if (hours<10) hours = '0'+hours;
seconds=seconds+'';
minutes=minutes+'';
hours=hours+'';
document.getElementById('hours').innerHTML=hours;
document.getElementById('minutes').innerHTML=minutes;
document.getElementById('seconds').innerHTML=seconds;
timerId = setTimeout('showTime()', 1000);
}
function newGame($byButton){
if ($byButton)
  clearInterval(timerId);
document.getElementById('hours').innerHTML='00';
document.getElementById('minutes').innerHTML='00';
document.getElementById('seconds').innerHTML='00';
timerId = setTimeout('showTime()', 1000);
gameOver=false;
if (document.getElementById('frame').contentWindow.document.getElementById('tries').value > '1'){
  var originally_tries = document.getElementById('frame').contentWindow.document.getElementById('tries').value;
  document.getElementById('frame').contentWindow.document.getElementById('tries').value = originally_tries - 1;
  document.getElementById('frame').contentWindow.document.getElementById('basic_form').submit();
}
document.getElementById('frame').contentWindow.document.location.href = './add_statistics_form.php';
for (var i=1; i<=7; i++ ){
eval('document.bc.n'+i+'.value=""');
eval('document.bc.e'+i+'.value=""');
eval('document.bc.m'+i+'.value=""');
}
guess=1;generateNumber();
for (var i=1; i<=4; i++ ){
eval('document.bc.d'+i+'.value=""');
}
document.bc.original.value="????";
getGuess();
}
function toggleDiv(divn,vmode){
if(document.layers){document.layers[divn].visibility = vmode ? "show" : "hide";document.layers[divn].display=vmode ?"block":"none"}
else if(document.getElementById){var obj = document.getElementById(divn);obj.style.visibility = vmode ? "visible" : "hidden";obj.style.display = vmode ? "block" : "none";}
else if(document.all){document.all[divn].style.visibility = vmode ? "visible" : "hidden";document.all[divn].style.display = vmode ? "block" : "none";}
}
var NN=navigator.appName=='Netscape';if (NN){document.captureEvents(Event.KEYPRESS);document.onkeypress = keyAnalyser;}
