// JavaScript Document

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

function loadCalendars(){
	$('#calendar_loader').show();
	$('#ajax_calendar').load('/includes/events/eventlist.php', {'display':'calendar', 'date':current_year+'-'+current_month}, 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 += " - " + current_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_custom('.event a.thickbox');
		$("#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>');
	}
	
	$('.event .event_cost').each(function(i,elem){
		var text = $(elem).text();
		text = text.replace(/\*\*/g, '<br />');
		text = text.replace(': €0.00', '');
		var arr_costs = text.split(',');
		for(var i=0; i<arr_costs.length; i++){
			var info = arr_costs[i].trim().split(':');
			if(info[0]){
				var label = '<strong>'+info[0]+'</strong>';
				text = text.replace(info[0], label);
			}
		}
		$(elem).html(text);
	});
}

function TB_init_custom(selector){
	$(selector).click(function(event){
		// stop default behaviour
		event.preventDefault();
		// remove click border
		this.blur();
		
		// get caption: either title or name attribute
		var caption = this.title || this.name || "";
		
		// get rel attribute for image groups
		var group = this.rel || false;
		// display the box for the elements href
		TB_show(caption, this.href, group);
	});
} 

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_category = $(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;
}
