window.addEvent('domready', function() {
	
	var scheduleTab = $('schedule-tab');
	if (scheduleTab) {
		var mainSize = $('main').getStyle('width').toInt(),
			schedule = new Fx.Tween('schedule', {'property': 'margin-left'});
		[scheduleTab, $('nav').getElement('li.schedule a')].each(function(el) {
			el.addEvent('click', function(e) {
				e.stop();
				if (scheduleTab.hasClass('open')) {
					schedule.start(-10000);
					scheduleTab.removeClass('open');
				} else {
					schedule.start(-10000 + mainSize + $('main').getPosition().x);
					scheduleTab.addClass('open');
				}
			});
		});
		
		window.addEvent('resize', function() {
			if (scheduleTab.hasClass('open')) {
				$('schedule').setStyle('margin-left', -10000 + mainSize + $('main').getPosition().x);
			}
		});
		
		// Get the current date, and round down the time
		var date = new Date();
		date = new Date(date.getFullYear(), date.getMonth(), date.getDate());
		
		// Determine which day of the schedule to display by default
		var year = date.getFullYear();
		var text = $$('#schedule h2').getLast().get('title');
		var splitted = text.split('-');
		if (date > Date.parse(splitted[1] + ', ' + year))
			year+=1;
		var dates = $$('#schedule h2');
		var i=0;
		while (dates[i] && date > Date.parse(dates[i].get('title').split('-')[1] + ', ' + year)) {
			i++;
		}
		
		new Fx.Accordion($('schedule').getElements('h2'), $('schedule').getElements('div.times'), {
			display: i,
			initialDisplayFx: false,
			onActive: function(toggler, element) {
				toggler.addClass('active');
				element.setStyle('overflow', 'auto');
			},
			onBackground: function(toggler, element) { toggler.removeClass('active'); }
		});
	}
	
});
