var request = false;

function setRequest(option, serverurl) {
	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest(); // Mozilla, Safari, Opera
	} else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
		} catch (e) {
			try {
				request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
			} catch (e) {}
		}
	}
	if (!request) {
		alert("Could not create a XMLHTTP instance! Ajax is not working.");
		return false;
	} else {
		working = true;
		request.open('post', 'scripts/php/get_serverlist_data.php', true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		request.send('option=' + option + '&serverurl=' + serverurl);
		request.onreadystatechange = interpretRequest;
	}
}

function doRefresh(){
	setRequest(0, 0);
	setTimeout('doRefresh();',10000)
}

function interpretRequest() {
	switch (request.readyState) {
		case 4:
			if (request.status != 200) {
				
			} else {
				var xmldoc	= request.responseXML;
				var option = xmldoc.getElementsByTagName('option').item(0);
				var content = xmldoc.getElementsByTagName('content').item(0);
				switch (option.firstChild.nodeValue) {
					case 'onlineservers':
						document.getElementById('online_servers').innerHTML = content.firstChild.nodeValue;
						var timercount = xmldoc.getElementsByTagName('timercount').item(0).firstChild.nodeValue;
						for (var i = 0; i < timercount; i++){
							var timername = xmldoc.getElementsByTagName('timmername' + i).item(0).firstChild.nodeValue;
							var timerinterval = xmldoc.getElementsByTagName('timmerinterval' + i).item(0).firstChild.nodeValue;
							if (timerinterval > 0){
								new countdown(timerinterval, timername);
							} else {
								document.getElementById(timername).innerHTML = 'over';
							}
						}
						setRequest(3, 0);
						break;
					case 'serverusers':
						var url = '';
						if (xmldoc.getElementsByTagName('closewindow').item(0).firstChild.nodeValue == 'false'){
							url = xmldoc.getElementsByTagName('url').item(0).firstChild.nodeValue;
							document.getElementById('server_users').innerHTML = content.firstChild.nodeValue;
							if (document.variables.serverusers.value == '')	{
								setPositionToMouse('server_users');
								swapZIndex(getObjectWithID('server_users'), getObjectWithID('server_talk'));
							}
							showElement('server_users');
						} else {
							hideElement('server_users');				
						}						
						document.variables.serverusers.value = url;
						if (document.variables.servertalk.value != '') setRequest(2, document.variables.servertalk.value);
						break;
					case 'servertalk':
						var url = '';
						if (xmldoc.getElementsByTagName('closewindow').item(0).firstChild.nodeValue == 'false'){
							url = xmldoc.getElementsByTagName('url').item(0).firstChild.nodeValue;
							document.getElementById('server_talk').innerHTML = content.firstChild.nodeValue;
							if (document.variables.servertalk.value == ''){
								setPositionToMouse('server_talk');
								swapZIndex(getObjectWithID('server_talk'), getObjectWithID('server_users'));
							}
							showElement('server_talk');
						} else {
							hideElement('server_talk');				
						}						
						document.variables.servertalk.value = url;
						break;
					case 'runningservers':
						document.getElementById('running_servers').innerHTML = content.firstChild.nodeValue;
						if (document.variables.serverusers.value != '')  {
							setRequest(1, document.variables.serverusers.value);
						} else if (document.variables.servertalk.value != '') setRequest(2, document.variables.servertalk.value);
						break;
					default:
						break;
				}
			}
			break;
		default:
			break;
	}
}