title: TextAreaExpander plugin for jQuery: Error for know the browser
body: <p>I using the plugin's programmed in javascript or Query from two years.</p>
  
  <p>Now I opened this my project with my plugin for expander the textarea.</p>
  
  <p>I have this new error on this sentence (analizying with Firebug).
      TypeError: $.browser is undefined</p>
  
  <pre><code>var hCheck = !($.browser.msie || $.browser.opera);
  </code></pre>
  
  <p>Why?</p>
  
  <p>Info </p>
  
  <pre><code>/**
  * TextAreaExpander plugin for jQuery
  * v1.0
  * Expands or contracts a textarea height depending on the
  * quatity of content entered by the user in the box.
  *
  * By Craig Buckler, Optimalworks.net
  *
  * As featured on SitePoint.com:
  * http://www.sitepoint.com/blogs/2009/07/29/build-auto-expanding-textarea-1/
  *
  * Please use as you wish at your own risk.
  */
  /**
  * Usage:
  *
  * From JavaScript, use:
  * $(&lt;node&gt;).TextAreaExpander(&lt;minHeight&gt;, &lt;maxHeight&gt;);
  * where:
  * &lt;node&gt; is the DOM node selector, e.g. "textarea"
  * &lt;minHeight&gt; is the minimum textarea height in pixels (optional)
  * &lt;maxHeight&gt; is the maximum textarea height in pixels (optional)
  *
  * Alternatively, in you HTML:
  * Assign a class of "expand" to any &lt;textarea&gt; tag.
  * e.g. &lt;textarea name="textarea1" rows="3" cols="40" class="expand"&gt;&lt;/textarea&gt;
  *
  * Or assign a class of "expandMIN-MAX" to set the &lt;textarea&gt; minimum and maximum height.
  * e.g. &lt;textarea name="textarea1" rows="3" cols="40" class="expand50-200"&gt;&lt;/textarea&gt;
  * The textarea will use an appropriate height between 50 and 200 pixels.
  */
  (function($) {
  // jQuery plugin definition
  $.fn.TextAreaExpander = function(minHeight=21, maxHeight) {
  var hCheck = !($.browser.msie || $.browser.opera);
  // resize a textarea
  function ResizeTextarea(e) {
  // event or initialize element?
  e = e.target || e;
  // find content length and box width
  var vlen = e.value.length, ewidth = e.offsetWidth;
  if (vlen != e.valLength || ewidth != e.boxWidth) {
  if (hCheck &amp;&amp; (vlen &lt; e.valLength || ewidth != e.boxWidth)) e.style.height = "0px";
  var h = Math.max(e.expandMin, Math.min(e.scrollHeight, e.expandMax))+2;
  e.style.overflow = (e.scrollHeight &gt; h ? "auto" : "hidden");
  e.style.height = h + "px";
  e.valLength = vlen;
  e.boxWidth = ewidth;
  }
  return true;
  };
  // initialize
  this.each(function() {
  // is a textarea?
  if (this.nodeName.toLowerCase() != "textarea") return;
  // set height restrictions
  var p = this.className.match(/expand(\d+)\-*(\d+)*/i);
  this.expandMin = minHeight || (p ? parseInt('0'+p[1], 10) : 0);
  this.expandMax = maxHeight || (p ? parseInt('0'+p[2], 10) : 99999);
  // initial resize
  ResizeTextarea(this);
  // zero vertical padding and add events
  if (!this.Initialized) {
  this.Initialized = true;
  $(this).css("padding-top", 0).css("padding-bottom", 0);
  $(this).bind("keyup", ResizeTextarea).bind("focus", ResizeTextarea);
  }
  });
  return this;
  };
  })(jQuery);
  // initialize all expanding textareas
  jQuery(document).ready(function() {
  jQuery("textarea[class*=expand]").TextAreaExpander();
  })
  </code></pre>