var HintField = Behavior.create();

Object.extend(HintField.prototype, {
  initialize: function() {
    this._hintify(this.element);
		var parent_form = this.element.up('form');
		if (parent_form) {
			parent_form.observe('submit', function(e) { 
				this._unhintify(this.element); 
			}.bind(this) );
		}
  },
	_hintify: function(element) {
		if (element.value == '' || element.value == element.title) {
			element.value = element.title;
			element.removeClassName('hintplease');
			element.addClassName('hint');
		}
	},
	_unhintify: function(element) {
		if (element.hasClassName('hint')) {
			element.value = '';
			element.removeClassName('hint');
			element.addClassName('hintplease');		
		}
	},
	onfocus: function(event) {
		element = Event.element(event);
		this._unhintify(element);
		// Event.stop(event);
	},
	onblur: function(event) {
		element = Event.element(event);
		// Event.stop(event);
    this._hintify(this.element);
	}
});

Event.addBehavior({
 '.hintplease' : HintField(),
  '#submit:click': function() {
    // Remove hints from HintFields on the page
    elements = $$('.hint'); 
    HintField.instances.each( function(h) { e = elements.shift(); h._unhintify(e); })
    this.up('form').submit();
    return false;
  }
});
