(function($)
{
	$.fn.SteawCarousel = function(options)
	{
		var settings = {
			'width'		: 980,
			'number'	: 2,
			'target'	: 1,
			'speed'		: 500,
			'interval'	: 5000,
			'easing'	: 'easeInOutExpo'
		};
		
		return this.each(function() {
		
			if (options) { $.extend(settings, options);}
			
			var ScWidth		= settings.width;
			var ScNumber	= settings.number;
			var ScTarget	= settings.target;
			var ScSpeed		= settings.speed;
			var ScInterval	= settings.interval;
			var ScEasing	= settings.easing;
			
			var ScObject		= $(this);
			var ScWindow		= ScObject.children('.window');
			var ScReel			= ScWindow.children('.reel');
			var ScBloc			= ScReel.children('.bloc');
			var ScPreviousArrow	= ScObject.children('.previous-arrow');
			var ScNextArrow		= ScObject.children('.next-arrow');
			var ScPlay			= ScObject.find('.play');
			var ScPause			= ScObject.find('.pause');
			var ScPage			= ScObject.find('.page');
			
			ScReel.css('width',ScWidth*ScNumber);
			
			// Animation: triggers the horizontal animation of the slider
			ScAnimation = function(ScDirection) {
				if( ScDirection == 'left' ) {
					if( ScTarget == 1) {
						ScTarget = ScNumber;
					} else {
						ScTarget -= 1;
					}
				} else if( ScDirection == 'right') {
					if( ScTarget == ScNumber) {
						ScTarget = 1;
					} else {
						ScTarget += 1;
					}
				} else {
					ScTarget = ScDirection;
				};
				ScHDistance = ScWidth*(ScTarget - 1);
				ScReel.stop().animate({
					left: -ScHDistance
				}, ScSpeed);
			};

			// Timer: sets interval between 2 animations
			ScTimer = function() {
				ScGap = setInterval(function() {
					ScAnimation('right');
				}, ScInterval);
			};
			ScTimer();
			
			// Status: is it playing or is it paused?
			ScStatus = function(ScAction) {
				clearInterval(ScGap);
				if( ScAction == 'play' ) {
					ScPlay.fadeOut('fast');
					ScPause.fadeIn('fast');
					ScAnimation('right');
				} else if( ScAction == 'pause' ) {
					ScPlay.fadeIn('fast');
					ScPause.fadeOut('fast');
				};
			};
			
			// Navigation: previous/next, play/pause, pagination
			ScPreviousArrow.click(function() {
				clearInterval(ScGap);
				ScAnimation('left');
			});
			
			ScNextArrow.click(function() {
				clearInterval(ScGap);
				ScAnimation('right');
			});
			
			ScPlay.click(function() {
				ScStatus('play');
				ScTimer();
			});
			
			ScPause.click(function() {
				ScStatus('pause');
			});

			ScPage.click(function() {
				ScPage.removeClass('on');
				$(this).addClass('on');
				var page = parseFloat($(this).attr('title'));
				ScStatus('pause');
				clearInterval(ScGap);
				ScAnimation(page);
			});
	
		});

	};
	
})(jQuery);

