
//server_info/index
//server_info/blog
function addPost()
{
	if(document.getElementById('add_post').style.display == 'none')
	{
		document.getElementById('add_post_toggle').style.display = 'none';
		document.getElementById('add_post').style.display = 'block';
	}
	else
	{
		$('#post_body').val('');
		document.getElementById('add_post').style.display = 'none';
		document.getElementById('add_post_toggle').style.display = 'block';
	}
}
function blogPostAdd()
{
	if($('#post_body').val() != '')
	{
		$('#add_post_form').submit();
	}
	else
	{
		alert('Please enter a message.');
	}
}
//server_info/index
function setGraphStart(unit)
{
	var unit_array = new Array("d", "w", "m");
	for (var i=0; i<unit_array.length; i++)
		document.getElementById("range_" + unit_array[i]).src = URL_WWWCACHE + "/images/server_info/graph_range/" + unit_array[i] + ".gif";
	graphStart = "-1" + unit;
	document.getElementById("range_" + unit).src = URL_WWWCACHE + "/images/server_info/graph_range/" + unit + "_sel.gif";
	updateGraphs();
}
//server_info/index
function updateGraphs()
{
	document.getElementById("graph_players").src = URL_WWWCACHE + "/images/graphs/server_players.png?GSID=" + GSID + "&start=" + graphStart + "&request=" + Math.random().toString().replace(".", "");
}
//server_info/index - voice server
function showTreeAdvanced()
{
	$(".tree_advanced").css("display", 'inline')
	document.getElementById('showTreeBtn').style.display = 'none';
	document.getElementById('hideTreeBtn').style.display = 'inline';
}
function hideTreeAdvanced()
{
	$(".tree_advanced").css("display", 'none')
	document.getElementById('showTreeBtn').style.display = 'inline';
	document.getElementById('hideTreeBtn').style.display = 'none';
}
//server_info/server
function updateCustomFlag()
{
	document.getElementById("custom_flag").src = "http://image.www.gametracker.com/images/flags/" + $("#custom_country").val().toLowerCase() + ".gif";
}
//last_update_page
//last_update_page_elapsed
//update_interval_sec
//cachedPlayerScores
$(document).ready(
	function()
	{
		if(update_interval_sec != 0)
		{
			$.timer(1000, scheduler);
		}
	}
);
function scheduler()
{
	last_update_page_elapsed += 1;
	document.getElementById('last_scanned').innerHTML = "Last scanned " + formatSeconds(last_update_page_elapsed, "text") + " ago";
	if(last_update_page_elapsed%update_interval_sec != 0)
		return false;
	$.ajax
	({
		type: "GET",
		url: '/ajax_requests.php?GSID=' + GSID + '&action=get_server_last_update&rnd=' + Math.round(Math.random()*10000000),
		dataType: "xml",
		success: function(xml)
		{
			var lastUpdate = xml.getElementsByTagName('last_update');
			if(lastUpdate.length > 0)
			{
				if (last_update_page.valueOf() != parseInt(lastUpdate.item(0).firstChild.data))
					getUpdatedInfo();
			}
		}
	});
}
function getUpdatedInfo()
{
	$.ajax
	({
		type:			"POST",
		url:			'/ajax_requests.php?action=get_server_update&rnd=' + Math.round(Math.random()*10000000),
		processData:	false,
		data:			'GSID=' + GSID + '&cached_player_scores=' + cachedPlayerScores,
		dataType:		'html',
		success: function(resp_xml)
		{
			temp						= resp_xml.match(/<last_update>(.*)<\/last_update>/);
			last_update_page			= parseInt(temp[1]);
			temp						= resp_xml.match(/<elapsed>(.*)<\/elapsed>/);
			last_update_page_elapsed	= parseInt(temp[1]);
			temp						= resp_xml.match(/<player_scores>(.*)<\/player_scores>/);
			cachedPlayerScores			= temp[1];
			temp = resp_xml.match(/<HTML_num_players>(.*)<\/HTML_num_players>/);
			document.getElementById("HTML_num_players").innerHTML = temp[1];
			temp = resp_xml.match(/<HTML_max_players>(.*)<\/HTML_max_players>/);
			document.getElementById("HTML_max_players").innerHTML = temp[1];
			temp = resp_xml.match(/<HTML_num_bots>(.*)<\/HTML_num_bots>/);
			document.getElementById("HTML_num_bots").innerHTML = temp[1];
			temp = resp_xml.match(/<HTML_avg_players>(.*)<\/HTML_avg_players>/);
			document.getElementById("HTML_avg_players").innerHTML = temp[1];
			temp = resp_xml.match(/<HTML_curr_map>(.*)<\/HTML_curr_map>/);
			document.getElementById("HTML_curr_map").innerHTML = Base64.decode(temp[1]);
			temp = resp_xml.match(/<HTML_last_map>(.*)<\/HTML_last_map>/);
			document.getElementById("HTML_last_map").innerHTML = Base64.decode(temp[1]);
			temp = resp_xml.match(/<HTML_map_ss_img>(.*)<\/HTML_map_ss_img>/);
			document.getElementById("HTML_map_ss_img").innerHTML = Base64.decode(temp[1]);
			temp = resp_xml.match(/<HTML_online_players>(.*)<\/HTML_online_players>/);
			document.getElementById("HTML_online_players").innerHTML = Base64.decode(temp[1]);
			updateGraphs();
			return;
		}
		/*
		dataType:		'xml',
		success: function(resp_xml)
		{
			last_update_page											= parseInt(resp_xml.getElementsByTagName('last_update').item(0).firstChild.data);
			last_update_page_elapsed									= parseInt(resp_xml.getElementsByTagName('elapsed').item(0).firstChild.data);
			cachedPlayerScores											= resp_xml.getElementsByTagName('player_scores').item(0).firstChild.data;
			document.getElementById("HTML_num_players").innerHTML		= resp_xml.getElementsByTagName('HTML_num_players').item(0).firstChild.data;
			document.getElementById("HTML_max_players").innerHTML		= resp_xml.getElementsByTagName('HTML_max_players').item(0).firstChild.data;
			document.getElementById("HTML_num_bots").innerHTML			= resp_xml.getElementsByTagName('HTML_num_bots').item(0).firstChild.data;
			document.getElementById("HTML_avg_players").innerHTML		= resp_xml.getElementsByTagName('HTML_avg_players').item(0).firstChild.data;
			document.getElementById("HTML_curr_map").innerHTML			= resp_xml.getElementsByTagName('HTML_curr_map').item(0).firstChild.data;
			document.getElementById("HTML_last_map").innerHTML			= resp_xml.getElementsByTagName('HTML_last_map').item(0).firstChild.data;
			document.getElementById("HTML_map_ss_img").innerHTML		= Base64.decode(resp_xml.getElementsByTagName('HTML_map_ss_img').item(0).firstChild.data);
			document.getElementById("HTML_online_players").innerHTML	= Base64.decode(resp_xml.getElementsByTagName('HTML_online_players').item(0).firstChild.data);
			updateGraphs();
			return;
		}
		*/
	});
}
function formatSeconds(diff, format)
{
	var hours = Math.floor(diff/3600);
	var minutes = Math.floor((diff-(hours*3600))/60);
	var seconds = diff-(hours*3600)-(minutes*60);
	var rtn = "";
	if (format == "text") {
		if (hours > 0) { if (hours == 1) { rtn += hours + " hour "; } else { rtn += hours + " hours "; } }
		if (minutes > 0) { if (minutes == 1) { rtn += minutes + " minute "; } else { rtn += minutes + " minutes "; } }
		if (seconds == 1) { rtn += seconds + " second "; } else { rtn += seconds + " seconds"; }
	} else if (format == "seconds") {
		return parseInt(diff);
	} else {
		if (hours > 0) { rtn += hours + ":"; }
		rtn += padTime(minutes) + ":" + padTime(seconds);
	}
	return rtn;
}
function padTime(time) {
	time = time.toString();
	if (time.length == 1) {
		return "0" + time;
	} else {
		return time;
	}
}