﻿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;
			_counter--; answered=true; gotoNext();
			break;
	case 'toForeign':	
			_direction = 'toForeign';
			_test = 2;
			_answer = 0;
			_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 (_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) {
	if (_counter >= wordList.length) { _counter = 0; }
	var cRecord = wordList[_counter].split('*');
	if (_direction == 'toEnglish') {
		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] == '▲') { 
		var containerElement = document.getElementById('foreign');
		var newText = document.createTextNode( "Ready to start" ); 
		var removedNode = containerElement.replaceChild( newText, containerElement.firstChild );
		containerElement = document.getElementById('english');
		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 {
		var containerElement = document.getElementById('foreign');
		var newText = document.createTextNode( cRecord[test] ); 
		var removedNode = containerElement.replaceChild( newText, containerElement.firstChild );
		containerElement = document.getElementById('english');
		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('english').style.color = '#fff';
		document.getElementById('transcrip').style.color = '#fff';
		}
	else {
		document.getElementById('english').style.color = '#000';
		document.getElementById('transcrip').style.color = '#000';
		}
	}	


function revealAnswer () {
		document.getElementById('english').style.color = '#000';
		document.getElementById('transcrip').style.color = '#000';
	}			


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];
	}


