// JavaScript Document

var current_calendar = 1;
var current_year = "";
var current_month = "";
var current_day = "";

function loadCalendars(){
	$('#calendar_loader').show();
	$('#ajax_calendar').load('/includes/events/eventlist.php', {'display':'calendar'}, function(){
		rewriteHREFs();
		getEvents();
	});
}

function viewCalendar(id, direction){
	$('#event_calendar'+current_calendar).fadeOut('fast',function(){
		$('#event_calendar'+id).fadeIn();
		if(direction == "prev"){
			if(current_month == 1){
				current_month = 12;
				current_year--;
			}else{
				current_month--;
			}
		}else{
			if(current_month == 12){
				current_month = 1;
				current_year++;
			}else{
				current_month++;	
			}
		}
		current_calendar = id;
		current_day = "";
		getEvents();
	});
}
	
function rewriteHREFs(){
	$('#ajax_calendar table.calendar').each(function(i,elem){
		// Re-bind "Previous"/"Next" month navigation
		var id = $(elem).attr('id').replace('monthTable','');
		$(elem).find('span.calendar-prev').attr('onclick','');
		$(elem).find('span.calendar-prev').click(function(){ viewCalendar(intval(id)-1, 'prev'); });
		$(elem).find('span.calendar-next').attr('onclick','');
		$(elem).find('span.calendar-next').click(function(){ viewCalendar(intval(id)+1, 'next'); });
		
		// Re-bind day links
		$(elem).find('tbody td a').each(function(n,a){
			var href = $(a).attr('href');
			var tmp = href.split("/");
			var y = tmp[tmp.length - 4];
			var m = tmp[tmp.length - 3];
			var d = tmp[tmp.length - 2];
			$(a).attr('href','javascript:getEvents("'+y+'-'+m+'-'+d+'");');
		});
		
		// Check for current calendar
		if($('#event_calendar'+id).css('display') == "block") current_calendar = id;
	});
}

function getEvents(date){
	var listTitle = getCurrentCalendarTitle();
	if(date == null || date == ""){
		date = current_year+"-"+current_month;
		if(current_day != "") date += "-"+current_day;
	}else{
		var tmp = date.split("-");
		if(tmp[2] != null && tmp[2] != ""){
			current_day = tmp[2];
			$('#tf_ctg').val("");
			$('#menu_ctg li a.selection').html("All Categories");
			var month = listTitle.substring(0, listTitle.length-5);
			var year = listTitle.substring(listTitle.length-4);
			listTitle = month+" "+current_day+" "+year; 
		}
	}
	$('#calendar_loader').show();
	var category = $('#tf_ctg').val().trim();
	if(category != "") listTitle = $('#menu_ctg li a.selection').text();
	$('#ajax_events').load('/includes/events/eventlist.php', {'display':'list','category':category,'date':date}, 
		function(){
			initEvents();
			$('#calendar_loader').hide();
			$('#list_title').html(listTitle);
		});
}

function initEvents(){
	if($('#ajax_events .event').length > 0){
		TB_init();
		$("#ajax_events .event").each(function(i,elem){
			var hasImage = $(elem).find('.event_image').html();
			if(!hasImage){
				var html = '<a href="#" onclick="javascript:toggleDetails(this); return false;">';
				html += '<img src="/images/default-event-image.jpg" /></a>';
				$(elem).find('.event_image').html(html);
			}
			
			$(elem).attr("id", "event"+i);
			var links = $(elem).find("a");
			for(n = 0; n < links.length; n++){
				var a = links[n];
				$(a).attr("event_id", i);
			}
		});
	}else{
		$('#ajax_events').html('<p class="no_results">No events were found for your current selection.</p>');
	}
}

function toggleDetails(target){
	var id = $(target).attr("event_id");
	$("#event"+id+" .event_details").slideToggle();
}

function ctgFilter(target, slug){
	$('#tf_ctg').val(slug);
	$('#menu_ctg li a.selection').html($(target).text());
	current_day = "";
	getEvents();
	$('#menu_ctg ul').hide();
}

function getCurrentCalendarTitle(){
	var title = $('#event_calendar'+current_calendar+' table.calendar caption').text().trim();
	title = title.replace("<","").replace(">","");
	return title;
}
