var server_window = undefined;
var legion_window = undefined;
var player_window = undefined;
var stats_window = undefined;

function jump_to_url(base, parameters)
{
	var url = base;
	var parameter_count = 0;

	for (var key in parameters)
	{
		if (parameters[key] != "")
		{
			url += ((parameter_count++ == 0)? "?" : "&") + key + "=" + encodeURIComponent(parameters[key]);
		}
	}

	document.location = url;
}

$(document).ready(function()
{
	$("#server-filter").bind("mouseover", function(eventObject)
	{
		$(this).attr("src", "images/magnifier-hover.gif");
	});

	$("#server-filter").bind("mouseout", function(eventObject)
	{
		$(this).attr("src", "images/magnifier.gif");
	});

	$("#server-filter").bind("click", function(eventObject)
	{
		if (server_window == undefined)
		{
			server_window = new Boxy("<p class=\"within-window-center\">Enter a server name to match:<br /><input id=\"server-filter-value\" class=\"within-window\" type=\"text\" size=\"20\" value=\"\" /><br /><input id=\"server-filter-reload\" class=\"within-window\" type=\"button\" value=\"Filter\" /><input id=\"server-filter-clear\" class=\"within-window\" type=\"button\" value=\"Clear\" /></p>", {title: "Server filter", show: false,
				afterShow: function()
				{
					$("#server-filter-value").focus();
					$("#server-filter").unbind("mouseover mouseout");
					$("#server-filter").attr("src", "images/magnifier-active.gif");
				},
				afterHide: function()
				{
  					$("#server-filter").bind("mouseover", function(eventObject)
					{
						$(this).attr("src", "images/magnifier-hover.gif");
					});

  					$("#server-filter").bind("mouseout", function(eventObject)
					{
						$(this).attr("src", "images/magnifier.gif");
					});

					$("#server-filter").attr("src", "images/magnifier.gif");
				}});

			$("#server-filter-value").attr("value", (jQuery.url.param("server") == undefined)? "" : decodeURIComponent(jQuery.url.param("server")));

			$("#server-filter-value").keypress(function (event)
			{  
				if ((event.which != undefined && event.which == 13) || (event.keyCode != undefined && event.keyCode == 13))
				{
					$("#server-filter-reload").click();
					event.preventDefault();
				}

				if ((event.which != undefined && event.which == 27) || (event.keyCode != undefined && event.keyCode == 27))
				{
					server_window.hide();
					event.preventDefault();
				}
			});

			$("#server-filter-reload").bind("click", function(eventObject)
			{
				var url = document.location.href.split("?");
				var mode = (jQuery.url.param("mode") == undefined)? "" : decodeURIComponent(jQuery.url.param("mode"));
				var server = $("#server-filter-value").val();
				var legion = (jQuery.url.param("legion") == undefined)? "" : decodeURIComponent(jQuery.url.param("legion"));
				var player = (jQuery.url.param("player") == undefined)? "" : decodeURIComponent(jQuery.url.param("player"));
				var sort = (jQuery.url.param("sort") == undefined)? "" : decodeURIComponent(jQuery.url.param("sort"));

 				var re = new RegExp("(.*)/[0-9]+/?");
				var base = ((url.length > 1)? url[0] : document.location.href);

				jump_to_url(base.replace(re, "$1"), {"mode": mode, "server": server, "legion": legion, "player": player, "sort": sort});
			});

			$("#server-filter-clear").bind("click", function(eventObject)
			{
				var url = document.location.href.split("?");
				var mode = (jQuery.url.param("mode") == undefined)? "" : decodeURIComponent(jQuery.url.param("mode"));
				var legion = (jQuery.url.param("legion") == undefined)? "" : decodeURIComponent(jQuery.url.param("legion"));
				var player = (jQuery.url.param("player") == undefined)? "" : decodeURIComponent(jQuery.url.param("player"));
				var sort = (jQuery.url.param("sort") == undefined)? "" : decodeURIComponent(jQuery.url.param("sort"));

 				var re = new RegExp("(.*)/[0-9]+/?");
				var base = ((url.length > 1)? url[0] : document.location.href);

				jump_to_url(base.replace(re, "$1"), {"mode": mode, "legion": legion, "player": player, "sort": sort});
			});
		}

		if (server_window.visible == true)
		{
			server_window.hide();
		}
		else
		{
			server_window.show();
		}
	});

	$("#legion-filter").bind("mouseover", function(eventObject)
	{
		$(this).attr("src", "images/magnifier-hover.gif");
	});

	$("#legion-filter").bind("mouseout", function(eventObject)
	{
		$(this).attr("src", "images/magnifier.gif");
	});

	$("#legion-filter").bind("click", function(eventObject)
	{
		if (legion_window == undefined)
		{
			legion_window = new Boxy("<p class=\"within-window-center\">Enter a legion name to match:<br /><input id=\"legion-filter-value\" class=\"within-window\" type=\"text\" size=\"20\" value=\"\" /><br /><input id=\"legion-filter-reload\" class=\"within-window\" type=\"button\" value=\"Filter\" /><input id=\"legion-filter-clear\" class=\"within-window\" type=\"button\" value=\"Clear\" /></p>", {title: "Legion filter", show: false,
				afterShow: function()
				{
					$("#legion-filter-value").focus();
					$("#legion-filter").unbind("mouseover mouseout");
					$("#legion-filter").attr("src", "images/magnifier-active.gif");
				},
				afterHide: function()
				{
  					$("#legion-filter").bind("mouseover", function(eventObject)
					{
						$(this).attr("src", "images/magnifier-hover.gif");
					});

  					$("#legion-filter").bind("mouseout", function(eventObject)
					{
						$(this).attr("src", "images/magnifier.gif");
					});

					$("#legion-filter").attr("src", "images/magnifier.gif");
				}});

			$("#legion-filter-value").attr("value", (jQuery.url.param("legion") == undefined)? "" : decodeURIComponent(jQuery.url.param("legion")));

			$("#legion-filter-value").keypress(function (event)
			{
				if ((event.which != undefined && event.which == 13) || (event.keyCode != undefined && event.keyCode == 13))
				{
					$("#legion-filter-reload").click();
					event.preventDefault();
				}

				if ((event.which != undefined && event.which == 27) || (event.keyCode != undefined && event.keyCode == 27))
				{
					legion_window.hide();
					event.preventDefault();
				}
			});

			$("#legion-filter-reload").bind("click", function(eventObject)
			{
				var url = document.location.href.split("?");
				var mode = (jQuery.url.param("mode") == undefined)? "" : decodeURIComponent(jQuery.url.param("mode"));
				var server = (jQuery.url.param("server") == undefined)? "" : decodeURIComponent(jQuery.url.param("server"));
				var legion = $("#legion-filter-value").val();
				var player = (jQuery.url.param("player") == undefined)? "" : decodeURIComponent(jQuery.url.param("player"));
				var sort = (jQuery.url.param("sort") == undefined)? "" : decodeURIComponent(jQuery.url.param("sort"));

 				var re = new RegExp("(.*)/[0-9]+/?");
				var base = ((url.length > 1)? url[0] : document.location.href);

				jump_to_url(base.replace(re, "$1"), {"mode": mode, "server": server, "legion": legion, "player": player, "sort": sort});
			});

			$("#legion-filter-clear").bind("click", function(eventObject)
			{
				var url = document.location.href.split("?");
				var mode = (jQuery.url.param("mode") == undefined)? "" : decodeURIComponent(jQuery.url.param("mode"));
				var server = (jQuery.url.param("server") == undefined)? "" : decodeURIComponent(jQuery.url.param("server"));
				var player = (jQuery.url.param("player") == undefined)? "" : decodeURIComponent(jQuery.url.param("player"));
				var sort = (jQuery.url.param("sort") == undefined)? "" : decodeURIComponent(jQuery.url.param("sort"));

 				var re = new RegExp("(.*)/[0-9]+/?");
				var base = ((url.length > 1)? url[0] : document.location.href);

				jump_to_url(base.replace(re, "$1"), {"mode": mode, "server": server, "player": player, "sort": sort});
			});
		}

		if (legion_window.visible == true)
		{
			legion_window.hide();
		}
		else
		{
			legion_window.show();
		}
	});

	$("#player-filter").bind("mouseover", function(eventObject)
	{
		$(this).attr("src", "images/magnifier-hover.gif");
	});

	$("#player-filter").bind("mouseout", function(eventObject)
	{
		$(this).attr("src", "images/magnifier.gif");
	});

	$("#player-filter").bind("click", function(eventObject)
	{
		if (player_window == undefined)
		{
			player_window = new Boxy("<p class=\"within-window-center\">Enter a player name to match:<br /><input id=\"player-filter-value\" class=\"within-window\" type=\"text\" size=\"20\" value=\"\" /><br /><input class=\"within-window\" id=\"player-filter-reload\" type=\"button\" value=\"Filter\" /><input id=\"player-filter-clear\" class=\"within-window\" type=\"button\" value=\"Clear\" /></p>", {title: "Player filter", show: false,
				afterShow: function()
				{
					$("#player-filter-value").focus();
					$("#player-filter").unbind("mouseover mouseout");
					$("#player-filter").attr("src", "images/magnifier-active.gif");
				},
				afterHide: function()
				{
  					$("#player-filter").bind("mouseover", function(eventObject)
					{
						$(this).attr("src", "images/magnifier-hover.gif");
					});

  					$("#player-filter").bind("mouseout", function(eventObject)
					{
						$(this).attr("src", "images/magnifier.gif");
					});

					$("#player-filter").attr("src", "images/magnifier.gif");
				}});

			$("#player-filter-value").attr("value", (jQuery.url.param("player") == undefined)? "" : decodeURIComponent(jQuery.url.param("player")));

			$("#player-filter-value").keypress(function (event)
			{
				if ((event.which != undefined && event.which == 13) || (event.keyCode != undefined && event.keyCode == 13))
				{
					$("#player-filter-reload").click();
					event.preventDefault();
				}

				if ((event.which != undefined && event.which == 27) || (event.keyCode != undefined && event.keyCode == 27))
				{
					player_window.hide();
					event.preventDefault();
				}
			});

			$("#player-filter-reload").bind("click", function(eventObject)
			{
				var url = document.location.href.split("?");
				var mode = (jQuery.url.param("mode") == undefined)? "" : decodeURIComponent(jQuery.url.param("mode"));
				var server = (jQuery.url.param("server") == undefined)? "" : decodeURIComponent(jQuery.url.param("server"));
				var legion = (jQuery.url.param("legion") == undefined)? "" : decodeURIComponent(jQuery.url.param("legion"));
				var player = $("#player-filter-value").val();
				var sort = (jQuery.url.param("sort") == undefined)? "" : decodeURIComponent(jQuery.url.param("sort"));

 				var re = new RegExp("(.*)/[0-9]+/?");
				var base = ((url.length > 1)? url[0] : document.location.href);

				jump_to_url(base.replace(re, "$1"), {"mode": mode, "server": server, "legion": legion, "player": player, "sort": sort});
			});

			$("#player-filter-clear").bind("click", function(eventObject)
			{
				var url = document.location.href.split("?");
				var mode = (jQuery.url.param("mode") == undefined)? "" : decodeURIComponent(jQuery.url.param("mode"));
				var server = (jQuery.url.param("server") == undefined)? "" : decodeURIComponent(jQuery.url.param("server"));
				var legion = (jQuery.url.param("legion") == undefined)? "" : decodeURIComponent(jQuery.url.param("legion"));
				var sort = (jQuery.url.param("sort") == undefined)? "" : decodeURIComponent(jQuery.url.param("sort"));

 				var re = new RegExp("(.*)/[0-9]+/?");
				var base = ((url.length > 1)? url[0] : document.location.href);

				jump_to_url(base.replace(re, "$1"), {"mode": mode, "server": server, "legion": legion, "sort": sort});
			});
		}

		if (player_window.visible == true)
		{
			player_window.hide();
		}
		else
		{
			player_window.show();
		}
	});

	$(".mailto").attr("href", "m" + "a" + "i" + "l" + "t" + "o" + ":" + "r" + "o" + "o" + "t" + "s" + "@" + "w" + "a" + "r" + "l" + "e" + "g" + "e" + "n" + "d" + "." + "n" + "e" + "t");
	$(".cluetip").cluetip({splitTitle: "|", tracking: true});
});

function show_stats(who)
{
	if (stats_window == undefined)
	{
		stats_window = new Boxy("<p class=\"within-window-center\"><img class=\"within-window\" src=\"images/graph-error.gif\" alt=\"Graph\" width=\"320\" height=\"240\" /></p>", {title: "Stats", show: false});
	}

	var id = $(who).attr("id");

	if (id == undefined)
	{
		return;
	}

	id = id.split("-");

	if (id.length != 5)
	{
		return;
	}

	var m = id[1];
	var r = id[2];
	var s = id[3];
	var t = id[4];
	var url = "graph.php?m=" + m + "&r=" + r + "&s=" + s + "&t=" + t;
	var link = "http://" + ((r == "0")? "na" : "uk") + ".aiononline.com/livestatus/character-legion/search?serverID=" + s + ((m == "0")? "&guildID=" : "&charID=") + t;

	stats_window.setContent("<p class=\"within-window-center\"><a class=\"within-window\" href=\"" + link+ "\" >Direct link to official profile</a><br /><br /><img class=\"within-window\" src=\"" + url + "\" alt=\"Graph\" width=\"320\" height=\"240\" /></p>");

	stats_window.toTop();

	if (stats_window.visible == false)
	{
		stats_window.show();
	}
}
