
/* ------------------------------------------------------------------------
	Carousel
	jchautbois@gmail.com
	Version: 1.0
------------------------------------------------------------------------- */

jQuery.fn.carousel = function(vars) {

	this.each(function(i) {

		var element     = this;
		var delta = 0;
		var play = true;
		var dx     = (vars.dx != undefined) ? vars.dx : 1;
		var dxo = dx;
		var dt     = (vars.dt != undefined) ? vars.dt : 50;
		var dto = dt;
		var timeOutFn   = null;
		var sens = dx;

		var ulcont    = $("ul",element);
		var items     = $("ul > li",element);
		var itemsLink = $("ul > li > a",element);
		var btnpause     = $(".pause",element);
		var btnplay      = $(".play",element);
		var playrev   = $(".gch > a",element);
		var playforw  = $(".drt > a",element);

		//Bug IE8
		$(ulcont).css('clip','rect(0px 521px 40px 0px)');

		//callage des items
		items.each(function(i) {
			$(items[i]).css('left',delta);
			delta = delta + $(items[i]).width();
		});

		var Slider = function() {
			if(play){
				items.each(function(i) {
					var xo = parseFloat($(items[i]).css('left'));
					var pX = xo-dx;
					if(($(items[i]).width()+pX)<=0){
						$(items[i]).css('left',delta-$(items[i]).width());
					} else if (pX>=(delta-$(items[i]).width())){
						$(items[i]).css('left',$(items[i]).width()*-1);
					} else {
						$(items[i]).css('left',pX);
					}
				});
				timeOutFn = setTimeout(Slider, dt);
			}
		}
		Slider();

		items.each(function(i) {
			$(itemsLink[i]).hover(function(){
				clearTimeout(timeOutFn);
			},function(){
				Slider();
			});
		});

		$(playforw).click(function(){return false;});
		$(playrev).click(function(){return false;});

		$(playforw).mouseover(function(){
			clearTimeout(timeOutFn);
			dx=10*dx;
			Slider();
		});
		$(playforw).mouseout(function(){dx=dxo;});
		$(playrev).mouseover(function(){
			clearTimeout(timeOutFn);
			dx=-10*dx;
			Slider();
		});
		$(playrev).mouseout(function(){dx=dxo});

		$(btnpause).click(function(){
			clearTimeout(timeOutFn);
			play = false;
			$(btnpause).removeClass('on');
			$(btnplay).addClass('on');
			return false;
		});
		$(btnplay).click(function(){
			play = true;
			$(btnplay).removeClass('on');
			$(btnpause).addClass('on');
			Slider();
			return false;
		});
	});

};
