/**
 * @author Beheerder
 */

var radiogroupext = new Object();

radiogroupext = {
    afterRender : function() {
       var group;
		group = this;
        this.items.each(function(field) {
            // Listen for 'check' event on each child item
            field.on("check", function(self, checked) {
             
              // if checkbox is checked, then fire 'change' event on RadioGroup container
              if(checked)
                // Note, oldValue (third parameter in 'change' event listener) is not passed, 
                // because is not easy to get it
                group.fireEvent('change', group, self.getRawValue());
               
            });
        });
       
        Ext.form.RadioGroup.superclass.afterRender.call(this);
    }

};

Ext.override(Ext.form.RadioGroup, radiogroupext); 

// declare VType for phonenumber
Ext.form.VTypes["phoneVal"] = /^(\d{10,})$/;
Ext.form.VTypes["phoneMask"] = /[\d]/;
Ext.form.VTypes["phoneText"] = 'Minimaal 10 cijfers en alleen cijfers, dus geen -, + of ()';
Ext.form.VTypes["phone"] = function(v){
	return Ext.form.VTypes["phoneVal"].test(v);
};

Ext.form.VTypes["euroVal"] = /^([\d]{1,3}\.)?([\d]{3}\.)*[\d]{3}(,[\d]{2})?$|^[\d]{1,3}(,[\d]{2})?$/;
Ext.form.VTypes["euroMask"] = /[\d,\.]/;
Ext.form.VTypes["euroText"] = 'Getal dient in euro\'s te worden ingevuld, met een punt als scheiding voor duizendtallen en een komma voor decimalen. Voorbeeld : 1.234.567,89';
Ext.form.VTypes["euro"] = function(v){
	return Ext.form.VTypes["euroVal"].test(v);
};

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

Ext.ux.layout.CenterLayout = Ext.extend(Ext.layout.FitLayout, {
	// private
    setItemSize : function(item, size){
        this.container.addClass('ux-layout-center');
        item.addClass('ux-layout-center-item');
        if(item && size.height > 0){
            if(item.width){
                size.width = item.width;
            }
            item.setSize(size);
        }
    }
});
Ext.Container.LAYOUTS['ux.center'] = Ext.ux.layout.CenterLayout;
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 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();
    },
    afterRender: function() {
        Ext.form.TwinTriggerField.superclass.afterRender.call(this);
        if (Ext.isIE && !this.hideTrigger) {
            this.el.position();  
            this.el.applyStyles("top: 1px;");
        } 
    }

});


