(function($) {
    $.fn.slideMnu = function(options) {
        var defaults = {
			fudgeFactor: 40,
			overflow: 'hidden'
        };
        
        var config = $.extend(defaults, options);
        
        this.each(function() {
            outer = $(this);
			outer.css({position: 'absolute', overflow: config.overflow});
			if(typeof inner === "undefined") {
				outer.wrapInner('<div style="position: relative;"></div>');
				inner = outer.children([0]);
				inner.css({paddingTop: config.fudgeFactor, paddingBottom: config.fudgeFactor});
			}
            outer.mouseenter(function(e) {
				/*startTracking();*/
            }).mouseleave(function(e) { 
				/*stopTracking();*/
            }).mousemove(function(e) {
				var ey = e.pageY, /* update function to keep from resetting these vars each mousemove */
					oh = outer.height(),
					ih = inner.height(),
					lot = outer.offset().top,
					ost = outer.scrollTop();
				if(oh === 0) { oh = 1; } // prevent divide by 0
				var maxot = ih - oh + (config.fudgeFactor * 2); /* max scroll amount = height of content minus visible height (so bottom of content won't go above bottom of visible area plus top and bottom padding */
				var relmouse = ey - lot;
				var mousepct = relmouse / oh;
				var scrollamt = maxot * mousepct;
				inner.css('top', '-'+scrollamt+'px');
				outer.scrollTop(0);

            });
        });
        
    }
})(jQuery); 