
jQuery.fn.toggleSmooth = function(options) {  
	this.animate({
		"height": "toggle", "opacity": "toggle"
	}, "slow");  
};

jQuery.fn.makeScrollPanel = function(height) {
	//	wrapper.css('', 'auto');
	var inactiveMargin = 10;		 
	// Using outer height to include padding too
	var wrapper = this;
	if (wrapper.children().length!=1) throw new Exception('Only one child must be exists');
	var scrollable = jQuery(this.children()[0]);
	var scrollableHeight = scrollable.outerHeight() + 2*inactiveMargin;
	if ( height ) wrapper.css('height', height+'px');
	wrapper.css('overflow', 'hidden');
	wrapper.css('position', 'relative');
	var wrapperWidth = wrapper.width();
	var wrapperHeight = wrapper.height();
	wrapper.mousemove(function(e){
		var wrapperOffset = j(this).offset();
		var top = (e.pageY -  wrapperOffset.top) * (scrollableHeight - wrapperHeight) / wrapperHeight  - inactiveMargin;
		
		if (top < 0){
			top = 0;
		}
		
		j(this).scrollTop(top);
	});
}; 

