﻿/*
	PLUGIN INFORMATION
	Name 	: cScrollbar
	Author	: CurvinhO
	Version	: 1.0	
*/
(function(data){
	$.fn.cScrollbar = function(parametros){
		var padroes = {
			altura 				: '400px',
			itemPadding			: 0,
			barColor			: 'none',
			barItemColor		: '#333',
			sliderColor			: '#333',
			mouseWhell			: true
		};
 		fx = $.extend({},padroes,parametros);
		var $ul = $(this),
			$li = $ul.find("> li"),
			tamanho = 0,
			largura = $ul.width(),
			bar = '<div id="scrollbar"><div id="arrowUp">▲</div><div id="barSlider"><div id="draggable"></div></div><div id="arrowDown">▼</div></div>';
		$ul.css({
			height		: fx.altura,
			width		: largura-10+"px",
			overflow	: 'hidden',
			'list-style'	: 'none'
		}).addClass('menu-series');
		$li.css({
			margin		: 0,
			padding		: fx.itemPadding
		});
		
		$ul.parent().append(bar);
		$ul.width($(this).parent().width() - 10)
		$("#scrollbar").css({
			position	: 'relative',
			float		: 'right',
			top			: '-10px',
			height		: $ul.height()+"px",
			background 	: fx.barColor,
			color		: fx.barItemColor,
			width		: '10px',
			border		: 0
		});
		$("#arrowUp").css({
			float		: 'left',
			position	: 'relative',
			width		: '10px',
			height		: '15px',
			left		: '-3px',
			top			: '0',
			cursor		: 'default',
			margin		: 0
		});
		$("#arrowDown").css({
			float		: 'left',
			position	: 'relative',
			width		: '10px',
			height		: '10px',
			top			: '-5px',
			left		: '-3px',
			cursor		: 'default',
			margin		: 0
		});
		$("#barSlider").css({
			float		: 'left',
			position	: 'relative',
			width		: '10px',
			height		: ($ul.height()-25)+"px",
			margin		: 0,
			padding		: '1px 0 2px',
			background	: '#666',
			
		});
		$("#draggable").css({
			position	: 'absolute',
			width		: '10px',
			height		: '15px',
			left		: '0',
			cursor		: 'default',
			padding		: '0',
			background	: fx.barItemColor
			
		});
		
		$('#draggable').draggable({axis : 'y',containment: 'parent'});		
		return this.each(function(){
			$li.each(function(){
				tamanho += $(this).outerHeight(true);
			});
			tamanho = tamanho - $ul.outerHeight();
			
			function move(pct){
				$ul.scrollTop(pct);
			}
			function ajustar(){
				pct = ($ul.scrollTop()/tamanho);
				pct = (pct * ( $("#barSlider").height() - 15)) + 1;
				$("#draggable").stop().animate({
					top : pct+"px"
				});
			}
			$("#draggable").mousedown(function(){
					setInterval(function(){
					var pos = $("#draggable").position();
					pct = ((pos.top - 1)/( $("#barSlider").height() - 15 ) );
					pct = pct*tamanho;
					move(pct);},10);
			});
			$("#arrowUp").click(function(){
				move($ul.scrollTop()-50);
				ajustar();
			});
			$("#arrowDown").click(function(){
				move($ul.scrollTop()+50);
				ajustar();
			});
			if(fx.mouseWhell){
				$ul.mouseover(function(){
					$ul.mousewheel(function(event, delta){
						move($ul.scrollTop() - delta);
						ajustar();
						return false;
					});
				});
			}
		});
	}
})(jQuery);
