var Countable = new Class({
 
  initialize: function(inputId, max, className, errorClass) {
 
    this.input = $(inputId);
 	this.max = max;
 	this.className = className ? className : "count";
 	this.errorClass = errorClass ? errorClass : "error";
 
    this.handle = new Element("div", {class: this.className});
    this.handle.set('html', '&nbsp;').injectAfter(this.input);
    this.input.addEvent('keydown', this.onKeyPress.bindWithEvent(this));
    this.input.addEvent('keyup', this.onKeyPress.bindWithEvent(this));
    this.update();
 
  },
 
  onKeyPress: function(event) {
    event = new Event(event);
    if(!event.shift && !event.control && !event.alt && !event.meta) this.update();
  },
 
  update: function() {
 
    if (this.input.value.length > this.max)
      this.input.value = this.input.value.substring(0, this.max);
 
      var count = this.max - this.input.value.length;
 
      if (count == 0) {
        var string = "<span class=\""+this.errorClass+"\">No puedes usar mas caracteres.</span>";
      } else if (count == 1) {
        var string = "Queda 1 caracter para usar.";
      } else {
        var string = "Quedan " + count + " caracteres para usar.";
      }
      this.handle.set('html', string);
  }
 
});