/**
 * functions for artist - fanblock area
 *
 * [2007-10-01 js] created
 *
 * $Rev: 480 $ Revision of last commit
 * $Author: jan $ Author of last commit
 * $Date: 2008-09-26 08:30:09 +0200 (Fr, 26 Sep 2008) $ Date of last commit
 */

var Shoutbox = (function() {

	var
	  // save xmlHttp object
	  request = null,

	  // last timestamp
	  lasttime = 0;

	var update = function(options) {

		// prevent flooding
		if ( request ) {
			request.abort();
		}

		// set lasttime
		options.lasttime = lasttime;

		request = $.ajax({
		  type: "POST",
		  url: url,
		  dataType: "json",
	    data: options,
		  success: function(data) {

		  	// set lasttime
		  	lasttime = data.lasttime;

		  	var notes = $(shoutbox_id + " > .chat-list > .chat-list-note");

		  	// apply new chat content
		  	if (data.content) {

		  		if (notes) {
		  			notes.remove();
		  		}

		  		$(shoutbox_id + " > .chat-list").append(data.content)

			  	// reinitialize the scroll
					$(shoutbox_id).jScrollPane({
						showArrows:	true
					});

					// scroll to the bottom if necessary
					if ($(".jScrollPaneTrack").is(":visible")) {

						// set up to a high number to perform a bottom scroll
				  	$(shoutbox_id)[0].scrollTo(99999);
					}
		  	}

		  	if (data.redirect) {

		  		window.location.href = data.redirect;
		  	}

		  },
		  error: function(data) {

		  	alert(data.responseText);
		  }
		});
	}

	return {

		setOptions: function(data) {

			shoutbox_id = data.shoutbox_id || 0;
			url = data.url;
		},
		sendMessage: function(message) {

			update({
				type: "add",
				message: message
			});
		},
		refresh: function() {

			update({});
		}
	}
})();
