var carrouselDatas = new Array(); 
var Carrousel = {
	
	showSlide : function(target, index) {
		$('#' + target.id + ' > .pagination li:eq('+parseInt(target.currentSlide)+')').removeClass('selected');
		$('#' + target.id + ' > .items > .item:eq('+parseInt(target.currentSlide)+')').fadeOut();
		$('#' + target.id + ' > .pagination li:eq('+index+')').addClass('selected');
		$('#' + target.id + ' > .items > .item:eq('+index+')').fadeIn();
		target.currentSlide = index;
	},
	init: function(target){
		if(!target.id){
			target.id = "Carrousel-" + Math.floor(Math.random()*10000);
		}
		target.state = 'out';
		target.currentSlide = 0;
		carrouselDatas[''+target.id]=new Array(); 
		carrouselDatas[''+target.id] = {
			'timeFlip': 4000
		}; 
		//var timeFlip = 6000;
		target.slides = '<ul class="horizontalList pagination">';
		var conteneur = $("#"+target.id);
		var elements = $('#' + target.id+ ' .item');
		var maxHeight=null;
		
		if($('#' + target.id).hasClass('carrouselSection'))
		{
			carrouselDatas[''+target.id]['timeFlip'] = 14000;
			//timeFlip = 12000;
			target.slides = '<ul class="horizontalList pagination paginationSection">';
			
			
			
		}//hauteur
			for (var i=0; i<elements .length; i++)
	            	{
	            		var lii = conteneur.find('.item:eq('+i+')');
	            		
	            		maxHeight=Math.max(maxHeight,lii.height()); 
				
			}
			if(maxHeight==null){
				maxHeight=160;
			}
			
		
		//definit maxHeight
		//var items = $('#' + target.id + ' > .items > .item');
		//var itemContainer = $('#' + target.id + ' > .items');
		
		//calcule la largeur et la hauteur d'une item
		
		
		$('#' + target.id + ' > .items > .item').each(function(i){
			//hauteur
			//maxHeight = Math.max(maxHeight,$(this).height()); 
			
			//indices ou texte
			var caption = ''+(i+1);
			if($(this).attr('name'))
				caption = $(this).attr('name');
			if(i == target.currentSlide){
				target.slides += '<li class="selected"><a  index="' + i + '" href="' + $(this).find('a').attr('href') + '" >' + caption + '</a></li>';
			}else{
				target.slides += '<li  ><a index="' + i + '" href="' + $(this).find('a').attr('href') + '">' + caption + '</a></li>';
			}
			
			$(this).css("height", maxHeight);
			$(this).hide();

		});
		target.slides += '</ul>';
		//fixe la hauteur : 
		if($('#' + target.id).hasClass('carrouselSection'))
		{
			$('#' + target.id + ' > .items').css('height', (maxHeight+10));
		} else {
			$('#' + target.id + ' > .items').css('height', (maxHeight+0));
		}
		$('#'+target.id).append(target.slides);
		$('#' + target.id + ' > .pagination a').click(function(e){
			
			$('#' + target.id + ' > .pagination li:eq('+parseInt(target.currentSlide)+')').removeClass('selected');
			$('#' + target.id + ' > .items > .item:eq('+parseInt(target.currentSlide)+')').fadeOut();

			$('#' + target.id + ' > .pagination li:eq('+parseInt($(this).attr('index'))+')').addClass('selected');
			$('#' + target.id + ' > .items > .item: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 + ' > .pagination li').length){
						$('#' + target.id + ' > .pagination li:eq(0) a').trigger('click');
					}else{
						$('#' + target.id + ' > .pagination li:eq('+(parseInt(target.currentSlide)+1)+') a').trigger('click');
					}
				}, carrouselDatas[''+target.id]['timeFlip'] );
			}
			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 + ' .pagination li').length){
						$('#' + target.id + ' > .pagination li:eq(0) a').trigger('click');
					}else{
						$('#' + target.id + ' > .pagination li:eq('+(parseInt(target.currentSlide)+1)+') a').trigger('click');
					}
				}, 6000);		
			}
		);
		$('#' + target.id + ' > .pagination li:eq(0) a').trigger('click');
	}
}