var ajaxServerControl = {
	serverRequest: false,
	showState: 0,
	inWork: false,

	createServerStartRequest: function(serverID,ownerName,ownerPassword,task,port) {
		if(ajaxServerControl.inWork==true) return false;
		if (window.XMLHttpRequest) {
			ajaxServerControl.serverRequest = new XMLHttpRequest();
		} 
		else if (window.ActiveXObject) {
			try {
				ajaxServerControl.serverRequest = new ActiveXObject('Msxml2.XMLHTTP');
			} 
			catch (e) {
				try {
					ajaxServerControl.serverRequest = new ActiveXObject('Microsoft.XMLHTTP');
				} 
				catch (e) {
				}
			}
		}
		if (!ajaxServerControl.serverRequest) {
			alert("Kann keine XMLHTTP-Instanz erzeugen");
			return false;
		} 
		else {
			var url = "lib/php/serverControl.php";
			ajaxServerControl.serverRequest.open('post', url, true);
			ajaxServerControl.serverRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			ajaxServerControl.serverRequest.send('serverID='+serverID+
			"&ownerName="+ownerName+
			"&ownerPassword="+ownerPassword+
			"&task="+task+
			"&port="+port);
			ajaxServerControl.serverRequest.onreadystatechange = ajaxServerControl.interpretRequest;
			ajaxServerControl.inWork = true;
			ajaxServerControl.showLoading();
		}
	},
	
	interpretRequest: function() {
		switch (ajaxServerControl.serverRequest.readyState) {
			case 4:
				if (ajaxServerControl.serverRequest.status == 200) {
					ajaxServerControl.inWork = false;
					document.getElementById("serverStatus").innerHTML = '';
					switch (ajaxServerControl.serverRequest.responseText) {
						case "false 0x11000001" :
							document.getElementById("serverStatus").innerHTML =
								'<p class="message_red" id="serverStatusInput">'+
									'Der Server konnte nicht gestartet werden...'+
								'</p>';
							break;
						case "false 0x11000010" :
							document.getElementById("serverStatus").innerHTML =
								'<p class="message_red" id="serverStatusInput">'+
									'Der Server konnte nicht beendet werden...'+
								'</p>';
							break;
						case "false 0x11000100" :
							document.getElementById("serverStatus").innerHTML =
								'<p class="message_red" id="serverStatusInput">'+
									'Der Server konnte nicht neugestartet werden...'+
								'</p>';
							break;
						case "true_start" :
							document.getElementById("serverStatus").innerHTML =
								'<p class="message_green" id="serverStatusInput">'+
									'Der Server wurde erfolgreich gestartet!<br>'+
								'</p>';
							ajaxServerControl.setServerOnline();
							break;
						case "true_stop" :
							document.getElementById("serverStatus").innerHTML =
								'<p class="message_green" id="serverStatusInput">'+
									'Der Server wurde erfolgreich beendet!<br>'+
								'</p>';
							ajaxServerControl.setServerOffline();
							break;
						case "true_restart" :
							document.getElementById("serverStatus").innerHTML =
								'<p class="message_green" id="serverStatusInput">'+
									'Der Server wurde erfolgreich neugestartet!<br>'+
								'</p>';
							ajaxServerControl.setServerOnline();
							break;
					}
				}
				break;
			default:
				break;
		}
	},
	
	setServerOnline: function() {
		document.getElementById("serverStatusMessage").innerHTML = '<strong>Der Server ist <font color="#009900">online!</font></strong>';
		setTimeout('ajaxServerControl.deleteServerStatusMessage()',10000);
	},
	
	setServerOffline: function() {
		document.getElementById("serverStatusMessage").innerHTML = '<strong>Der Server ist <font color="#CE0000">offline!</font></strong>';
		setTimeout('ajaxServerControl.deleteServerStatusMessage()',10000);
	},
	
	deleteServerStatusMessage: function() {
		document.getElementById("serverStatus").innerHTML = '';
		document.getElementById("serverStatus").style.width = "100%";
	},
	
	showLoading: function() {
		if(ajaxServerControl.inWork==false) return false;
		switch(ajaxServerControl.showState) {
			case 0:
				document.getElementById("serverStatus").innerHTML = '<strong>Prozess wird bearbeitet</strong>';
				ajaxServerControl.showState = 1;
				setTimeout(ajaxServerControl.showLoading,500);
				break;
			case 1:
				document.getElementById("serverStatus").innerHTML = '<strong>Prozess wird bearbeitet.</strong>';
				ajaxServerControl.showState = 2;
				setTimeout(ajaxServerControl.showLoading,500);
				break;
			case 2:
				document.getElementById("serverStatus").innerHTML = '<strong>Prozess wird bearbeitet..</strong>';
				ajaxServerControl.showState = 3;
				setTimeout(ajaxServerControl.showLoading,500);
				break;
			case 3:
				document.getElementById("serverStatus").innerHTML = '<strong>Prozess wird bearbeitet...</strong>';
				ajaxServerControl.showState = 0;
				setTimeout(ajaxServerControl.showLoading,500);
				break;
		}
	}
};
