var cuiCarousel = {

	domready: function(){
		$('.carousel').each(function(){
			cuiCarousel.init(this);
		});	
	},

	init: function(target){
		if(!target.id){
			target.id = "cuiCarousel-" + Math.floor(Math.random()*10000);
		}
		target.state = 'out';
		target.currentSlide = 0;
		target.slides = '<ul class="carousel-nav clearfix">';
		$('#' + target.id + ' .carousel-slides li').each(function(i){
			if(i == target.currentSlide){
				target.slides += '<li><a href="' + $(this).find('a').attr('href') + '" class="current" index="' + i + '">' + $(this).find('a').text() + '</a></li>';
			}else{
				target.slides += '<li><a href="' + $(this).find('a').attr('href') + '" index="' + i + '">' + $(this).find('a').text() + '</a></li>';
			}
		});
		target.slides += '</ul>';
		$('#'+target.id).append(target.slides);
		$('#' + target.id + ' .carousel-nav a').click(function(e){
			$('#' + target.id + ' .carousel-nav li:eq('+parseInt(target.currentSlide)+') a').removeClass('current');
			$('#' + target.id + ' .carousel-slides li:eq('+parseInt(target.currentSlide)+')').fadeOut();

			$('#' + target.id + ' .carousel-nav li:eq('+parseInt($(this).attr('index'))+') a').addClass('current');
			$('#' + target.id + ' .carousel-slides li:eq('+parseInt($(this).attr('index'))+')').fadeIn();
			target.currentSlide = $(this).attr('index');
			if(target.state == 'out'){
				clearTimeout(target.ival);
				target.ival = setTimeout(function(){
					if((parseInt(target.currentSlide)+1) == $('#' + target.id + ' .carousel-nav li').length){
						$('#' + target.id + ' .carousel-nav li:eq(0) a').trigger('click');
					}else{
						$('#' + target.id + ' .carousel-nav li:eq('+(parseInt(target.currentSlide)+1)+') a').trigger('click');
					}
				}, 6000);
			}
			return false;
		});
		$('#' + target.id).hover(
			function () {
				target.state = 'over';
				clearTimeout(target.ival);
			}, 
			function () {
				target.state = 'out';
				target.ival = setTimeout(function(){
					if((parseInt(target.currentSlide)+1) == $('#' + target.id + ' .carousel-nav li').length){
						$('#' + target.id + ' .carousel-nav li:eq(0) a').trigger('click');
					}else{
						$('#' + target.id + ' .carousel-nav li:eq('+(parseInt(target.currentSlide)+1)+') a').trigger('click');
					}
				}, 6000);		
			}
		);
		$('#' + target.id + ' .carousel-nav li:eq(0) a').trigger('click');
	}
}

$(document).ready(function(){cuiCarousel.domready()});
