/**
 * Handles shoutbox entries
 * 
 * @author		Sebastian Öttl
 * @copyright	2009 MysteryForce.de
 * @license		MysteryForce Shoutbox License <http://www.mysteryforce.de/wcf/shoutbox/license.php>
 * @package		com.mysteryforce.wcf.shoutbox
 * @subpackage	js
 * @category 	Shoutbox
 */
var Shoutbox = Class.create({
	/**
	 * Initializes this class and calls a periodical update of the entries
	 */
	initialize: function(interval) {
		if (interval != 0) {
			this.ajaxRequest = new Ajax.PeriodicalUpdater('shoutboxContent', 'index.php?page=ShoutboxAction&action=getEntries'+SID_ARG_2ND, {
				method: 'get',
				frequency: interval
			});
		}
	},
	
	/**
	 * Adds a new entry
	 */
	addEntry: function() {
		if ($('shoutboxMessage')) {
			this.message = $('shoutboxMessage').value;
			$('shoutboxMessage').value = '';
		}
		if ($('shoutboxUsername')) {
			this.username = $('shoutboxUsername').value;
		}
		
		this.ajaxRequest = new Ajax.Request('index.php?page=ShoutboxAction&action=add'+SID_ARG_2ND, {
			method: 'get',
			parameters: {
				message: this.message,
				username: this.username
			},
			onSuccess: this.updateEntries
		});
	},

	/**
	 * Deletes an entry
	 */	
	deleteEntry: function(entryID) {
		this.ajaxRequest = new Ajax.Request('index.php?page=ShoutboxAction&action=delete'+SID_ARG_2ND, {
			method: 'get',
			parameters: {
				entryID: entryID
			},
			onSuccess: this.updateEntries
		});		
	},
	
	/**
	 * Updates entries
	 */
	updateEntries: function(interval) {
		this.ajaxRequest = new Ajax.Updater('shoutboxContent', 'index.php?page=ShoutboxAction&action=getEntries'+SID_ARG_2ND, {
			method: 'get'
		});
	}
});