// Ajuntament de Barcelona
// www.bcn.cat | www.bcn.es


$(document).ready ( function() {
	// Comportament dels controls de formulari INPUT i SELECT a les cerques.
	// ---------------------------------------------------------------------------------------------------------------------
	$("input, select").each ( function() {
		$(this).focus ( function() {
			// Treiem a tots els <p> del <fieldset> la classe 'selected'.
			$(this).parent("fieldset").find("p").each ( function() {
				$(this).removeClass("selected");
			});
			// I marquem el <p> del <input> que rep el focus com a seleccionat (selected).
			$(this).parent("p").addClass("selected");
			// Mirem tots els <p> del <fieldset> que tenen marcat d'error. Treiem tots els error
			// menys el del <p> que rep el focus.
			$(this).parent("fieldset").find("p.error-dades").each ( function() {
				if ($(this).attr("class").indexOf("selected")==-1) {
					$(this).removeClass("error-dades");
					$(this).find("em.error-missatge").remove();
				}
			});
		});
	});
	
	// S'inicialitza l'ajuda de seleccio de data en els controls de formulari
	// destinats a dates, sempre i quan abans es carregui el plugin datePicker.
	// ---------------------------------------------------------------------------------------------------------------------
	if ($.fn.datePicker) {
		$('input#del, input#al2, input#dia').datePicker({pathImg:pathSite+'/img'});
	}	

	// Validació dels criteris dels formularis de cerca.
	// ---------------------------------------------------------------------------------------------------------------------
	$("form#cerca-agenda, form#cerca-equipament, form#cerca-agendaRapida").submit ( function() {
		var opcio_on;
		var opcio_quan;
		var txt = '';
		var stat = true;
		
		// Missatges d'error
		// ---------------------------------------------------------------------------------------------------------------------
		var errorsTxt = new Array();
		errorsTxt[0] = new Array('Indique el nombre de la calle.','You have to apply some kind of filter.','Indiqui el nom del carrer.');
		errorsTxt[1] = new Array('Indique un espacio.','You have to apply some kind of filter.','Indiqui un espai.');
		errorsTxt[2] = new Array('Indique el intervalo de fechas con un formato correcto.','Data format error.','Indiqui l\'interval de dates amb format correcte.');
		errorsTxt[3] = new Array('Indique la fecha con un formato correcto.','Data format error.','Indiqui la data amb format correcte.');
		
		// Criteris de la cerca
		// ---------------------------------------------------------------------------------------------------------------------
		opcio_on 	= getRadio(document.getElementsByName('radiob_lloc'));
		opcio_quan 	= getRadio(document.getElementsByName('opcio2'));
		
		// Neteja dels controls de formulari marcats com a errors
		// ---------------------------------------------------------------------------------------------------------------------
		$("form p.error-dades").each ( function() {
			$(this).removeClass("error-dades");
			$(this).find("em.error-missatge").remove();
		});
	
		// Validacio dels controls de formulari d'on i quan
		// ---------------------------------------------------------------------------------------------------------------------
		switch(parseInt(opcio_on)) {
			case 1: break;
			case 2: break;
			case 3:
				if ($("#nom_carrer").val()=='') {
					if (idioma=='es') 		txt = errorsTxt[0][0];
					else if (idioma=='en') 	txt = errorsTxt[0][1];
					else 					txt = errorsTxt[0][2];
					$("#nom_carrer").parent("p").addClass("error-dades"); 
					$("#nom_carrer").parent("p").append('<em class="error-missatge">'+txt+'</em>');
					stat = false;
				}
				break;
			case 4:
				if ($("#lloc").val()=='') {
					if (idioma=='es') 		txt = errorsTxt[1][0];
					else if (idioma=='en') 	txt = errorsTxt[1][1];
					else 					txt = errorsTxt[1][2];
					$("#lloc").parent("p").addClass("error-dades");
					$("#lloc").parent("p").append('<em class="error-missatge">'+txt+'</em>');
					stat = false;
				}
				break;
			default:
				break;
		}
		switch(parseInt(opcio_quan)) {
			case 1: break;
			case 2:
				if (!verifyFormatData($("#del").val()) || !verifyFormatData($("#al2").val())) {
					if (idioma=='es') 		txt = errorsTxt[2][0];
					else if (idioma=='en') 	txt = errorsTxt[2][1];
					else 					txt = errorsTxt[2][2];
					$("#del").parent("p").find("error").remove();
					$("#del").parent("p").addClass("error-dades");
					$("#del").parent("p").append('<em class="error-missatge">'+txt+'</em>');
					stat = false;
				}
				break;
			case 3:
				if (!verifyFormatData($("#dia").val())) {
					if (idioma=='es') 		txt = errorsTxt[3][0];
					else if (idioma=='en') 	txt = errorsTxt[3][1];
					else 					txt = errorsTxt[3][2];
					$("#dia").parent("p").find("error").remove();
					$("#dia").parent("p").addClass("error-dades");
					$("#dia").parent("p").append('<em class="error-missatge">'+txt+'</em>');
					stat = false;
				}
				break;
			default:
				break;
		}
		return(stat);
	});
});

