﻿Ext.namespace("FinnKodeWeb");


FinnKodeWeb.SearchField = Ext.extend(Ext.form.TwinTriggerField, {
    initComponent: function() {
        FinnKodeWeb.SearchField.superclass.initComponent.call(this);
        this.on('specialkey', function(f, e) {
            if (e.getKey() == e.ENTER) {
                this.onTrigger2Click();
            }
        }, this);
        this.addEvents('searchClicked');
        this.on('keyup', function(f, e) {
            e.stopPropagation();
        }, this);
    },

    validationEvent: false,
    validateOnBlur: false,
    trigger1Class: 'x-form-clear-trigger',
    trigger2Class: 'x-form-search-trigger',
    hideTrigger1: true,
    width: 180,
    hasSearch: false,
    paramName: 'query',
    enableKeyEvents: true,

    onTrigger1Click: function() {
        if (this.hasSearch) {
            this.el.dom.value = '';
            this.triggers[0].hide();
            this.hasSearch = false;
            this.focus();
        }
    },

    onTrigger2Click: function() {
        var v = this.getRawValue();
        if (v.length < 1) {
            this.onTrigger1Click();
            return;
        }
        this.hasSearch = true;
        this.triggers[0].show();
        this.focus();
        this.fireEvent('searchClicked', v)
    }
});
