var idextra=null;
var xmlHttp = null;
var cache = new Array();
var updateInterval = 1000;
var lastMessageID = -1;

function ZapytanieGETDoPHP(url, id)
{
	idextra=id;
	
	if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();
	else if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	
		
	if (xmlHttp == null)
	{
		alert("Nie udało się zainicjować obiektu xmlHttpRequest!");return;
	}
	else
	{
		xmlHttp.onreadystatechange = AjaxCallback;
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
	}	
}

function ZapytaniePOSTDoPHP(url, id, param)
{
	idextra=id;
	
	if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();
	else if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	
		
	if (xmlHttp == null)
	{
		alert("Nie udało się zainicjować obiektu xmlHttpRequest!");return;
	}
	else
	{
		xmlHttp.onreadystatechange = AjaxCallback;
		xmlHttp.open("POST", url, true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", param.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(param);
	}	
}

function AjaxCallback()
{
	if(xmlHttp.readyState==1 || xmlHttp.readyState==2 || xmlHttp.readyState==3)
	{
		document.getElementById(idextra).innerHTML = "<img src=loader.gif align=center>";
	}
	if (xmlHttp.readyState == 4) 
	{
		try
		{
			if(xmlHttp.status == 200)
			{
				document.getElementById(idextra).innerHTML = xmlHttp.responseText;
			}
			else if(xmlHttp.status == 404)
			{
				document.getElementById(idextra).innerHTML = "Błąd pobierania danych...";
				alert("Błąd pobierania danych...");
			}
			else
			{
				httpStatus = 13030;
			}
		}
		catch(e)
		{
			httpStatus = 13030;
		}		
	}
}
    
function RequestNewMessages()
{
	//idextra=id;
	if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();
	else if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) 
	{
		var params = "";
		
		if(cache.length>0)
			cache.shift();
		else
			params = "mode=RetrieveNew"+"&id"+lastMessageID;
			
		xmlHttp.open("POST", "monitor.php5", true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = handleReceivingMessages;
		xmlHttp.send(params);
	}
	else
	{
		setTimeout("RequestNewMessages();", 3000);
	}
}

function handleReceivingMessages()
{
	if(xmlHttp.readyState==4)
	{
		if(xmlHttp.status==200)
		{
			readMessages();
		}
		else
		{
			document.getElementById("logi_sys").innerHTML = "Błąd pobierania danych...";
		}
	}
}

function readMessages()
{
	var response = xmlHttp.responseText;
	
	if(response.indexOf("ERRNO")>=0 || response.indexOf("blad: ")>=0 || response.length == 0)
	{
		throw(response.length==0 ? "Pusta odpowiedz serwera." : response);
	}
	
	document.getElementById("logi_sys").innerHTML = +response;
	setTimeout("RequestNewMessages();", 3000);
}