Function.prototype.bind=function(b){var c=this,a=function(){return c.apply(b,arguments)};return(a)};SEMods=function(){};SEMods.TextAreaControl=function(a){this.obj=a;this.obj.style.overflow="hidden";this.originalHeight=this.obj.getStyle("height").toInt();var b=this.update.bind(this);a.addEvent("focus",this.onFocus.bind(this));a.addEvent("blur",this.onBlur.bind(this));this.update()};SEMods.TextAreaControl.prototype={obj:null,updating:false,autoGrow:false,originalHeight:null,shadowElement:null,increment:0,timer:null,lastLength:0,setAutoGrow:function(a){this.autoGrow=a;this.createShadowElement();this.update()},onUpdate:function(){if(this.autoGrow&&this.lastLength!=this.obj.value.length){this.lastLength=this.obj.value.length;this.updateShadowElement();this.obj.style.height=Math.max(this.originalHeight,this.shadowElement.offsetHeight+this.increment)+"px"}},beginUpdate:function(){if(this.updating){return false}this.updating=true;return true},endUpdate:function(){this.updating=false},update:function(){if(!this.beginUpdate()){return}this.onUpdate();this.endUpdate()},createShadowElement:function(){if(this.shadowElement){return}this.shadowElement=document.createElement("DIV");this.shadowElement.style.position="absolute";this.shadowElement.style.top="-99999px";this.shadowElement.style.left="-99999px";document.body.appendChild(this.shadowElement)},updateShadowElement:function(){if(this.shadowElement){text=this.obj.value+"<br>";this.shadowElement.innerHTML=text.toString().replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br />");var b=this.getPXMetrics(this.obj.getStyle("font-size"),10);var a=this.obj.getStyle("line-height");if((/Opera/i.test(navigator.userAgent))){a=this.getPXMetrics(a,0)+3+"px"}this.increment=b+10;this.shadowElement.style.width=this.obj.offsetWidth+"px";this.shadowElement.style.lineHeight=a;this.shadowElement.style.fontSize=this.obj.getStyle("font-size");this.shadowElement.style.fontFamily=this.obj.getStyle("font-family");this.shadowElement.style.paddingLeft=this.obj.getStyle("padding-left");this.shadowElement.style.paddingRight=this.obj.getStyle("padding-right")}},onFocus:function(){this.timer=setInterval(this.update.bind(this),500)},onBlur:function(){if(this.timer){clearInterval(this.timer);this.timer=null}},getPXMetrics:function(c,b){var a=parseFloat(c);if(isNaN(a)){return b!=null?b:a}return/px/i.test(c)?a:/pt/i.test(c)?1.3333*a:a}};function textarea_autogrow(a){var b=$(a);if(b&&!b._controlled){b._controlled=true;new SEMods.TextAreaControl(b).setAutoGrow(true);return b.getStyle("height").toInt()}};