events = null;

//initialization code
$(function(){
	$(".accordion").accordion({
		collapsible: true,
		animated: 'blind',
		active: false,
		autoHeight: false
	});
	
	events = createEvents();
	events.sort(compareEvents);
	
	var comingEventExists = false;
	var pastEventExists = false;
	
	var calendarAnnouncementContent = "";
	var comingEventsContent = "<ul>";
	var pastEventsContent = "<ul>";
	for(index in events) {
		var event = events[index];
		if(event.isComing()) {
			comingEventExists = true;
			comingEventsContent += "<li id='calendar_event_" + event.getID() +"' class='calendar_event'>";
			comingEventsContent += event.toHTML();
			comingEventsContent += "</li>";
			
			calendarAnnouncementContent += "<li>";
			calendarAnnouncementContent += "<h4>";
			calendarAnnouncementContent += event.getTitle();
			calendarAnnouncementContent += "</h4>";
			calendarAnnouncementContent += "<h5>";
			calendarAnnouncementContent += event.getStartDateString();
			calendarAnnouncementContent += "</h5>";
			calendarAnnouncementContent += "</li>";
		} else {
			pastEventExists = true;
			pastEventsContent += "<li id='calendar_event_" + event.getID() +"' class='calendar_event'>";
			pastEventsContent += event.toHTML();
			pastEventsContent += "</li>";
		}
	}
	comingEventsContent += "</ul>";
	pastEventsContent += "</ul>";
	
	if(comingEventExists) {
		$("#upcoming_events").html(comingEventsContent);
		$("#calendarAnnouncements").html(calendarAnnouncementContent);
	} else {
		$("#upcoming_events").html("No upcoming events.");
	}
	if(pastEventExists) {
		$("#past_events").html(pastEventsContent);
	} else {
		$("#past_events").html("No past events.");
	}
	
	$('.datepicker').datepicker({
		beforeShowDay: function(date) {
			var selectable = false;
			var css = '';
			for(index in events) {
				var event = events[index];
				
				if(event.containsDate(date)) {
					selectable = true;
					break;
				}
			}
			
			var today = new Date();
			today.setHours(0, 0, 0, 0);
			
			if(today.getTime() == date.getTime()) {
				if(selectable) {
					css = 'ui-state-active';
				} else {
					css = 'ui-state-default';
				}
			}
			
			return [selectable, css, '']
		},
		onSelect: function(date) {
			for(index in events) {
				var event = events[index];
				
				if(event.containsDate(new Date(date))) {
					$('#calendar_event_' + event.getID()).css('background-color', '#ffffff');
					$('#calendar_event_' + event.getID()).css('border', '1px solid #82302f');
				} else {
					$('#calendar_event_' + event.getID()).css('background-color', '');
					$('#calendar_event_' + event.getID()).css('border', '');
				}
			}
			return false;
		}
	});
});

function compareEvents(e1, e2) {
	return e1.compareTo(e2);
}

