$(function() {
	
	function hasLess(slider) {
		return slider.find(".slider-item:first").position().left < 0;
	}
	function hasMore(slider) {
		return slider.find(".slider-item:last").position().left > slider.find(".slider-clipper").width();
	}
	function sliderPosition(slider) {
		return parseInt(slider.find(".slider-content:first").css("margin-left")) || 0;
	}
	function sliderItemWidth(slider) {
		var item = slider.find(".slider-item:first");
		return item.outerWidth() + parseInt(item.css("margin-right"));
	}
	
	$(".slider .next").bind("click dblclick", function(e) {
		e.preventDefault();
		var slider = $(this).closest(".slider");
		slider.queue(function() {
			if (!hasMore(slider)) { slider.dequeue(); return; }
			slider.find(".back:first").removeClass("at-end");
			slider.find(".slider-content").animate({marginLeft: sliderPosition(slider) - sliderItemWidth(slider)}, 300, function() {
				if (!hasMore(slider)) slider.find(".next:first").addClass("at-end");
				slider.dequeue();
			});
		});
	});
	$(".slider .back").bind("click dblclick", function(e) {
		e.preventDefault();
		var slider = $(this).closest(".slider");
		slider.queue(function() {
			if (!hasLess(slider)) { slider.dequeue(); return; }
			slider.find(".next:first").removeClass("at-end");
			slider.find(".slider-content").animate({marginLeft: sliderPosition(slider) + sliderItemWidth(slider)}, 300, function() {
				if (!hasLess(slider)) slider.find(".back:first").addClass("at-end");
				slider.dequeue();
			});
		});
	});
});
