if(typeof TechDivision.StreetAutocompleter=="undefined")
{
	throw ("td.library.streetsearchform.js requires including TechDivisions' td.library.streetautocompleter.js library");
}

TechDivision.streetSearchForm=Class.create();

TechDivision.streetSearchForm.prototype=
{
	initialize:function(c,d,b,a)
	{
		this.form=$(c);
		this.field=$(d);
		this.emptyText=b;
		this.hiddenField=$(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;
		}
		
		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.StreetAutocompleter(this.field,this.hiddenField,b,a,{paramName:this.field.name,minChars:2,updateElement:this._selectAutocompleteItem.bind(this)});
	},
	
	_selectAutocompleteItem:function(a)
	{
		if(a.title)
		{
			this.field.value=a.title;
		}
		
		if(a.id)
		{
			this.hiddenField.value=a.id;
			MM_controlShockwave("map","",this.hiddenField.value);
		}
		this.submit();
	}
};