/**************************************/
/* GetN																*/
/**************************************/
var noOfMessagesToShow = 10;

function GetN()
{
  this.N = 0;
  this.firstMessage = 0;
  this.guestbookID = null;
  this.reload = true;

	var self = this;

  this.get = function()
  {
		// ensures that we only do retrieve new messages if something has been changed or reload is set to true
		new Ajax.Request('server2.php',
											 {method: 'post',
												parameters: 'action=getLastUpdated&guestbookID=' + self.guestbookID + '&noOfMessages=' + self.N + '&firstMessage=' + self.firstMessage,
												onSuccess: self.getLastUpdatedSuccess,
												onFailure: self.getNFailure});
  };

  this.getLastUpdatedSuccess = function(r)
  {
		//Element.show('onlineImg');
		//Element.hide('offlineImg');

		var lxml = r.responseXML;
    var currentLastUpdated = $A(lxml.getElementsByTagName('LastUpdated'));

		if((($('lastUpdated').innerHTML)<(currentLastUpdated[0].childNodes[0].nodeValue)) || (self.reload))
		{
			$('lastUpdated').innerHTML = currentLastUpdated[0].childNodes[0].nodeValue;

			new Ajax.Request('getN.php',
											 {method: 'post',
												parameters: 'guestbookID=' + self.guestbookID + '&noOfMessages=' + self.N + '&firstMessage=' + self.firstMessage,
												onSuccess: self.getNSuccess,
												onFailure: self.getNFailure});
		}
	};

  this.getNSuccess = function(r)
  {
		var xml = r.responseXML;
    var messages = $A(xml.getElementsByTagName('Message'));
    var bodies = '';
    var IDs = new Array();

    messages.each(function(m)
    {
      var mObj = new Message();
      mObj.loadFromXMLNode(m);

      bodies += mObj.html;
	    IDs.push(mObj.ID);
		});

		$('messages').innerHTML = bodies;

		// Hide/show forward functionality
		if(firstMessage==0)
		{
			Element.hide('forwardUp');
			Element.hide('forwardDown');
		}
		else
		{
			Element.show('forwardUp');
			Element.show('forwardDown');
		}

		// Hide/show backward functionality
		if(IDs.length<noOfMessagesToShow)
		{
			Element.hide('backwardUp');
			Element.hide('backwardDown');
		}
		else
		{
			Element.show('backwardUp');
			Element.show('backwardDown');
		}

		IDs.each(function(id)
		{
			//Event.observe('toggleHideIcon_'+id, 'click', toggleHide);
			//Event.observe('editMessageIcon_'+id, 'click', editMessage);
		});
  };

  this.getNFailure = function(r)
  {
		//Element.show('offlineImg');
		//Element.hide('onlineImg');
  };
}
