context: function textArea(element) {  var ta = this;  this.element = element;  this.parent = this.element.parentNode;  this.dimensions = dimensions(element);    // Prepare wrapper  this.wrapper = document.createElement('div');  this.wrapper.className = 'resizable-textarea';  this.parent.insertBefore(this.wrapper, this.element);  // Add grippie and measure it  this.grippie = document.createElement('div');  this.grippie.className = 'grippie';  this.wrapper.appendChild(this.grippie);  this.grippie.dimensions = dimensions(this.grippie);  this.grippie.onmousedown = function (e) { ta.beginDrag(e); };  this.element.onmouseup = function (e) { ta.endDrag(e); };  // Set wrapper and textarea dimensions  this.wrapper.style.height = this.dimensions.height + this.grippie.dimensions.height + 1 +'px';  this.element.style.marginBottom = '0px';  this.element.style.width = '100%';  this.element.style.height = this.dimensions.height +'px';  // Wrap textarea  removeNode(this.element);  this.wrapper.insertBefore(this.element, this.grippie);  // Measure difference between desired and actual textarea dimensions to account for padding/borders  this.widthOffset = dimensions(this.wrapper).width - this.dimensions.width;  // Make the grippie line up in various browsers  if (window.opera) {    // Opera    this.grippie.style.marginRight = this.widthOffset +'px';  }  if (document.all && !window.opera) {    // IE    this.grippie.style.width = '100%';    this.grippie.style.paddingLeft = '2px';  }  // Mozilla  this.element.style.MozBoxSizing = 'border-box';    this.heightOffset = absolutePosition(this.grippie).y - absolutePosition(this.element).y - this.dimensions.height;}
meta: 639	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/639/ea2d79109595f0c936259ffacfccd904f8dcd599/textarea.js/buggy/misc/textarea.js