(function(c){var d=null;c.fn.autogrow=function(a){return this.each(function(){new c.autogrow(this,a)})};c.autogrow=function(b,a){this.options=a||{};this.dummy=null;this.interval=null;this.line_height=this.options.lineHeight||parseInt(c(b).css("line-height"));this.min_height=this.options.minHeight||parseInt(c(b).css("min-height"));this.max_height=this.options.maxHeight||parseInt(c(b).css("max-height"));this.textarea=c(b);this.expand_tolerance=(!isNaN(this.options.expandTolerance)&&this.options.expandTolerance>0)?this.options.expandTolerance:4;if(isNaN(this.line_height)){this.line_height=0}this.init()};c.autogrow.fn=c.autogrow.prototype={autogrow:"1.2.3"};c.autogrow.fn.extend=c.autogrow.extend=c.extend;c.autogrow.fn.extend({init:function(){var a=this;this.textarea.css({overflow:"hidden",display:"block"});this.textarea.bind("focus",function(){a.startExpand()}).bind("blur",function(){a.stopExpand()});this.checkExpand()},startExpand:function(){var a=this;this.interval=window.setInterval(function(){a.checkExpand()},400)},stopExpand:function(){clearInterval(this.interval)},checkExpand:function(){if(this.dummy==null){this.dummy=c("<div></div>");this.dummy.css({"font-size":this.textarea.css("font-size"),"font-family":this.textarea.css("font-family"),width:this.textarea.css("width"),padding:this.textarea.css("padding"),"line-height":this.line_height+"px","overflow-x":"hidden",position:"absolute",top:0,left:-9999}).appendTo("body")}else{this.dummy.show()}var a=this.textarea.val().replace(/(<|>)/g,"");if(c.browser.msie){a=a.replace(/\n/g,"<BR/>new")}else{a=a.replace(/\n/g,"<br/>new")}if(this.dummy.html()!=a){this.dummy.html(a);if(this.max_height>0&&(this.dummy.height()+(this.expand_tolerance*this.line_height)>this.max_height)){this.textarea.css("overflow-y","auto");if(this.textarea.height()<this.max_height){this.textarea.animate({height:(this.max_height+(this.expand_tolerance*this.line_height))+"px"},100)}}else{this.textarea.css("overflow-y","hidden");if(this.textarea.height()<this.dummy.height()+(this.expand_tolerance*this.line_height)||(this.dummy.height()<this.textarea.height())){if(this.dummy.height()<this.min_height){this.textarea.animate({height:(this.min_height+(this.expand_tolerance*this.line_height))+"px"},100)}else{this.textarea.animate({height:(this.dummy.height()+(this.expand_tolerance*this.line_height))+"px"},100)}}}}this.dummy.hide()}})})(jQuery);