
(function($) {
	$.fn.jScrollbar= function(op) {
        var defaults = {
			scrollStep : 10,
			allowMouseWheel : true
        };
		
		if(this.length>0)
		return this.each(function() {
			
			/*
			// Vars
			*/
			var 
				$this = $(this),
				opts = $.extend(defaults, op),
				js_mask = $('.items'),
				js_drag = $this.find('.jScrollbar_draggable a.draggable'),
				js_Parentdrag = $this.find('.jScrollbar_draggable'),
				diff = parseInt(js_mask.innerWidth()) - parseInt($this.width());
			
			/** if mask container is heighter than the main container **/
			if(diff > 0)
			{
				js_Parentdrag.show();
				var pxDraggable = parseInt(js_Parentdrag.width()) - parseInt(js_drag.width());
				var pxUpWhenScrollMove = opts.scrollStep;
				var pxUpWhenMaskMove = pxUpWhenScrollMove * (diff/pxDraggable);
				
				//alert(pxDraggable + " : " + pxUpWhenMaskMove);

				js_drag
				.click(function(e){e.preventDefault();})
				.draggable({
					axis:'x',
					containment: js_Parentdrag,
					scroll: false,
					drag: function(event, ui){
						js_mask.css('left','-'+(ui.position.left * (diff/pxDraggable) ) +'px');
					}
				});
				
				
			
			}
		});

	}

	$.fn.scrollTo = function(left, direction)
	{
		$this = $(this);
		
		var js_drag = $this.find('.jScrollbar_draggable a.draggable');
		var js_Parentdrag = $this.find('.jScrollbar_draggable');
		//var diff = parseInt(js_mask.innerWidth()) - parseInt($this.width());
		
		var pxDraggable = parseInt(js_Parentdrag.width()) - parseInt(js_drag.width());
		
		//find the ratio of pixels moved in the source
		var srcViewport = $(".carousel");
		var srcContent = $(".items");
		
		var viewportWidth = srcViewport.width();
		var contentWidth = srcContent.width();

		var newLeft = 0-( js_Parentdrag.width() * left/contentWidth );
		retval = newLeft;
		if(direction == "left")
		{
			if(newLeft < 0)
			{
				newLeft = 0;
			}
		}
		else
		{
			if(newLeft > pxDraggable)
			{
				newLeft = pxDraggable;
				retval = -1;
			}
		}
		//var retval = 0;

		//if(newLeft < 0)
		//{
		//	newLeft = 0;
		//}
		//else if(newLeft > pxDraggable)
		//{
		//	newLeft = pxDraggable;
		//	retval = -1;
		//}
		
		js_drag.css('left',newLeft +'px');

		return retval;
	}

})(jQuery);
