/**
 * Scrollable menu - jQuery plugin
 *
 * Built for jQuery library
 * http://jquery.com
 */

;(function($) {
    
	$.fn.scrollableMenu = function(settings){
		// default|available configuration properties
		var defaults = {			
			menu: '.submenu'
		};
        
		var settings = $.extend(defaults, settings);
        var targetPosition = 0;
        var divTop = 0;
        var intId = 0;
        var container = $(this);
        
        _updateScrollTop = function() {
            var delta = (targetPosition-divTop)/50;
            divTop = divTop + delta;
            container.scrollTop(divTop);
            if(Math.abs(delta)<0.05){
                clearInterval(intId);
                intId = 0;
            }
        }
        
        container.mousemove(function(event) {
            var divas = $(this);
            var divH = divas.height();
            var menu = divas.find(settings.menu);

            if(menu.height()<divH){
                return;
            }
            var offset = divas.offset();
            var divmouseY = event.pageY-offset.top;
            var innerH = menu.outerHeight();
            
            targetPosition = Math.min((innerH-divH)*Math.max(0,divmouseY-30)/(divH-60), innerH-divH);
            
            if(intId == 0){
                intId = setInterval('_updateScrollTop()', 33);
            }
        });
        
        intId = setInterval('_updateScrollTop()', 33);
	};

})(jQuery);

