(function(c){if(c.support==undefined){c.support={boxModel:c.boxModel}}var a=false;c(window).one("load",function(){a=true});c.fx.prototype.originalUpdate=c.fx.prototype.update;c.fx.prototype.update=false;c.fx.prototype.update=function(){if(!this.options.inline){return this.originalUpdate.call(this)}if(this.options.step){this.options.step.call(this.elem,this.now,this)}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this)};var b=function(d){this.dom=d;this.o=c(d);this.opt={auto:true,animate:100,easing:null,min:false,max:false,restore:false,step:false};this.enabled=this.dummy=this.busy=this.initial=this.sizeRelated=this.prevH=this.firstH=false};b.prototype={toggle:function(d){if((d=="disable"||d===false)&&this.enabled){return this.setEvents("off")}if((d=="enable"||d===true)&&!this.enabled){return this.setEvents("on")}return this},setEvents:function(j){var h=this.o,e=this.opt,g=this,d=false;if(j=="on"&&!this.enabled){var f=h.height()==0?true:false;if(!f||a){c(function(){g.prepareSizeRelated()})}else{c(window).one("load",function(){g.prepareSizeRelated()})}if(e.auto){h.bind("keyup.growfield",function(k){g.keyUp(k);return true});h.bind("focus.growfield",function(k){g.focus(k);return true});h.bind("blur.growfield",function(k){g.blur(k);return true});d={overflow:h.css("overflow"),cssResize:h.css("resize")};if(c.browser.safari){h.css("resize","none")}this.initial=d;h.css({overflow:"hidden"});if(!f||a){c(function(){g.createDummy()})}else{c(window).one("load",function(){g.createDummy()})}}else{h.bind("keydown.growfield",function(k){g.manualKeyUp(k);return true});h.css("overflow-y","auto");if(!f||a){c(function(){g.update(h.height())})}else{c(window).one("load",function(){g.update(h.height())})}}h.addClass("growfield");this.enabled=true}else{if(j=="off"&&this.enabled){if(this.dummy){this.dummy.remove();this.dummy=false}h.unbind(".growfield").css("overflow",this.initial.overflow);if(c.browser.safari){h.css("resize",this.initial.cssResize)}this.enabled=false}}return this},setOptions:function(d){var e=this.opt,f=this.o;c.extend(e,d);if(!c.easing){e.easing=null}},update:function(q,g){var d=this.sizeRelated,l=this.o.val(),f=this.opt,p=this.dom,j=this.o,e=this,m=this.prevH;var k=!f.auto,n=f.auto;q=this.convertHeight(Math.round(q),"inner");q=f.min>q?f.min:f.max&&q>f.max?f.max:f.auto&&!l?f.min:q;if(f.max&&f.auto){if(m!=f.max&&q==f.max){j.css("overflow-y","scroll");if(!f.animate){j.focus()}k=true;n=false}if(m==f.max&&q<f.max){j.css("overflow-y","hidden");if(!f.animate){j.focus()}n=false}}if(q==m){return true}this.prevH=q;if(g){e.busy=true;j.animate({height:q},{duration:f.animate,easing:f.easing,overflow:null,inline:true,complete:function(){if(!k){j.css("overflow","hidden")}if(!n){j.focus()}e.busy=false},queue:false})}else{p.style.height=q+"px"}},manualKeyUp:function(d){if(!d.ctrlKey){return}if(d.keyCode!=38&&d.keyCode!=40){return}this.update(this.o.outerHeight()+(this.opt.step*(d.keyCode==38?-1:1)),this.opt.animate)},keyUp:function(d){if(this.busy){return true}if(c.inArray(d.keyCode,[37,38,39,40])!=-1){return true}this.update(this.getDummyHeight(),this.opt.animate)},focus:function(d){if(this.busy){return true}if(this.opt.restore){this.update(this.getDummyHeight(),this.opt.animate)}},blur:function(d){if(this.busy){return true}if(this.opt.restore){this.update(0,false)}},getDummyHeight:function(){var g=this.o.val(),e=0,d=this.sizeRelated,f="\n111\n111";if(c.browser.safari){g=g.substring(0,g.length-1)}if(!d.lh||!d.fs){g+=f}this.dummy.val(g);if(c.browser.msie){this.dummy[0].style.height=this.dummy[0].scrollHeight+"px"}e=this.dummy[0].scrollHeight;if(d.lh&&d.fs){e+=d.lh>d.fs?d.lh+d.fs:d.fs*2}if(c.browser.msie){this.dummy[0].style.height="20px"}return e},createDummy:function(){var f=this.o,e=this.o.val();var d=f.clone().addClass("growfieldDummy").attr("name","").attr("tabindex",-9999).css({position:"absolute",left:-9999,top:0,height:"20px",resize:"none"}).insertBefore(f).show();if(!e){d.val("dummy text")}this.dummy=d;this.update(!jQuery.trim(e)?0:this.getDummyHeight(),false)},convertHeight:function(f,j){var e=this.sizeRelated,d=(j=="inner"?-1:1),g=c.support.boxModel;return f+(g?e.bt:0)*d+(g?e.bb:0)*d+(g?e.pt:0)*d+(g?e.pb:0)*d},prepareSizeRelated:function(){var f=this.o,d=this.opt;if(!d.min){d.min=parseInt(f.css("min-height"),10)||this.firstH||parseInt(f.height(),10)||20;if(d.min<=0){d.min=20}if(!this.firstH){this.firstH=d.min}}if(!d.max){d.max=parseInt(f.css("max-height"),10)||false;if(d.max<=0){d.max=false}}if(!d.step){d.step=parseInt(f.css("line-height"),10)||parseInt(f.css("font-size"),10)||20}var e={pt:parseInt(f.css("paddingTop"),10)||0,pb:parseInt(f.css("paddingBottom"),10)||0,bt:parseInt(f.css("borderTopWidth"),10)||0,bb:parseInt(f.css("borderBottomWidth"),10)||0,lh:parseInt(f.css("lineHeight"),10)||false,fs:parseInt(f.css("fontSize"),10)||false};this.sizeRelated=e}};c.fn.growfield=function(d){if("destroy"==d){return this.each(function(){var f=c(this).data("growfield");if(f==undefined){return true}f.toggle(false);c(this).removeData("growfield");return true})}if("restart"==d){return this.each(function(){var f=c(this).data("growfield");if(f==undefined){return true}f.toggle(false).toggle(true)})}var e=typeof d;return this.each(function(){if(!/textarea/i.test(this.tagName)||c(this).hasClass("growfieldDummy")){return true}var f=false,k=c(this),h=k.data("growfield");if(h==undefined){f=true;k.data("growfield",new b(this));h=k.data("growfield")}if(f){var g=c.extend({},c.fn.growfield.defaults,d);h.setOptions(g)}if(!f&&(!d||e=="object")){h.setOptions(d)}if(e=="string"){if(d.indexOf("!")==0&&c.fn.growfield.presets[d.substr(1)]){k.unbind("."+i+"."+d.substr(1))}else{if(c.fn.growfield.presets[d]){var j=c.fn.growfield.presets[d];h.setOptions(j,d)}}}if(f&&!g.skipEnable){h.toggle(true)}if(!f&&(e=="boolean"||d=="enable"||d=="disable")){h.toggle(d)}})};c.fn.growfield.defaults={};c.fn.growfield.presets={}})(jQuery);