/**
 *	PA Carousel
 */
(function( $ ){

	$.fn.paCarousel = function( options ) {  
		
		var settings = {
			scrollLeft:'',
			scrollRight:'',
			pageNum:''
		};
		var container;
		var carousel;
		var reference;
		var nbPerPage = 3;
		var nbElt = 0;
		var cpt = 0;
		var nbPages = 0;
		var pageNum = 0;
		
		function scrollLeft() {
			if(pageNum > 0) {
				pageNum--;
				carousel.animate({
					marginLeft : - (reference.width() * nbPerPage * pageNum)
				});
			}
			updatePageNumView();
		}
		
		function scrollRight() {
			if(pageNum < (nbPages-1) ) {
				pageNum++;
				carousel.animate({
					marginLeft : - (reference.width() * nbPerPage * pageNum)
				});
			}
			updatePageNumView();
		}
		
		function updatePageNumView() {
				$(settings.pageNum).html((pageNum + 1) + " / " + nbPages);
		}
		
		
		return this.each(function() {        
			// If options exist, lets merge them with our default settings
			if (options) { 
				$.extend(settings, options);
			}
			// Plugin code starts here.
			
			var $this = $(this);
			carousel = $(this);
			
			reference = $("li:first-child", this);
			nbElt = $("li", this).length;
			nbPages = Math.ceil(nbElt / nbPerPage);
			
			// wrap the carousel into a container
			carousel.wrap('<div class="pa-carousel"></div>');
			container = carousel.parent();
			
			container.css("width",  reference.width() * nbPerPage )
					// hauteur d'une seule diapositive
					//.css("height", reference.height() )
					.css("height", reference.height() )
					// Blocage des débordements
					.css("overflow", "hidden");
			
			carousel.css("width", (reference.width() * nbElt));
			
			if(nbPages > 1) {
				$(settings.scrollRight).click(function() {
					scrollRight();
				});
				$(settings.scrollLeft).click(function() {
					scrollLeft();
				});
			} else {
				$(settings.scrollRight).hide();
				$(settings.scrollLeft).hide();
				$(settings.pageNum).hide();
			}
			
			updatePageNumView();
			
		});
	
	};
})( jQuery );
