// JavaScript Document
(function($) {
	
    $.fn.bakaroll = function(options) {
		
		/***
		** CONSTANTES
		*/
		var nbproduits	= 0;
		var position	= null;
		var reste		= null;
		var delay		= null;
		
		/***
		** CONSTANTES PARAMETRABLES
		*/
		var defaults = {
			start		: 1,
			rapide		: 6,
			lent		: 30,
			imgwidth	: 113,
			classprev	: 'products-prev',
			classnext	: 'products-next',
			over		: 0
		};
	
		var opts = $.extend(defaults, options);
		
		/***
		** FONCTION POUR RECUPERER LA VALEUR DANS ?px
		*/
		function recuptaille(valeur)
		{
			if(valeur != 'auto')
			{
				var last = valeur.length - 2;
				return parseInt(valeur.substr(0,last));
			} else {
				return 0;
			}
		}
		
		/***
		** DEFINI LA LISTE
		*/
		var ul = $(this).children('.products').children('ul')
		
		/***
		** NB DE LI
		*/
		ul.find("li").each(function(){nbproduits++;});

		/***
		** CALCULS
		*/
		var width = (nbproduits * opts.imgwidth);
		ul.width(width);
		width = parseInt(width) - 730;
		
		/***
		** ANIMATION DE DEPART
		*/
		if(opts.start == 1)
		{
			reste = width+position;
			delay = parseInt(reste*opts.lent);
			ul.animate({left:-width+"px"},delay);
		}
		
		/***
		** ACCELERE SUR FLECHE DE DROITE
		*/
		$('.'+opts.classnext).hover(function(){
			ul.stop();
			position = recuptaille(ul.css('left'));
			reste = parseInt(width+position);
			delay = parseInt(reste*opts.rapide);
			ul.animate({left:-width+"px"},delay);
		}, function() {
			ul.stop();
			if(opts.start == 1)
			{
				position = recuptaille(ul.css('left'));
				reste = parseInt(width+position);
				delay = parseInt(reste*opts.lent);
				ul.animate({left:-width+"px"},delay);
			}
		});
		
		/***
		** ACCELERE SUR FLECHE DE GAUCHE
		*/
		$('.'+opts.classprev).hover(function(){
			ul.stop();
			position = recuptaille(ul.css('left'));
			reste = -position;
			delay = parseInt(reste*opts.rapide);
			ul.animate({left:"30px"},delay);
		}, function() {
			ul.stop();
			if(opts.start == 1)
			{
				position = recuptaille(ul.css('left'));
				reste = parseInt(width+position);
				delay = parseInt(reste*opts.lent);
				ul.animate({left:-width+"px"},delay);
			}
		});
		
		//HOVER
		if(opts.over == 1)
		{
			ul.children('li').hover(function(){
				ul.stop();
				$(this).animate({marginTop:"2px",width:"120px"},500);
			}, function() {
				$(this).stop();
				if(opts.start == 1)
				{
					position = recuptaille(ul.css('left'));
					reste = parseInt(width+position);
					delay = parseInt(reste*opts.lent);
					ul.animate({left:-width+"px"},delay);
				}
				$(this).animate({marginTop:"9px",width:"100px"},300);
			});
		}
	};

})(jQuery);

