$(document).ready(function() {
	InitListaAgenda();
	$('#nextMes').show(); // Mostrar el link siguiente.
	$('#prevMes').hide(); // Ocultar el link anterior.

	testCallback = function($td, thisDate, month, year){
		var n_semana = thisDate.getDay(); //0 al 6, día de la semana
		var dia_pintado = thisDate.getDate(); //Fecha del día que se pinta
		var mes = (month+1);
		
		if($td.is('.current-month') ){
			var arr_fechas = devolver_array_fechas(lista_fechas);
			var x = arr_fechas.length;

			if(x > 0){
				for(i=0;i<x;i++){
					var fecha_evento = arr_fechas[i];
					var fecha_calendario = dia_pintado+"/"+mes+"/"+year;
					if(fecha_evento == fecha_calendario){
						$td.addClass('evento_inicio');
					}
				}
			}
		}
	}

	$('.calendario')
	.renderCalendar({
		month:mes,
		year:anyo,
		inline:true,
		renderCallback:testCallback
	});
	
	$("#ver-extra-agenda").click(function(){
		mostrarTodosEventosMes(mes_new,anyo_new)
	});
		

	
});

function devolver_array_fechas(lista){
	return lista.split("_");
}

function InitListaAgenda(){
	var mes_anterior = (mes - 1);
	var anyo_anterior = anyo;
	if(mes_anterior < 0){
		mes_anterior = 11;
		anyo_anterior = anyo - 1;
	}
	
	var selectorOK = "fechaItem-"+mes+"_"+anyo; //Selector de lo que hay que mostrar en INIT
	var selectorPasado = "fechaItem-"+mes_anterior+"_"+anyo_anterior; //Selector de lo que hay que mostrar en INIT
	var mostrarExtra = false;
	var hayItems = 0;
	$(".agenda LI").each(function(){
		if( $(this).hasClass(selectorOK) ||  $(this).hasClass(selectorPasado) ) {
			hayItems++;							 
		 }
		 
		if( $(this).hasClass(selectorOK) && $(this).hasClass('visible')  ||  $(this).hasClass(selectorPasado) && $(this).hasClass('visible') ) {
			$(this).show();
		}
		else{
			$(this).hide();
			if(hayItems >= 3){ mostrarExtra = true; }
		}
	});
	
	if(mostrarExtra){
		$("#ver-extra-agenda").show();
	}
	else{
		$("#ver-extra-agenda").hide();		
	}	
}

function mostrarEventosMes(s_mes,s_anyo){
	var selectorOK = "fechaItem-"+s_mes+"_"+s_anyo+""; //Selector de lo que hay que mostrar
	var mostrarExtra = false;
	var hayItems = 0;
	
	$(".agenda LI").each(function(){
		if( $(this).hasClass(selectorOK) ){
			hayItems++;							 
		 }
		 
		if( $(this).hasClass(selectorOK) && $(this).hasClass('visible') ) {
			$(this).show();	
		}
		else{
			$(this).hide();	
			if(hayItems > 3){ mostrarExtra = true; }
		}
	});
	
	if(mostrarExtra){
		$("#ver-extra-agenda").show();
	}
	else{
		$("#ver-extra-agenda").hide();		
	}
}

function mostrarTodosEventosMes(s_mes,s_anyo){
	var selectorOK = "fechaItem-"+s_mes+"_"+s_anyo+""; //Selector de lo que hay que mostrar

	$(".agenda LI").each(function(){
		if( $(this).hasClass(selectorOK) && !$(this).hasClass('visible')) {
			$(this).toggle();	
		}
	});	
}

function avanzaMes(){
	if(n_meses > 0){
		mes_new = mes_new + 1;
		anyo_new = anyo_new;

		if(mes_new == 12){
			mes_new = 0;
			anyo_new = anyo_new + 1;
		}
	
		$('.calendario')
		.renderCalendar({
			month:mes_new,
			year:anyo_new,
			inline:true,
			renderCallback:testCallback
		});
		
	actualizarTituloCalendario(mes_new,anyo_new);
	mostrarEventosMes(mes_new,anyo_new);	
	n_meses--;
	actualizarNavegacion();
	}
}

function retrocedeMes(){
	if(n_meses < 6){
		mes_new = mes_new - 1;
		anyo_new = anyo_new;

		if(mes_new < 0){
			mes_new = 11;
			anyo_new = anyo_new - 1;
		}
	
		$('.calendario')
		.renderCalendar({
			month:mes_new,
			year:anyo_new,
			inline:true,
			renderCallback:testCallback
		});
		
	actualizarTituloCalendario(mes_new,anyo_new);
	
	if(n_meses + 1 == 6){ //Si volvemos al inicio, seguramente tengamos que mostrar eventos de meses anteriores, por eso hacemos la funcion del INIT
		InitListaAgenda();
	}
	else {
		mostrarEventosMes(mes_new,anyo_new);	
	}
	n_meses++;
	actualizarNavegacion();
	}
}

function actualizarNavegacion(){
	if(n_meses > 0){
		$('#nextMes').show();
	}
	else{
		$('#nextMes').hide();
	}
	
	if(n_meses < 6){
		$('#prevMes').show();	
	}
	else{
		$('#prevMes').hide();
	}
}

function actualizarTituloCalendario(s_mes,s_anyo){
	var literalMes = Date.monthNames[s_mes];
	var nuevo_contenido = literalMes + ' ' + s_anyo;
 	$("#cabecera_agenda").html(nuevo_contenido);
}
