//
// board management
//

var board_request = null;
var board_offset = 0;

function postMessage(user_id, instance_id)
{
  // build params
  params  = "user_id=" + user_id;
  params += "&instance_id=" + instance_id;
  params += "&message=" + ajaxEncode($("#message").val());
  
  // reset ui
  $("#message").val("").blur();
  board_offset = 0;
  showHideNext();
  setRefreshState();
  
  // submit
  $.post("post.php", params, refresh, "xml");
}

function showHideNext()
{
  // manage board offset
  if (board_offset < 0) board_offset = 0;
  if (board_offset == 0) $('#next').css('visibility', 'hidden');
  else $('#next').css('visibility', 'visible');
}

function refreshBoard(instance_id)
{
  // update ui
  showHideNext();
  setRefreshState();
  
  // refresh
  params  = "instance_id=" + instance_id;
  params += "&offset=" + board_offset;
  $.post("board.php", params, refresh, "xml");
}

function refresh(data)
{
  // reset
  $('#messages').html('');
  var html = '';
  
  // iterate
  var messages = data.getElementsByTagName("message");
  if (messages.length == 0)
  {
    $('#previous').css('visibility', 'hidden');
    html = '<div class="italic center centered">'+strings['eom']+'</div>';
  }
  else
  {
    $('#previous').css('visibility', 'visible');
    for (var i=0;i<messages.length;i++)
    {
      var poster = getNodeValue(messages[i], "poster")
      html += '<div class="message">';
      html += '<a class="author" href="#" onclick="$(\'#message\').focus().val(\'@' + poster + ': \');">' + getNodeValue(messages[i], "poster") + '</a> ';
      html += '<span class="instant">[' + sprintf(strings['ago_mask'], getNodeValue(messages[i], "ago")) + ']</span><br>';
      html += '<span class="content">' + getNodeValue(messages[i], "content") + '</span>';
      html += '</div>';
    }
  }
  
  // done
  $('#messages').html(html);
  $('#post').removeAttr('disabled');
  $('#refresh').attr('src', 'images/refresh.png');
}

function setRefreshState()
{
  $('#messages').html('');
  $('#refresh').attr('src', 'images/loading.gif');
  $('#post').attr('disabled', 'disabled');
}

function toggleBoard()
{
  var board = $('#board');
  if (board.css('display') == 'none')
  {
    board.show();
    $('#grip').attr('src', 'images/grip_left.png');
  }
  else
  {
    board.hide();
    $('#grip').attr('src', 'images/grip_right.png');
  }
}

