var picsFolder = 'templates/Voitures/images/';
var unikIdForApp=0;
(function ($){
	$.fn.carrousel = function(options) {
		unikIdForApp++;
		var defaults = {vitesse:500, delay:2500, numbers:false};
		var opts = $.extend(defaults, options);
		return this.each(function() {
		
			// Carrousel classique à défilement
			var $this = $(this);
			var $childs = $this.find("div.item_carrousel");
			$childs.css("float", "left");
			var nb_items = $childs.length;
			var i = 0;
			var width = $childs.width();
			var $container = $this.find("div.container")
			$container.width( width*nb_items );
			
			var carrouseli = function(){
				++i;
				if(opts.numbers!=false){
					$('#carrousel_links'+unikIdForApp+' a.active').removeClass('active');
					$('#carrousel_links'+unikIdForApp+' a:eq('+(i%nb_items)+')').addClass('active');
				}
				
				if(i<nb_items){
					$container.animate({
						marginLeft : -(i*width)
					}, opts.vitesse, "swing");
				}else{
					$container.animate({
						marginLeft : 0
					}, opts.vitesse);
					i=0;
				}
			}
			var timer = setInterval(carrouseli, opts.delay);
			$childs.mouseenter(function(){
				clearInterval(timer);
			});
			$childs.mouseleave(function(){
				timer = setInterval(carrouseli, opts.delay);
			});
			
			// On ajoute les numéros
			if(opts.numbers!=false){
				var links = '<div id="carrousel_links'+unikIdForApp+'" class="links">';
				for(j=1; j<=nb_items; j++)
					links+='<a id="link_'+j+'">'+j+'</a>';
				links += '<div style="clear:left;"></div></div>';
				$container.after(links);
				
				var pos = opts.numbers;
				pos = pos.split(' ');
				var top = $this.position().top;
				var left = $this.position().left;
				
				var widthL=0;
				$('#carrousel_links'+unikIdForApp+' a').each(function(){
					widthL+=$(this).outerWidth();
					$(this).click(function(){
						var linkIdForPosition = $(this).attr('id');
						linkIdForPosition = linkIdForPosition.split('_');
						linkIdForPosition = linkIdForPosition[1]-2;
						i = linkIdForPosition;
						clearInterval(timer);
						carrouseli();
						timer = setInterval(carrouseli, opts.delay);
					});
				});
				widthL+=$('#carrousel_links'+unikIdForApp+' a').length *5;
				
				if(pos[0]=='bottom')
					top += $this.innerHeight() - $('#carrousel_links'+unikIdForApp).height();
				if(pos[1]=='right')
					left+= $this.innerWidth() - widthL;
					
				$('#carrousel_links'+unikIdForApp).css('width', widthL).css('position', 'absolute').css('left', left).css('top', top);
				$('#carrousel_links'+unikIdForApp+' a:first').addClass('active');
			}
		});
	}
	$.fn.carrouselWithFleches = function(options){
		var defaults = {vitesse:500, by2:true};
		var opts = $.extend(defaults, options);
		return this.each(function() {
			var $this = $(this);
			var $container = $this.find("div.container")
			
			$this.before('<div id="carrousel_links"><div id="carrouselToLeft" class="desactived"></div><div id="carrouselToRight" class="actived"></div></div>');
			$("#carrousel_links").css('position', 'absolute');
			
			var $childs = $this.find("div.item_carrousel");
			$childs.css("float", "left");
			var properties = {'width':'25px', 'height':opts.height, 'margin':'4px 0', 'background-position-y':'center','background-position-x':'left','background-repeat':'no-repeat', 'position':'absolute', 'cursor':'pointer'};
			/*for(property in properties){
				$('#carrouselToLeft').css(property, properties[property]);
				$('#carrouselToRight').css(property, properties[property]);
			}*/
			$('#carrouselToLeft').css(properties);
			$('#carrouselToRight').css(properties);
			
			$('#carrouselToLeft').css('margin-left','10px');
			$('#carrouselToRight').css('margin-left', '35px');
			
			if($.browser.msie && $.browser.version==7){
				$('#carrouselToLeft').css('margin-left','0');
				$('#carrouselToRight').css('margin-left','25px');
			}
			$('#carrouselToLeft').css('background-image', 'url("'+picsFolder+'fleche-gauche.png")');
			$('#carrouselToRight').css('background-image', 'url("'+picsFolder+'fleche-droite.png")');
			
			var nb_items = $childs.length;
			var i = 0;
			var width = $childs.width();
			var number = 2;
			if(!opts.by2)
				number = 1;
			
			var toLeft = function(){
				--i;
				$container.animate({
					marginLeft : -(i*width)
				}, opts.vitesse, "swing");
				
				if(i==0)
					$('#carrouselToLeft').removeClass('actived').addClass('desactived');
				$('#carrouselToRight').removeClass('desactived').addClass('actived');
			};
			
			var toRight = function(){
				++i;
				$container.animate({
					marginLeft : -(i*width)
				}, opts.vitesse, "swing");
				if(i==(nb_items-number))
					$('#carrouselToRight').removeClass('actived').addClass('desactived');
				$('#carrouselToLeft').removeClass('desactived').addClass('actived');
			};
			
			$("#carrouselToLeft").click(function(){
				if($(this).hasClass('actived'))
					toLeft();
			});
			
			$("#carrouselToRight").click(function(){
				if($(this).hasClass('actived'))
					toRight();
			});
			
			if(nb_items<=2)
				$('#carrouselToRight').removeClass('actived').addClass('desactived');
		});
	}
	$.fn.carrouselWithFade = function(options) {
		unikIdForApp++;
		var defaults = {vitesse:500, delay:2500, numbers:'bottom right'};
		var opts = $.extend(defaults, options);
		return this.each(function() {
		
			// Carrousel classique à défilement
			var $this = $(this);
			var $childs = $this.find("div.item_carrousel");
			$childs.css("position", "absolute");
			var nb_items = $childs.length;
			var i = 0;
			//var width = $childs.width();
			//var height = $childs.height();
			var $container = $this.find("div.container")
			//$container.width( width );
			//$container.height( height );
			var $img = $this.find("img");
			$img.css("height", "180px");
			
			var carrouseli = function(){
				++i;
				if(opts.numbers!=false){
					$('#carrousel_links'+unikIdForApp+' a.active').removeClass('active');
					$('#carrousel_links'+unikIdForApp+' a:eq('+(i%nb_items)+')').addClass('active');
				}
				if(i<nb_items){
					$container.find('div:lt('+i+')').fadeOut();
					$container.find('div:gt('+i+')').fadeIn();
					$container.find('div:eq('+i+')').fadeIn();
				}else{
					$childs.each(function(){
						$this.find('div.item_carrousel').fadeIn();
						
					});
					i=0;
				}
			}
			
			// On ajoute les numéros
			if(opts.numbers!=false){
				var links = '<div id="carrousel_links'+unikIdForApp+'" class="links">';
				for(j=1; j<=nb_items; j++)
					links+='<a id="link_'+j+'">'+j+'</a>';
				links += '<div style="clear:left;"></div></div>';
				$container.after(links);
				
				var pos = opts.numbers;
				pos = pos.split(' ');
				var top = $this.position().top;
				var left = $this.position().left;
				
				var widthL=0;
				$('#carrousel_links'+unikIdForApp+' a').each(function(){
					widthL+=$(this).outerWidth();
					$(this).click(function(){
						var linkIdForPosition = $(this).attr('id');
						linkIdForPosition = linkIdForPosition.split('_');
						linkIdForPosition = linkIdForPosition[1]-2;
						i = linkIdForPosition;
						clearInterval(timer);
						carrouseli();
						timer = setInterval(carrouseli, opts.delay);
					});
				});
				widthL+=$('#carrousel_links'+unikIdForApp+' a').length *5;
				
				if(pos[0]=='bottom')
					top += $this.innerHeight() - $('#carrousel_links'+unikIdForApp).height();
				if(pos[1]=='right')
					left+= $this.innerWidth() - widthL -3;
					
				$('#carrousel_links'+unikIdForApp).css('width', widthL).css('position', 'absolute').css('left', left).css('top', top);
				$('#carrousel_links'+unikIdForApp+' a:first').addClass('active');
			}
			
			var timer = setInterval(carrouseli, opts.delay);
			$childs.mouseenter(function(){
				clearInterval(timer);
			});
			$childs.mouseleave(function(){
				timer = setInterval(carrouseli, opts.delay);
			});
		});
	}
})(jQuery); 
