(function($) {
	$.fn.jScrollbar= function(op) {
        var defaults = {
			scrollStep : 10,
        };

		if(this.length>0)
		return this.each(function() {

			/*
			// Vars
			*/
			var
				$this = $(this),
				opts = $.extend(defaults, op),
				js_mask = $this.find('.' + $(this).attr('class') + '_mask'),
				js_drag = $this.find('.' + $(this).attr('class') + '_draggable a.' + $(this).attr('class') + '_draggables'),
				js_Parentdrag = $this.find('.' + $(this).attr('class') + '_draggable'),
				diff = parseInt(js_mask.innerHeight()) - parseInt($this.height());

			/** if mask container is heighter than the main container **/
			if(diff > 0)
			{
				js_Parentdrag.show();
				var pxDraggable = parseInt(js_Parentdrag.height()) - parseInt(js_drag.height());;
				var pxUpWhenScrollMove = opts.scrollStep;
				var pxUpWhenMaskMove = pxUpWhenScrollMove * (diff/pxDraggable);

				js_drag
				.click(function(e){e.preventDefault();})
				.draggable({
					axis:'y',
					containment: js_Parentdrag,
					scroll: false,
					drag: function(event, ui){
						js_mask.css('top','-'+(ui.position.top * (diff/pxDraggable))+'px');
					}
				});
			}
		});

	}
})(jQuery);
