if(typeof TechDivision.Autocompleter=="undefined")
{
	throw ("td.library.mapsearchform.js requires including TechDivisions' td.library.autocompleter.js library");
}

TechDivision.mapSearchForm = Class.create();

TechDivision.mapSearchForm.prototype =
{
	initialize:function(b,c,a)
	{
		this.form=$(b);
		this.field=$(c);
		this.emptyText=a;

		Event.observe(this.form,"submit",this.submit.bind(this));
		Event.observe(this.field,"focus",this.focus.bind(this));
		Event.observe(this.field,"blur",this.blur.bind(this));
		
		this.reset();
	},
	
	submit:function(a)
	{
		if(this.field.value==this.emptyText||this.field.value=="")
		{
			Event.stop(a);
			return false;
		}
		
		this.form.submit();
		return true;
	},
	
	blur:function(a){},
	
	focus:function(a)
	{
		if(this.field.value==this.emptyText)
		{
			this.field.value="";
		}
	},
	
	reset:function()
	{
		if(this.field.value=="")
		{
			this.field.value=this.emptyText;
		}
	},
	
	initAutocomplete:function(a,b)
	{
		new TechDivision.Autocompleter(this.field,b,a,{paramName:this.field.name,minChars:2,updateElement:this._selectAutocompleteItem.bind(this)});
	},
	
	_selectAutocompleteItem:function(a)
	{
		if(a.title)
		{
			this.field.value=a.title;
		}
		
		this.submit();
	}
};