/*
 * Clear the default value of any input fields with class "query" when
 * clicked.
 */
var Query = {
	defaultValues: {},

	_getKey: function(field) {
		return field.id ? field.id : field.form.action + "_" + field.name;
	},
	setDefaultValue: function(field, value) {
		var key = Query._getKey(field);
		Query.defaultValues[key] = value;
	},
	getDefaultValue: function(field) {
		var key = Query._getKey(field);
		return Query.defaultValues[key];
	},
	init: function() {
		var inputs = document.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++) {
			var input = inputs[i];
			if (Element.hasClassName(input, 'query')) {
				// Let page override value
				if (Query.getDefaultValue(input) == null) {
					Query.setDefaultValue(input, input.defaultValue);
				}

				addEvent(input, 'onfocus', function() { Query.activate(this) });
				addEvent(input, 'onblur', function() { Query.deactivate(this) });

				if (input.value != Query.getDefaultValue(input)) {
					Query.activate(input);
				}
			}
		}
	},
	activate: function(field) {
		Element.addClassName(field, 'active');
		if (field.value == Query.getDefaultValue(field)) {
			field.value = '';
		}
	},
	deactivate: function(field) {
		if (field.value == '') {
			Element.removeClassName(field, 'active');
			field.value = Query.getDefaultValue(field);
		}
	}
};

addEvent(window, 'onload', Query.init);

