﻿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 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 right;
var left11top;
var left11bot;
var left12top;
var left12bot;
var right1top;
var right1bot;
var left21top;
var left21bot;
var left22top;
var left22bot;
var right2top;
var right2bot;
var focustrack;
var fillcode;
var solution;
var stopper = 0;
var checker = 0;
var righttop;
var rightbot;
var topans;
var botans;
var kcode;
var macadjust=1;

function keyChecker(evt){

if (evt.which) {kcode=evt.which}
     else {kcode=evt.keyCode};

  if (stopper==0) {
  	if (kcode == 13 && topcard == 1) {
		eraseProblem('problemcontainer1');
	}
	else if (kcode == 13 && topcard == 2) {
		eraseProblem('problemcontainer2');
	}
  }
}

function Get_Number(evt, numdem, torb){

if (evt.which) {kcode=evt.which}
     else {kcode=evt.keyCode};

	if (kcode>40 || kcode<37) {
		if (kcode!=13) {

		  	var input = document.getElementById("answer"+numdem);
  			var output = document.getElementById("card" + topcard + "rightnumber" + torb);
  			output.childNodes[0].nodeValue = input.value;
			var name = "sign" + topcard;
			var object=document.getElementById(name);
			var holder="card" + topcard + "left1line";
			var leftline1object=document.getElementById(holder);
			var holder="card" + topcard + "left2line";
			var leftline2object=document.getElementById(holder);
			var holder="card" + topcard + "rightline";
			var rightlineobject=document.getElementById(holder);
			var container = "problemcontainer" + topcard;
			var cardobject = document.getElementById(container);

			righttop = document.getElementById("answer1").value;
			rightbot = document.getElementById("answer2").value;
			if (topcard==1) {
				topans=right1top;
				botans=right1bot;
			}
			else {
				topans=right2top;
				botans=right2bot;
			}

			if (righttop==topans && rightbot==botans && testonoff=="0") {
				cardobject.style.color="green";
				leftline1object.style.backgroundColor = "green";
				leftline2object.style.backgroundColor = "green";
				rightlineobject.style.backgroundColor = "green";

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

			}
			if (righttop==topans && rightbot==botans) {
				lastanswer="1"
			}
			else {
				lastanswer="0"
			};
input.focus();
		    }
	}
	if (macadjust==1) {
		if (kcode<41 && kcode>36) {
			if (focustrack=='1') {
					document.getElementById('answer2').focus();
					document.getElementById('answer2').select();
					focustrack=2;
			}	
			else {
					document.getElementById('answer1').focus();
					document.getElementById('answer1').select();
					focustrack=1;
			}
		}
	}

if (window.navigator.vendor) {
	if (window.navigator.vendor.indexOf('Apple')!= -1) {
		if (window.navigator.appName.indexOf('Netscape')!= -1) {
			if (macadjust==1) {
				macadjust=2;
			}
			else {
				macadjust=1;
			}
		}
	}
}
}

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

}

function eraseProblem(objectID) {

if (stopper==0) {

stopper=1;

document.getElementById("answer1").value="";
document.getElementById("answer2").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").innerHTML = left1 + " &#247; " + left2 + " = " + 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;

	object=document.getElementById(objectID);
	if (object.id=='problemcontainer1') {
		object1=document.getElementById('problemcontainer2');

	do {

		do {
			left21top=Math.floor(9 * Math.random())+1; 
			left21bot=Math.floor(9 * Math.random())+1; 
		}
		while (left21top>=left21bot);

		do {
			left22top=Math.floor(9 * Math.random())+1; 
			left22bot=Math.floor(9 * Math.random())+1; 
		}
		while (left22top>=left22bot);

		right2bot = left21bot * left22top;
		right2top = left21top * left22bot;
	
	}
	while (right2bot>99)

	var holder = document.getElementById("card2left1numbertopa");
	holder.childNodes[0].nodeValue=left21top;
	var holder = document.getElementById("card2left1numberbota");
	holder.childNodes[0].nodeValue=left21bot;
	var holder = document.getElementById("card2left2numberbota");
	holder.childNodes[0].nodeValue=left22top;
	var holder = document.getElementById("card2left2numbertopa");
	holder.childNodes[0].nodeValue=left22bot;
	var holder = document.getElementById("card2right1numbertopa");
	holder.childNodes[0].nodeValue=right2top;
	var holder = document.getElementById("card2right1numberbota");
	holder.childNodes[0].nodeValue=right2bot;

	var gcf = Math.min(right2top, right2bot);
	gcf++;

	do {
	gcf--;
	var test1 = right2bot%gcf;
	var test2 = right2top%gcf;
		}
	while (test1!=0 || test2!=0)
	
	right2bot = right2bot/gcf;
	right2top = right2top/gcf;

	left1=left21top + "/" + left21bot;
	left2=left22top + "/" + left22bot;
	right=right2top + "/" + right2bot;
		
	var holder = document.getElementById("card2left1numbertop");
	holder.childNodes[0].nodeValue=left21top;
	var holder = document.getElementById("card2left1numberbot");
	holder.childNodes[0].nodeValue=left21bot;
	var holder = document.getElementById("card2left2numbertop");
	holder.childNodes[0].nodeValue=left22top;
	var holder = document.getElementById("card2left2numberbot");
	holder.childNodes[0].nodeValue=left22bot;
	var holder = document.getElementById("card2rightnumbertop");
	holder.childNodes[0].nodeValue="";
	var holder = document.getElementById("card2rightnumberbot");
	holder.childNodes[0].nodeValue="";
	var holder = document.getElementById("card2right2numbertopa");
	holder.childNodes[0].nodeValue=right2top;
	var holder = document.getElementById("card2right2numberbota");
	holder.childNodes[0].nodeValue=right2bot;
	}
	else {
		object1=document.getElementById('problemcontainer1');
	do {

		do {
			left11top=Math.floor(9 * Math.random())+1; 
			left11bot=Math.floor(9 * Math.random())+1; 
		}
		while (left11top>=left11bot);

		do {
			left12top=Math.floor(9 * Math.random())+1; 
			left12bot=Math.floor(9 * Math.random())+1; 
		}
		while (left12top>=left12bot);
	
		right1bot = left11bot * left12top;
		right1top = left11top * left12bot;
	
	}
	while (right1bot>99)
	var holder = document.getElementById("card1left1numbertopa");
	holder.childNodes[0].nodeValue=left11top;
	var holder = document.getElementById("card1left1numberbota");
	holder.childNodes[0].nodeValue=left11bot;
	var holder = document.getElementById("card1left2numberbota");
	holder.childNodes[0].nodeValue=left12top;
	var holder = document.getElementById("card1left2numbertopa");
	holder.childNodes[0].nodeValue=left12bot;
	var holder = document.getElementById("card1right1numbertopa");
	holder.childNodes[0].nodeValue=right1top;
	var holder = document.getElementById("card1right1numberbota");
	holder.childNodes[0].nodeValue=right1bot;

	var gcf = Math.min(right1top, right1bot);
	gcf++;

	do {
	gcf--;
	var test1 = right1bot%gcf;
	var test2 = right1top%gcf;
		}
	while (test1!=0 || test2!=0)
	
	right1bot = right1bot/gcf;
	right1top = right1top/gcf;

	left1=left11top + "/" + left11bot;
	left2=left12top + "/" + left12bot;
	right=right1top + "/" + right1bot;
		
	var holder = document.getElementById("card1left1numbertop");
	holder.childNodes[0].nodeValue=left11top;
	var holder = document.getElementById("card1left1numberbot");
	holder.childNodes[0].nodeValue=left11bot;
	var holder = document.getElementById("card1left2numbertop");
	holder.childNodes[0].nodeValue=left12top;
	var holder = document.getElementById("card1left2numberbot");
	holder.childNodes[0].nodeValue=left12bot;
	var holder = document.getElementById("card1rightnumbertop");
	holder.childNodes[0].nodeValue="";
	var holder = document.getElementById("card1rightnumberbot");
	holder.childNodes[0].nodeValue="";
	var holder = document.getElementById("card1right2numbertopa");
	holder.childNodes[0].nodeValue=right1top;
	var holder = document.getElementById("card1right2numberbota");
	holder.childNodes[0].nodeValue=right1bot;

	}	
	object1.style.zIndex=1;
	checker=0;
	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 270px 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('subcontainer2').style.visibility='hidden';
	document.getElementById('subcontainer1').style.visibility='hidden';
	document.getElementById('card1left1line').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card1left2line').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card1rightline').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card2left1line').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card2left2line').style.backgroundColor='rgb(20, 135, 190)';
	document.getElementById('card2rightline').style.backgroundColor='rgb(20, 135, 190)';
	stopper=0;
	righttop = "";
	rightbot = "";
	topans = "";
	botans = "";
	document.getElementById('answer1').select();
	document.getElementById('answer1').onfocus();

}

function initProblem() {
window.status="Click to select the numerator and denominator."
	do {

		do {
			left11top=Math.floor(9 * Math.random())+1; 
			left11bot=Math.floor(9 * Math.random())+1; 
		}
		while (left11top>=left11bot);

		do {
			left12top=Math.floor(9 * Math.random())+1; 
			left12bot=Math.floor(9 * Math.random())+1; 
		}
		while (left12top>=left12bot);

		var gcf = Math.min(left11bot, left12bot);
		gcf++;

		right1bot = left11bot * left12top;
		right1top = left11top * left12bot;
	
	}
	while (right1bot>99)

	var holder = document.getElementById("card1left1numbertopa");
	holder.childNodes[0].nodeValue=left11top;
	var holder = document.getElementById("card1left1numberbota");
	holder.childNodes[0].nodeValue=left11bot;
	var holder = document.getElementById("card1left2numberbota");
	holder.childNodes[0].nodeValue=left12top;
	var holder = document.getElementById("card1left2numbertopa");
	holder.childNodes[0].nodeValue=left12bot;
	var holder = document.getElementById("card1right1numbertopa");
	holder.childNodes[0].nodeValue=right1top;
	var holder = document.getElementById("card1right1numberbota");
	holder.childNodes[0].nodeValue=right1bot;
	var gcf = Math.min(right1top, right1bot);
	gcf++;

	do {
	gcf--;
	var test1 = right1bot%gcf;
	var test2 = right1top%gcf;
		}
	while (test1!=0 || test2!=0)
	
	right1bot = right1bot/gcf;
	right1top = right1top/gcf;



	left1=left11top + "/" + left11bot;
	left2=left12top + "/" + left12bot;
	right=right1top + "/" + right1bot;
		
	var holder = document.getElementById("card1left1numbertop");
	holder.childNodes[0].nodeValue=left11top;
	var holder = document.getElementById("card1left1numberbot");
	holder.childNodes[0].nodeValue=left11bot;
	var holder = document.getElementById("card1left2numbertop");
	holder.childNodes[0].nodeValue=left12top;
	var holder = document.getElementById("card1left2numberbot");
	holder.childNodes[0].nodeValue=left12bot;
	var holder = document.getElementById("card1rightnumbertop");
	holder.childNodes[0].nodeValue="";
	var holder = document.getElementById("card1rightnumberbot");
	holder.childNodes[0].nodeValue="";
	var holder = document.getElementById("card1right2numbertopa");
	holder.childNodes[0].nodeValue=right1top;
	var holder = document.getElementById("card1right2numberbota");
	holder.childNodes[0].nodeValue=right1bot;

	document.getElementById('answer1').select();
	document.getElementById('answer1').onfocus();

}


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

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

	else {

		setcheck = document.getElementById("checkButton");
		setcheck.src = "../checkpalebackblue.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 = "../checkpalebackblue.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";
		document.getElementById("helpmark").style.visibility = "hidden";
	}

	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";
		document.getElementById("helpmark").style.visibility = "visible";
	}
}

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;
}	
