//Globale Variablen
var asb_shouts;
var userindex;
var sessionid;
var onlinelist;
var txtold;
var firsttime=true;
//Initialisierung der Shoutbox
function shoutboxinit(user,news,session)
{
  //Referenz auf asb_shouts erzeugen und mit Hinweistext füllen
  asb_shouts = document.getElementById('asb_content');
  asb_shouts.innerHTML = "Shoutbox wird geladen...";

  userindex=user;
  sessionid=session;
   
 
  //onSubmit des Formulars asb_inputform belegen
  //document.frmshoutbox.onsubmit = asbSaveNewEntry;
   
    
  //Bisherige Nachrichten der Shoutbox erstmalig laden
  asbLoadEntries();
  
  if(news)
  {
    onlinelist=document.getElementById("onlinelist");
    onlinelist.innerHTML = "onlinelist wird geladen...";
    LoadOnlineList();
    setInterval("LoadOnlineList()",4000);
  }
  
  //Alle 5 Sekunden Shoutbox-Nachrichten neu laden
  setInterval("asbLoadEntries()",4000);
}

//Laden der asb_entries.xml per AJAX
function asbLoadEntries() 
{
 with (new Ajax()) {
  url="./web-content/shoutbox-getdata.php";
  params="index="+userindex+"&sessionid="+sessionid;
  onError=asbShowError;
  onSuccess=asbShowEntries;
  doRequest(); 
 
 }
}

//Laden der asb_entries.xml per AJAX
function LoadOnlineList()
{
 with (new Ajax()) {
  url="./web-content/onlinelist-getdata.php";
  onError=asbShowError;
  onSuccess=ShowOnlineList;
  doRequest();

 }
}

//Umformen der übertragenen asb_entries.xml nach HTML
function asbShowEntries(txt,xml) 
{
    
  //Fehler beim Laden von asb_entries.xml?
  if (asbHasError(txt)) {
    asbShowError(asbGetError(txt));
    return null;
  }  
  
  var content = new String();
  var entryNode, nickNode, textNode;
  var entry = new Array();
  
 /* for(i=0; i<xml.getElementsByTagName('entry').length;i++) {
    entryNode = xml.getElementsByTagName('entry')[i];
    nickNode = entryNode.getElementsByTagName('nick')[0];
    textNode = entryNode.getElementsByTagName('text')[0]; 
    entry['nick'] = nickNode.firstChild.nodeValue;  
    entry['time'] = entryNode.attributes[0].nodeValue;
    entry['text'] = textNode.firstChild.nodeValue;  
    content += '<div class="nameandtime"><b>'+entry['nick']+'</b> ['+entry['time']+']: </div><div class="text">'+entry['text']+'</div>';
  } */
  if(firsttime)
  {
    txtold=txt;
    firsttime=false;
  }
  
  if(txt!=txtold)
  {
    txtold=txt;
    asb_shouts.style.backgroundColor = '#ffddb7'
  }
  else
  {
    asb_shouts.style.backgroundColor = '#ffffff'
  }
  asb_shouts.innerHTML = txt;
}

function ShowOnlineList(txt,xml)
{

  onlinelist.innerHTML = txt;
}

//Neuen Eintrag an Server schicken
function saveData()
{
  with (new Ajax()) {
    url="./web-content/shoutbox-setdata.php";
    method="POST";
    params="name="+document.frmshoutbox.txtname.value+"&message="+document.frmshoutbox.txtmessage.value;
    onError=asbShowError;
    onSuccess= function(txt,xml) {
      //Fehler beim Speichern?
      if (asbHasError(txt)) {
        asbShowError(asbGetError(txt));
        return false;
      } else {
        asbLoadEntries();
      }
    }
    doRequest(); 
  } 

// Message-Eingabefelder leeren und Focus setzen
document.frmshoutbox.txtmessage.value = '';
document.frmshoutbox.txtmessage.focus();

document.frmshoutbox.txtname.value= document.originalname.name.value;
 
 //Herkömmliches Verschicken des Formulars verhindern
 return false;
}

//allgemeine Fehlerbehandlung
function asbShowError(msg) 
{
 //alert(msg);
}

//Überprüft Rückgabe eines PHP-Skripts auf Fehlermeldung
function asbHasError(msg)
{
  //Hat msg einen Inhalt?
  if (!msg) return false; 
  
  //Befindet sich Zeichenkette AOEERROR: am Anfang von msg?
  if (msg.indexOf("ASBERROR:") == 0) {
    return true;
  } else {
    return false;
  }
}

//Aufbereiten der Fehlermeldung eines PHP-Skripts
function asbGetError(msg)
{
  //AOEERROR: aus Fehlermeldung entfernen
  return msg.replace(/ASBERROR:/, "");
}

//String-Objekt um die Funktion trim erweitern
String.prototype.trim = function () {
   return this.replace(/^\s+/, '').replace(/\s+$/, '');
}
