var answers = new Array();

function openTraining(course_name, file_name) {
    var so = new SWFObject(file_name, "Captivate", "772", "652", "10", "#CCCCCC");
    so.addParam("quality", "high");
    so.addParam("name", "Captivate");
    so.addParam("id", "Captivate");
    so.addParam("wmode", "window");
    so.addParam("bgcolor","#f5f4f1");
    so.addParam("menu", "false");
    so.addVariable("variable1", "value1");
    so.setAttribute("redirectUrl", "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash");
    so.write("CaptivateContent");

    $("#Captivate").focus();
    //document.getElementById('Captivate').focus();
    //document.Captivate.focus();

    $("#training").dialog({
	title: course_name,
	autoOpen: false,
	width: 795,
	height: 700,
	modal: true,
	resizable: false
    });
    $("#training").dialog('open');
}

function loadQuestion(url, course_id, q_id) {
    var question_text = $.ajax({
	url: url,
	//global: false,
	type: "GET",
	data: "course_id=" + course_id + "&q_id=" + q_id,
	dataType: "json",
	async:false,
	success: function(data){
	}
    }
    ).responseText;
    var question = eval("(" + question_text + ")");
    return question;
}

function openTest(course_name, course_id, q_id, q_count, url) {
    //alert(q_id + " " + q_count);

    var data = loadQuestion(url, course_id, q_id);

    $("#test").empty();

    // question
    var div = $("<div>").addClass("question");
    var span = $("<span>").text(data.question.id + ". " + data.question.text);
    div.append(span);
    $("#test").append(div);

    // answers
    var div = $("<div>").addClass("answers");
    var table = $("<table>");
    for (var i = 0; i < data.question.answers.length; i++) {
	var tr = $("<tr>");
	var td1 = $("<td>");
	var td2 = $("<td>");
	var answer = data.question.answers[i];
	var input;
	if (answers[data.question.id] == answer.id) {
	    input = $("<input>").attr("id", answer.id).attr("type", "radio").attr("checked", true).attr("name", "question_" + data.question.id).val(answer.id);
	}
	else {
	    if (answer.id == 'a') {
		input = $("<input>").attr("id", answer.id).attr("type", "radio").attr("checked", true).attr("name", "question_" + data.question.id).val(answer.id);
	    } else {
		input = $("<input>").attr("id", answer.id).attr("type", "radio").attr("name", "question_" + data.question.id).val(answer.id);
	    }
	}
	var label = $("<label>").attr("for", answer.id).text(answer.text);

	td1.append(input);
	td2.append(label);
	tr.append(td1);
	tr.append(td2);
	table.append(tr);
	div.append(table);
    }
    $("#test").append(div);

    var buttons;
    // first question
    if (q_id == 1) {
	buttons = [
	{
	    text: $("#buttons").data("buttons").next,
	    click: function() {
		saveAnswer(q_id);
		saveTest(course_name, course_id, q_id+1, q_count, url);
	    }
	}
	];
    }
    // last question
    else if (q_id == q_count) {
	buttons = [
	{
	    text: $("#buttons").data("buttons").prev,
	    click: function() {
		saveTest(course_name, course_id, q_id-1, q_count, url);
	    }
	},
	{
	    text: $("#buttons").data("buttons").finish,
	    click: function() {
		saveAnswer(q_id);
		saveTest(course_name, course_id, q_id+1, q_count, url);
	    }
	}
	];
    }
    else {
	buttons = [
	{
	    text: $("#buttons").data("buttons").prev,
	    click: function() {
		saveTest(course_name, course_id, q_id-1, q_count, url);
	    }
	},
	{
	    text: $("#buttons").data("buttons").next,
	    click: function() {
		saveAnswer(q_id);
		saveTest(course_name, course_id, q_id+1, q_count, url);
	    }
	}
	];
    }

    $("#test").dialog({
	title: course_name,
	autoOpen: false,
	width: 795,
	height: 350,
	modal: true,
	resizable: false,
	buttons: buttons
    });

    if (q_id == 1) {
	$("#test").dialog('open');
    }
    else {
	$("#test").dialog("option", 'buttons' , buttons);
    }
}

function saveAnswer(q_id) {
    $("#test").find('input').each(function(){
	if ($(this).attr('checked')) {
	    answers[q_id] = $(this).attr('id');
	}
    });
    
}

function evaluateTest(course_name, course_id) {
    var results = "";
    for (var i = 1; i < answers.length; i++) {
	results += answers[i];
    }
    var evaluation = evaluate(course_id, results);

    $("#evaluation").empty();

    var buttons;

    var div = $("<div>").addClass("evaluation").html("Výsledek testu: <b>" + evaluation.result.percent + " %</b>");
    div.append($("<br>"));
    div.append($("<br>"));
    if (evaluation.result.percent >= 90) {
	div.append($("#text").data("text").success);
	div.append($("<br>"));
	div.append($("#text").data("text").success_text);
	buttons = [{
	    text: $("#buttons").data("buttons").save,
	    click: function() {
		saveResult(course_id);
		$("#evaluation").dialog('close');
	    }
	}];
    }
    else {
	div.append($("#text").data("text").failure);
	div.append($("<br>"));
	div.append($("#text").data("text").failure_text);
	buttons = [{
	    text: $("#buttons").data("buttons").close,
	    click: function() {
		$("#evaluation").dialog('close');
	    }
	}];
    }
    $("#evaluation").append(div);

    $("#evaluation").dialog({
	title: course_name,
	autoOpen: false,
	width: 795,
	height: 350,
	modal: true,
	resizable: false,
	buttons: buttons
    });

    $("#evaluation").dialog('open');
}

function saveResult(course_id) {
    var result_text = $.ajax({
	url: "/admin/skoleni/savetestresult/",
	//global: false,
	type: "GET",
	data: "course_id=" + course_id,
	dataType: "json",
	async:false,
	success: function(data) {
	}
    }).responseText;
    location.reload();
//var result = eval("(" + result_text + ")");
            
//return evaluation;
}

function evaluate(course_id, results) {
    var evaluation_text = $.ajax({
	url: "/admin/skoleni/evaluation/",
	//global: false,
	type: "GET",
	data: "course_id=" + course_id + "&results=" + results,
	dataType: "json",
	async:false,
	success: function(data) {
	}
    }
    ).responseText;
    var evaluation = eval("(" + evaluation_text + ")");
    return evaluation;
}

function saveTest(course_name, course_id, q_id, q_count, url) {
    if (q_id == q_count+1) {
	$("#test").dialog('close');
	evaluateTest(course_name, course_id);
	answers = new Array();
    }
    else {
	openTest(course_name, course_id, q_id, q_count, url);
    }
}
