$(document).ready(function() {
	$('#update_button_main').click(function() {
		pre_update_player_list("main");
	});
	$('#update_button_adventure').click(function() {
		pre_update_player_list("adventure");
	});
});

function pre_update_player_list(type) {
	$('#update_button_'+type).attr('disabled','disabled');
	$('#update_image_'+type).show();
	$('#player_list_'+type).attr('color', '#000000').html('Updating...');
	setTimeout('update_player_list("'+type+'")', 100);
}

function post_update_player_list(type) {
	$('#update_button_'+type).removeAttr('disabled');
	$('#update_image_'+type).hide();
}

function update_player_list(type) {
	$.ajax('/jsp/minecraft/mc_player_list.jsp?type='+type)
		.done(function(msg) {
			//alert("\"" + msg + "\"");
			error = false;
			lines = msg.split("\n");
			//status = lines[0];
			displayStr = "";
			if(lines[0] == "UP") {
				//alert("UP");
				for(i=1; i < lines.length; i++) {
					lines[i] = lines[i].trim();
					if(lines[i] == "")
						continue;
					if(displayStr != "")
						displayStr += ", ";
					displayStr += lines[i];
				}
				//alert("players=\""+displayStr+"\"");
				if(displayStr.trim() == "")
					displayStr = "No players online.";
			}
			else if(lines[0] == "DOWN") {
				//alert("DOWN");
				displayStr = lines[1];
			}
			else if(lines[0] == "ERROR") {
				//alert("ERROR");
				error = true;
				displayStr = lines[1];
			}
			else {
				//alert("unknown status \"" + status + "\"");
				error = true;
				displayStr = "bad response from server";
			}
			
			if(error) {
				$('#status_'+type).css('color', '#951F1F').html('DOWN');
				$('#player_list_'+type).css('color', '#FF0000').html('Error: ' + displayStr);
			}
			else {
				$('#status_'+type).css('color', '#1F952F').html('UP');
				$('#player_list_'+type).css('color', '#000000').html(displayStr);
			}
		})
		.fail(function() {
				$('#status_'+type).css('color', '#951F1F').html('DOWN');
				$('#player_list_'+type).css('color', '#FF0000').html('Error: failed to retrieve names');
		})
		.always(function() {
			post_update_player_list(type);
		});
}

/*function chat_resize(big) {
	target_width = "";
	target_height = "";
	if(big===true) {
		target_width = "520px";
		target_height = "480px";
	}
	else {
		target_width = "300px";
		target_height = "180px";
	}
	$('#chat_frame').animate({ width: target_width, height: target_height}, 500);
}*/

function popUp(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=525,height=475');");
}
/*
OLD PRE-JQUERY STUFF BELOW

function sendHTTP(url) {
	xmlhttp = false;
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if(!xmlhttp) return false;
	xmlhttp.open("GET", url, false);
	xmlhttp.send(null);
	responseString = xmlhttp.responseText;
	//alert("request successful '" + responseString + "'");
	return responseString;
}
function updateFun(name) {
	players = sendHTTP("/jsp/minecraft/mc_player_list.jsp?type=" + name);
	status = 0;
	error = false;
	if(players) {
	//	alert(players);
		names = players.split("\n");
		players = "";
		if(names[1]=="UP") {
			status = 1;
			for(i=2; i < names.length; i++) {
				if(names[i]!=="") {
					players += names[i];
					if((i+3)<names.length) players += ", ";//"\r\n";
				}
			}
			if(players=="") players = "No players online.";
		}
		else if(names[1]=="DOWN") {
			status = 2;
			players = names[2];
		}
		else if(names[1]=="ERROR") {
			status = 3;
			error = true;
			players = names[2];
		}
		else {
			//obviously, something went wrong. (eg. wrapper not running, tomcat not working...)
			status = 3;
			error = true;
			players = "failed to retrieve names";
		}
		setStatus(name, status);
		setPlayerList(name, players, error);
		//alert("setStatus(" + ((names[0]=="UP")?"true":"false") + ");\nsetPlaterList(" + players + ");");
	}
	else {
	//	alert("failed to request information");
		setPlayerList(name, "request failed",true);
	}
	document.getElementById("update_button_" + name).disabled = false;
}

function setPlayerList(name, value, error) {
	if(error) {
		document.getElementById("player_list_" + name).style.color = "#FF0000";
		document.getElementById("player_list_" + name).innerHTML = "Error: " + value;
	}
	else {
		document.getElementById("player_list_" + name).style.color = "#000000";
		document.getElementById("player_list_" + name).innerHTML = value;
	}
}
//UP = 1
//DOWN = 2
//ERROR = 3
function setStatus(name, up) {
	if(status==1) {
		document.getElementById("status_" + name).style.color = "#1F952F";
		document.getElementById("status_" + name).innerHTML = "UP";
	}
	else if(status==2) {
		document.getElementById("status_" + name).style.color = "#951F1F";
		document.getElementById("status_" + name).innerHTML = "DOWN";
	}
	else if(status==3) {
		//document.getElementById("status" + name).style.color = "#951F1F";
		//document.getElementById("status" + name).innerHTML = "ERROR";
		//document.getElementById('status' + name).style.color = '#BBBBBB';
		//document.getElementById('status' + name).innerHTML = '******';
	}
}
function auto_update() {
//	button();
//	setTimeout('auto_update()',1*60*1000);
}
function button(name) {
	document.getElementById("update_button_" + name).disabled = true;
	document.getElementById("player_list_" + name).style.color = "#000000";
	document.getElementById("player_list_" + name).innerHTML = 'Updating...';
	setTimeout('updateFun("' + name + '")',100);
}
*/

