/*
 * Ext JS Library 2.2
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

Ext.app.SearchField = Ext.extend(Ext.form.TwinTriggerField, {
    initComponent : function(){
        Ext.app.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 barcode=Ext.getCmp('cb-barcode').getValue();
				var author=Ext.getCmp('cb-author').getValue();
				var title=Ext.getCmp('cb-title').getValue();
				
				var media_srch_filter="";
				var qryOp = " OR ";
    		var qryOpLength = qryOp.length;
    		var strwhere = "";
    		var strSQL="";
            v = "*" + v + "*";            
				if (barcode) {
	  			media_srch_filter=media_srch_filter + qryOp + "barcode Like " + "'" + v + "'";
				}
				if (title) {
      		media_srch_filter=media_srch_filter + qryOp + "title Like " + "'" + v + "'";
				}
				if (author) {
      		media_srch_filter=media_srch_filter + qryOp + "author Like " + "'" + v + "'";
				}

  			if (media_srch_filter.length > qryOpLength) {
  	  		strSQL=media_srch_filter.substring(qryOpLength);
  			} else { 
  	  		strSQL="";
  			} 
  			strSQL=strSQL.replace(/%/g,"*");
  			//strSQL = strSQL.replace(/%/g,"%25");
				
        var o = {start: 0};
        this.store.baseParams = this.store.baseParams || {};
        this.store.baseParams[this.paramName] = strSQL;
        this.store.reload({params:o});
        this.hasSearch = true;
        this.triggers[0].show();
    }
});