(function($){  
 $.fn.carousel = function(options) {  
	var defaults = {
		total : 10,
		visible : 3,
		carousel : ".carousel",
		next : "cc-next",
		previous : "cc-previous",
		speed : "fast",
		easing : "swing",
		scrollid : "cc-scroll-",
		step : 100,
		speed : "fast",
		viewheight: 500, 
		easing : "swing"
	}
	
	var options = $.extend(defaults, options);
	var $_height = $(this).height();
	var $_max = $_height - options.viewheight;
	$(this).css({position: "absolute"});
	$(this).wrap($('<div class="carousel_wrapper">'));
	$(".carousel_wrapper").css({height:options.viewheight+"px", overflow : "hidden", position: "relative"});
	$(this).each(function (i){
		var $_items = $(this).children().size();
		
		var $_id = $(this);
		$("#"+options.next).bind("click", function(){
				scrollup($_id);
		});
		$("#"+options.previous).bind("click", function(){
				scrolldown($_id);
		});
	});
	function scrollup($_elem){
		var __doScroll = false, __full = -((options.total - options.visible) * options.step);
		$_elem.pos = (typeof $_elem.pos != "number") ? Number(0) : $_elem.pos;
		
		if ($_elem.pos > __full){
			__doScroll = true;
			$_elem.pos -= options.step;
		}
		
		if (__doScroll) {
			$($_elem).animate({top: $_elem.pos+'px'}, {speed : options.speed, easing: options.easing});
		}
	};
	function scrolldown($_elem){
		var __doScroll = false, __full = Number(0);
		$_elem.pos = (typeof $_elem.pos != "number") ? Number(0) : $_elem.pos;
		
		if ($_elem.pos < __full){
			__doScroll = true;
			$_elem.pos += options.step;
		}
		
		if (__doScroll) {
			$($_elem).animate({top: $_elem.pos+'px'}, {speed : options.speed, easing: options.easing});
		}
	};
 }; 
})(jQuery);

