// JavaScript Document

(function($) {
	$.fn.myslider=function(options) {
		var defaults={
				width:600,
				height:400,
				interval:5000,
				nextButton:'.next',
				prevButton:'.prev',
				autoStart:false
			};
		var options=$.extend(defaults,options);
		
		return this.each(function() {
			var crtObj=$(this);
			var currentPosition=0;
			var currentSlide=1;
			var intervalObj=0;
			var slides=$(".slide", $(this));
			var numberOfSlides=slides.length;
			
			clearInterval(intervalObj);
			crtObj.css({width:options.width, height:options.height, 'overflow':'hidden'});
			slides.wrapAll("<div id='slideInner'></div>").css({"float":"left", "width":options.width});
			$("#slideInner",crtObj).css("width",options.width*numberOfSlides);
			
			function startSlide()
			{
				intervalObj=setInterval(function() {
					currentPosition=(currentPosition==numberOfSlides-1) ? 0 : currentPosition+1;
					$("#slideInner",crtObj).stop().animate({"marginLeft":currentSlide*options.width*(-1)});
					currentSlide=(currentSlide==numberOfSlides-1) ? 0 : currentSlide+1;
				}, options.interval);
			}
			
			$(options.nextButton).bind("click", function() {
				if(!$("#slideInner",crtObj).is(":animated"))
				{
					clearInterval(intervalObj);
					currentPosition=currentPosition+1;
					if(currentPosition >= numberOfSlides) currentPosition=0;
					if(currentPosition < 0) currentPosition=numberOfSlides-1;
					$("#slideInner",crtObj).stop().animate({"marginLeft":options.width*(-currentPosition)});
					currentSlide=currentPosition+1;
					if(options.autoStart==true) { setTimeout(startSlide, 5000); }
				}
			});
			
			$(options.prevButton).bind("click", function() {
				if(!$("#slideInner",crtObj).is(":animated"))
				{
					clearInterval(intervalObj);
					currentPosition=currentPosition-1;
					if(currentPosition >= numberOfSlides) currentPosition=0;
					if(currentPosition < 0) currentPosition=numberOfSlides-1;
					$("#slideInner",crtObj).stop().animate({"marginLeft":options.width*(-currentPosition)});
					currentSlide=currentPosition+1;
					if(options.autoStart==true) { setTimeout(startSlide, 5000); }
				}
			});
			
			if(options.autoStart==true) { startSlide(); }
		});
	};
})(jQuery);
