// JScript File
/*
 * AMAROMA QuizShow jQuery interface
 * Copyright (c) 2009  Oliver Astrologo
 * Dual licensed under MIT and GPL.
 * @author  Oliver Astrologo
 * @version 1.1
 */


function showRequest(XMLHttpRequest) {
	//jQuery("#loading-indicator").show();
	jQuery('#form-submit-response').addClass("ac_loading");
	jQuery("#form-submit").attr("disabled", "true");
}

function showError(XMLHttpRequest, textStatus, errorThrown) {
	//console.log( textStatus);
	jQuery('#form-submit-response').removeClass("ac_loading");
	jQuery("#form-submit").removeAttr("disabled");	
	alert('Spiacenti ma al momento non è possibile inviare i dati.');
	jQuery.ajax({		
		type: "POST",
		dataType: 'json',   
		cache: false,
		beforeSend: null,   
		error: null,
		url: "/data-sources/error.php",
		data: {
			error_dump : errorThrown + ' ' + textStatus				
		},      
		success: null
	});
}		

function processFormData(formAction){
	jQuery(".std-input").removeClass("error");	
	jQuery(".error-input-msg").fadeOut().html("");		
	jQuery("#form-submit").attr("disabled", "true");		
	var postData = jQuery("#quizwhow-regform").serialize();
	
	jQuery.ajax({		
			type: "POST",
			dataType: 'json',   
			cache: false,
			beforeSend: showRequest,   
			error: showError,
			url: formAction+"?mode=ajax",
			data: postData,      
			success: function(data){searchResponse(data);}
		}); 
	} 		

function searchResponse (data) {				 
	jQuery('#form-submit-response').removeClass("ac_loading");
	jQuery("#form-submit").removeAttr("disabled");	
	var responseStatus = data.responseStatus;
	if (responseStatus == 'OK'){
		jQuery("#form-area").animate({
			opacity: 0		
			}, 1000, function() {
				jQuery("#form-area").hide();
				jQuery("#form-message").fadeIn();
		});		
	}else{
		var errorsArray = data.errors;
		jQuery.each(errorsArray, function(index, value) { 		
			jQuery("#"+value.field).addClass("error");
			jQuery("#"+value.field+"-error").html(value.reason).fadeIn();
		
		});
		alert("Attenzione\nAlcuni campi non sono stati compilati correttamente, verifica e prova nuovamente.");
	}
}	

jQuery(function(){	
	jQuery("#quizwhow-regform").submit(function () {processFormData(jQuery(this).attr('action'));return false;});	
	});


$(document).ready(function(){
	$("select#form_municipio").change(function(){
		// Post string
		var post_string = "itemlist=" + $(this).val();

		// Send the request and update sub category dropdown
		$.ajax({
			type: "GET",
			data: post_string,
			dataType: "json",
			cache: false,
			url: '/data-sources/quizshow.cgi',
			timeout: 2000,
			error: function() {
				alert("Failed to submit");
				},
			success: function(data) { 
				// Clear all options from sub category select
				$("select#form_scuola option").remove();
				// Fill sub category select
				$.each(data, function(i, j){
					var row = "<option value=\"" + j.value + "\">" + j.text + "</option>";
					$(row).appendTo("select#form_scuola");
					});
				}
			});
		}).change();
	$("#goto-next-button").click(function(){
		var prog = $("#prog").val();
//		alert($("input[prog='"+prog+"']:checked").val());
		if (!$("input[prog='"+prog+"']:checked").val()) {
			alert("Rispondi alla domanda!");
			return false;
			}
		$("#prog").val(prog-1+2);
		showSingleQuestion();
		});
	showSingleQuestion();
	});

function showSingleQuestion() {
	var prog = $("#prog").val();
	if (prog > 20) {
		jQuery("#quizwhow-gameform").submit();
		}
	else {
		$(".question-panel").each(function(){
			if ($(this).attr('prog') == prog) {
				$(this).show();
				}
			else {
				$(this).hide();
				}
			});
		}
	}

function displayTimer() { 
	if (milisec >= 9) { 
		milisec = 0;
		seconds += 1;
		}
	if (seconds > 59) { 
		seconds = 0 ;
		minutes += 1 
		} 
	else { milisec += 1; }

	var show_s = seconds;
	var show_m = minutes;
	if (show_s.toString().length == 1) {show_s = '0' + show_s;}
	if (show_m.toString().length == 1) {show_m = '0' + show_m;}
	$("#timer").html(show_m + ':' + show_s + '.<span class="millisec">' + milisec + '</span>');
	setTimeout("displayTimer()",100);
	}

