var set_id;
var terms_array;
var definitions_array;
var gdzie;
var terms_fail;
var runda_tab; // [0] - slowka do odgadniecia w 0. rundzie, etc
var runda_nr;
var timeoutId;

/*function remove_elements_from_div(id){
	var elements = document.getElementById(id);
	while(elements.childNodes.length > 0){
		elements.removeChild(elements.firstChild);
	}
	return true;
}*/

function addLoadListener(fn){
    if (typeof window.addEventListener != 'undefined'){
        window.addEventListener('load', fn, false);
    } else if (typeof document.addEventListener != 'undefined') {
        document.addEventListener('load', fn, false);
    } else if (typeof window.attachEvent != 'undefined') {
        window.attachEvent('onload', fn);
    } else {
       var oldfn = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = fn;
        } else {
            window.onload = function() {
                oldfn();
                fn();
            };
        }
    }
}

function study_set_init(){
	set_id = -1;
	terms_array = new Array();
	terms_fail = [];
	definitions_array = [];
	runda_tab = new Array();
	runda_nr = 0;
	
	set_id = document.getElementById("study_set_id").getAttribute("value");
		
	if( set_id >= 0 ){
		study_set_download();
	} 
		
	return true;
}
addLoadListener(study_set_init);

function study_set_download2(req){
	var terms = req.responseXML.getElementsByTagName("term");
	runda_tab[runda_nr] = new Array();
	for(var i = 0; i < terms.length; i++){
		terms_array.push(terms[i].getAttribute("term"));
		runda_tab[runda_nr].push(terms[i].getAttribute("term"));
		
		var tmp = new Array();
		var definitions = terms[i].childNodes;
		for(var j = 0; j < definitions.length; j++){
			tmp.push( definitions[j].getAttribute("definition") );		
		}
		definitions_array[ terms[i].getAttribute("term") ] = tmp;
	}
	study_set_start();
	return false;
}

function study_set_download(){
	var req = new XMLHttpRequest();
    if( req != null ){
        req.onreadystatechange = function() {
            if( req.readyState == 4 && (req.status == 200 || req.status == 304) ){
                study_set_download2(req);
            }
            return false;
        }
        var url = "study_set/get_set.php?study_set_id=" + set_id + "&bleah=" + new Date().getTime();
        req.open("GET",url);
        req.send(null);
        return false;
    }
    return false;
}

function study_set_failure(){
	remove_elements_from_div("study_set");	
	var strona = document.getElementById("study_set");
	
	var statystyki = document.createElement("div");
	statystyki.setAttribute("id", "study_set_statystyki");
	var stat_left = 1.0 * runda_tab[runda_nr].length - gdzie;
	statystyki.appendChild(document.createTextNode("zostalo: " + stat_left));
	var stat_ok = 1.0 * gdzie - terms_fail.length + 1;
	statystyki.appendChild(document.createTextNode(" | dobrze: " + stat_ok));
	var stat_fail = 1.0 * terms_fail.length - 1;
	statystyki.appendChild(document.createTextNode(" | źle: " + stat_fail));	
	strona.appendChild(statystyki);
	
	var form = document.createElement("form");
	form.setAttribute("id","study_set");
	form.onsubmit = study_set_check;
	var div = document.createElement("div");
	div.setAttribute("class", "study_set_term_fail");	
	div.appendChild(document.createTextNode(terms_array[gdzie] + " - ŹLE"));	
	form.appendChild(div);
	
	//var div1 = document.createElement("div");	
	for(var i=0; i<definitions_array[ terms_array[gdzie] ].length; i++){
		var div1 = document.createElement("div");	
		div1.setAttribute("class", "study_set_correct");			
		div1.appendChild(document.createTextNode(definitions_array[ terms_array[gdzie] ][i] + " "));		
		form.appendChild(div1);
		var div2 = document.createElement("div");
		div2.setAttribute("class", "study_set_definition");			
		var input1 = document.createElement("input");
		input1.setAttribute("type", "text");
		input1.setAttribute("name", "study_set_"+i);
		input1.setAttribute("size", "40");
		div2.appendChild(input1);
		form.appendChild(div2);
	}
	//form.appendChild(div1);
	/*
	var div2 = document.createElement("div");
	div2.appendChild(document.createElement("hr"));	
	for(var i=0; i<definitions_array[ terms_array[gdzie] ].length; i++){
		var input1 = document.createElement("input");
		input1.setAttribute("type", "text");
		input1.setAttribute("name", "study_set_"+i);
		div2.appendChild(input1);		
	}
	form.appendChild(div2);*/
	
	var div3 = document.createElement("div");
	div3.setAttribute("class", "study_set_button");	
	var input2 = document.createElement("input");
	input2.setAttribute("type", "submit");
	input2.setAttribute("value", "Sprawdź!");
	div3.appendChild(input2);
	form.appendChild(div3);
	
	strona.appendChild(form);
	document.forms['study_set']['study_set_0'].focus();
	
	return false;
}

function study_set_overall(){
	remove_elements_from_div("study_set");
	var strona = document.getElementById("study_set");
	
	var div = document.createElement("div");
	div.setAttribute("class", "study_set_term");	
	div.appendChild(document.createTextNode("Podsumowanie"));	
	strona.appendChild(div);
	
	runda_tab[1.0 + runda_nr] = new Array();
	var divv = document.createElement("div");
	divv.setAttribute("class", "study_set_term");		
	for(var i = 0; i < runda_tab[runda_nr].length; i++){
		var div = document.createElement("div");
		if( terms_fail[ i ] == null ){
			div.appendChild(document.createTextNode(runda_tab[runda_nr][i]));
			div.setAttribute("class", "study_set_ok");
		} else {
			div.appendChild(document.createTextNode(runda_tab[runda_nr][i]));
			div.setAttribute("class", "study_set_fail");
			runda_tab[1.0 + runda_nr].push( runda_tab[runda_nr][i] );
		}
		divv.appendChild(div);
	}
	strona.appendChild(divv);
	
	if( runda_tab[1.0 + runda_nr].length > 0 ){
		var div3 = document.createElement("div");
		div3.setAttribute("class", "study_set_button");	
		var input2 = document.createElement("input");
		input2.setAttribute("type", "submit");
		input2.setAttribute("value", "Kontynuuj z błędnymi odpowiedziami");
		input2.onclick = study_set_continue;
		div3.appendChild(input2);
		strona.appendChild(div3);
	} else {
		terms_fail = [];
		for(var i = 0; i < runda_tab[runda_nr].length; i++) terms_fail[ runda_tab[runda_nr][i] ] = 1;
			
		for(var i=runda_nr - 1.0; i>=0; i--){
			var divv = document.createElement("div");
			divv.setAttribute("class", "study_set_term");			
			for(var j=0; j<runda_tab[i].length; j++){
				var div = document.createElement("div");
				if( terms_fail[ runda_tab[i][j] ] != 1 ){
					div.appendChild(document.createTextNode(runda_tab[i][j]));
					div.setAttribute("class", "study_set_ok");
					terms_fail[ runda_tab[i][j] ] = 1;
				} else {
					div.appendChild(document.createTextNode(runda_tab[i][j]));
					div.setAttribute("class", "study_set_fail");
				}
				divv.appendChild(div);
			}
			strona.appendChild(divv);
		}
	}
	
	var div3 = document.createElement("div");
	div3.setAttribute("class", "study_set_button");	
	var input2 = document.createElement("input");
	input2.setAttribute("type", "submit");
	input2.setAttribute("value", "Zacznij od początku");
	input2.onclick = study_set_start;
	div3.appendChild(input2);
	strona.appendChild(div3);
		
	return false;
}

function study_set_next(){
	document.onkeypress = null;
	window.clearTimeout(timeoutId);
	gdzie++;
	if( gdzie >= runda_tab[runda_nr].length ){
		study_set_overall();
		return false;
	}
	study_set_begin();
	return false;
}

function study_set_check(){
	var ans = new Array();
	var ok = true;
	//for(var i=0; i<definitions_array[ terms_array[gdzie] ].length; i++){
	for(var i=0; i<definitions_array[ runda_tab[runda_nr][gdzie] ].length; i++){	
		if( document.forms["study_set"]["study_set_"+i].value != definitions_array[ runda_tab[runda_nr][gdzie] ][i] ){
			ok = false;
		}
		ans.push(document.forms["study_set"]["study_set_"+i].value);
	}
	if( ok == false ){
		terms_fail[ gdzie ] = 1;
		study_set_failure();
		return false;
	}
	
	remove_elements_from_div("study_set");
	var strona = document.getElementById("study_set");
	
	var statystyki = document.createElement("div");
	statystyki.setAttribute("id", "study_set_statystyki");
	var stat_left = 1.0 * runda_tab[runda_nr].length - gdzie - 1;
	statystyki.appendChild(document.createTextNode("pozostało: " + stat_left));
	var stat_ok = 1.0 * gdzie + 1 - terms_fail.length;
	statystyki.appendChild(document.createTextNode(" | dobrze: " + stat_ok));
	var stat_fail = 1.0 * terms_fail.length;
	statystyki.appendChild(document.createTextNode(" | źle: " + stat_fail));	
	strona.appendChild(statystyki);
	
	var div = document.createElement("div");
	div.setAttribute("class", "study_set_term_ok");	
	div.appendChild(document.createTextNode(runda_tab[runda_nr][gdzie] + " - OK"));
	strona.appendChild(div);
		
	//var div2 = document.createElement("div");	
	for(var i=0; i<definitions_array[ runda_tab[runda_nr][gdzie] ].length; i++){
		var div2 = document.createElement("div");	
		div2.appendChild(document.createTextNode(definitions_array[ runda_tab[runda_nr][gdzie] ][i] + " "));		
		div2.setAttribute("class", "study_set_correct");			
		strona.appendChild(div2);
	}
	//strona.appendChild(div2);
	
	var div3 = document.createElement("div");
	div3.setAttribute("class", "study_set_button");	
	var input2 = document.createElement("input");
	input2.setAttribute("type", "submit");
	input2.setAttribute("value", "Następny");
	input2.onclick = study_set_next;
	div3.appendChild(input2);
	strona.appendChild(div3);
	
	document.onkeypress = study_set_next;
	timeoutId = window.setTimeout("study_set_next()", 3000);
	
	return false;
}

function study_set_begin(){
	remove_elements_from_div("study_set");
	var strona = document.getElementById("study_set");
	
	var statystyki = document.createElement("div");
	statystyki.setAttribute("id", "study_set_statystyki");
	var stat_left = 1.0 * runda_tab[runda_nr].length - gdzie;
	statystyki.appendChild(document.createTextNode("pozostało: " + stat_left));
	var stat_ok = 1.0 * gdzie - terms_fail.length;
	statystyki.appendChild(document.createTextNode(" | dobrze: " + stat_ok));
	var stat_fail = 1.0 * terms_fail.length;
	statystyki.appendChild(document.createTextNode(" | źle: " + stat_fail));	
	strona.appendChild(statystyki);
	
	var form = document.createElement("form");
	form.setAttribute("id","study_set");
	form.onsubmit = study_set_check;
	var div = document.createElement("div");
	div.setAttribute("class", "study_set_term");
	
	var bold = document.createElement("b");
	bold.appendChild(document.createTextNode(runda_tab[runda_nr][gdzie]));
	div.appendChild(bold);
	
	//div.appendChild(document.createTextNode(runda_tab[runda_nr][gdzie]));
	form.appendChild(div);
	
	//var div2 = document.createElement("div");	
	//for(var i=0; i<definitions_array[ terms_array[gdzie] ].length; i++){
	for(var i=0; i<definitions_array[ runda_tab[runda_nr][gdzie] ].length; i++){
		var div2 = document.createElement("div");	
		div2.setAttribute("class", "study_set_definition");		
		var input1 = document.createElement("input");
		input1.setAttribute("type", "text");
		input1.setAttribute("name", "study_set_"+i);
		input1.setAttribute("size", "40");		
		div2.appendChild(input1);	
		form.appendChild(div2);
	}
	//form.appendChild(div2);
	
	var div3 = document.createElement("div");
	div3.setAttribute("class", "study_set_button");			
	var input2 = document.createElement("input");
	input2.setAttribute("type", "submit");
	input2.setAttribute("value", "Sprawdź!");
	div3.appendChild(input2);
	form.appendChild(div3);
	
	strona.appendChild(form);
	
	document.forms['study_set']['study_set_0'].focus();
	return true;
}

function study_set_continue(){
	gdzie = 0;
	terms_fail = [];
	runda_nr = 1.0 + runda_nr;
	study_set_begin();	
	return false;
}

function study_set_start(){
	gdzie = 0;
	terms_fail = [];
	runda_nr = 0;
	study_set_begin();	
	return false;
}
