$(document).ready(f_init);

var bNoClick    = false;
var aData       = null;
var nOk         = 0;
var nKo         = 0;
var nUn         = 0;
var nTimeTo     = 3;
var hTimeTo     = null;
var oScoreBoard = null;
var oGameBoard  = null;
var oGOverBoard = null;
var oDQuestion  = null;
var oDResult    = null;
var oDAnswer    = null;
var oTimer      = null;
var oScore      = null;
var oIAnswerR   = null;
var oIAnswerE   = null;
var oIAnswerS   = null;

function f_init() {
	_gaq.push(['_trackEvent', 'GameActions', 'PlayGame', 'plural-erraten']);
	_gaq.push(['_trackPageview', '/games/plural-erraten/play']);
	oScoreBoard = $("#scoreboard");
	oGameBoard  = $("#board");
	oGOverBoard = $("#gameover");
 	oTimer      = $("#scoreboard_timer");
 	oScore      = $("#scoreboard_score");
 	oDQuestion  = $("#pQuestion");
 	oDResult    = $("#pResult");
 	oDAnswer    = $("#dAnswers");
 	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_gameover();
 	f_readQuestion();
 	f_score();
}

function f_fadeAnswer(p, nAns) {
 	if(bNoClick) return;
 	window.clearInterval(hTimeTo);
 	bNoClick = true;
 	nTimeTo  = 0;
 	oTimer.fadeOut("slow");
 	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");
 	oTimer.css("display", "block");
 	var sURL  = "plural-erraten-ajax.php";
 	var sResp = getHtml(sURL);
 	if(sResp=="[ENDE]") return f_gameover();
 	aData = sResp.split("\n");
 	if(aData[6]!="") {
 		var sSrc = "http://www.gramatica-alemana.com/ilustrations/"+aData[6];
 		html += "<img src=\""+sSrc+"\" alt=\""+aData[0]+"\" />";
 	}
 	if(aData[5]!="") {
 		html += "<span class=\"de\">"+aData[0]+"</span> <span class=\"es\">"+aData[5]+"</span>";
 	} else {
 		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;
 	nTimeTo = 10;
 	hTimeTo = window.setInterval(f_TimeResponse, 1000);
 	f_TimeResponse();
 }

function f_response(nAns) {
 	bNoClick = true;
 	window.clearInterval(hTimeTo);
 	oDAnswer.css("display", "none");
 	oTimer.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_TimeResponse() {
 	if(nTimeTo==0) {
 		window.clearInterval(hTimeTo);
 		f_response(0);
 		bNoClick = false;
 	} else {
 		oTimer.html(nTimeTo+" s.");
 		nTimeTo--;
 	}
}

function f_TimeNext() {
 	oDResult.fadeOut("slow", f_readQuestion);
}

function f_score() {
	oScore.html(nOk+" / "+(nOk+nKo));
}

function f_gameover() {
	var nMark = 100*(nOk/(nOk+nKo));
 	oScoreBoard.css("display", "none");
 	oGameBoard.css("display", "none");
 	oGOverBoard.css("display", "block");
 	oGOverBoard.find("p:eq(1)").addClass(nMark<33 ? "gameover_score3" : nMark<66 ? "gameover_score2" : "gameover_score1");
 	oGOverBoard.find("p:eq(1) span:eq(0)").html(Math.round(nMark, 0)+"%");
 	oGOverBoard.find("p:eq(1) span:eq(1)").html(nOk+nKo);
	_gaq.push(['_trackEvent', 'GameActions', 'GameOver', 'plural-erraten']);
	_gaq.push(['_trackEvent', 'GameScore', 'PluralErraten', nMark]);
}

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;
}
