var ImageCarousel = {
	delay: 5000,
	fadeLength: 350,
	loop: 0,
	numberOfSlides: 4,
	selector: '#hp-flash',
	init: function(selector){
		switch(ImageCarousel.numberOfSlides){
			case 1: $('<ul class="controls"><li>1</li></ul>').prependTo(ImageCarousel.selector);
			break;
			case 2: $('<ul class="controls"><li>1</li>><li>2</li></ul>').prependTo(ImageCarousel.selector);
			break;
			case 3: $('<ul class="controls"><li>1</li><li>2</li><li>3</li></ul>').prependTo(ImageCarousel.selector);
			break;
			case 4: $('<ul class="controls"><li>1</li><li>2</li><li>3</li><li>4</li></ul>').prependTo(ImageCarousel.selector);
			break;
			case 5: $('<ul class="controls"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>').prependTo(ImageCarousel.selector);
			break;
		}
		ImageCarousel.clicker('#hp-flash');
		$(''+ selector +' .images li').not(':first').hide();
		$(''+ selector +' .content li').not(':first').hide();
		$(''+ selector +' .images li:first, '+ selector +' .content li:first').css('z-index', 2);
		$(''+ selector +' .controls li').eq(0).addClass('selected').click();
	},
	looper: function(selector){
		var selected = $(''+ selector +' .controls li.selected').index();
		if(selected < ImageCarousel.numberOfSlides - 1){
			$(''+ selector +' .controls li').eq(selected + 1).click();
		}else if(selected === ImageCarousel.numberOfSlides - 1){
			$(''+ selector +' .controls li').eq(0).click();
		}else{
			return;
		}					
	},
	clicker: function(selector){
		$(''+ selector +' .controls li').click(function(e){
			clearInterval(ImageCarousel.loop);
			var whichImage = $(this).index();
			if(!$(this).hasClass('selected')){
				$(''+ selector +' .controls li.selected').removeClass('selected');
				$(this).addClass('selected');
				$(''+ selector +' .images li:visible').css('z-index', 1).fadeOut(ImageCarousel.fadeLength);
				$(''+ selector +' .content li:visible').css('z-index', 1).hide();

				$(''+ selector +' .images li').eq(whichImage).css('z-index', 2).fadeIn(ImageCarousel.fadeLength);
				$(''+ selector +' .content li').eq(whichImage).css('z-index', 2).show();
			}
			ImageCarousel.loop = setInterval(function(){
				ImageCarousel.looper('#hp-flash')
			}, ImageCarousel.delay);
			e.preventDefault();
		})
	}
}

$(document).ready(function() {
	ImageCarousel.init('#hp-flash');
});
