/**
* J.Cambier -- @kokmok pour Akimedia
 */
(function($) {
        $.fn.fakeMac = function(params) {
                defaultParams = {
                    time:300,
                    easing :'easeOutBack',
		    originalHeight : 191
                }
		params = $.extend( defaultParams, params);
				
    
    
    
    obj=this;
    obj.each(function(i) {
        var slide = $(this);
        
	
		var imagesBox = slide.find('.carouselImages');
		var textBox = slide.find('.carouselDescriptions');
		var pointer = slide.find('.pointer');
	
		cleanA();
		
		
		var imgFirst = imagesBox.find('img:first');
		var imgMiddle = imagesBox.find('img').eq(1);
		var imgLast = imagesBox.find('img').eq(2);
		
		
		
		imgMiddle.addClass('carouselCurrent').addClass('carouselMiddle');
		var current = imgMiddle;
		
		
		
		var megaTop = -(params.originalHeight*2)/2.5;
		var middleLittle = (slide.outerWidth()/2)-(271/2);
		var middleBig = (slide.outerWidth()/2)-(271);
		
		imagesBox.find('img')
			.css({'height':'191px','width':'271px'});
		
	
		
	
	
		
		imagesBox.find('img')
				.css
				({
					'position':'absolute'
					,'height':'191px'
				});
		imgFirst.css({'left':'0'});
		imgLast.css({'right':'0'});
		
		//var aMiddleCenter = (slide.outerWidth()/2)-(aMiddle.width()/2);
		//aMiddle.css({'left':aMiddleCenter+'px'});
		
		doCurrent();
		doZ();
		
		textBox.find('.carouselDescription')
				.mouseenter
				(
						function()
						{
								var index = $('.carouselDescription').index($(this));
								forceCurrent(imagesBox.find('img').eq(index));
						}
				)
		
	
	
		imagesBox.find('img')
			.mouseenter
			(
				function()
				{
					forceCurrent($(this));
				}
			)
			
		
		
		function cleanA()
		{
			imagesBox.find('a')
				.each
				(
					function()
					{
						var img = $(this).find('img');
						img
							.click(function()
							  {
								window.open($(this).attr('href'),'_self');
							  })
							.css({'cursor':'pointer'})
						imagesBox.append(img);
						$(this).remove();
					}
				)
				
			imagesBox.append('<div class="clear"></div>');
				
				
		}
		
		function forceCurrent(a)
		{
			imagesBox.find('img')
				.stop(true,true)
				.addClass('carouselLittle');
			
			current.removeClass('carouselCurrent');
			a.removeClass('carouselLittle').addClass('carouselCurrent');
			current = a;
			doZ();
			animPointer();
			anim();
			
			
			
			
		}
		
		function animPointer()
		{
				
			$('.carouselActive').removeClass('carouselActive');
			
			if (imgMiddle.hasClass('carouselCurrent'))
			{
				bgLeft = '50%';
				$('#t_2').find('h5').find('a').addClass('carouselActive');
			}
			else if (current.next('img').hasClass('carouselMiddle'))
			{
				bgLeft = 145-slide.width()+'px';
				$('#t_1').find('h5').find('a').addClass('carouselActive');
			}else
			{
				bgLeft = slide.outerWidth()-145-slide.outerWidth()+'px';
				$('#t_3').find('h5').find('a').addClass('carouselActive');
			}
			
			pointer.css({'background-position': bgLeft+' bottom'});
			//console.log(bgLeft);
			
			
		}
		
		function anim()
		{
			
			if (imgMiddle.hasClass('carouselLittle'))
			{
				imgMiddle
					.removeClass('carouselLittle')
					
				
				imgMiddle.animate({'top':'0','height':'191px','width':'271px','left':middleLittle+'px'},params.time);
				
			}
			
			$('.carouselLittle')
				.css({'z-index':'0'})
				.animate({'top':'0','height':'191px','width':'271px'},params.time)
				
			
			
			if (current.hasClass('carouselMiddle'))
			{
				var toLeft = (slide.outerWidth()/2)-(271);
			}
			else
			{
				var toLeft = current.position.left;
			}
			
			current
				.css({'z-index':'3'})
				.animate({'height':191*2+'px','width':'561px','top':megaTop+'px','left':toLeft+'px'},params.time)
				//.find('img').animate({'height':191*2+'px','width':'561px'},params.time)
		}
		
		
		function doCurrent()
		{
			current.height(191*2);
			current.width(271*2);
			
			if ((current.hasClass('carouselCurrent')) || (current.css('left')!="0" && current.css('left')!="0px") && (current.css('right')!="0" && current.css('right')!="0px"))
			{
				var currentCenter  = (slide.outerWidth()/2)-(current.width()/2);
			}
			current.css({'top':megaTop+'px','left':currentCenter+'px'});
		}
	
	function doZ()
	{
		imagesBox.find('img').css({'z-index':0});
		current.css({'z-index':1});
	}
        
        
        
    });
    // Permettre le chaînage par jQuery
    return this;
    };
})(jQuery);
