var Twitter = Class.create(
{   
	loadMessages: function(numberOfMessages)
	{
		var options = {
			parameters: { n : numberOfMessages },
			
			method: 'post',
			
			onComplete: function(obj) {
				var html = '';
				
				var response = obj.responseText.evalJSON(true);
				var results = $H(response).get('results');
				var areMessagesReturned = results != '';
				
				if (areMessagesReturned)
				{
					html = '<ul>';
					
					var messages = $A(results);
					messages.each(function(message) {
						html += '<li>' + message + '</li>';
					}.bind(this));
	    			
	    			html += '</ul>';
				}
				
				else
					html = '<p>No messages to retrieve</p>';
				
				Element.update('twitterMessages', html);	
			}.bind(this),
			
			onFailure: function() {
				var html = '<p>No messages to retrieve</p>';
				Element.update('twitterMessages', html);
			}.bind(this)
		};
		
		new Ajax.Request('/twitter/getmessages/', options);
	},
	
	sendMessage: function()
	{
		var message = $('twitterMessage').value.strip();
		
		var options = {
			parameters: { message : message },
			
			method : 'post',
			
            onCreate: function(obj) {
            	$('twitterSubmit').disable();
            },
			
			onComplete: function(obj) {
				$('twitterMessage').value = '';
				$('twitterSubmit').enable();
				
				new Effect.Highlight('twitterMessage', { startcolor: '#ffff99', endcolor: '#ffffff', restorecolor: '#ffffff'});
			}.bind(this),
			
			onFailure: function(obj) {
				$('twitterMessage').value = '';
				$('twitterSubmit').enable();
			}.bind(this)
		};
		
		if (message != '')
			new Ajax.Request('/twitter/sendmessage/', options);
		
		return false;
	}
});

var twitterUtil = new Twitter();


document.observe('dom:loaded', function() 
{	
	twitterUtil.loadMessages(4);
    /*
    $('twitterSubmit').observe(
        'click',
        function() { twitterUtil.sendMessage(); }
    );
    $('twitterSubmit').onclick = function() { return false; }
    */
});
