<!--

var initialVocabularyBeanCallback = function(data) {
	setupInitialVocabularyItem(data);
}

function onPageLoaded()
{
  containerdiv = document.getElementById('vocabulary_container');
  if (loginname=="eslvuser"){
		var pd = document.getElementById("perfdisplay1");
		pd.style.display="none";
		var colbspan = document.getElementById("wdlk");
		colbspan.innerHTML='<a href="http://esl-voices.com/students/vocabulary/idioms/wordaday/" target="_parent">Wørd-A-Day</a>';
  }
  statisticsdiv = document.getElementById('tried_correct_statistics');
  primaryParent = statisticsdiv.parentNode;
  textdiv = document.getElementById('intro_text');
  
  VocabularyBeanFactory.createInitialVocabularyBean(initialVocabularyBeanCallback);
  
}

var initialVocabularyBeanCallback = function(data){
	setupInitialVocabularyItem(data);
}

function setupInitialVocabularyItem(data)
{
	vocabWord = data.word;
	answers = data.answers;
	correctResponse = data.correctResponse;
	dictionary_entry = data.dictionaryEntry;
}

var dictionary_entry;
var taskId;
var numTried=0;
var numCorrect=0;

var correctItemFactor = 1;
var allCorrectBonus = 0;
var totalPossibleScore;

var selectedPOS="Any";
var selectedList="WordNet";
var vocabWord = "";
var prev_vocabWord = "";
var answers="";
var correctResponse;
var dictionary_entry;
var prev_dictionary_entry = "";
var nextVocabWord="";
var nextAnswers="";
var nextCorrectResponse;
var next_dictionary_entry;

function choosePOS(){
    var pos_select = document.getElementById("pos_select");
    selectedPOS = pos_select.value;
}
function chooseRList(){
	var rlist_select = document.getElementById("rlist_select");
	selectedList = rlist_select.value;
}

var primaryParent;
var statisticsdiv;
var startstopdiv;
var textdiv;

var containerdiv;
var vocabfiltersdiv;
var topmsgdiv;
var incorrectmsgdiv;
var incorrectmsgdiv_present;
var lowermsgdiv;
var dictdisplaydiv;
var dictdisplaydiv_present;
var vocab_word_meansdiv;
var answerspans = new Array();
var answer_selector;

var chosenPos = "Any";
var chosenList = "All of WordNet";

function initialStartGame()
{
  primaryParent.insertBefore(statisticsdiv, textdiv);
  statisticsdiv.style.display="block";

  textdiv.innerHTML='';
  textdiv.parentNode.removeChild(textdiv);

  setupStartStop();
  containerdiv.style.display="block";
  showContainer();
  startGame();
}

function showContainer() 
{
    topmsgdiv = document.getElementById('top_vocab_message');

    incorrectmsgdiv = document.getElementById('incorrect_resp_div');
    incorrectmsgdiv = containerdiv.removeChild(incorrectmsgdiv);
    incorrectmsgdiv_present = false;

    dictdisplaydiv = document.getElementById('dict_entry_button');
    dictdisplaydiv = containerdiv.removeChild(dictdisplaydiv);

    lowermsgdiv = document.getElementById('lower_vocab_message');
    lowermsgdiv = containerdiv.removeChild(lowermsgdiv);

    vocab_word_meansdiv = document.getElementById('vocab_word_means');
    
    answerspans[0] = document.getElementById('answer_1');
    answerspans[1] = document.getElementById('answer_2');
    answerspans[2] = document.getElementById('answer_3');
    answerspans[3] = document.getElementById('answer_4');
}

function startGame()
{

    setStopStartBtns(false, true);
    var msgContent = 'OK, here is the first item:';
    topmsgdiv.innerHTML= msgContent;

    msgContent = 'The word <span class="yellow_on_black">' + vocabWord + '</span> means:';
    vocab_word_meansdiv.innerHTML = msgContent;
    for (var k=0; k<4; k++){
        answerspans[k].innerHTML = answers[k];
        answerspans[k].style.visibility="visible";
    }
    var numtrieddiv = document.getElementById('numtried_div');
    numtrieddiv.innerHTML = "0";
    var numcorrectdiv = document.getElementById('numcorrect_div');
    numcorrectdiv.innerHTML = "0";
    start_timer();

    retrieveNextItem();
}

function chooseAnswer(N)
{
    var current_correctResponse = correctResponse;
    numTried++;

    if (N == current_correctResponse)
    {
        numCorrect++;
        doCorrectItem();
    } else {
        doIncorrectItem(N);
    }
    var numtrieddiv = document.getElementById('numtried_div');
    numtrieddiv.innerHTML = numTried;
    var numcorrectdiv = document.getElementById('numcorrect_div');
    numcorrectdiv.innerHTML = numCorrect;
}

function moveNextItemToCurrent()
{
	vocabWord = nextVocabWord;
    answers = nextAnswers;
    correctResponse = nextCorrectResponse;
    dictionary_entry = next_dictionary_entry;
}

function doCorrectItem()
{
    prev_vocabWord = vocabWord;
    prev_dictionary_entry = dictionary_entry;

    if (incorrectmsgdiv_present){
        incorrectmsgdiv = containerdiv.removeChild(incorrectmsgdiv);
        incorrectmsgdiv_present = false;
    }

    var msgContent = "That's right!";
    topmsgdiv.innerHTML= msgContent;

    lowermsgdiv.innerHTML = "Here's the next item:";
    containerdiv.insertBefore(lowermsgdiv, vocab_word_meansdiv);

    var dispcontent = '&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="display_dict();return false">' +
                       'Display Dictionary Entry for: ' + prev_vocabWord + '</a><br>';
    dictdisplaydiv.innerHTML = dispcontent;
    containerdiv.insertBefore(dictdisplaydiv, lowermsgdiv);
    dictdisplaydiv_present=true;

	moveNextItemToCurrent();

    msgContent = 'The word <span class="yellow_on_black">' + vocabWord + '</span> means:';
    vocab_word_meansdiv.innerHTML = msgContent;
    for (var k=0; k<4; k++){
        answerspans[k].innerHTML = answers[k];
    }
    retrieveNextItem();
}

function doIncorrectItem(userChoiceNum)
{
    prev_vocabWord = vocabWord;
    prev_dictionary_entry = dictionary_entry;

    var msgContent = 'Sorry, <span class="yellow_on_black">' + vocabWord + '</span> does not mean';
    topmsgdiv.innerHTML= msgContent;

    lowermsgdiv.innerHTML = "Try the next item:";
    containerdiv.insertBefore(lowermsgdiv, vocab_word_meansdiv);

    var dispcontent = '&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="display_dict();return false">' +
                       'Display Dictionary Entry for: ' + prev_vocabWord + '</a><br>';
    dictdisplaydiv.innerHTML = dispcontent;
    containerdiv.insertBefore(dictdisplaydiv, lowermsgdiv);
    dictdisplaydiv_present=true;

    var userAnswer = answers[userChoiceNum-1];
    var correctAnswer = answers[correctResponse-1];

    /* setup incorrect info between topmsgdiv and (above) dictdisplaydiv */

    var incorrect_content = '&nbsp;&nbsp;&nbsp;&nbsp;<span class="white_on_red">' + userAnswer + '</span><br>';
    incorrect_content += 'The right answer is: <span class="black_on_green">' + correctAnswer + '</span>';

    incorrectmsgdiv.innerHTML = incorrect_content;
    containerdiv.insertBefore(incorrectmsgdiv, dictdisplaydiv);
    incorrectmsgdiv_present = true;

	moveNextItemToCurrent();

    msgContent = 'The word <span class="yellow_on_black">' + vocabWord + '</span> means:';
    vocab_word_meansdiv.innerHTML = msgContent;
    for (var k=0; k<4; k++){
        answerspans[k].innerHTML = answers[k];
    }
    retrieveNextItem();
}


function retrieveNextItem(){
	VocabularyBeanFactory.getNextVocabularyBeanWrtPOSAndList(vocabWord, selectedPOS, selectedList, ongoingVocabularyBeanCallback);
}

var ongoingVocabularyBeanCallback = function(data){
	setupNextVocabularyItem(data);

}

function setupNextVocabularyItem(data)
{
	nextVocabWord = data.word;
	nextAnswers = data.answers;
	nextCorrectResponse = data.correctResponse;
	next_dictionary_entry = data.dictionaryEntry;
}

function set_dict_entry(entry){
    dictionary_entry = entry;
}

function display_dict()
{
    var entry_win=window.open('','name','height=400,width=650');
  
    entry_win.document.write('<html><head><title>Dictionary Entry</title>');
    entry_win.document.write('<link rel="stylesheet" href="sb_common_style.css">');
    entry_win.document.write('</head><body>');
    entry_win.document.write('<b>Dictionary Entry</b>');
    entry_win.document.write('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
    entry_win.document.write('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
    entry_win.document.write('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
    entry_win.document.write('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
    entry_win.document.write('<a href="javascript:self.close()">Close</a> this window.');

    entry_win.document.write('<p>');
    var de = prev_dictionary_entry;
    var more = true;
    var start;
    var divp = de.indexOf('|');
    var line = de.substring(0, divp);
    entry_win.document.write(line.bold());
    entry_win.document.writeln('<p>');
    start = divp+1;

    while (more == true)
    {
        // handle the start of a POS:
    var br1=de.indexOf('[', start);
    divp=de.indexOf(']', start);
    line = de.substring(start, divp+1);
    entry_win.document.write(line.italics());
    entry_win.document.writeln('<br>');
    start = divp+1;

        // now handle all the senses for this POS; how many are there?
        var np = de.substring(br1+1, divp);  
        var sn = 0;      
        while (sn < np) {
            // start points to the beginning of this sense; go to divider ^:
            divp = de.indexOf('^', start);
            line = de.substring(start, divp);
            entry_win.document.write(line);
            entry_win.document.writeln('<br>');
            start = divp + 1;
            sn = sn + 1;
        }
            // start is now pointing at the divider char (|) following the latest
            // sense, or is one past the end of the string:
        if (start >= de.length){
            more = false;
        } else {
            start = start+1;
            entry_win.document.writeln('<br>');
        }
    }

    entry_win.document.write('</body></html>');
    entry_win.document.close();
    
    return false;
}

function dummy() { }

function stopGame()
{
    stop_play();
}

function stop_play()
{
	if (incorrectmsgdiv_present){
        incorrectmsgdiv = containerdiv.removeChild(incorrectmsgdiv);
        incorrectmsgdiv_present = false;
    }
    if (dictdisplaydiv_present){
    	dictdisplaydiv = containerdiv.removeChild(dictdisplaydiv);
    	dictdisplaydiv_present=false;
    }   
    
    topmsgdiv.innerHTML= "";
    lowermsgdiv.innerHTML = "";
    
    vocab_word_meansdiv.innerHTML="";
    
    answerspans[0] = document.getElementById('answer_1');
    answerspans[1] = document.getElementById('answer_2');
    answerspans[2] = document.getElementById('answer_3');
    answerspans[3] = document.getElementById('answer_4');
    
    for (var i=0; i<4; i++){
    	answerspans[i].style.visibility="hidden";
    }
    
    
    
    
    
    
    
    var cur_time = new Date();
    elapsed_time = cur_time.getTime() - start_time.getTime();
    stop_timer();
	setStopStartBtns(true, false);
	totalPossibleScore= numTried  * correctItemFactor + allCorrectBonus;	
	var userNum = sbCookieData.usernum;
	Record.recordNumCorrectPlusMovesWithMax(taskId, numTried, numCorrect, elapsed_time, totalPossibleScore, userNum);
}

	// -------------- INSTRUCTIONS ------------

function showInstructions()
{
    var ipath= 'vocabulary-workout-instructions';
    var entry_win=window.open(
                     ipath,
                     'Vocabulary_Instructions',
                     'height=600,width=650');
    return false;
}

	//-------- Performance Display code -------------

function displayPerfData(response)
{
    genericDisplayPerfData('Vocabulary Workout', response);
    return false;
}
// -->

