ForumMessageManager = {

	messagesAction : function() {
		var actionName = $('messageActionSelect').value;
		return this[actionName]();
	},

	getMessageIds : function() {
		var checkboxElements = $$('input.message_checkbox');
		var ids = new Array();
		if (!checkboxElements) {
			return ids;
		}
		for ( var i = 0; i < checkboxElements.length; i++) {
			if (checkboxElements[i].checked) {
				ids.push(checkboxElements[i].readAttribute('id').replace(
						'message_', ''));
			}
		}
		return ids;
	},

	hideMessages : function() {
		var messageIds = this.getMessageIds();
		if (!messageIds.length) {
			alert('Нет отмеченных сообещний');
			return;
		}
		var reasonsText = prompt("Причины: ", "");
		if (reasonsText == null) {
			return;
		}
		return this.ajaxRequest('hideMessages', {
			ids : messageIds.toString(),
			reasons : reasonsText
		});
	},

	unhideMessages : function() {
		var messageIds = this.getMessageIds();
		if (!messageIds.length) {
			alert('Нет отмеченных сообещний');
			return;
		}
		if (!confirm('Показать отмеченные сообщения?')) {
			return;
		}
		return this.ajaxRequest('unhideMessages', {
			ids : messageIds.toString()
		});
	},

	deleteMessages : function() {
		var messageIds = this.getMessageIds();
		if (!messageIds.length) {
			alert('Нет отмеченных сообещний');
			return;
		}
		if (!confirm('Удалить все отмеченные сообщения?')) {
			return;
		}
		return this.ajaxRequest('deleteMessages', {
			ids : messageIds.toString()
		});
	},

	ajaxRequest : function(action, params) {
		new Ajax.Request('/ajax!/forum/' + action + '/', {
			parameters : params,
			onComplete : function(response) {
				window.location.reload();
			}
		});
	}
};
