/*
 * Ext JS Library 2.0
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 *
 * http://extjs.com/license
 */

Ext.ux.GridSearchField = Ext.extend(Ext.form.TwinTriggerField, {
  initComponent : function(){
    Ext.ux.GridSearchField.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',
  
  // CWX:Added
    colParamName: 'column',
    compParamName: 'compare',

  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;
    // CWX:Added
      if (this.initialConfig.colComboId && this.initialConfig.compComboId) {
        this.store.baseParams[this.colParamName] = Ext.getCmp(this.initialConfig.colComboId).getValue();
        this.store.baseParams[this.compParamName] = Ext.getCmp(this.initialConfig.compComboId).getValue();
      }
    this.store.reload({params:o});
    this.hasSearch = true;
    this.triggers[0].show();
  }
});
