Ext.ns('Ext.ux.form');

Ext.ux.form.SearchField = Ext.extend(Ext.form.TwinTriggerField, {
    initComponent
: function(){
       
Ext.ux.form.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,
    width
:180,
    hasSearch
: false,
    paramName
: 'query',

    onTrigger1Click
: function(){
       
if(this.hasSearch){
           
this.el.dom.value = '';
           
var o = {start: 0};
           
this.store.baseParams = this.store.baseParams || {};
           
this.store.baseParams[this.paramName] = '';
           
this.store.reload({params:o});
           
this.triggers[0].hide();
           
this.hasSearch = false;
       
}
   
},

    onTrigger2Click
: function(){
       
var v = this.getRawValue();
       
if(v.length < 1){
           
this.onTrigger1Click();
           
return;
       
}
       
var o = {start: 0};
       
this.store.baseParams = this.store.baseParams || {};
       
this.store.baseParams[this.paramName] = v;
       
this.store.reload({params:o});
       
this.hasSearch = true;
       
this.triggers[0].show();
   
}
});