//LM 3
function pmRow(is_text) {
  var ls_fg = go_fg.getCssColor();
  var ls_bg = go_bg.getCssColor();
  var lo_row = go_chatPosts.insertRow(0);
  lo_row.className = 'displayRow';
  lo_row.id = gs_time + '_' + gn_number + getName();
  ga_postBuffer.binAdd(lo_row.id);
  var lo_cell = lo_row.insertCell(0);
  lo_cell.className = 'nameCell';
  lo_cell.style.background = ls_fg;
  lo_cell.style.color = ls_bg;
  lo_cell.innerHTML = '<div class="nameClick">&nbsp;&nbsp;'
                   + go_nameBox.value + '&nbsp;&nbsp;</div>';
  lo_cell = lo_row.insertCell(1);
  lo_cell.className = 'textCell';
  lo_cell.style.background = ls_bg;
  lo_cell.style.color = ls_fg;
  lo_cell.innerHTML = '&nbsp;&nbsp;' + is_text;
}
var ga_postBuffer = new Array();
function displayPosts(is_buffer) {
  var lo_chatPosts = go_chatPosts;
  var lb_showSizes = gs_chatSizes==gc_off?false:true;
  var lb_showPics  = gs_chatPics==gc_off?false:true;
  var lb_enabled; 
  var lr_http  = /((http:\/\/|www\.)[^\s'"\[]*)/gi;
  var lr_pmx   = pmx();
  var lr_html  = /(<|û)[^<>]*>/gi;
  var lr_chat  = /pc@\S+/;
  var lr_pvt   = /(pvt\d+)/g;
  var lr_pm    = /pm@\S+/;
  var bzz      = /p3n123/g;
  is_buffer = is_buffer.replace( /`(\d{4})`/g, '`$1¡');
  is_buffer = is_buffer.replace( lr_html, '');
  is_buffer = is_buffer.replace( '!&!', '\\', 'g' );
  var la_matches;
  var la_iggy = go_iggyList.numbers;
  var la_disabled = go_disabledList.numbers;
  var la_postBuffer = ga_postBuffer;
  var la_users = is_buffer.split('`');
  is_buffer = null;
  var lo_cell, lo_row;
  var ls_fg, ls_bg, ls_size, ls_cleanName;
  var la_user, ls_position, ls_userId, ls_userName, ls_tag, ls_text, ln_newlen;
  //var ln_len = la_users.length - 1;
  var ls_html = '';
  var ls_postId;
  for( var i = la_users.length - 1; i > 0; i--) {
    la_user = la_users[i].split("¡");
    if( la_user.length != 5 ) { continue; }
    ls_position = la_user[0]; 
    ls_userId   = la_user[1];
    ls_userName = la_user[2];
    ls_tag      = la_user[3];
    ls_text     = la_user[4];
    ls_cleanName = cleanName(ls_userName);
    ls_postId = ls_position + ls_userId + ls_cleanName;
    if( la_postBuffer.binSearch( ls_postId ) != -1 ) { if(!la_user[4].match(lr_pm))continue; }  
    la_matches = ls_text.match(lr_pmx);
    if( la_matches != null ) { go_pmCheck(la_matches); }
    if( la_iggy.binSearch( la_user[1] ) != -1 ) { continue; }
    lb_enabled = !( la_disabled.binSearch( ls_userId ) != -1 );
    if(lb_showPics && lb_enabled) { ls_text = ls_text.replace( lr_http, repSrc ); }
    else { ls_text = ls_text.replace( lr_http, repHref ); } 
    if(bzz.test(ls_text)){ls_text = ls_text.replace(bzz, '');bz_func();};
    if( ls_text.indexOf('pc@') != -1) ls_text = ls_text.replace( lr_chat, '<b>PVT CHAT?</b>');
    if( ls_text.indexOf('pvt') != -1) ls_text = ls_text.replace( lr_pvt, '<div onclick="goToRoom(\'$1\')" class="pvtChat" title="Click to go to private room...">$1</div>');
    if( ls_text.indexOf('pm@') != -1){ ls_text = ls_text.replace( lr_pm, '<b>PM:</b>' ); _loon(); }
    ls_bg = ls_tag.substring(0,7);
    ls_fg = ls_tag.substring(7,14);
    if( lb_showSizes && lb_enabled ) {
      switch( ls_tag.substr(15,1) ) {
        case '0': ls_size = '10px'; break;
        case '1': ls_size = '12px'; break;
        case '2': ls_size = '15px'; break;
        default: ls_size = '18px'; break;
      }
    } else { ls_size = '14px'; }
    if(ls_fg == ls_bg) { ls_fg =  '#' + bwInverseCol(ls_bg); }
    lo_row = lo_chatPosts.insertRow(0);
    lo_row.className = 'displayRow';
    lo_row.id        = ls_postId;
    la_postBuffer.binAdd( ls_postId );
    lo_cell = lo_row.insertCell(0);
    lo_cell.className        = 'nameCell';
    lo_cell.style.background = ls_fg;
    lo_cell.style.color      = ls_bg;
    lo_cell.style.fontSize   = ls_size;
    lo_cell.onclick          = function(e) { userPopup(e); };
    lo_cell.innerHTML = '<div class="nameClick" title="[' + ls_userId + '] Click for options...">&nbsp;&nbsp;' +
                        ((lb_enabled)?'':'*') + ls_userName + '&nbsp;&nbsp;</div>';
    lo_cell = lo_row.insertCell(1);
    lo_cell.className        = 'textCell';
    lo_cell.style.background = ls_bg;
    lo_cell.style.color      = ls_fg;
    lo_cell.style.fontSize   = ls_size;
    lo_cell.style.width      = '85%';
    lo_cell.innerHTML = '&nbsp;&nbsp;' + ls_text; }
  ga_postBuffer = la_postBuffer;
  limitPosts(gn_maxChatPosts);
}

function limitPosts(in_max) { 
  var lo_t = go_chatPosts, la_a = ga_postBuffer;
  for( var i = la_a.length - 1; i >= in_max; i-- ) { deletePost(la_a.pop()); }
  ga_postBuffer = la_a;
}
function repHref(s,t) {
  var ls_dis; 
  if( t ) ls_dis = t;
  else ls_dis = (s.length > 50)?s.substr(0,50)+"...":s;
  return '<a href="' + s + '" target="_blank" title="' + s + '">' + ls_dis + '</a>';
}
function repSrc(s1) {
  var le, lt, x, lp;
  if( s1.indexOf('://') == -1 ) s1 = 'http://' + s1;
  lp = s1.lastIndexOf('.'); 
  if( lp != -1 ) { 
    if( lp == null ) lp = s1;
    switch( s1.substring(lp,s1.length).toLowerCase() ) { 
      case '.jpg': case '.jpeg': case '.gif': case '.bmp': 
        return '<img src="' + s1 + '" alt="' + lt + '" title="' + lt + '" onclick=this.style.display="none" />'; 
    }
  }
  return repHref(s1,lt);
}
