var Controller_Information = Class.create(
{
	contentContainerId: 'informationContent',
	blockContainerSuffix: 'block',
	messageContainerClass: 'message',


	buildingInterface: function ()
	{
		this.manageVisibility();
	},

	getElement_block: function (name, returnArray)
	{
		if(Object.isUndefined(returnArray)) {
			returnArray = false;
		}

		var blockContainer = $$('#'+this.contentContainerId+' div.'+name+'_'+this.blockContainerSuffix);
		return (returnArray) ? (blockContainer) : (blockContainer.first());
	},

	getElement_message: function (blockContainer, returnArray)
	{
		if(Object.isUndefined(returnArray)) {
			returnArray = false;
		}

		var messageContainer = blockContainer.select('div.'+this.messageContainerClass);
		return (returnArray) ? (messageContainer) : (messageContainer.first());
	},

	displayNotice: function (noticeArray)
	{
		this.displayMessage('notice', noticeArray);
	},

	displayWarning: function (warningArray)
	{
		this.displayMessage('warning', warningArray);
	},

	displayError: function (errorArray)
	{
		this.displayMessage('error', errorArray);
	},

	displayMessage: function (name, messageArray)
	{
		var blockContainer = this.getElement_block(name);
		var messageContainer = this.getElement_message(blockContainer);

		if (Object.isString(messageArray)) {
			messageArray = [messageArray];
		}
		else if (!Object.isArray(messageArray)) {
			messageArray = [];
		}

		messageContainer.innerHTML = "";
		$A(messageArray).each( function (item) { messageContainer.innerHTML += '<div class="'+name+'">'+item+'</div>'; }, this );
		this.manageVisibility();

		new Ihm_Document().rezise_mainBottom();
	},

	manageVisibility: function ()
	{
		var isEmpty = true;
		var blockContainers = this.getElement_block('abstract', true);

		$A(blockContainers).each
		(
			function (blockContainer)
			{
				var element = this.getElement_message(blockContainer);
				(!element.empty()) ? (blockContainer.show()) : (blockContainer.hide());
				isEmpty = (isEmpty && element.empty());
			}, this
		);

		if (isEmpty) {
			$(this.contentContainerId).hide();
		}
		else {
			$(this.contentContainerId).show();
		}
	}
}
);

var controllerInformationObject = new Controller_Information();