$(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', 'genus-erraten']);
	_gaq.push(['_trackPageview', '/games/genus-erraten/play']);
	oScoreBoard = $("#scoreboard");
	oGameBoard  = $("#board");
	oGOverBoard = $("#gameover");
	oTimer      = $("#scoreboard_timer");
	oScore      = $("#scoreboard_score");
	oDQuestion  = $("#pQuestion");
	oDResult    = $("#pResult");
	oDAnswer    = $("#pAnswers");
	oIAnswerR   = $("#aAnswerR");
	oIAnswerE   = $("#aAnswerE");
	oIAnswerS   = $("#aAnswerS");
	oIAnswerR.click(function() { f_fadeAnswer($(this), "der") }).hover(f_mover, f_mout);
	oIAnswerE.click(function() { f_fadeAnswer($(this), "die") }).hover(f_mover, f_mout);
	oIAnswerS.click(function() { f_fadeAnswer($(this), "das") }).hover(f_mover, f_mout);
 	//f_gameover();
	f_readQuestion();
	f_score();
}

function f_mover() {
	$(this).find("img").attr("src", $(this).find("img").attr("src").replace("1", "2"));
}
function f_mout() {
	$(this).find("img").attr("src", $(this).find("img").attr("src").replace("2", "1"));
}

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  = "genus-erraten-ajax.php";
	var sResp = getHtml(sURL);
	if(sResp=="[ENDE]") return f_gameover();
	aData = sResp.split("\n");
	if(aData.length==3) {
		html += "<span class=\"de\">"+aData[1]+"</span> <span class=\"es\">"+aData[2]+"</span>";
	} else {
		html += "<span class=\"de\">"+aData[1]+"</span>";
	}
	oDQuestion.html(html);
	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[0]) {
		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[0]+" "+aData[1]+"».");
		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', 'genus-erraten']);
	_gaq.push(['_trackEvent', 'GameScore', 'GenusErraten', 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;
}
