/********************
jquery.slider-1.0.js
author: carmelo capinpin <mello.capinpin@gmail.com>
date-created: 1:39 PM 4/11/2011

USAGE:
	<script>
	jQuery(document).ready(function($) {
		$('#slider').slider();
	});
	</script>
	<div id="slider">
		<div class="window">
			<ul class="slides">
				<li><img src="temp-1.png"/></li>
				<li><img src="temp-2.png"/></li>
				<li><img src="temp-3.png"/></li>
			</ul>
		</div>
		<div class="arrow-left"><img src="arrow-left.png"/></div>
		<div class="arrow-right"><img src="arrow-right.png"/></div>
	</div>
********************/
(function($) {
	$.fn.slider = function(options) {
		var settings = $.extend({
			delay  : 6000,
			width  : 940,
			height : 370,
			slides : 'ul.slides',
			next   : 'div.arrow-right',
			prev   : 'div.arrow-left'
		}, options);

		this.each(function(index) {
			var instance = $(this);
			var ul = instance.find(settings.slides).eq(0);
				ul.css('width', (ul.children('li').size() * settings.width) + 'px');
			
			var next = instance.find(settings.next).eq(0);
				next.click(function(e) {
					if (ul.position().left == ((ul.children('li').size() -1) * settings.width * -1)) {
						ul.animate({
							left: '0px'
						}, {
							duration: 'slow',
							complete: function() {
								prev.css('display', 'none');
								next.css('display', 'block');
								ul.stop(true);
							},
							queue: true
						});
					};
					ul.animate({
						left: '-=' + settings.width
					}, {
						duration: 'slow',
						step: function() {
							prev.css('display', 'block');
						},
						complete: function() {
							if (ul.position().left == ((ul.children('li').size() -1) * settings.width * -1)) {
								next.css('display', 'none');
							};
							ul.stop(true);
						},
						queue: true
					});
				});

			var prev = instance.find(settings.prev).eq(0);
				prev.click(function(e) {
					if (ul.position().left == 0) {
						return;
					};
					ul.animate({
						left: '+=' + settings.width
					}, {
						duration: 'slow',
						step: function() {
							next.css('display', 'block');
						},
						complete: function() {
							if (ul.position().left == 0) {
								prev.css('display', 'none');
							};
							ul.stop(true);
						},
						queue: true
					});
				});
				
			if (ul.children('li').size() > 1) {
				next.css('display', 'block');
				setInterval(function() {
					next.click();
				}, settings.delay);
			};
		});
	};
})(jQuery);
