<!--
//Copyright Earth Technology
//Creator : Open Source Developer
//Modified By : Sudipto Lahiri
//License : Open Source
//Version: Beta

var signs = new Array()
signs[0]="+"
signs[1]="-"
signs[2]="&#215"
var currentSign = 0
var startCount = 3
var timer = 0
var correct = 0
var attempted = 0
var n1 = 0
var n2 = 0
var startDate
var problemTimeSetting = 10
var problemTime = problemTimeSetting
var maxProblems = 25
var answerString = ""
var id
var totalTime
var attempted
function restart() {
	timer = 0
	correct = 0
	attempted = 0
	startCount = 3
	setNumProblems()
	clear()
	countdown()
}

function clear() {
	var row0 = document.getElementById('problemTable').rows[0].cells
	var row1 = document.getElementById('problemTable').rows[1].cells
	var row2 = document.getElementById('problemTable').rows[2].cells
	row0[0].innerHTML = ""
	row0[1].innerHTML = ""
	row1[0].innerHTML = ""
	row1[1].innerHTML = ""
	row2[0].innerHTML = ""
	var messageRow0 = document.getElementById('messageTable').rows[0].cells
	var messageRow1 = document.getElementById('messageTable').rows[1].cells
	messageRow0[0].innerHTML = ""
	messageRow1[0].innerHTML = ""
	var scoreTableRow0 = document.getElementById('scoreTable').rows[0].cells
	var scoreTableRow1 = document.getElementById('scoreTable').rows[1].cells
	scoreTableRow0[0].innerHTML = ""
	scoreTableRow0[1].innerHTML = "";
	scoreTableRow1[0].innerHTML = ""
	scoreTableRow1[1].innerHTML = ""
	
	var buttonRow = document.getElementById('buttonTable').rows[0].cells
	buttonRow[0].innerHTML = ""
}

function setNumProblems() {
	var numProblemsList = document.getElementById("numProblems")
	maxProblems = Number(numProblemsList.options[numProblemsList.selectedIndex].text)
}

function submitScore() {
	var age = document.getElementById("age")
	if (document.myform.txtName.value == "") {
		alert("You must enter your name.")
		document.myform.txtName.focus()
		return
	}
	if (age.options[age.selectedIndex].text == "Age") {
		alert("You must select an age.")
		document.myform.age.focus()
		return
	}
	var doc = document.getElementById("myform")
	doc.action = "view_high_scores.php?game=flashCards"
	document.getElementById("myform").submit()
}

function resetButtons() {
	var buttonRow = document.getElementById('buttonTable').rows[0].cells
	var submitScoreString = ""
	if (correct >= (attempted/2)) {
		submitScoreString += "<input type=hidden name='score' id='score' value=" + totalTime + ">"
		submitScoreString += "<input type=hidden name='numprobs' id='numprobs' value=\"" + maxProblems + "\">"
		submitScoreString += "<input type=hidden name='txtAttampted' id='txtAttampted' value=\"" + correct + "\">"
		submitScoreString += "<table width = '100%' align = 'center' border = '0'><tr><td width = '50%' align = 'right' class = 'textheader'>"
		submitScoreString += "Enter Your Name :</td><td width = '50%' align = 'left'>"
		submitScoreString += "<input name='txtName' id = 'txtName' type=text size=20 value = '' maxlength=60 style='border: 1px solid #0099CC'></td></tr><tr><td width = '50%' align = 'right' class = 'textheader'>"
		submitScoreString += "Select Your Age :</td><td width = '50%' align = 'left'>"
		submitScoreString += "<select name=age id=age style='border: 1px solid #0099CC'>"
		submitScoreString += "<option>Age"
		submitScoreString += "<option value = 'Under 8'>Under 8"
		var ageGroup
		for (ageGroup = 8; ageGroup < 18; ageGroup++) {
			submitScoreString += "<option value ="+ageGroup+">" + ageGroup
		}
		submitScoreString += "<option value = '18-29'>18-29"
		submitScoreString += "<option value = '30-39'>30-39"
		submitScoreString += "<option value = '40-49'>40-49"
		submitScoreString += "<option value = '50-59'>50-59"
		submitScoreString += "<option value = '60-69'>60-69"
		submitScoreString += "<option value = '70 or older'>70 or older"
		submitScoreString += "</select></td></tr><tr><td width = '100%' align = 'center' colspan = '2'>"		
		submitScoreString += "<a href = '#' onclick='submitScore()'><img border='0' src='images/submit.gif' width='69' height='34' id='submitButton'></a></td></tr><tr><td width = '100%' align = 'center' colspan = '2' class = 'textheader'>or press Start to try again.</td></tr></table><br>"
	}
	buttonRow[0].innerHTML = "<form name = 'myform' id=myform method=post type=Submit>" + submitScoreString + "<font class = 'textheader'>No of problems : <select id=numProblems onchange='setNumProblems()' style='border: 1px solid #0099CC'><option>25<option>50</select></td></tr><td width = '100%' align = 'center' colspan = '2'><br><input type = 'image' border='0' src='images/start.gif' width='69' height='34' id='Start' onclick='restart()'></form>"
}

function handleKeystroke(event) {
	if (startCount > 0) {
		return
	}
	if (attempted >= maxProblems) {
		return
	}
    enterAnswer(event)
    setTimeout("checkAnswer(false)", 200)
}

function problemTimer() {
	if (attempted >= maxProblems) {
		return
	}
	if (problemTime == 0) {
		checkAnswer(true)
		problemTime = problemTimeSetting
	}
	else {
		problemTime = problemTime - 1
	}
   	setTimeout("problemTimer()", 1000)
}

function enterAnswer(event) {
	
	var keyCode = event.keyCode
	if (keyCode >= 96 && keyCode <= 105) {
		keyCode -= 48
	}
	// handle delete key
	if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 110) {
		if (answerString.length > 0) {
			answerString = answerString.substring(0, answerString.length-1)
		}
	}
	else if (keyCode < 48 || keyCode > 57) {
		return
	}
	else if (answerString.length > 4) {
		return
	}
	else {
		answerString = answerString + String.fromCharCode(keyCode)
	}
	var answerRow = document.getElementById('problemTable').rows[3].cells
	answerRow[0].innerHTML = "<b><font size=7 face=arial color = #0080C0>" + answerString + "</font></b>";
}

function countdown() {
	document.getElementById('sudipto').style.display="block";
	if (startCount == 3) {
//		var numProb = document.getElementById("numProblems")
//		maxProblems = Number(numProb.options[numProb.selectedIndex].text)
		var buttonRow = document.getElementById('buttonTable').rows[0].cells
		buttonRow[0].innerHTML = ""
	}
    if (startCount >= 0) {
        var row1 = document.getElementById('problemTable').rows[1].cells
		if(startCount!=0)
		{
		row1[1].innerHTML = "<b><font size=10 face=arial color = #0080C0>" + startCount + "</font></b>"
    	var t = setTimeout("countdown()", 1000)
    	startCount -= 1
		}
		else
		{
			row1[1].innerHTML = "<b><font size=10 face=arial color = #0080C0>Your Time Starts Now</font></b>"
			var t = setTimeout("countdown()", 1000)
			startCount -= 1
		}
	}
	else {
		initialize()
		problemTimer()
		createProblem()
	}
}

function initialize() {
	document.getElementById('sudipto').style.display="block";
	id = Math.random()
	var scoreTableRow0 = document.getElementById('scoreTable').rows[0].cells
	var scoreTableRow1 = document.getElementById('scoreTable').rows[1].cells
	scoreTableRow0[0].innerHTML = "<b><font color=#FF0066>Correct : <font></b>"
	scoreTableRow0[1].innerHTML = "<b><font face=arial size=4>0</font></b>"
	scoreTableRow1[0].innerHTML = "<b><font color=#FF0066>Attempted : </font></b>"
	scoreTableRow1[1].innerHTML = "<b><font face=arial size=4>0</font></b>"

	startDate = new Date()
}

function checkAnswer(outOfTime) {
	var row1 = document.getElementById('problemTable').rows[0].cells
	var row2 = document.getElementById('problemTable').rows[1].cells
	var ans = 0
	if (currentSign == 0) {
		ans = n1 + n2
	}
	else if (currentSign == 1) {
		ans = n1 - n2	
	}
	else if (currentSign == 2) {
		ans = n1 * n2
	}
	var answerRow = document.getElementById('problemTable').rows[3].cells
	var yourAnswer = Number(answerString)
	var scoreTableRow0 = document.getElementById('scoreTable').rows[0].cells
	var scoreTableRow1 = document.getElementById('scoreTable').rows[1].cells
	var messageRow0 = document.getElementById('messageTable').rows[0].cells
	var messageRow1 = document.getElementById('messageTable').rows[1].cells
	if (yourAnswer == ans && answerString != "") {
		correct = correct + 1
		attempted = attempted + 1
		scoreTableRow0[1].innerHTML = "<b><font face=arial size=4>" + correct + "</font></b>"
		scoreTableRow1[1].innerHTML = "<b><font face=arial size=4>" + attempted + "</font></b>"
		answerRow[0].innerHTML = ""
		answerString = ""
		messageRow0[0].innerHTML = "<div align = center><image src = 'images/Correct.jpg'><br><b><font size = 5 color = green>Yes!</font> " + n1 + " " + signs[currentSign] + " " + n2 + " = " + ans + " is a currect answer</b></div>"
		messageRow1[0].innerHTML = ""
		createProblem()
	}
	else if (outOfTime == true) {
		attempted = attempted + 1
		scoreTableRow1[1].innerHTML = "<b><font face=arial size=4>" + attempted + "</font></b>"
		messageRow0[0].innerHTML = "<div align = 'center'><image src = 'images/Wrong.jpg' border = '0'><br><b><font size = 5 color = red>Sorry.</font> You answered " + answerString + "</b></div>"
		messageRow1[0].innerHTML = "<b>The correct answer is: " + n1 + " " + signs[currentSign] + " " + n2 + " = " + ans + "</b>"
		answerRow[0].innerHTML = ""
		answerString = ""
		createProblem()
	}	
}

function createProblem() {
	var row1 = document.getElementById('problemTable').rows[0].cells
	var row2 = document.getElementById('problemTable').rows[1].cells
	var row3 = document.getElementById('problemTable').rows[2].cells
	if (attempted >= maxProblems) {
		endDate = new Date()
		totalTime = (endDate.getTime() - startDate.getTime()) / 1000
		var perfectString = ""
		if (correct == attempted) {
			perfectString = "<b><center><image src = 'images/jump_968029_thumb.jpg' border = '0'><br><font color = #F18A11>Perfect score! You got 100% correct!</font></center></b>"
		}
		if (totalTime < 60) {
			row1[1].innerHTML = "<hr noshade size=2 color=#006699><b><font face=Arial size=5 color=#6E7F15>Your time was " + totalTime + " seconds.</font></b><hr noshade size=2 color=#006699>" + perfectString
		}
		else {
			var minutes = Math.round(totalTime/60)
			var seconds = "" + totalTime % 60.0
			var minuteString = " minute, "
			if (minutes > 1) {
				minuteString = " minutes, "
			}
			row1[1].innerHTML = "<hr noshade size=2 color=#006699><b><font face=arial size=5>Your time was " + minutes + minuteString + seconds.substring(0, 6) + " seconds.</font></b><hr noshade size=2 color=#006699>" + perfectString
		}
		row2[0].innerHTML = ""
		row2[1].innerHTML = ""
		row3[0].innerHTML = ""
		resetButtons()
		return
	}

	n1 = Math.round(Math.random()*12)
	n2 = Math.round(Math.random()*12)
	currentSign = Math.round(Math.random()*2)

	// make sure we don't repeat problem
	while (n1 == row1[1].innerHTML) {
	    n1 = Math.round(Math.random()*12)
	}
	while (n2 == row2[1].innerHTML) {
	    n2 = Math.round(Math.random()*12)
	}
  
	// if subtraction, make sure n1 >= n2
	if (currentSign == 1) {
	    while (n1 < n2) {
	    	n1 = Math.round(Math.random()*12)
    		n2 = Math.round(Math.random()*12)
		}
	}

	row1[1].innerHTML = "<b><font size=7 face=arial>" + n1 + "</font></b>"
	row2[1].innerHTML = "<b><font size=7 face=arial>" + n2 + "</font></b>"
	row2[0].innerHTML = "<b><font size=7 face=arial>" + signs[currentSign] + "</font></b>"
	
	// reset problem clock
	problemTime = problemTimeSetting
	
	var row3 = document.getElementById('problemTable').rows[2].cells
	row3[0].innerHTML = "<hr noshade size=4 color=#000000>";	
}
-->
