var req;
var theQuiz;
var theLanguage
var returnData;
var size;
var currentQuestion;
var currentButton;
var numberRight;
var inPlay;
var wrongArray = [];
var quizArray = [];
var firsttime = true;
var redo = true;

Array.prototype.shuffle = function (){ 
	for(var rnd, tmp, i=this.length; i; rnd=parseInt(Math.random()*i), tmp=this[--i], this[i]=this[rnd], this[rnd]=tmp);
};

function trim(str)
{
	str = str.replace(/^\s+|\s+$/g, '');
	return str.replace(/\s+/g, ' ');
}


function GetQuiz() {
	theLanguage = document.getElementById("language").value;
	if (theLanguage == 0) {
		url = "quizspanish.php";
		document.getElementById("langQuestion").innerHTML = "Spanish:";
		document.getElementById("langAnswer").innerHTML = "English:";
	} else {
		url = "quizenglish.php";
		document.getElementById("langQuestion").innerHTML = "English:";
		document.getElementById("langAnswer").innerHTML = "Spanish:";
	}
	thisQuiz = document.getElementById("selectedquiz").value;
	thisQuiz = encodeURIComponent(thisQuiz);
	params = "spanquiz="+thisQuiz;
	if (window["XMLHttpRequest"]) {
		  req = new XMLHttpRequest();
		  req.abort();
		  req.onreadystatechange = GotQuiz;
		  req.open("POST", url, true);
		  req.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded;charset=UTF-8');
		  req.send(params);
	} else if (typeof ActiveXObject != 'undefined') {
	  req = new ActiveXObject("Microsoft.XMLHTTP");
	  if (req) {
			req.abort();
			req.open("POST", url, true);
			req.onreadystatechange = GotQuiz;
			req.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded;charset=UTF-8');
			req.send(params);
	  }
	}
	return false;
}


function GotQuiz() {
	if (req.readyState != 4 || req.status != 200) {
		
	  return;
	}
	//alert(req.responseText);
	//var imagearray = document.getElementsByName('ex');
	if (req.responseText != -1) {
		returnData = eval('(' + req.responseText + ')');
		
		size = 20;
		middle = "";
		for (i=0;i<size;i++) {
			quizArray[i] = i;
			aQuestion = returnData[i];
			spanQuestion = aQuestion['questionword'];
			spanAnswer = aQuestion['answerwords'];
			theAnswers = spanAnswer.join(", ");
			
			middle = middle+"<tr class='previewRow'><td class='num'>"+(i+1)+".</td><td class='qword'>"+spanQuestion['word']+"</td><td class='awords'>"+theAnswers+"</td></tr>";
		}
		currentQuestion = 0;
		numberRight = 0;
		inPlay = 1;
		wrongArray = [];
		document.getElementById('altanswers').innerHTML = "";
		document.getElementById('youranswer').value = "";
		document.getElementById('thescore').innerHTML = "";
		document.getElementById('presentnumber').innerHTML = currentQuestion+1;
		document.getElementById('totalcount').innerHTML = size;
		firstQuestion = returnData[currentQuestion];
		spanishQuestion = firstQuestion['questionword'];
		firstWord = spanishQuestion['word'];
		document.getElementById('question').innerHTML = firstWord;
		//document.getElementById('theCounts').style.visibility = "visible";
		document.getElementById('preview').innerHTML = "<table id='previewTable'>"+middle+"</table >";
		var oddRows = $('previewTable').getElements('.previewRow:odd');
		var setOddBkgd = function(item) {
			item.setStyle('background-color', '#ddd');
		}
		oddRows.each(setOddBkgd);
		var qwestWords = $('previewTable').getElements('.qword');
		var setqwestStyle = function(item) {
			item.setStyle('width', '80px');
		}
		qwestWords.each(setqwestStyle);
		var answWords = $('previewTable').getElements('.awords');
		var setAnsStyle = function(item) {
			item.setStyle('width', '340px');
		}
		answWords.each(setAnsStyle);
	} else {
			document.getElementById("answer1").innerHTML = "No results found.";
	}
}

function resetValues1() {
	var imagearray = document.getElementsByName('ex');
	var size = imagearray.length;
	var thetense = document.forms[0].elements[0].value;
	for (i=0;i<6;i++) {
		theanswer = "answer"+i;
		theperson = "person"+i;
		document.getElementById(theanswer).innerHTML =
	  			"";
	  	document.getElementById(theperson).value =
	  			"";
		imagearray[i].style.visibility = "hidden";
	}
	document.forms[0].elements[0].selectedIndex = thetense;
	return false;
}

function checkAnswer() {
	
	//currSpanWord = document.getElementById('question').innerHTML;
	currEngWord = document.getElementById('youranswer').value;
	questNum = quizArray[currentQuestion];
	thisQuestion = returnData[questNum];
	englishAnswer = thisQuestion['answerwords'];
	otherEngAnswers = thisQuestion['answerwords'];
	checkresult = englishAnswer.indexOf(currEngWord);
	
	if (checkresult != -1) {
		numberRight++;
		temp = otherEngAnswers.splice(checkresult,1);
		arraylength = otherEngAnswers.length;
		var otheranswers = "";
		if (arraylength > 0) {
			otheranswers = otherEngAnswers.join(', ');
			otheranswers = "Also consider: "+otheranswers;
		}
		finalanswer = "Correct! "+otheranswers;
		document.getElementById('altanswers').innerHTML = finalanswer;
	} else {
		//alength = englishAnswer.length;
		var otheranswers2 = "";
		allanswers = englishAnswer.join(', ');
		fanswer = "Sorry - The answer is "+allanswers;
		document.getElementById('altanswers').innerHTML = fanswer;
		wrongArray.push(questNum);
	}
	
}

function nextQuestion() {
	currentQuestion++;
	document.getElementById('presentnumber').innerHTML = currentQuestion+1;
	//document.getElementById('answer1').innerHTML = "";
	document.getElementById('altanswers').innerHTML = "";
	document.getElementById('youranswer').value = "";
	if (currentQuestion < size) {
		questNum = quizArray[currentQuestion];
		theNextQuestion = returnData[questNum];
		spanishQuestion = theNextQuestion['questionword'];
		nextWord = spanishQuestion['word'];
		
		document.getElementById('question').innerHTML = nextWord;
	}
	
}


function changeButton() {
	if (inPlay) {
		if (currentQuestion < size-1) {
			if (currentButton == 0) {
				document.getElementById("submitbutton1").value = "Next";
				currentButton = 1;
				checkAnswer();
			} else {
				document.getElementById("submitbutton1").value = "Submit";
				currentButton = 0;
				nextQuestion();
			}
		} else {
			checkAnswer();
			document.getElementById("submitbutton1").value = "Score";
			inPlay = 0;
		}
	} else {
		if (redo) {
			document.getElementById('altanswers').innerHTML = "You scored "+numberRight+" out of "+size;
			document.getElementById('question').innerHTML = "";
			document.getElementById('youranswer').value = "";
			if(wrongArray.length > 0) {
				document.getElementById('theredo').innerHTML = "Redo Wrong Answers ";
				document.getElementById("submitbutton1").value = "Submit";
				redo = false;
			}
		} else {
			redo = true;
			document.getElementById('theredo').innerHTML = "";
			redoWrong();
		}
		
	}
}

function redoWrong() {
	wrongArray.shuffle();
	//quizArray =[];
	quizArray = wrongArray.slice();
	//alert(quizArray);
	size = quizArray.length;
	wrongArray = [];
	currentQuestion = 0;
	currentButton = 0;
	numberRight = 0;
	//document.getElementById('theredo').style.visibility = "hidden";
	document.getElementById('presentnumber').innerHTML = currentQuestion+1;
	document.getElementById('totalcount').innerHTML = size;
	questNum = quizArray[currentQuestion];
	firstQuestion = returnData[questNum];
	spanishQuestion = firstQuestion['questionword'];
	firstWord = spanishQuestion['word'];
	document.getElementById('question').innerHTML = firstWord;
	document.getElementById('altanswers').innerHTML = "";
	document.getElementById('youranswer').value = "";
	document.getElementById("submitbutton1").value = "Submit";
	document.getElementById('thescore').innerHTML = "";
	inPlay = 1;
}

window.addEvent('domready', function() {

		
	var button1 = document.getElementById("quizrequest");
	var button2 = document.getElementById("submitbutton1");
	currentButton = 0;
	theQuiz = document.getElementById("selectedquiz").value;
	theLanguage = document.getElementById("selectedquiz").value;
	button1.onclick = GetQuiz;
	button2.onclick = changeButton;
	currentQuestion = 0;
	$('form1').addEvent('click', function() {return false;});
	$('form2').addEvent('click', function() {return false;});
	//$('form3').addEvent('click', function() {return false;});
	
	var slideElement0 = $('quizsetup');
	var slideElement1 = $('theQuiz');
	var slideElement2 = $('preview');
	

	var slideVar0 = new Fx.Slide(slideElement0, {
		mode: 'vertical', //default is 'vertical'
		link: 'chain', 
		onComplete: function(){
			$(slideElement0).slide('out');
			$(slideElement1).slide('in');
		}
	});
	
	$('quizrequest').addEvent('click', function(){
		slideVar0.slideOut();
	});
	
//$(slideElement0).slide('hide');
$('Toggle0').addEvent('click', function(){
		$(slideElement0).slide('toggle');
	});	

$(slideElement1).slide('hide');
$('Toggle1').addEvent('click', function(){
		$(slideElement1).slide('toggle');
	});

$(slideElement2).slide('hide');
$('Toggle2').addEvent('click', function(){
		$(slideElement2).slide('toggle');
	});
	
});
