
document.observe("dom:loaded", init);

var previa 		= -1;
var puntaje		= 0;
var correcta	= 0;
var tamano		= 0;
var inicio		= new Date;

function init()
{
	if (typeof res != 'undefined') {
	eval("res=" + Base64.decode(res));

	if(typeof(res) == 'object')	{

		tamano = res.preguntas.size();
		$('previa').update((previa+2)+' de '+tamano);

		if(res.nivel == 1) { var nivel='inicial'}
		if(res.nivel == 2) { var nivel='intermedio'}
		if(res.nivel == 3) { var nivel='avanzado'}
		$('nivel').update(nivel);

		siguiente(); //la pregunta inicial

	}
	else { alert("A ocurrido un error. Presione F5 para volver a jugar."); }
	}
}

function siguiente()
{
	if(typeof(res.preguntas[previa+1]) == 'object')	{

		//pregunta
		$('pregunta').update(res.preguntas[previa+1].pregunta);

		//opciones
		$('opciones').update();
		res.preguntas[previa+1].respuestas.each(function(s, index)
		{
			var li = new Element('li', {'_index': index}).update(s);
			Element.extend(li); //extiendo al elemento recien creado para que gane los "Element.methods"
			li.observe('mouseover',mouseover);
			li.observe('mouseout',mouseout);
			li.observe('click',respuesta);
	  		$('opciones').appendChild(li);
		});

		//respuesta
		correcta = res.preguntas[previa+1].correcta;

	}
	else {
		cierre();
	}
}

function mouseover(event){
  element = event.element();
  element.setStyle({ backgroundImage:'url(css/img/li_opcion_hover.jpg)'});
}
function mouseout(event){
  element = event.element();
  element.setStyle({ backgroundImage:'url(css/img/li_opcion_normal.jpg)'});
}

function respuesta(event)
{
	element = event.element();

	Effect.Pulsate(element, { pulses: 2, duration: .9 });

	//respondio correctamente?
	if (element.getAttribute('_index') == correcta){
		//element.setStyle({ backgroundColor:'#359545'});
		puntaje = puntaje + 10;
	} else {
		//element.setStyle({ backgroundColor:'#ff8888'});
	}

	// mata al resto
	$('opciones').childElements().each(function(li, index)
	{
		li.stopObserving('mouseover',mouseover);
		li.stopObserving('mouseout',mouseout);
		li.stopObserving('click',respuesta);
	});

	//actualiza a previa
	previa = previa+1;
	if (previa+1 < tamano) {
		$('previa').update((previa+2)+' de '+tamano);

	}
	//actualiza puntaje
	$('puntaje').update(puntaje);

	window.setTimeout(siguiente, 900);
}

function cierre()
{
	var fin = new Date;
	var temp = fin - inicio; //tiempo
	var elapsed = new Date(temp);

	//oculto elementos
	$('info').hide();
	$('opciones').hide();

	$('pregunta').update('Resultado');
	$('puntaje-final').update(puntaje+'<span class="puntos">ptos</span>');
	$('tiempo-final').update('en '+elapsed.getMinutes()+' minutos y '+elapsed.getSeconds()+' segundos');
	$('final').show();


	var url = './saveResult.php';
	var pars = 'puntos='+puntaje+'&user='+res.usuario_id+'&set='+res.id;

	new Ajax.Request(
	url,
	{
		method: 'get',
		parameters: pars,
		onSuccess: function(response) {
					eval("var response=" + response.responseText);
					if(response==false){
						alert("A ocurrido un error. Presione F5 para volver a jugar.");
					}
		}
	});
}

function recomendar()
{
	window.location.replace('./recomienda.php?user='+res.usuario_id+'&puntos='+puntaje)
}

