// Letzter Request
var last_request=0;

// Lade Eintr‰ge alle x Sekunden
var aktiv = setInterval("loadData()",4000);

// Lade Eintr‰ge der Shoutbox
setTimeout('loadData();',1000);

// Setzen der Variable damit der Chat nicht zum DOS wird
var dosProtect = 0;

// Beendet die chat_loading-Anzeige
function chat_loadingEnd()
{
 document.getElementById("chat_loading").innerHTML='<img src="images/blank.gif" style="width: 16px; height: 16px" />';
}

// Funktion um zur letzten Nachricht zu scrollen
function Scrolling()
{
 if (document.getElementById('autoscroll'))
 {
  if (document.getElementById('autoscroll').checked)
  {
   var cdiv=document.getElementById('chat_contentwrap');
   cdiv.scrollTop = cdiv.scrollHeight;
  }
 }
}

var latestMessage = 0;

// Funktion zum Laden der Eintr‰ge
function loadData()
{
 document.getElementById("chat_loading").innerHTML='<img src="images/loading.gif" alt="loading.gif" />';
 var xmlHttp = false;

 // XML HttpRequest-Instanz f¸r IE < Version 6 erstellen
 try
 {
  xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
 }
 catch(e)
 {
  try
  {
   xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch(e)
  {
   xmlHttp  = false;
  }
 }

 // XML HttpRequest-Instanz f¸r f¸r Mozilla, Opera, Safari usw. erstellen
 if (!xmlHttp  && typeof XMLHttpRequest != 'undefined')
 {
  xmlHttp = new XMLHttpRequest();
 }

 // Wenn Status entsprechend f¸hre Aktion durch
 if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
 {
  // F¸hre Aktion aus
  var act = '0';
  var txtName    = encodeURIComponent(document.chat.txtname.value);
  var current_room    = document.chat.current_room.value;

  latestMessage = last_request;
	
  xmlHttp.open('GET', 'modules/chat/getdata.php?room='+current_room+'&name='+txtName+'&last_request='+last_request, true);

  // Sobald sich der Zustand ‰ndert f¸hre Aktion aus.
  xmlHttp.onreadystatechange = function ()
  {
   if (xmlHttp.readyState == 4)
   {
    // Dos Variable erhˆhen
    dosProtect = dosProtect + 1;

    var response = xmlHttp.responseText;
	var exists = "false";
	if (response.length>1)
	{
		zeilen = response.split("<br />");
		
		allusrlist = "" + zeilen.slice(0,1);
		pubchat = zeilen.slice(1,2);
		privchat = zeilen.slice(2,3);
		messages = zeilen.slice(3,5);
		// in erster Zeile steht der Timestamp -> extrahieren
		last_request = messages[0];



		if(document.getElementById("lastusers") == null){
			alteliste = allusrlist;
		} else {
			alteliste = document.getElementById("lastusers").value;	
	    }
			
		if(allusrlist.length > alteliste.length){
			if(typeof(soundManager) != "undefined"){
				soundManager.createSound('helloWorld','chatalert.mp3');
 				soundManager.play('helloWorld');
			}
		}
		
		if(document.getElementById("lastusers") != null) 
			document.getElementById("lastusers").value = allusrlist;
			
			
			


		var anzahl_zeilen=messages.length;
		for (i=1;i<anzahl_zeilen;i++)
		{
		document.getElementById("chat_content").innerHTML+=messages[i];
		if (i<anzahl_zeilen-1) 
		  document.getElementById("chat_content").innerHTML+='<br />';
		}
		
		
		document.getElementById("privatechat").innerHTML='';
		
		var anzahl_czeilen=privchat.length;
		for (j=0;j<anzahl_czeilen;j++)
		{
		  document.getElementById("privatechat").innerHTML+=privchat[j];		  
		 if (j<anzahl_czeilen-1){
		    document.getElementById("privatechat").innerHTML+='<br />';
		 }
		}

		var anzahl_lzeilen=pubchat.length;
		for (l=0;l<anzahl_lzeilen;l++)
		{
		  	document.getElementById("publicchat").innerHTML=pubchat[l];
		  if (l<anzahl_lzeilen-1)  {
		    document.getElementById("publicchat").innerHTML+='<br />';
		  }
		}


   	  // Zum Ende Scrollen
      setTimeout('Scrolling();',1);
      setTimeout('Scrolling();',750);
      setTimeout('Scrolling();',1500);
	}
   }
  }
  xmlHttp.send(null);
 }

 // chat_loading Anzeige beenden
 setTimeout('chat_loadingEnd();',1000);
}


// Funktion zum Speichern der Eintr‰ge
function sendComment()
{
 document.getElementById("chat_loading").innerHTML='<img src="images/loading.gif" alt="loading" />';
 var xmlHttp2 = false;

 // XML HttpRequest-Instanz f¸r IE < Version 6 erstellen
 try
 {
  xmlHttp2  = new ActiveXObject("Msxml2.XMLHTTP");
 }
 catch(e)
 {
  try
  {
   xmlHttp2  = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch(e)
  {
   xmlHttp2  = false;
  }
 }


 // XML HttpRequest-Instanz f¸r f¸r Mozilla, Opera, Safari usw. erstellen
 if (!xmlHttp2  && typeof XMLHttpRequest != 'undefined')
 {
  xmlHttp2 = new XMLHttpRequest();
 }

 if (xmlHttp2)
 {
  var txtMessage = encodeURIComponent(document.chat.txtmessage.value);
  var txtName    = encodeURIComponent(document.chat.txtname.value);
  var current_room    = document.chat.current_room.value;
  
  if (txtMessage == '' || txtName == '')
  {
   document.getElementById("fill_in_all_fields").style.visibility='visible';	
   document.getElementById("fill_in_all_fields").style.height='auto';
   document.getElementById("fill_in_all_fields").style.overflow='auto';
  }
  else
  {
   if (xmlHttp2.readyState == 4 || xmlHttp2.readyState == 0)
   {
    xmlHttp2.open('POST', 'modules/chat/setdata.php');
    xmlHttp2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
    xmlHttp2.send('message='+txtMessage+"&name="+txtName+"&current_room="+current_room+"&last_request="+last_request);
	
	document.getElementById("fill_in_all_fields").style.visibility='hidden';
	document.getElementById("fill_in_all_fields").style.height='0';
    document.getElementById("fill_in_all_fields").style.overflow='hidden';

   }
   else
   {
    setTimeout('sendComment();',1000);
   }
    dosProtect = 0;
	clearInterval(aktiv);
    setTimeout('loadData();',1000);
	aktiv = setInterval('loadData()', 4000);
  }
 }

 // Leere das Eingabefeld
 document.chat.txtmessage.value = '';

 // Cursor in das Textfeld setzen
 document.chat.txtmessage.focus();
}


