$(document).ready(f_init);

var bNoClick    = false;
var aData       = null;
var nOk         = 0;
var nKo         = 0;
var nTimeTo     = 3;
var hTimeTo     = null;
var oDQuestion  = null;
var oDResult    = null;
var oDAnswer    = null;
var oScore      = null;
var oIAnswerR   = null;
var oIAnswerE   = null;
var oIAnswerS   = null;

function f_init() {
	oDQuestion = $("#pQuestion");
	oDResult   = $("#pResult");
	oDAnswer   = $("#dAnswers");
	oScore     = $("#scoreboardscore");
	oIAnswerR  = $("#pAnswerA");
	oIAnswerE  = $("#pAnswerB");
	oIAnswerS  = $("#pAnswerC");
	oIAnswerR.click(function() { f_fadeAnswer($(this), 1) });
	oIAnswerE.click(function() { f_fadeAnswer($(this), 2) });
	oIAnswerS.click(function() { f_fadeAnswer($(this), 3) });
	f_readQuestion();
	f_score();
}

function f_fadeAnswer(p, nAns) {
	if(bNoClick) return;
	window.clearInterval(hTimeTo);
	bNoClick = true;
	nTimeTo  = 0;
	p.siblings().fadeOut("slow", function() {
		nTimeTo++;
		if(nTimeTo==2) {
			f_response(nAns);
			oIAnswerR.css("display", "block");
			oIAnswerE.css("display", "block");
			oIAnswerS.css("display", "block");
			nTimeTo   = 0;
			bNoClick = false;
		}
	});
}

function f_readQuestion() {
	var html = "";
	oDAnswer.css("display", "block");
	oDResult.css("display", "none");
	var sURL  = "../quiz-ajax.php";
	var sResp = getHtml(sURL);
	if(sResp=="[ENDE]") return f_gameover();
	aData = sResp.split("\n");
	if(aData[5]!="") {
		html += "<img src=\""+aData[5]+"\" />";
	}
	html += "<span class=\"de\">"+aData[0]+"</span>";
	oDQuestion.html(html);
	oIAnswerR.html(aData[1]);
	oIAnswerE.html(aData[2]);
	oIAnswerS.html(aData[3]);
	aData[4] = parseInt(aData[4])+1;
}

function f_response(nAns) {
	window.clearInterval(hTimeTo);
	oDAnswer.css("display", "none");
	if(nAns==aData[4]) {
		nOk++;
		f_score();
		oDResult.removeClass("pResultKo").addClass("pResultOk");
		oDResult.html("Correcto!");
		oDResult.fadeIn("slow");
		window.setTimeout(f_TimeNext, 1000);
	} else {
		nKo++;
		f_score();
		oDResult.removeClass("pResultOk").addClass("pResultKo");
		oDResult.html("Incorrecto, la respuesta correcta es «"+aData[aData[4]]+"».");
		oDResult.fadeIn("slow");
		window.setTimeout(f_TimeNext, 3000);
	}
	return false;
}

function f_TimeNext() {
	oDResult.fadeOut("slow", f_readQuestion);
}

function f_score() {
	oScore.html(nOk+" / "+(nOk+nKo));
}

function f_gameover() {
	oDQuestion.html("No quedan más preguntas.");
	oDResult.css("display", "none");
	oDAnswer.css("display", "none");
}

function getHtml(sURL) {
	if((typeof urchinTracker=="function")) urchinTracker(sURL);
	var sUserAgent  = navigator.userAgent.toLowerCase();
	var isFireFox   = (sUserAgent.indexOf("firefox")!=-1);
	var isExplorer  = (sUserAgent.indexOf("msie")!=-1);
	var isKonqueror = (sUserAgent.indexOf("konqueror")!=-1);
	var isSafari    = (sUserAgent.indexOf("safari")!=-1);
	var xmlHttp     = null;
	if(isFireFox || isKonqueror || isSafari) {
		xmlHttp = new XMLHttpRequest();
	} else if(isExplorer || isKonkeror) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(xmlHttp!=null) {
		xmlHttp.open("GET", sURL, false);
		xmlHttp.send(null);
		return xmlHttp.responseText;
	}
	return null;
}
