(function($){
		$.fn.slide = function(options){
		var defaults = {
			slideWidth: 971,
			autoplay: true,
			duration: 1500,
			showSlideIndex: false
		};
		var options = $.extend(defaults, options);
		return this.each(function(){
		  	var slideshow = $(this);
			var o = options;
			var currentPosition = 0;
			var slides = $('.slide');
			var numberOfSlides = slides.length;
			$('#slidesContainer').css('overflow', 'hidden');
			slides.wrapAll('<div id="slideInner"></div>')
			.css({
				 'float' : 'left',
				 'width' : o.slideWidth
			});
			$('.slide:first').clone().appendTo('#slideInner');
			$('#slideInner').css('width', o.slideWidth * (numberOfSlides+1));
			slideshow
				.prepend('<span class="control" id="leftControl"></span>')
				.append('<span class="control" id="rightControl"></span>');
			if(o.showSlideIndex==true)
			{
				slideshow.append('<div id="slideIndex"></div>');
				for(var i=1; i<= numberOfSlides; i++)
				{
					$('#slideIndex').append('<span id="slide-' + i + '" class="numbers">' + i + '</span>' );
				}
				$('.numbers').click(function(){ goto( ($(this).attr('id')).replace('slide-','') - 1, false)});
			}
			$('#leftControl').click(function(){ prev()});
			$('#rightControl').click(function(){ next()});
			init();
			function init()
			{
				manageControls(currentPosition);
				if(o.autoplay==true) setNextTimeOut(o.duration);
			}
			
			function next()
			{
				currentPosition++;
				if(currentPosition >= numberOfSlides) currentPosition=0;
				slideTo(currentPosition, true);
			}
		  
			function prev()
			{
				currentPosition--;
				if(currentPosition <0) currentPosition=numberOfSlides-1;
				slideTo(currentPosition, false);
			}
			
			function goto(position)
			{
				currentPosition=position;
				slideTo(currentPosition, false);
			}
			
			function setNextTimeOut(time)
			{
				$('#slidesContainer').stop();
				$('#slidesContainer').animate({optical: 1}, time, '', function(){next();});
			}
			function slideTo(position, continuously)
			{
				$('#slideInner').stop();
				if(continuously==false || o.autoplay==false || position!=0)
				{
					$('#slideInner').animate({'marginLeft' : o.slideWidth*(-position)},'', '', 
						function(){ 
							manageControls(position);
							if(o.autoplay==true) setNextTimeOut(o.duration);
						}
					)
				}
				else
				{
					$('#slideInner').animate({'marginLeft' : o.slideWidth*(-numberOfSlides)},'', '', 
						function(){ 
							$('#slideInner').css('marginLeft',0);
							manageControls(position)
							if(o.autoplay==true) setNextTimeOut(o.duration);
						}
					)
				}
			}
			
			function manageControls(position)
			{
				if(position==0){ $('#leftControl').show() } else{ $('#leftControl').show() };
				if(position==(numberOfSlides-1)){ $('#rightControl').show() } else{ $('#rightControl').show() };
				if(o.showSlideIndex==true)
				{
					$('.numbers').removeClass("active");
					$('#slide-' + (position +1)).addClass("active");
				}
			}
		});
		};
	})(jQuery);
