var almg = {};

if(typeof(console) == 'undefined') console = { log : function(){} };

if(!$("pageAgenda").length){
almg.Agenda = (function declare_agenda($) {
    var that = function prepare_agenda (selector, options) {
    	// Temos que esperar até que a altura de todos os eventos esteja calculada
    	setTimeout(function wait () {
    		construct_agenda(selector, options);
    	}, 600);
    }, defaults = {
    	tipo: 'diaria'
    };

    function construct_agenda (selector, options) {
        options = $.extend(true, {}, defaults, options);

	var parent = $(selector), top = 0,
	j = 0,
	agora = options.hora,
	current = undefined,
	first = undefined;

	if(agora == null)
		agora = new Date().getHours();

        if (!parent.length) {
        	console.error('Objeto nao encontrado para seletor:', selector);
        	return false;
        }

	// Guardando alguns elmenetos
	tabs.element = parent.find('.tabs');
	slider.element = parent.find('.sliderAgenda');
	conveyor.element = parent.find('.conveyor');
	var paginacao = parent.find('.paginacao-agenda');

	// Salvando configurações
	that.config = options;

	// Definir posição inicial da esteira
	conveyor.element.css({
	    'top': '0px',
	    'position': 'relative'
	});

	// Pegar posição da esteira em relação com o documento
	conveyor.offset = conveyor.element.offset();

	var contEvents=0;
	// Apenas para modo diario
	if (options.tipo == "diaria") {
		// Verificar casos em que não há eventos
		// @todo criar funcao para gerar codigo de um evento

		if (!conveyor.element.find('[data-period="manha"]').length){
		    conveyor.element.prepend('<div class="evento notice vazioManha"  data-hora="07:00" data-period="manha">Não existem eventos para o período da manhã.</div> <div class=></div>');
			contEvents++;
		}
		// Não há eventos anoite
		if (!conveyor.element.find('[data-period="noite"]').length) {
		    // E não há eventos atarde
		    if (!conveyor.element.find('[data-period="tarde"]').length) {
				conveyor.element.append('<div class="evento notice vazioTarde" data-hora="12:00" data-period="tarde">Não existem eventos para o período da tarde.</div>');
				contEvents++;
			}
		    conveyor.element.append('<div class="evento notice vazioNoite" data-hora="18:00" data-period="noite">Não existem eventos para o período da noite.</div>');
			contEvents++;

		// Ha eventos anoite
		} else {
		    // Não há eventos atarde
		    if (!conveyor.element.find('[data-period="tarde"]').length){
				conveyor.element.find('[data-period="noite"]:first').before('<div class="evento notice vazioTarde" data-hora="12:00" data-period="tarde">Não existem eventos para o período da tarde.</div>');
				contEvents++;
			}
		}
	}

	if (contEvents > 2){
		conveyor.element.find('.evento').remove();
	}



	// Criar eventos

	$("a.vejaMais").live("click",function(e){
		e.preventDefault();
		var $this = $(this)
		$this.parent().css("maxHeight","");
		$this.remove();
	});

	conveyor.element.find('.evento')
	    .each(function (i, ele) {
		var event = $(ele),
			hora = event.attr('data-hora'),
			h = hour.to_int(hora),
			textoEvento = $(ele).find('p').last();
		// Criando eventos
		events[j] = {
		    id: j,
		    element: event,
		    period: event.attr('data-period'),
		    hour: hora,
		    offset: event.offset()
		};

		// Selecionando evento atual
		//if (current == undefined){
		//	current = events[j];
		//}

		if (h == agora && current == undefined){
			current = events[j];
		}

		// Procurando por eventos nas proximas horas, somente se for hoje
		if (!current) {
			for (var k = 0; k < 5; k++) {
				if (h == agora + k && !event.hasClass('notice')) {
					current = events[hora];
				}
			}
		}

		// Caso evento não tenha hora, criamos uma id para ele
		event.attr('data-id', j);

		// Guarda a posição inicial do conveyor
		if (i == 0) first = events[j];
			j++;
	    });


	// Armazenar quantidade de eventos
	events.length = j;




	// Somento quando calendário esta mostrando dia
	if (options.tipo == "diaria") {
		// Encontramos o evento mais proximo de agora?
		if (!current) current = events.period(period(agora));

		// Bindando eventos das abas
		tabs.element.click(tabs.click);

		// Fix do problema de width do ie 7
		tabs.element.css ('width', tabs.element.parent().width() + 'px');
		slider.element.css ('width', slider.element.parent().width() + 'px');
		parent.find('.footer').css ('width', parent.find('.footer').parent().width() + 'px');

	} else {
		current = first;
	}


	// Ativar controles de paginação
	paginacao.click(paginar);

	// Colocar no estado certo dependendo do dia se houver eventos
	conveyor.current = first;
	that.select(current.hour, false, current.id);

	return that;

    }

    var conveyor = {
		current: 0,
		offset: {},
		to: function conveyor_to (id) {
			    //var event = (id !== false && id !== undefined && events.by_id(id)) ||  events[hour];

			    var event = events.by_id(id);

			    // Caso a id do evento não seja encontrada, significa que o cara clicou na mesma aba
			    if (!event) return;

			    // Caso haja dois eventos na mesma hora, temos de pegar o offset do anterior
			    if ((conveyor.current.id == event.id) && (event.id > 0)){
			    	event = events.by_id(event.id - 1);
			    }

			    var position = event.offset.top - conveyor.offset.top;

			    conveyor.element.stop(true, true)
				.animate({top: - position + 'px'});

			    conveyor.current = event;
			}
    },
    slider = {
		to: function slide_to (stamp) {
		    // Resetando minutos
		    stamp = stamp.substring(0, 2) + ':00';
		    // Selecionar hora correspondente
		    slider.element.find('.hour').removeClass('select')
			.filter('[data-hora="' + stamp + '"]').addClass('select');

		    // Exibir lista de horarios correspondente
		    slider.show(period(stamp));
		},
		show: function display_period(period) {
		    var show = slider.element.find('.' + period);

		    if (show.is(':hidden')) {
			slider.element.find('.hours:visible').hide();
			show.show();
		    }
		}
    },
    tabs = {
		select: function tabs_select (name) {
		    var textoVazio = 'Não existem eventos para o período da ';
		    if (name == 'manha') {
		    	conveyor.element.find('.vazioManha').html(textoVazio + 'manhã');
		    	conveyor.element.find('.vazioTarde').html('&nbsp;');
		    	conveyor.element.find('.vazioNoite').html('&nbsp;');

			}
		    if (name == 'tarde') {
		    	conveyor.element.find('.vazioManha').html('&nbsp;');
		    	conveyor.element.find('.vazioTarde').html(textoVazio + 'tarde');
		    	conveyor.element.find('.vazioNoite').html('&nbsp;');

		    }
		    if (name == 'noite') {
		    	conveyor.element.find('.vazioManha').html('&nbsp;');
		    	conveyor.element.find('.vazioTarde').html('&nbsp;');
		    	conveyor.element.find('.vazioNoite').html(textoVazio + 'noite');
		    }

			tabs.element.removeClass('manha tarde noite')
				.addClass(name)
				.find('a.tab').removeClass('select')
				.filter('.' + name).addClass('select');
		},
		click: function tabs_click (event) {
		    var target = $(event.target).is("a") ? $(event.target) : $(event.target).children("a");
		    that.select(target.attr('data-tab'), true);
		}
    },
    events = {
		next: function next_event (event) {
			return events.get('next', event);
		},
		previous: function previous_event (event) {
			return events.get('prev', event);
		},
		// private
		get: function get_event (method, event) {
			var sibling = event.element[method+"All"]('.evento').first();
			if (sibling.length) return events[sibling.attr('data-id')];
			return false;
		},
		// public
		period: function first_event (period) {
			//    for (var hour in events) {
			//	if (events[hour].period == period) return events[hour];
			//    }

			for(var id in events) {
				if(events[id].period == period) {
					return events[id];
				}
			}

			console.error('events.period:: Período invalido informado:', period);
		},
		by_id: function search_event(id) {
		//    for (var hour in events) {
		//	if (events[hour].id == id) return events[hour];
		//   }
			return events[id];
		//	return false;
		},
		nearest: function near_in_time(h) {
	//	    for (var hour in events) {
	//		if (events[hour].id == id) return events[hour];
	//	    }
			return false;
		}
	};

    that.select = function agenda_select (time, convert, idEvento) {
	// Selecionar periodo ?

	//if (!time && !id) return;
	if(idEvento == null || idEvento == undefined){
		for(var id in events) {
			if(events[id].period == time){ idEvento = events[id].id; break;}
		}
	}
	conveyor.to(idEvento);
	if (convert) time = events.period(time).hour;
	// Se estivermos no dia, selecionar outros elementos
	if (that.config.tipo == "diaria") {
		slider.to(time);
		tabs.select(period(time));
	}
    };

    function paginar (event) {
		var target = $(event.target), current = conveyor.current,
		next = undefined, previous = undefined;

		if (target.attr('data-direction') == 'up') {
			next = events.next(conveyor.current);
			if (next) that.select(next.hour, false, next.id);
		} else {
			previous = events.previous(conveyor.current);
			if (previous) that.select(previous.hour, false, previous.id);
		}
    }

    function period (hours) {
	if (typeof hours == 'string') hours = hour.to_int(hours);

	if(hours == undefined || hours == null || hours < 0) hours = (new Date()).getHours();

	if (hours < 12) return 'manha';
	else if (hours < 18) return 'tarde';
	else return 'noite';
    }

    function hour (period) {
		switch (period) {
			case 'manha': return '07:00';
			case 'tarde': return '12:00';
			case 'noite': return '18:00';
			default: return false;
		}
    }

    hour.to_int = function hour_to_int (hour) {
	return hour && parseInt(hour.replace(/0(\d)/, '$1'));
    }
    return that;
})(jQuery);
}
$(document).ready(function() {

	almg.datepicker = (
	    function declarar_datepicker () {
		var abaDia = $("#abaDia"),
		abaDiaContent = $("#dia"),
		abaSemana = $("#abaSemana"),
		abaSemanaContent = $("#semana"),
		abaMes = $("#abaMes"),
		abaMesContent = $("#mes"),
		abasDias = $("#abaDia, #abaMes, #abaSemana"),
		abasContent = $("#abaDiaContent, #abaMesContent, #abaSemanaContent"),
		agendaDia = $("#tableAgendaDia"),
		hoje = new Date("2011", "02", "09", "00", "00", "00", "00"),
		monthNames = ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro', 'Outubro','Novembro','Dezembro'],
		origYear = undefined,
		configuracoes = {
		    url: {
			eventos: '/acompanhe/agenda/ajax'
		    },
		    tipo: 'diaria',
		    eventos: []
		},
		that = function instanciar_datepicker (opcoes) {
		    hoje = opcoes.data;
		    configuracoes = $.extend(true, {}, configuracoes, opcoes);
		    configuracoes.eventos && (calendario.carregado(configuracoes.eventos)); // Adiciona eventos no calendario

		    calendario.pintar(hoje);
		    inicializar();
		},
		// Controle do calendario
		calendario = {
			configurar: function configurar_calendario() {
				if (configuracoes.tipo == 'diaria' || configuracoes.tipo == 'dia') {
					this.quadro = abaDiaContent;
					this.dias = this.quadro.find('tbody a');
					return true;
				} else if (configuracoes.tipo == 'semanal' || configuracoes.tipo == 'semana') {
					this.quadro = abaSemanaContent;
					this.dias = this.quadro.find('tbody a');
					return true;
				} else if (configuracoes.tipo == 'mensal' || configuracoes.tipo == 'mes') {
					this.quadro = abaMesContent;
					this.dias = this.quadro.find('tbody a');
					return true;
				} else {
					//console.info("Tipo de configuração não encontrado para o calendário.");
					return false;
				}

			},
		    // Marca dias com eventos
		    pintar: function calendario_pintar (data) {
			var eventos = configuracoes.eventos[data.getMonth()];

			// Somente renderizamos o calendario de semana ou de dias
				if (configuracoes.tipo == 'mensal' || this.configurar()) return;
			// Não existem dados para os eventos, carregar
			if (!eventos) {
			    this.quadro.addClass('carregando');
			    configuracoes.eventos[data.getMonth()] = 'carregando';
			    //abrir modal carregando...
			    $("<div id='modal_mask'></div><div class='window modal_alert'>Carregando...</div>").appendTo("body");
			    $(".modal_alert, div#modal_mask").show();
    			    calendario.carregar(data);
			    return;
			// Os dados para os eventos estão sendo carregados aguardemos
			} else if (eventos == 'carregando') return;

			// Tudo carregado, pintemos
			calendario.dias.each (function (i, elemento) {
				   	var diaria = $(elemento);
				  	if (eventos[parseInt(diaria.text())]) diaria.addClass('temEvento');
				   });

		    },
			carregar: function carregar_eventos(data) {
			  var urlOrigem = document.location.href;
			  var secao = "agenda";
			  if (urlOrigem.indexOf("tv_assembleia") != -1) {
			    secao = "tv";
			  } else if (urlOrigem.indexOf("radio_assembleia") != -1) {
			    secao = "radio";
			  }
			  $.getJSON(configuracoes.url.eventos, {mensal: (data.getMonth() % 12) + 1 , ano: data.getFullYear(), secao: secao}, calendario.carregado);
			},
		    carregado: function adicionar_eventos (datas) {
			var eventos = configuracoes.eventos, data;

			calendario.quadro && calendario.quadro.removeClass('carregando');
			//fechando modal carregando.
			$("div.modal_alert, div#modal_mask").fadeOut().remove();
			// Caso não haja eventos para este mes ignoramos o carregamento
			if (!datas || !datas.length) return;

			// Convertendo informacoes
			for (var i = datas.length; i--;) {
			    data = datas[i].split('-');
			    data[1] = parseInt(data[1].replace(/0(\d)/, '$1')) - 1;
			    datas[i] = new Date(data[0], data[1], data[2]);
			}

			// Formatando informacoes
			for (var i = datas.length; i--;) {
			    data = datas[i];
			    if (!eventos[data.getMonth()] || eventos[data.getMonth()] == 'carregando') eventos[data.getMonth()] = [];

			    eventos[data.getMonth()][data.getDate()] = true;
			}

			// Repintar o calendario se as informações são deste mes
			if (hoje.getMonth() == data.getMonth())	calendario.pintar(data);
		    }
		};

		// Inicialização
		function inicializar () {

		    jQuery.each(abasDias, function(){
	    			    $(this).click(function() {
	    					      var aba = $(this), href = aba.attr("href"), tipo = href.substring(1), abaSelecionada;
	    					      $(href).show();
	    					      //abrir modal carregando...
								  //$("<div id='modal_mask'></div><div class='window modal_alert'>Carregando...</div>").appendTo("body");
								  //$('#modal_mask').stop().fadeTo(500,0.6).next().stop().fadeTo(800,1.0);
								  $("#box-agendaLoader").css("display","block");

								if (href == "#semanal"){
									abaSelecionada = "semana";
								}else{
									if (href == "#mensal"){
										abaSelecionada = "mes";
									}else{
										abaSelecionada = "dia";
									}
								}
								aba.parents("ul").removeClass("semana dia mes");
								aba.parents("ul").addClass(abaSelecionada);

								recarregaTelaAgenda({tipoCalendario: tipo, data: twochar(hoje.getDate())+"/"+twochar(hoje.getMonth()+1) +"/"+hoje.getFullYear(), data: hoje});
								//$(this).removeClass("select");
								//abasDias.removeClass("select");
								//aba.addClass("select");
							if (tipo == "mensal") {
								$(".mesAnual").each(function(i){
									if (i == hoje.getMonth()) {
										$(this).addClass('datepicker-mes-ativo');
									} else {
										$(this).removeClass('datepicker-mes-ativo');
									}
								});
							}
						});
	    			});



		    // Datepicker dia
		    datePickerAgendaDia = agendaDia
	    		.datepicker({
	    				dateFormat: 'dd/mm/yy',
	    				defaultDate: hoje,
	    				dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado','Domingo'],
	    				dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
	    				dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
	    				monthNames: monthNames,
	    				monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set', 'Out','Nov','Dez'],
	    				nextText: 'Próximo',
	    				prevText: 'Anterior',
	    				onSelect: function ao_selecionar (dateText, inst) {
	    				    recarregaTelaAgenda({tipoCalendario: "diaria", valor: dateText});
	    				},
	    				onChangeMonthYear: function(year, month, inst) {
	    				    var mensal;
	    				    hoje.setFullYear(year);
	    				    hoje.setMonth(month-1);

					    mensal = monthNames[month - 1] || 'janeiro';

	    				    $(".box-agenda .mes").text(mensal + " " + year);
	    				    setTimeout(function wait_datepicker_repaint () {
	    				    	calendario.pintar(hoje);
	    				    }, 50);
	    				}
	    			    });

		    // Datepicker semanal
		    datePickerAgendaSemana = $("#tableAgendaSemana")
			.datepicker({

	    				dateFormat: 'dd/mm/yy',
	    				defaultDate: hoje,
	    				dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado','Domingo'],
	    				dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
	    				dayNamesShort: [
	    				    'Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'
	    				],
	    				monthNames: monthNames,
	    				monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set', 'Out','Nov','Dez'],
	    				nextText: 'Próximo',
	    				prevText: 'Anterior',
	    				onSelect:function(dateText, inst){
	    				    recarregaTelaAgenda({tipoCalendario: "semanal", valor: dateText});
	    				},
	    				onChangeMonthYear: function(year, month, inst) {
	    				    var mensal;
	    				    hoje.setFullYear(year);
	    				    hoje.setMonth(month-1);

					    mensal = monthNames[month - 1] || 'janeiro';

	    				    $(".box-agenda .mes").text(mensal + " " + year);
	    				    setTimeout(function wait_datepicker_repaint () {
	    				    	calendario.pintar(hoje);
	    				    }, 50);
	    				}
	    			    });

		    // Marca a linha toda do calendario da semana
		    $("#tableAgendaSemana .ui-datepicker-current-day").parent().find("td").addClass("semana-highlight");

		    montaAgendaAnual();

		    // Desmarca dia selecionado pelo datepicker
		    $("#tableAgenda td").each(
			function(index){
	    		    $("#tableAgenda td").removeClass("ui-datepicker-current-day");
	    		});
		}

		// Agenda anual
		function montaAgendaAnual() {
	    	    var divAgenda = $("#tableAgendaAnual");
	    	    var meses = ["JAN", "FEV", "MAR", "ABR", "MAI", "JUN", "JUL", "AGO", "SET", "OUT", "NOV", "DEZ"];
	    	    $("#thisYear").text(hoje.getFullYear());
	    	    var html = "";
	    	    $(meses).each(function(i){
	    			      var mesParametro = hoje.getMonth();
	    			      html += '<div class="mesAnual '+((i) % 4 == 0 ?'quebra ':'')+(mesParametro == i ? 'datepicker-mes-ativo' : '')+'"><div class="label">'+meses[i]+'</div></div>';
	    			  });
	    	    $(".mesAnual").each(function(i){

			});
	    	    divAgenda.html(html);
		}

	    $(".mesAnual").live("click", function(){
		      $(".mesAnual").removeClass("datepicker-mes-ativo");
		      $(this).addClass("datepicker-mes-ativo");
		      onPressMonth(getMonthByName($(this).text()));
		  });

		getMonthByName = function getMonthByName(name) {
	    	    var meses = ["JAN", "FEV", "MAR", "ABR", "MAI", "JUN", "JUL", "AGO", "SET", "OUT", "NOV", "DEZ"];
	    	    for(var i=0; i<meses.length; i++) {
	    		if(name == meses[i]) return(i+1);
	    	    }
	    	    return null;
		}

		onPressChangeYear = function onPressChangeYear(y) {
	    	    if(!origYear) origYear = hoje.getFullYear();
	    	    hoje.setFullYear(hoje.getFullYear()+y);
	    	    $("#thisYear").text(hoje.getFullYear());

	    	    $(".mesAnual").each(function(i){
	    				    if(getMonthByName($(this).text()) == hoje.getMonth() + 1 && hoje.getFullYear() == origYear) {
	    					$(this).addClass("datepicker-mes-ativo");
	    				    } else {
	    				    	$(this).removeClass("datepicker-mes-ativo");
	    				    }
	    				});
		}

		$("#year-prev").live("click", function(e) {
			e.preventDefault();
			onPressChangeYear(-1);
		});

		$("#year-next").live("click", function(e) {
			e.preventDefault();
			onPressChangeYear(1);
		});

		$("#day-prev").live("click", function(e) {
			e.preventDefault();
			onPressChangeMonth(-1, 'diaria');
		});
		$("#day-next").live("click", function(e) {
			e.preventDefault();
			onPressChangeMonth(1, 'diaria');
		});

		$("#week-prev").live("click", function(e) {
			e.preventDefault();
			onPressChangeMonth(-1, 'semanal');
		});
		$("#week-next").live("click", function(e) {
			e.preventDefault();
			onPressChangeMonth(1, 'semanal');
		});


		onPressChangeMonth = function onPressChangeMonth(m, table) {
			var currentYear = $('input[name=ano]').val();
		    var currentMonth = $('input[name=mes]').val();
		    var currentDay = $('input[name=dia]').val();
		    hoje.setDate(1);
			hoje.setMonth(hoje.getMonth()+m);
    	    var monthSelect = hoje.getMonth()+1;
    	    var yearSelect = hoje.getFullYear();
    	    var daySelect = hoje.getDate();

    	    if (table == "diaria") {
    	    	$('#tableAgendaDia').datepicker( "setDate" , +daySelect+"/"+monthSelect+"/"+yearSelect );

	    	    $(".ui-state-default").each(function(i){
				    if((monthSelect == parseInt(currentMonth, 10))&&(parseInt(currentDay, 10) == $(this).text())&& (yearSelect == parseInt(currentYear))) {
				    	$(this).attr("class", "ui-state-default ui-state-highlight ui-state-active");
						$(this).parent().attr("class", "ui-datepicker-days-cell-over  ui-datepicker-current-day");
				    } else {
				    	$(this).removeClass("ui-state-active");
				    	$(this).parent().attr("class", "");
				    }
				});


    	    }else if (table == "semanal") {
    	    	$('#tableAgendaSemana').datepicker( "setDate" , +daySelect+"/"+monthSelect+"/"+yearSelect );

	    	    $(".ui-state-default").each(function(i){
				    if((monthSelect == parseInt(currentMonth, 10))&&(parseInt(currentDay, 10) == $(this).text())&& (yearSelect == currentYear)) {
				    	$(this).attr("class", "ui-state-default ui-state-highlight ui-state-active");
						$(this).parent().attr("class", "ui-datepicker-days-cell-over  ui-datepicker-current-day");
				    } else {
				    	$(this).removeClass("ui-state-active");
				    	$(this).parent().attr("class", "");
				    }
				});
	    	    // Marca a linha toda do calendario da semana
	    	    $("#tableAgendaSemana .ui-datepicker-current-day").parent().find("td").addClass("semana-highlight");
    	    }
	}

		function onPressMonth(mensal) {
	    	    hoje.setMonth(mensal-1);
	    	    recarregaTelaAgenda({tipoCalendario: "mensal", data: hoje});
		}

		function twochar(val) {
	    	    return val<10?"0"+val:val;
		}

		function recarregaTelaAgenda(params) {
			var urlOrigem = document.location.href;

		    if(urlOrigem.indexOf("tv_assembleia") != -1){
				//var url = "/acompanhe/tv_assembleia/programacao/index.html?tipoCalendario=" + params.tipoCalendario,
				var url = "?tipo=" + params.tipoCalendario,
				data = params.data;
			}else if(urlOrigem.indexOf("radio_assembleia") != -1){
				//var url = "/acompanhe/radio_assembleia/programacao/index.html?tipoCalendario=" + params.tipoCalendario,
				var url = "?tipo=" + params.tipoCalendario,
				data = params.data;
			}else{
				//var url = "/acompanhe/agenda/index.html?tipoCalendario=" + params.tipoCalendario,
				var url = "?tipo=" + params.tipoCalendario,
				data = params.data;
			}

		    	var filterCheck = $("#agendaHolder-acompanhe form :checkbox:visible");
			if(filterCheck.length && filterCheck.length > filterCheck.filter(":checked").length){
				url += "&"+ filterCheck.serialize();
			}

			//Ao clicar em um dia no calendario:
		    	//if (params.valor) url += "&valorData=" + params.valor;
			if (params.valor) url += "&dia=" + params.valor.split('/')[0] + "&mes=" + params.valor.split('/')[1] + "&ano=" + params.valor.split('/')[2];

			//Ao clicar na aba (Se tiver escolhido algum dia especifico, passamos esses parametros ao clicar em outra aba)
			if (data) url += "&dia="+twochar(data.getDate())+"&mes=" + twochar(data.getMonth() + 1) + "&ano=" + data.getFullYear();


			window.location.href = url;
		}

		return that;
	})();

});
