<!--

var tgtAnalogyUrl;
var numTried;
var numCorrect;

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

var analogycontainerdiv;
var statisticsdiv;
var primaryParent;
var startstopdiv;
var topmsgdiv;
var leadinmsgdiv;
var leadinmsgdiv_present = true;
var analogydisplaydiv;
var incorrectmsgdiv;
var incorrectmsgdiv_present = true;

var nonActives;
var activeEntries;
var initSelectedEntry;
var correctEntry;
var activeEntryNum;

var nextNonActives;
var nextActiveEntries;
var nextInitSelectedEntry;
var nextCorrectEntry;
var nextActiveEntryNum;

var ancontent;


    // ------ METHODS --------

function onPageLoaded()
{
  analogycontainerdiv = document.getElementById('analogy_container');
  primaryParent = analogycontainerdiv.parentNode;
  statisticsdiv = document.getElementById('tried_correct_statistics');
  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>';
  }

  AnalogyBeanFactory.getNextAnalogy(initialAnalogyCallback);
}

var initialAnalogyCallback = function(data) { 
  setupInitialAnalogyFrom(data);
}

function setupInitialAnalogyFrom(data)
{
  nonActives = new Array();
  nonActives[0] = data.nonActive1;
  nonActives[1] = data.nonActive2;
  nonActives[2] = data.nonActive3;
  
  activeEntries = data.activeEntries; 
  initSelectedEntry = data.initSelectedEntry; 
  correctEntry = data.correctEntry; 
  activeEntryNum = data.activeEntryNum; 
  
  nextNonActives = new Array();
  nextActiveEntries = new Array();
}

function initialStartGame()
{
  var textdiv = document.getElementById('intro_text');
  statisticsdiv.style.display="block";

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

  setupStartStop();

  analogycontainerdiv.style.display="block";

  startGame();
}

function startGame()
{
    setStopStartBtns(false, true);
    var msgContent = 'OK, here is the first item:';
    topmsgdiv = document.getElementById('top_analogy_message');
    topmsgdiv.innerHTML= msgContent;
    if (leadinmsgdiv_present){
        leadinmsgdiv = document.getElementById('lead_in_message');
        leadinmsgdiv = analogycontainerdiv.removeChild(leadinmsgdiv);
        leadinmsgdiv_present = false;
    }
    if (incorrectmsgdiv_present){
        incorrectmsgdiv = document.getElementById('middle_answer_message');
        incorrectmsgdiv = analogycontainerdiv.removeChild(incorrectmsgdiv);
        incorrectmsgdiv_present = false;
    }

    numTried = 0;
    numCorrect = 0;
    var numtrieddiv = document.getElementById('numtried_div');
    numtrieddiv.innerHTML = numTried;
    var numcorrectdiv = document.getElementById('numcorrect_div');
    numcorrectdiv.innerHTML = numCorrect;


    setupAnalogy();
    start_timer();
    retrieveNextItem();
}

function setupAnalogy()
{
  ancontent = '<span class="analogy_text">';
  if (activeEntryNum == 1)
  {
    create_active_content();
    is_to();
    ancontent += nonActives[0];
    as();
    ancontent += nonActives[1];
    is_to();
    ancontent += nonActives[2];
  } else if (activeEntryNum == 2) 
  {
    ancontent += nonActives[0];
    is_to();
    create_active_content();
    as();
    ancontent += nonActives[1];
    is_to();
    ancontent += nonActives[2];
  } else if (activeEntryNum == 3) 
  {
    ancontent += nonActives[0];
    is_to();
    ancontent += nonActives[1];
    as();
    create_active_content();
    is_to();
    ancontent += nonActives[2];
  } else if (activeEntryNum == 4) 
  {
    ancontent += nonActives[0];
    is_to();
    ancontent += nonActives[1];
    as();
    ancontent += nonActives[2];
    is_to();
    create_active_content();
  }
  ancontent += '</span>';
  analogydisplaydiv = document.getElementById('analogy_display');
  analogydisplaydiv.innerHTML = ancontent;
}

function create_active_content()
{
    var styletext = 'style="font-family: sans-serif; font-size: 1.05em; background:Gainsboro;"';
    ancontent += '<SELECT size="4" name="aslot" class="analogy_text" ' + 
                     styletext + '  onclick="processSelection(); return false;">';

    for (var j=0; j < activeEntries.length; j++){
      ancontent += '<OPTION>';
      ancontent += activeEntries[j];
      ancontent += '</OPTION>';
    }
    ancontent += '</SELECT>';
}
function is_to(){
  ancontent += '&nbsp;<span class="analogy">is to</span>&nbsp;';
}
function as(){
  ancontent += '&nbsp;<span class="analogy_as">as</span>&nbsp;';
}

function processSelection()
{
    var sels = analogydisplaydiv.getElementsByTagName('SELECT');
    var theSel = sels[0];
    var selIndex = theSel.selectedIndex;
    if (selIndex+1 == correctEntry){
      doCorrectItem();
    } else {
      doIncorrectItem(selIndex, correctEntry);
    }
    numTried++;
    var numtrieddiv = document.getElementById('numtried_div');
    numtrieddiv.innerHTML = numTried;

    nonActives = nextNonActives;
    activeEntries = nextActiveEntries;
    initSelectedEntry = nextInitSelectedEntry;
    correctEntry = nextCorrectEntry;
    activeEntryNum = nextActiveEntryNum;
    retrieveNextItem();
    setupAnalogy();
}


function doCorrectItem()
{
    numCorrect++;
    var numcorrectdiv = document.getElementById('numcorrect_div');
    numcorrectdiv.innerHTML = numCorrect;
    if (incorrectmsgdiv_present){
        incorrectmsgdiv = analogycontainerdiv.removeChild(incorrectmsgdiv);
        incorrectmsgdiv_present = false;
    }
    var msgContent = "That's right!";
    topmsgdiv.innerHTML= msgContent;

    leadinmsgdiv.innerHTML = "Here's the next item:";
    analogycontainerdiv.insertBefore(leadinmsgdiv, analogydisplaydiv);
    leadinmsgdiv_present = true;
}

function doIncorrectItem(selIndex, correctEntry)
{
    var selectedItem = activeEntries[selIndex];
    var msgContent = 'Sorry, <span class="white_on_red">' + selectedItem + '</span> is not the right answer.<br>';
    topmsgdiv.innerHTML= msgContent;

    if (!leadinmsgdiv_present){
        analogycontainerdiv.insertBefore(leadinmsgdiv, analogydisplaydiv);
        leadinmsgdiv_present = true;
    }
    if (!incorrectmsgdiv_present){
        analogycontainerdiv.insertBefore(incorrectmsgdiv, leadinmsgdiv);
        incorrectmsgdiv_present = true;
    }
 
    var correctItem = activeEntries[correctEntry-1];
    var answerContent = 'The right answer is: <span class="black_on_green">' + correctItem + '</span>';
    incorrectmsgdiv.innerHTML = answerContent;

    leadinmsgdiv.innerHTML = "Here's another one:";
    analogycontainerdiv.insertBefore(leadinmsgdiv, analogydisplaydiv);
}

function retrieveNextItem(){
	AnalogyBeanFactory.getNextAnalogy(nextAnalogyCallback);
}

var nextAnalogyCallback = function(data) { 
  setupNextAnalogyFrom(data);
}

function setupNextAnalogyFrom(data)
{
  nextNonActives[0] = data.nonActive1;
  nextNonActives[1] = data.nonActive2;
  nextNonActives[2] = data.nonActive3;
  
  nextActiveEntries = data.activeEntries; 
  nextInitSelectedEntry = data.initSelectedEntry; 
  nextCorrectEntry = data.correctEntry; 
  nextActiveEntryNum = data.activeEntryNum; 
}

function stopGame(){
    stop_play();
}

function stop_play()
{
    var cur_time = new Date();
    elapsed_time = cur_time.getTime() - start_time.getTime();
    stop_timer();
    var totalPossibleScore= numTried * correctItemFactor + allCorrectBonus;
    var userNum = sbCookieData.usernum;
    Record.recordNumCorrectPlusMovesWithMax(taskId, numTried, numCorrect, elapsed_time, totalPossibleScore, userNum); 
    setStopStartBtns(true, false);
}

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

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

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

function displayPerfData(response)
{
    genericDisplayPerfData('Analogies Workout', response);
    return false;
}

// -->

