// ===== Media Container: Thumbnail Carousel ==================== 
(function($) {
	$.fn.carousel = function(options){
		// extend our default options with those provided
		var $options = $.extend({}, $.fn.carousel.defaults, options);

		return this.each(function() {
			var $this = $(this);
			$options.container = $('.media_thumbs ul',$this);
			$options.thumbs = $('a',$options.container);
			
			var itemSize = $($options.thumbs[0]).outerWidth();
			$options.visibleWidth = $('div.carousel-thumbs', $this).width();
			var itemsVisible = Math.round($options.visibleWidth / itemSize);
			
			if($options.thumbs.length <= itemsVisible){ // == no carousel ==
				//$('div.carousel-thumbs', $this).removeClass('carousel-thumbs');
				//$('.media_thumbs',$this).css('display','block');
			} else { // == enable carousel ==
				// parameters
				$('a.previous,a.next', $this).css('display','block');
				$('.media_thumbs',$this).css('display','block');
				var itemsTotal = $options.thumbs.length;
				$options.container.css('width',((itemsTotal*itemSize)+itemSize)+'px');
				var pageSize = Math.floor($options.visibleWidth / itemSize);
				var pageTotal = (itemsTotal%pageSize==0)?itemsTotal:(pageSize-(itemsTotal%pageSize)+itemsTotal);
				$options.total = Math.floor(pageTotal / pageSize)-1;
				
				// controls
				$this.find("a.previous").css({'opacity':'0.25','cursor':'default'});
				$this.find("a.next").click(function(){
					animate("next");
					if($options.current >= $options.total) $(this).css({'opacity':'0.25','cursor':'default'});
					$("a.previous", $this).css({'opacity':'1','cursor':'pointer'});
					return false;
				});
				$this.find("a.previous").click(function(){		
					animate("prev");
					if($options.current <= 0) $(this).css({'opacity':'0.25','cursor':'default'});
					$("a.next", $this).css({'opacity':'1','cursor':'pointer'});
					return false;
				});
			}
		});
		function animate(dir){
			var p = 0;
			if(dir == "next"){
				$options.current = ($options.current >= $options.total) ? $options.total : $options.current+1;
			} else {
				$options.current = ($options.current <= 0) ? 0 : $options.current-1;
			};	
			p = ($options.current*$options.visibleWidth*-1);
			$($options.container).animate({ left: p }, 500);
		};
	};

	// default option
	$.fn.carousel.defaults = {
		container: null,
		thumbs: null,
		visibleWidth:0,
		current: 0,
		total: 0
	};
})(jQuery);