﻿var _counter = -1; // points to current record in wordList
//var _direction = 'toEnglish';
var _test = 0; // this and the next determine whether foreign to english...
var _answer = 2; // or english to foreign testing
//var _revealAnswer = 'phased'; 
// if always, answer is revealed at same time as advance
// if phased, answer is revealed by second click
// if never, answer is never revealed
var answered = true;
var _showTranscription = true;



function actionRoutine ( context, location ) {
	switch (context) {
	case 'clickForeign':
			gotoNext();
			break;
	case 'toEnglish':
			//_direction = 'toEnglish';
			_test = 0; 
			_answer = 2;
			document.getElementById('testLocation').className = 'foreign';
			document.getElementById('answerLocation').className = '';
			_counter--; answered=true; gotoNext();
			break;
	case 'toForeign':	
			//_direction = 'toForeign';
			_test = 2;
			_answer = 0;
			document.getElementById('testLocation').className = '';
			document.getElementById('answerLocation').className = 'foreign';
			_counter--; answered=true; gotoNext();
			break;
	case 'toReview':	 
//			_revealAnswer = 'always';
			_counter--; answered=true; gotoNext();
			break;
	case 'toPhased':	 
//			_revealAnswer = 'phased';
			_counter--; answered=true; gotoNext();
			break;
	case 'toQuick':	 
//			_revealAnswer = 'never';
			_counter--; answered=true; gotoNext();
			break;
	case 'showTransc':	 
			_showTranscription = true;
			document.getElementById('transcrip').style.display = 'block';
			break;
	case 'hideTransc':	 
			_showTranscription = false;
			document.getElementById('transcrip').style.display = 'none';
			break;
	case 'shuffle':	 
			shuffle();
			break;
	case 'retest':	 
			reTest();
			break;
	case 'goBack': 
			if (_counter > 0) {_counter = _counter-2; answered=true; gotoNext(); }
			break;
	case 'restart': 
			_counter = -1; answered=true; gotoNext();
			break;



	case 'forwardButton': if (_counter < wordList.length) {_counter++; answered=true; nextReviewItem(); }
			break;
	case 'goto': 	_counter = location; answered=true; nextReviewItem();
			break;
	case 'print':	makePrintableList();
			break;
	default:		alert( 'Call to actionRoutine from unknown source.' );
			break;
	}
	}



function gotoNext () {
	if (document.getElementById('reviewAdvance').checked) { _counter++; testNextItem('visible'); answered=true; } 
	if (document.getElementById('quicktestAdvance').checked) { _counter++; testNextItem('hidden'); answered=true; } 
	if (document.getElementById('phasedAdvance').checked) {  
		if (answered) { _counter++; testNextItem('hidden'); answered=false; }
		else { revealAnswer(); answered=true; }
		}
	}


function oldgotoNext () {
	if (_revealAnswer == 'always') { _counter++; testNextItem('visible'); answered=true; } 
	if (_revealAnswer == 'never') { _counter++; testNextItem('hidden'); answered=true; } 
	if (_revealAnswer == 'phased') {  
		if (answered) { _counter++; testNextItem('hidden'); answered=false; }
		else { revealAnswer(); answered=true; }
		}
	}


function testNextItem (answerVisibility) {
	var containerElement;
	if (_counter >= wordList.length) { _counter = 0; }
	var cRecord = wordList[_counter].split('*');
//	if (_direction == 'toEnglish') {
	if (document.getElementById('toMyLang').checked) {
		test = 0;
		if (cRecord.length>2) { answer = 2; } else { answer = 1; }
		}
	else {
		answer = 0;
		if (cRecord.length>2) { test = 2; } else { test = 1; }
		}
	if (cRecord[0] == '▲') { 
		containerElement = document.getElementById('testLocation');
		var newText = document.createTextNode( "Ready to start" ); 
		var removedNode = containerElement.replaceChild( newText, containerElement.firstChild );
		containerElement = document.getElementById('answerLocation');
		newText = document.createTextNode( ' ' );
		removedNode = containerElement.replaceChild( newText, containerElement.firstChild );
		containerElement = document.getElementById('transcrip'); 
		newText = document.createTextNode( "Click 'Next' to continue." ); 
		removedNode = containerElement.replaceChild( newText, containerElement.firstChild ); 
		answerVisibility = 'visible';
		}
	else {
		containerElement = document.getElementById('testLocation');
		if (document.getElementById('toMyLang').checked) { containerElement.className = 'foreign'; }
		else { containerElement.className = 'mylang'; }
		var newText = document.createTextNode( cRecord[test] ); 
		var removedNode = containerElement.replaceChild( newText, containerElement.firstChild );
		
		containerElement = document.getElementById('answerLocation');
		if (document.getElementById('toMyLang').checked) { containerElement.className = 'mylang'; }
		else { containerElement.className = 'foreign'; }
		newText = document.createTextNode( cRecord[answer] );
		removedNode = containerElement.replaceChild( newText, containerElement.firstChild );
		
		if (cRecord.length>2) {
			containerElement = document.getElementById('transcrip'); 
			newText = document.createTextNode( cRecord[1] ); 
			removedNode = containerElement.replaceChild( newText, containerElement.firstChild ); 
			}
		else {
			containerElement = document.getElementById('transcrip'); 
			newText = document.createTextNode( ' ' ); 
			removedNode = containerElement.replaceChild( newText, containerElement.firstChild ); 
			}
	
		}
	if (answerVisibility == 'hidden') {
		document.getElementById('answerLocation').style.visibility = 'hidden';
		document.getElementById('transcrip').style.visibility = 'hidden';
		}
	else {
		document.getElementById('answerLocation').style.visibility = 'visible';
		document.getElementById('transcrip').style.visibility = 'visible';
		}
	}	


function revealAnswer () {
		document.getElementById('answerLocation').style.visibility = 'visible';
		document.getElementById('transcrip').style.visibility = 'visible';
	}			


function shuffle () {
	for (var i=0; i < wordList.length-1; i++) {
		var j = Math.floor(Math.random() * (wordList.length-1) );
		var tempItem = wordList[i];
		wordList[i] = wordList[j];
		wordList[j] = tempItem;
		}
	_counter = -1;
	}

function reTest () {
	if (_counter == -1) {return};
	wordList[wordList.length] = wordList[wordList.length-1];
	wordList[wordList.length-2] = wordList[_counter];
	}


