var ajaxOBJ;
var responseHandler;
var errors = 0;
var working = false;
var queue = true;
var theQueue = Array();

function loadXMLDoc(url, handler)
{	if (queue && working)
		addQueue(url, handler);
	else
	{	responseHandler = handler;
		working = true;
		ajaxOBJ = false;
		if(window.XMLHttpRequest) //Mozilla etc
			ajaxOBJ = new XMLHttpRequest();
		else
			if(window.ActiveXObject) //Microsoft wants to be special....
				ajaxOBJ = new ActiveXObject("Microsoft.XMLHTTP");
		//assign values to objekt and send req
		if(ajaxOBJ)
		{	ajaxOBJ.onreadystatechange = processReqChange;
			ajaxOBJ.open("GET", url, true);
			ajaxOBJ.setRequestHeader("Pragma", "no-cache");
			ajaxOBJ.setRequestHeader("Cache-Control", "must-revalidate");
			ajaxOBJ.setRequestHeader("If-Modified-Since", document.lastModified);
			ajaxOBJ.send("");
		}
    	else
		{	alert("AJAX could not initialize!\nPlease enable JavaScript or ActiveX(IE only)")
		}
  }
}

function processReqChange()
{	if (ajaxOBJ.readyState == 4)
	{	if (ajaxOBJ.status == 200)
			eval(responseHandler +"(ajaxOBJ.responseText)");
		else
		{	errors++;
			if (errors >= 5)
			{	//alert("too much errors!\nreloading the page....");
				window.location.reload();
			}
			else //alert("Error retriving data!\nErrormsg: "+ ajaxOBJ.statusText);
				window.location.reload();
		}
		working = false;
		nextInQueue();
	}
}
function addQueue(url, handler)
{	theQueue[theQueue.length] = "loadXMLDoc('"+ url +"', '"+ handler +"');";
}
function nextInQueue()
{	if (!working)
	{	theQueue.reverse();
		eval(theQueue[theQueue.length-1]);
		theQueue.splice(theQueue.length-1, 1);
		theQueue.reverse();
	}
}
function getCurrRelUrl() //url aufsplitten
{	var lastslash = window.location.href.lastIndexOf("/");
	if(lastslash) return window.location.href.substr(0, lastslash+1);
	else return false;
}

function refreshStatus()
{ 	loadXMLDoc(getCurrRelUrl() +"ajax/berater_status.php?", "statusHandler");
};

function statusHandler(response)
{	var onStatus = "";
	var buStatus = "";
	arr =	response.split("\n");
	test = arr.length;
	for(var i = 0; i < test ; i++ )
	{	brr = arr[i].split("\t");
		if(brr[3] == "")
			brr[3] = encodeURI("Info+in+k&uuml;rze");
		if(brr[0] == "1")
		{ 	linkurl  = "http://www.tarot-kartenleger.de/ausgabe.php?do=1";
		  	linkurl += "&name=";
		  	linkurl += brr[2];
		  	linkurl += "&dw=";
		  	linkurl += brr[1];
		  	linkurl += "&txt=";
		  	linkurl += brr[3];
			onStatus += "<a href="+ linkurl +">"+brr[2]+"</a>, ";
		}
		else if(brr[0] == "0")
		{	linkurl  = "http://www.tarot-kartenleger.de/ausgabe.php?do=1";
		  	linkurl += "&name=";
		  	linkurl += brr[2];
		  	linkurl += "&dw=";
		  	linkurl += brr[1];
		  	linkurl += "&txt=";
		  	linkurl += brr[3];
			buStatus += "<a href="+ linkurl +">"+brr[2]+"</a>, ";
		}
	}
	if(onStatus != "")
	{ 	var aus = onStatus.substring(0,(onStatus.length - 2));
		if(window.document.getElementById("freieberaterbox") != null) 
			window.document.getElementById("freieberaterbox").innerHTML = aus;
		else if(window.document.all.freieberaterbox != null)
	 		window.document.all.freieberaterbox.innerHTML = aus; 
		else 
	  		window.document.getElementById("freieberaterbox").firstChild.nodeValue = aus;
	}
	else 
	{	if(window.document.getElementById("freieberaterbox") != null) 
			window.document.getElementById("freieberaterbox").innerHTML = "keine Berater frei...";
		else if(window.document.all.freieberaterbox != null)
	 		window.document.all.freieberaterbox.innerHTML = "keine Berater frei...";
		else 
	  		window.document.getElementById("freieberaterbox").firstChild.nodeValue = "keine Berater frei...";
	}
	if(buStatus != "")
	{ 	var aus = buStatus.substring(0,(buStatus.length - 2));
		if(window.document.getElementById("besetzteberaterbox") != null) 
			window.document.getElementById("besetzteberaterbox").innerHTML = aus;
		else if(window.document.all.besetzteberaterbox != null)
	 		window.document.all.besetzteberaterbox.innerHTML = aus; 
		else 
	  		window.document.getElementById("besetzteberaterbox").firstChild.nodeValue = aus;
	}
	else 
	{	if(window.document.getElementById("besetzteberaterbox") != null) 
			window.document.getElementById("besetzteberaterbox").innerHTML = "keine Berater besetzt...";
		else if(window.document.all.freieberaterbox != null)
	 		window.document.all.freieberaterbox.innerHTML = "keine Berater besetzt...";
		else 
	  		window.document.getElementById("besetzteberaterbox").firstChild.nodeValue = "keine Berater besetzt...";
	}
	window.setTimeout("refreshStatus();", 1000);
};




