$(function() {

	// Event list navigation controls
	var show_all = 0;
	setEventListHeight = function(dur){
		var event_height = 0;
		event_height = 
			$('#event_slider_cont li.visible').outerHeight(true) +
			$('#event_slider_cont li.visible').next().not('.buffer').outerHeight(true) +
			$('#event_slider_cont li.visible').next().next().not('.buffer').outerHeight(true) +
		$('#event_slider_cont li.visible').next().next().next().not('.buffer').outerHeight(true) +
		$('#event_slider_cont li.visible').next().next().next().next().not('.buffer').outerHeight(true);
		$('#event_slider_cont').animate({height:event_height+'px'}, dur);
	}
	checkIndex = function(){
		if ($('#event_slider_cont .visible').index() == (event_list_count - 2) || show_all == 1){
			$('#event_list_next').addClass('disabled');
			show_all = 0;
		} else $('#event_list_next').removeClass('disabled');
		if ($('#event_slider_cont .visible').index() == 0) $('#event_list_prev').addClass('disabled');
		else $('#event_list_prev').removeClass('disabled');
	}
	
	$('#event_slider_cont').scrollTo('.upcoming_event'); // Reset the slider back to top on reload to avoid container height issues
	$('#event_slider_cont .upcoming_event').addClass('visible');
	setEventListHeight(0);	
	checkIndex();	
	
	var event_list_count = $('#event_slider_cont').children().length;
	$('#event_list_prev').click(function(){
		var $prev = $('.visible').prev();
		if ($prev.index() >= 0){ // Prevent attempts to scroll to non-existant list elements
			$('#event_slider_cont').scrollTo($prev, 500, function(){
				$prev.addClass('visible').siblings('.visible').removeClass('visible');
				setEventListHeight(500);
				checkIndex();
			});
		}
	});
	$('#event_list_next').click(function(){
		var $next = $('.visible').next();
		if ($next.index() < event_list_count - 1){ // Do not want to scroll to the buffer
			$('#event_slider_cont').scrollTo($next, 500, function(){
				$next.addClass('visible').siblings('.visible').removeClass('visible');
				setEventListHeight(500);
				checkIndex();
			});
		}
	});
	$('#event_list_all').click(function(){
		var $all = $('.upcoming_event').nextUntil('.buffer').addClass('show_all');
		var all_height = 0;
		$('.show_all').each(function(){
			all_height += $(this).outerHeight(true);
		});
		all_height += $('.upcoming_event').outerHeight(true);
		$('#event_slider_cont').scrollTo($('.upcoming_event'), 500, function(){
			$('.upcoming_event').addClass('visible').siblings('.visible').removeClass('visible');
			$('#event_slider_cont').animate({height:all_height+'px'}, 500);
			show_all = 1;
			checkIndex();
		});
	});

});
