 function textAreasInit(){
  var objs = document.getElementsByTagName("textarea");
  var oi = 0; //oi is object index
  var thisObj;

  for (oi=0;oi<objs.length;oi++) {
   thisObj = objs[oi];
   // note that maxlength is case sensitve
   if (thisObj.getAttribute("maxlength")){
    thisObj.onkeyup = forceMaxLength;
   }
  }
 }

 function forceMaxLength(){
  var maxLength = parseInt(this.getAttribute("maxlength"));
  if(this.value.length > maxLength){
   this.value = this.value.substring(0,maxLength);
  }
  else {
    document.getElementById('remLen').value = maxLength - this.value.length;
  }
 }

 function addEvent(elm, evType, fn, useCapture)
 // addEvent and removeEvent
 // cross-browser event handling for IE5+,  NS6 and Mozilla
 {
   if (elm.addEventListener){
  elm.addEventListener(evType, fn, useCapture);
  return true;
   } else if (elm.attachEvent){
  var r = elm.attachEvent("on"+evType, fn);
  return r;
   } else {
  alert("Handler could not be removed");
   }
 }
 addEvent(window, "load", textAreasInit);
