message_offset = 0;
items_per_page = 20;

function getArrayIndexBySelectedMessageId(id)
{
   for (var i = 0; i < messages.length; i++)
      if (messages[i][0] == id)
         return i;
   return -1;
}

function getRateIcons(id, grade)
{
   return '<a href="#" onmouseover="window.status=\'Rate message\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return clickRateIcon(' + id + ', ' + 5 + ');"><img src="images/smiley'+(grade > 0 ? '' : '_dim')+'.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Below average"></a>' +
   '<a href="#" onmouseover="window.status=\'Rate message\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return clickRateIcon(' + id + ', ' + 4 + ');"><img src="images/smiley'+(grade > 1 ? '' : '_dim')+'.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Average"></a>' +
   '<a href="#" onmouseover="window.status=\'Rate message\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return clickRateIcon(' + id + ', ' + 3 + ');"><img src="images/smiley'+(grade > 2 ? '' : '_dim')+'.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Above average"></a>' +
   '<a href="#" onmouseover="window.status=\'Rate message\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return clickRateIcon(' + id + ', ' + 2 + ');"><img src="images/smiley'+(grade > 3 ? '' : '_dim')+'.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Excellent"></a>' +
   '<a href="#" onmouseover="window.status=\'Rate message\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return clickRateIcon(' + id + ', ' + 1 + ');"><img src="images/smiley'+(grade > 4 ? '' : '_dim')+'.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Superior"></a>';
}

function buildMessageTable(logged_in, offset)
{
   var tr, td;
   if (document.getElementById('messages').rows.length > 0)
      for (var i = document.getElementById('messages').rows.length - 1; i >= 0; i--)
         document.getElementById('messages').deleteRow(i);
   if (messages.length > 0)
      for (var i = offset; i < offset + items_per_page && i < messages.length; i++)
      {
         tr = document.getElementById('messages').insertRow(-1);
         tr.style.backgroundColor = '#' + (i % 2 ? 'eef1f5' : 'f8fafd');
         td = document.createElement('TD');
         td.setAttribute('width', '241');
         td.setAttribute('height', '18');
         td.style.paddingLeft = '5px';
         td.innerHTML = '<a href="javascript:;" onmouseover="window.status=\'Listen to: ' + messages[i][1] + '\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return playMessage(' + messages[i][0] + ');" class="links4" title="' + messages[i][1] + '">' + messages[i][1] + '</a>';
         tr.appendChild(td);
         td = document.createElement('TD');
         td.id = 'messages_rate_icons' + messages[i][0] + '_id';
         td.align = 'right';
         td.setAttribute('width', '74');
         td.style.paddingRight = '6px';
         td.innerHTML = getRateIcons(messages[i][0], messages[i][5]);
         tr.appendChild(td);
         td = document.createElement('TD');
         td.align = 'right';
         td.setAttribute('width', '55');
         td.className = 'text2';
         td.style.paddingRight = '6px';
         td.innerHTML = messages[i][3];
         tr.appendChild(td);
         td = document.createElement('TD');
         td.align = 'right';
         td.setAttribute('width', '79');
         td.className = 'text2';
         td.style.paddingRight = '6px';
         td.innerHTML = messages[i][2];
         tr.appendChild(td);
         td = document.createElement('TD');
         td.align = 'right';
         td.setAttribute('width', '74');
         td.className = 'text2';
         td.style.paddingRight = '6px';
         td.innerHTML = messages[i][4] + ' secs';
         tr.appendChild(td);
         td = document.createElement('TD');
         td.align = 'right';
         td.setAttribute('width', '51');
         td.className = 'text2';
         td.style.paddingRight = '6px';
         td.innerHTML = messages[i][6];
         tr.appendChild(td);
         td = document.createElement('TD');
         td.align = 'right';
         td.setAttribute('width', '43');
         td.className = 'text2';
         td.style.paddingRight = '22px';
         td.innerHTML = messages[i][7];
         tr.appendChild(td);
         td = document.createElement('TD');
         td.id = 'messages_save_icon' + messages[i][0] + '_id';
         td.align = 'center';
         td.setAttribute('width', '18');
         td.innerHTML = logged_in ? '<a href="#" onmouseover="window.status=\'Jesus saves\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return clickSaveIcon(' + messages[i][0] + ');"><img src="images/jesus.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Save this message"></a>' : '&nbsp;';
         tr.appendChild(td);
         td = document.createElement('TD');
         td.align = 'center';
         td.setAttribute('width', '18');
         td.innerHTML = '<a href="messages.php?a=' + messages[i][9] + '"><img src="images/maker.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Hear more messages by this person"></a>';
         tr.appendChild(td);
         td = document.createElement('TD');
         td.id = 'messages_block_icon' + messages[i][0] + '_id';
         td.align = 'center';
         td.setAttribute('width', '18');
         td.style.paddingRight = '3px';
         td.innerHTML = '<a href="#" onmouseover="window.status=\'Report this message as inappropriate for all audiences\'; return true;" onmouseout="window.status=\' \'; return true;" onclick="return clickBlockIcon(' + messages[i][0] + ');"><img src="images/block.gif" width="14" height="14" border="0" align="middle" vspace="0" title="Report this message as inappropriate for all audiences"></a>';
         tr.appendChild(td);
      }
   else
   {
      tr = document.getElementById('messages').insertRow(0);
      td = document.createElement('TD');
      td.setAttribute('height', '18');
      td.style.backgroundColor = '#fefef2';
      td.style.paddingLeft = '5px';
      td.className = 'text2';
      td.innerHTML = 'No messages are currently available.';
      tr.appendChild(td);
   }
}

function showWimpy()
{
   var playlist = 'server/playlist.php%3Fname%3D' + (messages.length > 0 ? escape(messages[0][1]) : '') + '%26location%3D' + (messages.length > 0 ? escape(messages[0][8].replace(':', ';')) : '') + '%26j%3Dj.xml';
   document.getElementById('wimpy').innerHTML = makeWimpyPlayer(playlist, 'scripts/skin_bar.xml', '170', '16', false, false);
}

function playMessage(id)
{
   var id = getArrayIndexBySelectedMessageId(id);
   message_name = messages[id][1];
   message_location = messages[id][8];
   if (flash_enabled)
   {
      flashProxy.call('js_wimpy_stop');
      window.setTimeout("flashProxy.call('js_wimpy_appendPlaylist', 'track', message_location, '', message_name, '', '');", 400);
      window.setTimeout("flashProxy.call('js_wimpy_next');", 500);
   }
   else
      location.href = message_location;
   return false;
}

function clickRateIcon(id, rating)
{
   document.getElementById('messages_rate_icons' + id + '_id').innerHTML = '<div style="padding-right:1px"><img src="images/check_mark.gif" width="13" height="14" align="top" vspace="0"></div>';
   request('action=rate_message&id=' + id + '&rating=' + rating, 'Rating message', NORMAL_WAITING_TIME);
   return false;
}

function clickSaveIcon(id)
{
   document.getElementById('messages_save_icon' + id + '_id').innerHTML = '<img src="images/check_mark.gif" width="13" height="14" align="top" vspace="0">';
   request('action=save_message&id=' + id, 'Saving message', NORMAL_WAITING_TIME);
   return false;
}

function clickBlockIcon(id)
{
   document.getElementById('messages_block_icon' + id + '_id').innerHTML = '<img src="images/check_mark.gif" width="13" height="14" align="top" vspace="0">';
   request('action=block_message&id=' + id, 'Reporting message', NORMAL_WAITING_TIME);
   return false;
}

function showMessages(logged_in, offset)
{
   buildMessageTable(logged_in, offset);
   document.getElementById('previous_page').style.display = offset < items_per_page ? 'none' : 'block';
   document.getElementById('next_page').style.display = offset + items_per_page < messages.length ? 'block' : 'none';
   message_offset = offset;
   return false;
}

