var searcharea;
document.observe('dom:loaded', function() {
	// This allows for more than one search element per page...
	if(typeof($$('.searchForm')) != 'undefined' && $$('.searchForm').size()) {
		$$('.searchForm').each(function(x) { new templateSystem.Search(x); });
	}
});

var templateSystem = {};

templateSystem.Search = Class.create({
	initialize: function(search_form) {
		search_element = search_form.down('.term');
		submit_element = search_form.down('.submit');
		if(!search_element || !submit_element) return false;
		this.default_term   = search_element.getValue();
		this.default_color  = search_element.getStyle('color');
		this.search_element = search_element;

		search_element.observe('focus',  this.clear.bind(this));
		search_element.observe('blur', this.needReset.bind(this));

		submit_element.observe('click', this.findProducts.bind(this));
		search_element.observe('keypress', this.keyPress.bind(this));
	},

	keyPress: function(evt) {
		if(evt.keyCode == Event.KEY_RETURN) this.findProducts(evt);
	},

	clear: function() {
		if(this.default_term == this.search_element.getValue()) {
			this.search_element.setValue('');
			this.search_element.setStyle({color: '#000'});
		}
	},

	needReset: function() {
		if(this.search_element.getValue() == '') {
			this.search_element.setValue(this.default_term);
			this.search_element.setStyle({color: this.default_color});
		}
	},

	findProducts: function(evt) {
		Event.stop(evt);

		if(this.search_element.getValue() == '' || this.search_element.getValue() == this.default_term) alert('You must enter a search term.');
			else location = siteurl + '/search/terms/' + escape(this.search_element.getValue());
	}
});