(function(){
	
	var slidedelay = 5000;
	var fadetimer = 1000;
	var bulletsrc = '/js/carousel/';
	var slidewidth = 560;
	
	var $carousel;
	var $slides;
	var $menu;
	var $bullets;
	
	var slidetimer;
	var currentslide = 0;
	var maxslides;
	
	function Init(){
		$carousel = $('#header-carousel');
		$slides = $carousel.find('.carousel-slide');
		maxslides = $slides.length;
		slidewidth = $carousel.width();
		CreateBullets();
		StartCarousel();
	}
	
	function CreateBullets(){
		$menu = $('<div />', {
					'id' : 'carousel-menu'
				}).appendTo($carousel);
		$slides.each(function(i){
			$('<div class="carousel-bullet"><img src="'+bulletsrc+'carousel-bullet.png" class="bullet-normal" /><img src="'+bulletsrc+'carousel-bullet-selected.png" class="bullet-selected" /></div>').appendTo($menu);
		});
		$bullets = $menu.find('.carousel-bullet');
		var left = slidewidth - (maxslides*17);
		$menu.css({'left':left+'px'});
		$bullets.bind('click', function(e){
			AdvanceToSlide($(this).index());
		});
	}
	
	function StartCarousel(){
		$slides.eq(0).show();
		$bullets.eq(0).addClass('currentbullet');
		slidetimer = setTimeout(Carousel, slidedelay);
	}
	
	function Carousel(){
		currentslide++;
		if(currentslide >= maxslides){
			currentslide = 0;
		}
		AdvanceToSlide(currentslide);
	}
	
	function AdvanceToSlide(slide){
		currentslide = slide;
		clearTimeout(slidetimer);
		$bullets.removeClass('currentbullet');
		$bullets.eq(currentslide).addClass('currentbullet');
		
		$slides.fadeOut(fadetimer);
		$slides.eq(currentslide).fadeIn(fadetimer);
		
		slidetimer = setTimeout(Carousel, slidedelay);
	}
	
	$(function(){
		Init();
	});

})();
