﻿var delay = 1;
var eraseTop=0;
var eraseRight=582; 
var eraseBottom=190;
var eraseLeft=0;
var object=null;  
var writeTop=0;
var writeRight=0; 
var writeBottom=0;
var writeLeft=0;
var object1=null;  
var left1top;
var right1top;
var left2top;
var right2top;
var left1bot;
var right1bot;
var left2bot;
var right2bot;
var equality;
var topcard=1;
var testonoff=0;
var numberquestions = 25;
var displayquestions = 25;
var checknumber = 2;
var testonoff = "0";
var questioncounter = 0;
var questionscorrect = 0;
var left;
var right;
var lefttop;
var leftbot;
var righttop;
var rightbot;
var fillin;
var fillcode;
var solution;
var stopper = 0;

function keyChecker(evt){

var evt = (evt) ? evt : ((window.event) ? event : null);
if (evt.type == 'keydown') {
charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
}
  if (stopper==0) {
  	if (charCode == 13 && topcard == 1) {
		eraseProblem('problemcontainer1');
	}
	else if (charCode == 13 && topcard == 2) {
		eraseProblem('problemcontainer2');
	}
  }
}

function Get_Number(){

if (charCode!=13) {

  	var input = document.getElementById("answer")
  	var output = document.getElementById(fillcode)
  	output.childNodes[0].nodeValue = input.value;
	var ans=input.value;
	var name = "sign" + topcard;
	var object=document.getElementById(name);
	var holder="card" + topcard + "leftline";
	var leftlineobject=document.getElementById(holder);
	var holder="card" + topcard + "rightline";
	var rightlineobject=document.getElementById(holder);
	var container = "problemcontainer" + topcard;
	var cardobject = document.getElementById(container);

	if (solution==ans && testonoff=="0") {
	cardobject.style.color="green";
	leftlineobject.style.backgroundColor = "green";
	rightlineobject.style.backgroundColor = "green";

	}
	else {
	cardobject.style.color="rgb(20, 135, 190)";
	leftlineobject.style.backgroundColor = "rgb(20, 135, 190)";
	rightlineobject.style.backgroundColor = "rgb(20, 135, 190)";

	}
	if (solution==ans) {
		lastanswer="1"}
	else {
		lastanswer="0"
	};

    }

}

function reset() {
  	if (topcard == 1) {
		eraseProblem('problemcontainer1');
	}
	else {
		eraseProblem('problemcontainer2');
	}
}

function eraseProblem(objectID) {
if (stopper==0) {

stopper=1;
document.getElementById("answer").value="";
	if (testonoff=="1" && lastanswer=="1") {
		questionscorrect++;
		document.getElementById("correctCounter").childNodes[0].nodeValue = questionscorrect;
		document.getElementById("feedback").style.visibility="hidden"
	};

	if (testonoff=="1" && lastanswer=="0") {

		document.getElementById("feedback").childNodes[0].nodeValue = left + " = " + right;
		document.getElementById("feedback").style.visibility="visible"
	};
	if (testonoff=="1" && parseInt(questioncounter) < (parseInt(numberquestions)-1)) {
		questioncounter++;
		document.getElementById("questionsCounter").childNodes[0].nodeValue = questioncounter
	}
	else {
		if (testonoff=="1"){
			questioncounter++;
			document.getElementById("questionsCounter").childNodes[0].nodeValue = questioncounter;
			score = parseInt((questionscorrect/questioncounter)*100);
			alert ("That's it!\nYou got " + questionscorrect + " out of " + questioncounter + " correct.\n" + "That is a score of " + score + "%.\n" +
			"Press OK to return to practice cards.");
			refreshtest();
		}
	}
	lastanswer=0;
	var holder = document.getElementById("card1leftnumbertop");
	holder.style.backgroundColor='white';
	var holder = document.getElementById("card1rightnumbertop");
	holder.style.backgroundColor='white';
	var holder = document.getElementById("card1leftnumberbot");
	holder.style.backgroundColor='white';
	var holder = document.getElementById("card1rightnumberbot");
	holder.style.backgroundColor='white';
	var holder = document.getElementById("card2leftnumbertop");
	holder.style.backgroundColor='white';
	var holder = document.getElementById("card2rightnumbertop");
	holder.style.backgroundColor='white';
	var holder = document.getElementById("card2leftnumberbot");
	holder.style.backgroundColor='white';
	var holder = document.getElementById("card2rightnumberbot");
	holder.style.backgroundColor='white';
	object=document.getElementById(objectID);
	if (object.id=='problemcontainer1') {
		object1=document.getElementById('problemcontainer2');

		do {
		left2top=Math.floor(20 * Math.random())+1; 
		left2bot=Math.floor(20 * Math.random())+1; 
		right2top=Math.floor(20 * Math.random())+1; 
		right2bot=Math.floor(20 * Math.random())+1; 
		left2=left2top/left2bot;
		right2=right2top/right2bot;
		}
		while (left2!=right2 || left2top==right2top ||left2top==left2bot || right2bot==1 || left2bot==1) 

		left=left2top + "/" + left2bot;
		right=right2top + "/" + right2bot;
		fillin=Math.floor(4 * Math.random())+1;
		
		if (fillin==1) {
		var holder = document.getElementById("card2leftnumbertop");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card2rightnumbertop");
		holder.childNodes[0].nodeValue=right2top;
		var holder = document.getElementById("card2leftnumberbot");
		holder.childNodes[0].nodeValue=left2bot;
		var holder = document.getElementById("card2rightnumberbot");
		holder.childNodes[0].nodeValue=right2bot;
		fillcode="card2leftnumbertop";
		solution=left2top;
		}
		else if (fillin==2) {
		var holder = document.getElementById("card2leftnumbertop");
		holder.childNodes[0].nodeValue=left2top;
		var holder = document.getElementById("card2rightnumbertop");
		holder.childNodes[0].nodeValue=right2top;
		var holder = document.getElementById("card2leftnumberbot");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card2rightnumberbot");
		holder.childNodes[0].nodeValue=right2bot;
		fillcode="card2leftnumberbot";
		solution=left2bot;
		
		}
		else if (fillin==3) {
		var holder = document.getElementById("card2leftnumbertop");
		holder.childNodes[0].nodeValue=left2top;
		var holder = document.getElementById("card2rightnumbertop");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card2leftnumberbot");
		holder.childNodes[0].nodeValue=left2bot;
		var holder = document.getElementById("card2rightnumberbot");
		holder.childNodes[0].nodeValue=right2bot;
		fillcode="card2rightnumbertop";
		solution=right2top;

		}
		else{
		var holder = document.getElementById("card2leftnumbertop");
		holder.childNodes[0].nodeValue=left2top;
		var holder = document.getElementById("card2rightnumbertop");
		holder.childNodes[0].nodeValue=right2top;
		var holder = document.getElementById("card2leftnumberbot");
		holder.childNodes[0].nodeValue=left2bot;
		var holder = document.getElementById("card2rightnumberbot");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		fillcode="card2rightnumberbot";
		solution=right2bot;
		}
	}
	else {
		object1=document.getElementById('problemcontainer1');
		do {
		left1top=Math.floor(12 * Math.random())+1; 
		left1bot=Math.floor(12 * Math.random())+1; 
		right1top=Math.floor(12 * Math.random())+1; 
		right1bot=Math.floor(12 * Math.random())+1; 
		left1=left1top/left1bot;
		right1=right1top/right1bot;
		}
		while (left1!=right1 || left1top==right1top || left1top==left1bot) 
		left=left1top + "/" + left1bot;
		right=right1top + "/" + right1bot;
		fillin=Math.floor(4 * Math.random())+1;
		if (fillin==1) {
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=right1top;
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=left1bot;
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=right1bot;
		fillcode="card1leftnumbertop";
		solution=left1top;
		}
		else if (fillin==2) {
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=left1top;
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=right1top;
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=right1bot;
		fillcode="card1leftnumberbot";
		solution=left1bot;
		}
		else if (fillin==3) {
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=left1top;
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=left1bot;
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=right1bot;
		fillcode="card1rightnumbertop";
		solution=right1top;
		}
		else{
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=left1top;
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=right1top;
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=left1bot;
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		fillcode="card1rightnumberbot";
		solution=right1bot;
		}
	}	
	object1.style.zIndex=1;
	eraseIt();
}
}

function eraseIt() {
	eraseTop++;
	writeBottom++;
	eraseLeft=eraseLeft+3;
	writeRight=writeRight+3;
	object.style.clip = 'rect(' + eraseTop + 'px ' + eraseRight + 'px ' + eraseBottom + 'px ' + eraseLeft + 'px)';
	object1.style.clip = 'rect(' + writeTop + 'px ' + writeRight + 'px ' + writeBottom + 'px ' + writeLeft + 'px)';
	if (eraseLeft<587) {
		setTimeout ('eraseIt()', delay);
	}
	else {
		setItAgain();
	}		
}

function setItAgain () {
	object.style.zIndex=-1;
	object.style.clip = 'rect(0px 0px 0px 0px)';
	object1.style.clip = 'rect(0px 582px 190px 0px)';
	document.getElementById('problemcontainer2').style.cursor='pointer';
	document.getElementById('problemcontainer1').style.cursor='pointer';
	eraseTop=0;
	eraseRight=582; 
	eraseBottom=190;
	eraseLeft=0;
	object=null;  
	writeTop=0;
	writeRight=0; 
	writeBottom=0;
	writeLeft=0;
	object1=null;
	if (topcard==1) {topcard=2} else {topcard=1};
	document.getElementById('problemcontainer2').style.color='rgb(20, 135, 190)';
	document.getElementById('problemcontainer1').style.color='rgb(20, 135, 190)';
	document.getElementById('card1leftline').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card1rightline').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card2leftline').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card2rightline').style.backgroundColor='rgb(20, 135, 190)';

stopper=0;
}

function initProblem() {

	window.document.onkeydown = keyChecker;
	
		do {
		left1top=Math.floor(12 * Math.random())+1; 
		left1bot=Math.floor(12 * Math.random())+1; 
		right1top=Math.floor(12 * Math.random())+1; 
		right1bot=Math.floor(12 * Math.random())+1; 
		left1=left1top/left1bot;
		right1=right1top/right1bot;
		}
		while (left1!=right1 || left1top==right1top || left1top==left1bot) 

		left=left1top + "/" + left1bot;
		right=right1top + "/" + right1bot;
		fillin=Math.floor(4 * Math.random())+1;
		
		if (fillin==1) {
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=right1top;
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=left1bot;
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=right1bot;
		fillcode="card1leftnumbertop";
		solution=left1top;
		
		}
		else if (fillin==2) {
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=left1top;
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=right1top;
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=right1bot;
		fillcode="card1leftnumberbot";
		solution=left1bot;
		
		}
		else if (fillin==3) {
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=left1top;
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=left1bot;
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=right1bot;
		fillcode="card1rightnumbertop";
		solution=right1top;
		
		}
		else{
		var holder = document.getElementById("card1leftnumbertop");
		holder.childNodes[0].nodeValue=left1top;
		var holder = document.getElementById("card1rightnumbertop");
		holder.childNodes[0].nodeValue=right1top;
		var holder = document.getElementById("card1leftnumberbot");
		holder.childNodes[0].nodeValue=left1bot;
		var holder = document.getElementById("card1rightnumberbot");
		holder.childNodes[0].nodeValue=" ";
		holder.style.backgroundColor='rgb(245, 245, 255)';
		fillcode="card1rightnumberbot";
		solution=right1bot;
		}
		document.getElementById('answer').select();
stopper=0;
}


function refreshcheck()
{
	if (testonoff=="0") {

		setcheck = document.getElementById("checkButton");
		setcheck.src = "../checkpalebackblue.gif";
	}

	else {

		setcheck = document.getElementById("checkButton");
		setcheck.src = "../checkbrightyellowblue.gif";
	}
}

function refreshtest()
{
	if (testonoff=="0") {

		testonoff = "1";
		lastanswer="0";
		questioncounter = 0;
		document.getElementById("questionsCounter").childNodes[0].nodeValue = "0";
		questionscorrect = 0;
		document.getElementById("correctCounter").childNodes[0].nodeValue = "0";
		setcheck = document.getElementById("checkButton");
		setcheck.src = "../checkbrightyellowblue.gif";
		document.getElementById("numbersign").style.visibility = "visible";
		document.getElementById("arrowup").style.visibility = "visible";
		document.getElementById("arrowdown").style.visibility = "visible";
		document.getElementById("questionsCounter").style.visibility = "visible";
		document.getElementById("correctCounter").style.visibility = "visible";
		document.getElementById("numberOfQuestions").style.visibility = "visible";
	}

	else {
		testonoff = "0";
		lastanswer="0";
		questioncounter = 0;
		document.getElementById("questionsCounter").childNodes[0].nodeValue = "0";
		questionscorrect = 0;
		document.getElementById("correctCounter").childNodes[0].nodeValue = "0";
		document.getElementById("numbersign").style.visibility = "hidden";
		document.getElementById("arrowup").style.visibility = "hidden";
		document.getElementById("arrowdown").style.visibility = "hidden";
		document.getElementById("questionsCounter").style.visibility = "hidden";
		document.getElementById("correctCounter").style.visibility = "hidden";
		document.getElementById("numberOfQuestions").style.visibility = "hidden";
                document.getElementById("feedback").style.visibility = "hidden";
		setcheck = document.getElementById("checkButton");
		setcheck.src = "../checkpalebackblue.gif";
	}
}

function decrease(){
	
	if (checknumber==0) {
	checknumber=5
	}
	else		    {
	checknumber --;
	}
checkanumber();
}

function increase() {
	if (checknumber==5) {
	checknumber=0
	}
	else		    {
	checknumber ++;
	}
checkanumber();
}	


function checkanumber(){	

	switch (checknumber)
	    {
    		case 0:
      			numberquestions = 5;
			displayquestions = 5;
      			break;
      		case 1:
      			numberquestions = 10;
			displayquestions =10;
      			break;
      		case 2:
			numberquestions = 25;
			displayquestions = 25;
      			break;
      		case 3:
      			numberquestions = 50;
			displayquestions = 50;
 			break;
      		case 4:
      			numberquestions = 100;
			displayquestions = 100;
      			break;
      		case 5:
      			numberquestions = 100000;
			displayquestions = "";
      			break;

    }
   	var Output = document.getElementById("numberOfQuestions");
   	Output.childNodes[0].nodeValue = displayquestions;
}	

