window.carousel_autostart = true;
(function($){
	$.fn.simpleCarousel = function(options) {
		// ===== append events to each carousel =====
		return this.each(function(){
			$.simpleCarousel(this, options);
		});
	};
	$.simpleCarousel = function(container,options){
		var settings = {
			'showNextPrev':		true,
			'pagination': 		true,
			'showPageNumbers':	true,
			'autostart':		true,
			'pause':          	6000,
            'fade':            	300,
            'type':             'sequence',
			'animationtype':    'fade'
		};
		var options = $.extend(settings, options);
		
		// ===== Internal Variables =====
		var current = 0;
		var slide = new Array;
		var pages = new Array();
		var elements = $("ul.photos li", $(container));
		var soonVisible = null;
		var visibleDiv = null;
		var slideTimer = null;
		
		// ===== Primary Carousel Functions =====
		var nextSlide = function(){
			current = (parseFloat(current)+1) %  elements.size();
			switchSlide();
		};
		var prevSlide = function(){
			current = (!current)? elements.size()-1 : (parseFloat(current)-1) % elements.size();
			switchSlide();
		};
		var switchSlide = function(n){
			if(!window.carousel_autostart) return;
			current = n || current;
			if(pages.length){
				pages.removeClass('active');
				$(pages[current]).addClass('active');
			};
			var soonVisible = slide[current];
			if(visibleDiv != soonVisible){
				if(visibleDiv != null) $(visibleDiv.image).stop().animate({opacity:0},settings.fade).hide();	
				$(soonVisible.image).stop().show().animate({opacity:1},settings.fade);
			};
			visibleDiv = soonVisible;
			if(settings.autostart){
				clearTimeout(slideTimer);
				slideTimer = setTimeout(nextSlide,settings.pause)
			};
		}
		
		$.fn.simpleCarousel.next = function(){
			window.carousel_autostart = true;
			switchSlide();
		};
		// ===== Gather All Elements =====
		elements.each(function(i){
			var data = {
				image: $(this).find('a'),
				caption: {
					title: $(this).find('h2').html(),
					text: $(this).find('span').html()
				}
			};
			$(data.image).css({opacity:0, display:'none'});
			$(this).find('h2').remove();
			$(this).find('span').remove();
			$(this).css('display','block');
			
			slide.push(data);
		});
		
		function createPagination(){
			pages = $('ul.controls li a.page',container);
			pages.click(function(e){ e.preventDefault(); switchSlide($(this).attr('rel')); });
			
			// ===== init =====
			switchSlide(0);
		};
		
		createPagination();
	};
})(jQuery);
