/**
 * @class Roo.gui.DesignSelectPanel
 * @extends Ext.Panel
 *
 * The DesignSelectPanel is located in the left bar of the page, allowing to show/hide "ontwerp" plannen
 *
 * @author ssmeman
 * @version 1.0
 */

/**
 * @constructor
 * @param {Object} config Configuration options
 */
Roo.gui.DesignSelectPanel = Ext.extend(Ext.form.FormPanel, {
	//texts used on elements of this panel
	titleText: messages.designSelectPanel.title()
	,checkboxLabel: messages.designSelectCheckbox.label()

	//soft config (can be changed from outside)
	,id: 'designSelectPanel'
	,layout: 'anchor'

	,constructor: function(config) {
        // constructor pre-processing - configure listeners here
        config = config || {};
        config.listeners = config.listeners || {};

        Ext.applyIf(config.listeners, {
             afterlayout:{scope:this, fn:function(panel, layout) {
				if(panel.collapseAfterLayout==true) {
					panel.collapse();
				}
            }}
        });

        // call parent contructor
        Roo.gui.DesignSelectPanel.superclass.constructor.apply(this, arguments);
	}

	,initComponent: function() {
		this.addEvents(
            /**
             * @event changedFilter
             * Fires when the checkBox on this panel is checked.
             * @param {Object} this
             */
			'changedFilter'
		);

		var config = {
			title: this.titleText
			,items: [{
				id: 'designCheckbox'
				,xtype: 'checkbox'
				,checked: true
				,boxLabel: this.checkboxLabel
				,listeners: {
					'check': {
						scope: this
						,fn: this.onCheckboxChecked
					}
				}
			}]
		};

		// apply config
		Ext.apply(this, config);
		Ext.apply(this.initialConfig, config);

		// call parent
		Roo.gui.GebruiksmogelijkhedenPanel.superclass.initComponent.apply(this, arguments);

		// after parent code here, e.g. install event handlers
		eventHub.on({
			scope: this
			,'changedFilter': function(parameters) {
				var filter = parameters.filter;
				this.tabChanged = true;

				switch(filter) {
				case 'JURIDISCH':
					Ext.getCmp('designCheckbox').setRawValue(false);
					break;
				case 'ACTUEEL':
					Ext.getCmp('designCheckbox').setRawValue(true);
					break;
				default:
					break;
				}
			}
		});
	} // e/o function initComponent

	,onCheckboxChecked: function(checkbox, value) {
		var lastFilterName = Roo.currentTabFilter.name;

		if(value) {
			Roo.currentTabFilter = { name : 'ACTUEEL' };
			this.fireEvent('changedFilter', {
				'filter': Roo.currentTabFilter.name
				,'lastFilterName': lastFilterName
				,'panelTitle': Ext.getCmp('headerTabs').getActiveTab().title
			});
		} else {
			Roo.currentTabFilter = { name : 'JURIDISCH' };
			this.fireEvent('changedFilter', {
				'filter': Roo.currentTabFilter.name
				,'lastFilterName': lastFilterName
				,'panelTitle': Ext.getCmp('headerTabs').getActiveTab().title
			});
		}
	}
});	// e/o extend

// register xtype
Ext.reg('designSelectPanel', Roo.gui.DesignSelectPanel);
