var errors = 0;
var tab = null;
var lines = 0;

function getShouts() {
 var params = 'tab='+tab+'&mode=getShouts';
 var oAjax = new Ajax.Request(url+'?sid='+sid,
                              {method: 'post',
                               onSuccess: insertShouts,
                               onFailure: insertError,
                               parameters: params
                              }
                             );
 if (errors < 10) {
  if (refresh > 0) {
   setTimeout('getShouts()', refresh);
  }
 } else {
  $('sb_shouts').innerHTML += '<div class="sb_error">Pobieranie przerwane - nie można uzyskać odpowiedzi od serwera.</div>';
 }
}
function sendShout() {
 var params = 'tab='+tab+'&mode=sendShout&msg='+$F('sb_message');
 var oAjax = new Ajax.Request(url+'?sid='+sid,
                              {method: 'post',
                               onSuccess: insertShouts,
                               onFailure: insertError,
                               parameters: params
                              }
                             );
 $('sb_message').value = '';
 return false;
}
function deleteShout(id) {
 var params = 'tab='+tab+'&mode=delShout&id='+id;
 var oAjax = new Ajax.Request(url+'?sid='+sid,
                              {method: 'post',
                               onSuccess: insertShouts,
                               onFailure: insertError,
                               parameters: params
                              }
                             );
}
function sb_init() {
 tabs.each(function(value, index){
  $('sb_tab_'+value).onclick = function(e){changeTab(value);};
 });
 $('sb_form').onsubmit = function(e){return sendShout();};
 $('sb_refresh').onclick = function(e){getShouts()};
 if (window.location.hash != '') {
  // bookmarked channel
  var savtab = window.location.hash.substring((window.location.hash.length-1), window.location.hash.length);
  changeTab(savtab);
 } else {
  changeTab(0);
 }
}
function changeTab(newTab) {
 tabs.each(function(value, index){
  $('sb_tab_'+value).className = '';
 });
 $('sb_tab_'+newTab).className = 'sb_tab_current';
 tab = newTab;
 getShouts(); // need to refresh view
}
function insertShouts(oAjax) {
 $('sb_shouts').innerHTML = '';
 //$('sb_shouts').innerHTML = oAjax.responseText;
 var serverResp = oAjax.responseText;
 serverResp = serverResp.parseJSON();
 if (typeof(serverResp['returnType']) == undefined) {
  insertError(oAjax);
 } else {
  switch (serverResp['returnType']) {
   case 'miscError':
    $('sb_shouts').innerHTML = '<div class="sb_error">'+serverResp['error']+'</div>';
    break;
   case 'shouts':
    if (serverResp['shouts'][0] == "" && serverResp['shouts'].length == 1) break;
    for (i = 0; i < serverResp['shouts'].length; i++) {
     var shout = serverResp['shouts'][i]; // [shout_id, show_X?, date (formatted), nick (formatted), msg (formatted)]
     if (shout[0] == 'shout') {
      $('sb_shouts').innerHTML += '<div class="sb_shout">'+(shout[2] ? '<a href="javascript:void(0)" onclick="deleteShout(\''+shout[1]+'\')" class="mainmenu"><b>x</b></a>&nbsp;' : '')+shout[3]+' '+shout[4]+':&nbsp;'+shout[5]+'</div>';
     } else if (shout[0] == 'genMsg') {
      $('sb_shouts').innerHTML += '<div class="sb_genmsg">'+(shout[2] ? '<a href="javascript:void(0)" onclick="deleteShout(\''+shout[1]+'\')" class="mainmenu"><b>x</b></a>&nbsp;' : '')+shout[3]+'</div>';
     }
     lines++;
    }
    break;
  }
  if (lines > 15)
   $('sb_shouts').scrollTop = 99999;
 }
}
function insertError(oAjax) {
 $('sb_shouts').innerHTML += '<div class="sb_error">[Błąd serwera (kod '+oAjax.status+')] Nie można pobrać nowych shoutów.</div>';
 errors++;
}
