var VDB = VDB || {};

/*
 * Class that manages the controls and widgets for the Verbeterbuurt application
 */
VDB.WidgetManager = new Class({
	/**
	 * Constructor function
	 * @param {Object} config Object literal with parameters for the widgets
	 * @param {Object} application The application that handles user interaction 
	 */
	initialize: function (config, application){
		if (!GBrowserIsCompatible()) return false;
		this._application = application;
		this._config = config;	
		
		if(this._config.controls != undefined) {
			this.setCategoriesWidgetVisibility(this._config.controls.categories);
			this.setSearchaddressWidgetVisibility(this._config.controls.searchaddress);
			this.setAddbtnsWidgetVisibility(this._config.controls.addbtns);
			this.setCouncilInfoWidgetVisibility(this._config.controls.councilinfo);
		} 
	},
	
	setWidgetVisibility: function(widgetId, control, visibility) {
		$$('#'+widgetId).setStyle('display', (visibility && control ? 'block' : 'none'));
	},
	setCategoriesWidgetVisibility: function(visibility){
		this.setWidgetVisibility(
			'widget-categories', 
			(!this._config.controls || (this._config.controls && this._config.controls.categories)),
			visibility
		);
	},
	setSearchaddressWidgetVisibility: function(visibility){
		this.setWidgetVisibility(
			'widget-searchaddress', 
			(!this._config.controls || (this._config.controls && this._config.controls.searchaddress)),
			visibility
		);
	},
	setAddbtnsWidgetVisibility: function(visibility){
		this.setWidgetVisibility(
			'widget-addbtns', 
			(!this._config.controls || (this._config.controls && this._config.controls.addbtns)),
			visibility
		);
	},
	setCouncilInfoWidgetVisibility: function(visibility){
		this.setWidgetVisibility(
			'widget-council-info', 
			(!this._config.controls || (this._config.controls && this._config.controls.councilinfo)),
			visibility
		);
	},
	setMessageWidgetVisibility: function(visibility){
		this.setWidgetVisibility(
			'widget-message', 
			(!this._config.controls || (this._config.controls && this._config.controls.messageWidget)),
			visibility
		);
	}
//FIXME
//Get controls actions from maps and scripts to here 
});
