Ext.ux.SearchField = Ext.extend(Ext.form.TwinTriggerField, {
 initComponent : function(){
	 
	 Ext.ux.SearchField.superclass.initComponent.call(this);
	 this.on('specialkey', function(f, e){
		 if(e.getKey() == e.ENTER){
			this.onTrigger2Click();
		 }
	 }, this);
 },

 validationEvent:false,
 validateOnBlur:false,
 trigger1Class:'x-form-clear-trigger',
 trigger2Class:'x-form-search-trigger',
 hideTrigger1:true,
 hasSearch : false,

 onTrigger1Click : function(){
	 if(this.hasSearch){
		 this.el.dom.value = '';
		 this.triggers[0].hide();
		 this.hasSearch = false;
		 this.focus();

		 Ext.getCmp(this.treeId).filter.clear();
                 Ext.getCmp(this.treeId).collapseAll();
	 }
 },

 onTrigger2Click : function(){
	 var v = this.getRawValue();
	 if(v.length < 1){
		 this.onTrigger1Click();
		 return;
	 }
	 /*
	 if(v.length < 2){
		 Ext.Msg.alert('Invalid Search', 'You must enter a minimum of 2 characters to search');
		 return;
	 }
	 */

	 var val = this.getRawValue(); 
	 var re = new RegExp('.*' + val + '.*', 'i'); 
	 Ext.getCmp(this.treeId).filter.clear(); 
	 Ext.getCmp(this.treeId).filter.filter(re, 'text');

	 this.hasSearch = true;
	 this.triggers[0].show();
	 this.focus();
 }
});
Ext.reg('searchfield', Ext.ux.SearchField);