(function(b){b.fn.autoResize=function(c){var a=b.extend({onResize:function(){},animate:true,animateDuration:150,animateCallback:function(){},extraSpace:20,limit:1000},c);this.filter("textarea").each(function(){var l=b(this).css({resize:"none","overflow-y":"hidden"}),d=l.height(),j=(function(){var f=["height","width","lineHeight","textDecoration","letterSpacing"],g={};b.each(f,function(k,i){g[i]=l.css(i)});return l.clone().removeAttr("id").removeAttr("name").css({position:"absolute",top:0,left:-9999}).css(g).attr("tabIndex","-1").insertBefore(l)})(),e=null,h=function(){j.height(0).val(b(this).val()).scrollTop(10000);var g=Math.max(j.scrollTop(),d)+a.extraSpace,f=b(this).add(j);if(e===g){return}e=g;if(g>=a.limit){b(this).css("overflow-y","");return}a.onResize.call(this);a.animate&&l.css("display")==="block"?f.stop().animate({height:g},a.animateDuration,a.animateCallback):f.height(g)};l.unbind(".dynSiz").bind("keyup.dynSiz",h).bind("keydown.dynSiz",h).bind("change.dynSiz",h)});return this}})(jQuery);