Event.observe(window,"load", function() {
  $$('input.clearonclick').each(function(element) { new ClearOnClick(element); });
});

var ClearOnClick = Class.create();
  Object.extend(ClearOnClick.prototype, {
  initialize: function(element) {
    this.element = $(element);
    this.originalValue = $F(element);
    this.element.observe("blur", this.onBlur.bind(this));
    this.element.observe("focus", this.onFocus.bind(this));
    var form = this.element.up("form");
    if(form) $(form).observe("submit", this.onFocus.bind(this));
  },
  onFocus: function(event) {
    if($F(this.element) == this.originalValue) {
      this.element.value = "";
      this.element.removeClassName("clearonclick");
    }
  },
  onBlur: function(event) {
    if($F(this.element).match(/^\s*$/)) {
      this.element.value = this.originalValue;
      this.element.addClassName("clearonclick");
    }
  }
}
);
