module.exports = new Class
({
	Extends: Htk.Field
	,Tag: 'htk-search-entry'
	
	,render: function ()
	{
		var div = this.createRoot ('div');
		div.className = 'htk-search-entry';
		
		var icon = new Htk.Icon ({
			icon: 'search',
			alt: _('Search')
		});
		div.appendChild (icon.node);
		
		var input = this.createElement ('input');
		input.className = 'entry';
		input.type = 'text';
		input.placeholder = _('Search');
		input.addEventListener ('change', this._onChange.bind (this));
		div.appendChild (input);

		this._input = input;
	}

	,_onChange: function (event)
	{
		var newValue;
	
		if (this._input.value === '')
			newValue = undefined;
		else
			newValue = this._input.value;

		this.valueChanged (newValue);
	}

	,putValue: function (value)
	{
		if (!value)
			this._input.value = '';
		else
			this._input.value = value;
	}

	,setEditable: function (editable)
	{
		this.node.readOnly = !editable;
	}
});