// language training
function getObject( id ) 
{ 
    if (document.getElementById) 
	{
        var returnVar = document.getElementById(id); 
	}
    else if (document.all) 
	{
        var returnVar = document.all[id]; 
	}
    else if (document.layers) 
	{
        var returnVar = document.layers[id]; 
	}
    return returnVar; 
} 

//global varaible
_nrForms = 8;

function addMoreBoxes(e){
	form = getObject('add_words');
	insert_pos = getObject('insert_link');
	for(i=0; i<5; i = i+1){
		new_input = document.createElement('input');
		new_input.setAttribute('type','text');
		//new_input.setAttribute('class','word_to_add');
		new_input.className = 'word_to_add';
		new_input.setAttribute('name','w_'+_nrForms+'_0');
		new_input.setAttribute('id','w_'+_nrForms+'_0');
		form.insertBefore(new_input, insert_pos);
		
		new_input = document.createElement('input');
		new_input.setAttribute('type','text');
		//new_input.setAttribute('class','word_to_add');
		new_input.className = 'word_to_add';
		new_input.setAttribute('name','w_'+_nrForms+'_1');
		new_input.setAttribute('id','w_'+_nrForms+'_1');
		form.insertBefore(new_input, insert_pos);
		
		_nrForms++;
		
		new_input = document.createElement('br');
		form.insertBefore(new_input, insert_pos);
	}
}
//WORD EXER BELOW

var _word_index;
var _orig_word;
var _skip_correct;

var _total_words_answered;
var _total_correct;

function start_exer()
{
	_total_words_answered = 0;
	_total_correct = 0;
	_word_index = 0;
	for(i = 0; i < all_words_array.length; i = i+1)
	{
		all_words_result[i] = false;
	}
	
	_orig_word = getObject('orig_word');
	update_jump_status();
	rand_words();
	//disp_next_word()
	/*var orig_word = getObject('orig_word');
	for(i = 0; i < all_words_array.length; i = i+1)
	{
		orig_word.innerHTML = all_words_array[i][1];
	}*/
}

function disp_next_word(clear)
{
	if(clear)
	{
		//retrieve correction box
		var cor_box = getObject('word_results');
		cor_box.innerHTML = '';
		//clear user word
		getObject('user_word').value = '';
	}
	
	if(_skip_correct && all_words_result[_word_index] == true)
	{
		if(_word_index >0)
		{
			var res_box = getObject('progress_'+(_word_index-1));
			res_box.style.borderColor = 'black';
		}
		var all_done = true;
		for(i = 0; i < all_words_array.length; i = i+1)
		{
			if(all_words_result[i] == false)
			{
				all_done = false;
			}
		}
		if(all_done)
		{
			disp_congrat();
		}
		else
		{
			_word_index = _word_index+1;
			disp_next_word();
		}
	}
	else
	{
		if(all_words_array.length > _word_index)
		{
			if(_word_index >0)
			{
				var res_box = getObject('progress_'+(_word_index-1));
				res_box.style.borderColor = 'black';
			}
			_orig_word.innerHTML = all_words_array[_word_index][0];
			_word_index = _word_index+1;
			//retrieve result_box
			res_box = getObject('progress_'+(_word_index-1));
			res_box.style.borderColor = 'orange';
		}
		else
		{
			 //_orig_word.innerHTML = 'Övningen är slut!';
			 go_to_word(0, true);
		}
	}
}

function correct()
{
	//retrieve correction box
	var cor_box = getObject('word_results');
	cor_box.innerHTML = '';
	//retrieve user word
	var user_word = getObject('user_word').value.toLowerCase();
	//retrieve result_box
	var res_box = getObject('progress_'+(_word_index-1));
	
	var comma = ', ';
	
	var correct = false;
	cor_box.innerHTML = all_words_array[_word_index-1][0] + ' = ';
	for(i = 1; i < all_words_array[_word_index-1].length; i = i+1)
	{
		if(all_words_array[_word_index-1].length -i == 1)
		{
			comma = '';
		}
		if(all_words_array[_word_index-1][i].toLowerCase() == user_word)
		{
			cor_box.innerHTML = cor_box.innerHTML+'<span class="correct_word">'+all_words_array[_word_index-1][i]+comma+'</span>';
			correct = true;
		}
		else
		{
			cor_box.innerHTML = cor_box.innerHTML+'<span class="wrong_word">'+all_words_array[_word_index-1][i]+comma+'</span>';
			
		}
	}
	if(correct)
	{
		res_box.style.backgroundColor = '#00FF33';
		cor_box.innerHTML = cor_box.innerHTML+'<br />Rätt svar!';
		all_words_result[_word_index-1] = true;
		calc_percentage(true);
	}
	else
	{
		res_box.style.backgroundColor = 'red';
		cor_box.innerHTML = cor_box.innerHTML+'<br />Du svarade: '+user_word;
		all_words_result[_word_index-1] = false;
		calc_percentage(false);
	}
	//clear user word
	getObject('user_word').value = '';
	disp_next_word();
}

function go_to_word(i, do_not_clear)
{
	var j_status = _skip_correct;
	_skip_correct = false;
	if(_word_index >0)
	{
		var res_box = getObject('progress_'+(_word_index-1));
		res_box.style.borderColor = 'black';
	}
	_word_index = i;
	if(do_not_clear)
	{
		_skip_correct = j_status;
		disp_next_word();
	}
	else
	{
		disp_next_word(true);
	}
	_skip_correct = j_status;
}

function possible_enter(e){
	
	if(e)
	{
		e = e; 
	} 
	else
	{
		e = window.event;
	} 
	
	if(e.which)
	{ 
		var keycode = e.which;
	}
	else
	{
		var keycode = e.keyCode; 
	}
	
	if(keycode == 13) {
		//retrieve user word
		var user_word = getObject('user_word').value;
		if(user_word != '')
		{
			correct();
		}
	}
}

function update_jump_status()
{
	var j_status = getObject('only_failed');
	_skip_correct = j_status.checked;
}

function disp_congrat()
{
//	alert('Your resolution is '+screen.width+'x'+screen.height)
	var congrat_box = getObject('congrat_box');
	//set the x any y coordinates so the box gets centered.
	congrat_box.style.top=(screen.height-300)/2;
	congrat_box.style.left=(screen.width-500)/2;
	congrat_box.style.visibility='visible';
}

function hide_congrat_box()
{
	var congrat_box = getObject('congrat_box');
	congrat_box.style.visibility='hidden';
}

function rand_words()
{
	var res_box;
	for(i = 0; i < all_words_result.length; i = i+1)
	{
		all_words_result[i] = false;
		//retrieve result_box
		res_box = getObject('progress_'+(i));
		res_box.style.backgroundColor = '#CCCCCC';
		res_box.style.borderColor = 'black';
	}
	_word_index = 0;
	fisherYates(all_words_array);
	disp_next_word(true);
}

function fisherYates ( myArray ) {
  var i = myArray.length;
  if ( i == 0 ) return false;
  while ( --i ) {
     var j = Math.floor( Math.random() * ( i + 1 ) );
     var tempi = myArray[i];
     var tempj = myArray[j];
     myArray[i] = tempj;
     myArray[j] = tempi;
   }
}


function calc_percentage(word_was_correct)
{
	_total_words_answered++;
	var percentage = getObject('percentage');
	if(word_was_correct)
	{
		_total_correct++;
		percentage.style.color = '#00FF00';
	}
	else
	{
		percentage.style.color = 'red';
	}
	
	percentage.innerHTML = Math.round(100 * _total_correct / _total_words_answered)+ ' %';
}