var TextBoxUtil = {
  /**
   *  onkeydown="TextBoxUtil.limitText($('myTextField'), 3500, $('displayCounterElement'));" onkeyup="TextBoxUtil.limitText($('myTextField'), 3500, $('displayCounterElement'));"
   */
  limitText: function(textfield, max, countContainer) {
    var charsRemaining = 0;

    if (textfield.value.length > max) {
      textfield.value = textfield.value.substring(0, max);
    } else {
      charsRemaining = max - textfield.value.length;
    }

    if(countContainer) countContainer.innerHTML = charsRemaining;
    return charsRemaining;
  },

  count: function(textfield, countContainer, max) {
    var charcount = textfield.value.length;

    if(countContainer) {
      if(max) {
        return limitText(textfield, max, countContainer);
      } else {
        countContainer.innerHTML = charcount;
      }
    }

    return charcount;
  }
}