var url="classes/shoutdata.php";
var dataArea="shoutboxdata";

function ExecUrlPostRequest(url,method,postData,onSuccess)
{
	var xmlDoc=null;
	if (window.XMLHttpRequest)
	  {// code for Firefox, Opera, IE7, etc.
	  xmlDoc=new XMLHttpRequest();
	  }
	else if (window.ActiveXObject)
	  {// code for IE6, IE5
	  xmlDoc=new ActiveXObject("Microsoft.XMLHTTP");
	  }

	if(xmlDoc==null) return false;

	xmlDoc.onreadystatechange=function ()
	{
	if (xmlDoc.readyState==4)
	  {// 4 = "loaded"
	  if (xmlDoc.status==200)
		{// 200 = OK
		onSuccess(xmlDoc);
		}
	  else
		{
		alert("Problem retrieving XML data (HTTP-Status "+xmlDoc.status+")");
		}
	  }
	};
	xmlDoc.open(method,url,true);
	if(method=='post'){
		xmlDoc.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
	}
  	xmlDoc.send(postData);
	return xmlDoc;
}


function Insert()
{
	var params="uname="+document.getElementById('shout_name').value+"&ucont="+document.getElementById('shout_cont').value;
	ExecUrlPostRequest(url,'post',params, function(con){
		Update();
	});

	document.getElementById('shout_cont').innerText="";
}

var SlideE, SlideI;
function SlideIn()
{
	SlideE.style.top=(SlideI-SlideE.offsetHeight)+'px';
	SlideI++;
	if(SlideI<SlideE.offsetHeight) setTimeout("SlideIn()",SlideI);
	else
	{
		SlideI=0;
		SlideE=null;
	}
}

var gLastCount=0;
function Update()
{
	ExecUrlPostRequest(url,'get',null, function(con){
		var ret="";

		var w=con.responseXML.firstChild.getElementsByTagName("s");
		if(w.length>0)
		{
			var diff=w.length-gLastCount;
			if(diff<0)
			{
				Refresh();
				return;
			}
			if(diff==0){
				return;
			}

			for(var i=0; i<w.length-gLastCount; i++)
			{
				var x=w[i];
				var time=x.attributes.getNamedItem("time").nodeValue;
				var uname=x.getElementsByTagName("un")[0].textContent;
				var ucont=x.getElementsByTagName("c")[0].textContent;

				var d=new Date(time*1000);
				// ('+d.toLocaleDateString()+'; '+d.toLocaleTimeString()+')
				ret+='<dl time="'+time+'" id="shout'+(w.length-i)+'"><dt>'+uname+':</dt><dd>'+ucont+'</dd></dl>';
			}
			gLastCount=w.length;
			document.getElementById(dataArea).innerHTML=ret+document.getElementById(dataArea).innerHTML;

			SlideI=-20;
			SlideE=document.getElementById('shout'+w.length);
			SlideIn();
		}
	});
}

function Refresh()
{
	document.getElementById(dataArea).innerHTML="";
	gLastCount=0;
	Update();
}

function InitUpdateInterval(){
	Update();
	window.setInterval("Update();",10*1000);
}

