$(function(){
	
	$('.fader').cycleFade();
	
	$('.expand').slideOpen();
	
});


$.fn.cycleFade = function(){
	return this.each(function(){
		
		var items = $('li',this);
		items.not(':first').hide();
		items.eq(0).addClass('current');
		
		var controls = $('<div class="controls"><a href="#" class="prev"><img src="/images/button_prev.png" alt="Previous" /></a> <a href="#" class="next"><img src="/images/button_next.png" alt="Next" /></a></div>').css('top',items.children('img').height()-32+'px').appendTo(this);

		var fadePrev = function(){
			if (!items.filter(':animated').length) {
				var current = items.filter('.current');
				var prev = current.is(':first-child') ? items.eq(items.length-1) : current.prev();
				current.removeClass('current').css('position','absolute').fadeOut(function(){
					$(this).css('position','');
				});
				prev.addClass('current').show();
			}
			return false;
		}
		var fadeNext = function(){
			if (!items.filter(':animated').length) {
				var current = items.filter('.current');
				var next = current.is(':last-child') ? items.eq(0) : current.next();
				current.removeClass('current').css('position','absolute').fadeOut(function(){
					$(this).css('position','');
				});
				next.addClass('current').show();
			}
			return false;
		}
		
		var fader = window.setInterval(fadeNext,5000);
		
		$(this).hover(function(){
			window.clearInterval(fader);
		},function(){
			fader = window.setInterval(fadeNext,5000);
		});
		
		controls.find('a:first').click(function(){
			window.clearInterval(fader);
			fadePrev();
		});
		controls.find('a:last').click(function(){
			window.clearInterval(fader);
			fadeNext();
		});
		
	});
}

$.fn.slideOpen = function(){
	return this.each(function(){
		var headers = $('.header',this);
		var content = headers.next('div').hide();
		
		headers.click(function(){
			content.filter(':visible').slideUp('slow');
			$(this).next().slideDown('slow');
			return false;
		});
		
		if (location.hash) {
			var current = $(location.hash);
			current.find('.header').next().show();
			$(document).scrollTop(current.offset().top)
		}
	});
}
