var arcadeQCE = function(name, attr)
	{
		var temp = document.createElement(name);
		if (attr)
		{
			attr = attr.split(", ");
			for (var qce = 0; qce < attr.length; qce++)
			{
				attr[qce] = attr[qce].split('=');
				attr[qce] = new Array(attr[qce].shift(), attr[qce].join('='));
				if (attr[qce][0] == "innerHTML")
					temp.innerHTML = attr[qce][1];
				else
				{
					temp.setAttribute(attr[qce][0], attr[qce][1]);
					if (attr[qce][0] == "class")
						temp.setAttribute("className", attr[qce][1]);
				}
			}
		}
		if (arguments[2])
		{
			for (var qce = 2; qce < arguments.length; qce++)
			{
				if (arguments[qce])
					temp.appendChild(((typeof(arguments[qce]) != "object") ? document.createTextNode(arguments[qce]) : arguments[qce]));
			}
		}
		return temp;
	},
	arcadeRC = function(name)
	{
		var cookies = document.cookie.split(";");
		name = name + "=";
		for (var rc = 0; rc < cookies.length; rc++)
		{
			var c = cookies[rc];
			while (c.charAt(0) == " ")
				c = c.substring(1, c.length);
			if ((c.indexOf(name) == 0) && (c.substring(name.length, c.length) != "false"))
				return c.substring(name.length, c.length);
		}
		return false;
	}
	arcadeSC = function(name, value)
	{
		if (!value)
			value = "false";
		temp = new Date();
		temp.setTime(temp.getTime() + 31536000000);
		document.cookie = name + "=" + value + "; expires=" + temp.toGMTString() + "; path=/";
	},
	arcadePage = ((temp = location.href.match(/[\?&]page=(\d+)/)) ? Number(temp[1]) : 1),
	arcadeFilter = ((temp = location.href.match(/[\?&]filter=(\w)/)) ? temp[1] : false),
	arcadeLetter = ((temp = location.href.match(/[\?&]letter=(\w)/)) ? temp[1] : false),
	arcadeSort = ((temp = location.href.match(/[\?&]sort=(\w+)/)) ? temp[1] : false);
if (!document.getElementById("arcadeIcon"))
{
	var arcadeLink = arcadeQCE("a", "href=/index.cgi?action=arcade, id=arcadeIcon"),
		offset = ((pb_username == "Guest") ? 2 : 3);
	var m, menu = document.getElementsByTagName("font");
	for (m = 0; m < menu.length; m++)
	{
		if (menu[m].innerHTML.match(/\[Home\]/))
		{
			menu = menu[m];
			break;
		}
	}
	var menuItems = menu.getElementsByTagName("a");
	if (menu.getElementsByTagName("img")[0])
		arcadeLink.appendChild(arcadeQCE("img", "alt=[Arcade], border=0, src=" + ((typeof(arcadeIcon) != "undefined") ? arcadeIcon : "http://proboards.gamingmedley.com/images/arcade.gif")));
	else
		arcadeLink.appendChild(document.createTextNode("[Arcade]"));
	menu.insertBefore(arcadeLink, menuItems[menuItems.length - offset]);
	menu.insertBefore(document.createTextNode(" "), menuItems[menuItems.length - offset]);
}
if (location.href.match(/action=arcade/))
{
	document.title = document.title.replace(/ \- (An Error Has Occurred|Maintenance Mode Enabled)/, " - Arcade");
	var t, tables = document.getElementsByTagName("table");
	for (t = 0; t < tables.length; t++)
	{
		if ((tables[t].innerHTML.match(/:: (An Error Has Occurred|Maintenance Mode Enabled)/)) && (!tables[t].getElementsByTagName("table")[3]))
		{
			tables[t].setAttribute("id", "arcade");
			tables[t + 2].setAttribute("id", "arcadeGames");
			var columns = tables[t].getElementsByTagName("td");
			columns[2].setAttribute("align", "center");
			columns[2].setAttribute("colSpan", "5");
			columns[4].innerHTML = "<div style=\"float : left; text-align : left; width : 50%;\"><font size=\"1\">Hosted by <a href=\"http://flash.games.gamingmedley.com\">GamingMedley.com<\/a>.<\/font><\/div><div style=\"float : right; width : 49%;\">" + columns[4].innerHTML + "<\/div>";
			tables[t].getElementsByTagName("table")[1].rows[1].style.display = "none";
			if (temp = location.href.match(/[\?&]highscore=([\w-]+)/))
			{
				arcadify = function()
				{
/*<div id="leaderboard_widget"></div>
<script src="http://xs.mochiads.com/static/pub/swf/leaderboard.js" type="text/javascript"></script>
<script type="text/javascript">
// Customized example: Embeds a 500x500 leaderboard widget, replacing the "leaderboard_widget" div
var options = {game: "mochiscores-sample-game", width: 500, height: 500, id: "leaderboard_widget"};
// your publisher ID - optional (if not included, ALL scores from all sites will be shown)
options.partnerID = "0123456789adbcdef";
// username link prefix - optional
options.userPrefix" = "http://www.mochiads.com.com/community/profile/";
// leaderboard scores text color - optional
options.textColor = "#ffffff";
// username link color - optional
options.linkColor = "#ffffff";
// username hover color - optional
options.hoverColor = "#3399CC";
// button color - optional
options.buttonColor = "#f29d1c";
// button text color - optional
options.buttonTextColor = "#ffffff";
// Show the widget!
Mochi.showLeaderboardWidget(options);
</script>*/
					document.getElementById("arcade").getElementsByTagName("b")[0].innerHTML = arcadeData["name"] + " High Scores";
					var arcadeTd = arcadeQCE("td", "align=center, class=windowbg2, colSpan=5, innerHTML=<div id=\"arcadeHighScores\"><\/div>"),
						columns = document.getElementById("arcade").getElementsByTagName("td"),
						gameTBody = document.getElementById("arcadeGames").getElementsByTagName("tbody")[0],
						mochiOptions = {
							gateway: "http://proboards.gamingmedley.com/arcade/high-scores.php",
							id: "arcadeHighScores",
							logoURL: "http://gamingmedley.com/_/images/GamingMedley_Medium.gif",
							partnerID: "6328f0eab45327c5",
							sessionID: location.host + "/" + pb_username,
							userPrefix: "http://" + location.host + "/index.cgi?action=viewprofile&user="
						};
					mochiOptions.callback = function(params)
					{
						alert(params.name + " (" + params.username + ") just scored " + params.score + "!");
					}
					mochiOptions.globalScores = "true";
					if (pb_username != "Guest")
					{
						mochiOptions.userID = pb_username;
						mochiOptions.username = pb_displayname;
					}
					columns[0].innerHTML = columns[0].innerHTML.replace(/:: (An Error Has Occurred|Maintenance Mode Enabled)/, ":: <a class=\"nav\" href=\"/index.cgi?action=arcade\">Arcade<\/a> :: <a class=\"nav\" href=\"/index.cgi?action=arcade&amp;game=" + game + "\">" + arcadeData["name"] + "<\/a> :: High Scores");
					document.getElementsByTagName("head")[0].appendChild(arcadeQCE("script", "src=http://xs.mochiads.com/static/pub/swf/leaderboard.js, type=text/javascript"));
					gameTBody.insertBefore(arcadeQCE("tr", "", arcadeTd), gameTBody.lastChild);
					Mochi.addLeaderboardIntegration(mochiOptions);
				}
				var font1 = document.getElementsByTagName("font")[1],
					game = temp[1];
				mochiOptions.game = game;
				document.title += " - High Scores";
				font1.innerHTML = font1.innerHTML.replace(/(An Error Has Occurred|Maintenance Mode Enabled)/, "High Scores");
				document.getElementsByTagName("head")[0].appendChild(arcadeQCE("script", "src=http://proboards.gamingmedley.com/arcade/data.js?game=" + encodeURIComponent(game) + ", type=text/javascript"));
				document.getElementsByTagName("head")[0].appendChild(arcadeQCE("script", "src=http://xs.mochiads.com/static/pub/swf/leaderboard.js, type=text/javascript"));
				tables[t + 2].getElementsByTagName("tbody")[0].appendChild(arcadeQCE("tr", "", arcadeQCE("td", "align=center, class=windowbg2, colSpan=5, innerHTML=<div id=\"arcadeHighScores\">&nbsp;<\/div>")));
				tables[t + 2].getElementsByTagName("tbody")[0].appendChild(arcadeQCE("tr", "", arcadeQCE("td", "align=center, class=windowbg, colSpan=5, innerHTML=<a href=\"/index.cgi?action=arcade&amp;game=" + encodeURIComponent(game) + "\">Back to the Game<\/a>")));
				Mochi.showLeaderboardWidget(mochiOptions);
			}
			else if (temp = location.href.match(/[\?&]game=([\w-]+)/))
			{
				arcadify = function()
				{
					var arcadeTd = arcadeQCE("td", "align=center, class=windowbg2, colSpan=5"),
						columns = document.getElementById("arcade").getElementsByTagName("td"),
						font1 = document.getElementsByTagName("font")[1];
					document.title += " - " + arcadeData["name"];
					font1.innerHTML = font1.innerHTML.replace(/(An Error Has Occurred|Maintenance Mode Enabled)/, arcadeData["name"]);
					document.getElementById("arcade").getElementsByTagName("b")[0].innerHTML = arcadeData["name"];
					columns[0].innerHTML = columns[0].innerHTML.replace(/:: (An Error Has Occurred|Maintenance Mode Enabled)/, ":: <a class=\"nav\" href=\"/index.cgi?action=arcade\">Arcade<\/a> :: " + arcadeData["name"]);
					arcadeTd.innerHTML = "<style type=\"text/css\"><!--\n" +
						"p.description { clear : both; margin : 0; padding-top : 6pt; text-align : justify; text-indent : 12pt; }\n" +
						"--><\/style>" +
						"<iframe id=\"arcadeIFrame\" name=\"arcadeIFrame\" style=\"display : none;\"><\/iframe>" +
						"<object data=\"http://flash.games.gamingmedley.com/" + game + ".swf\" height=\"" + ((arcadeData["height"]) ? arcadeData["height"] : 480) + "\" type=\"application/x-shockwave-flash\" width=\"" + ((arcadeData["width"]) ? arcadeData["width"] : 640) + "\">" +
							"<param name=\"menu\" value=\"false\" />" +
							"<param name=\"movie\" value=\"http://flash.games.gamingmedley.com/" + game + ".swf\" />" +
							"<param name=\"quality\" value=\"high\" />" +
						"<\/object>" +
						"<div style=\"margin : 0 auto; width : " + ((arcadeData["width"]) ? arcadeData["width"] : 640) + "px;\">" +
							"<div style=\"float : left; text-align : left; width : 49%;\">" +
								"<form action=\"http://flash.games.gamingmedley.com/rating.php\" encoding=\"multipart/form-data\" enctype=\"multipart/form-data\" method=\"post\" name=\"arcadeForm\" onsubmit=\"disable(this);\" style=\"margin : 0;\" target=\"arcadeIFrame\">" +
									"<input name=\"game\" type=\"hidden\" value=\"" + game + "\" />" +
									"<input name=\"rating\" type=\"hidden\" value=\"3\" />" +
									"<b>Rate This Game:<\/b>&nbsp;" +
									"<span id=\"arcadeRating\"><\/span>" +
								"<\/form>" +
							"<\/div>" +
							"<div style=\"float : right; text-align : right; width : 49%;\">" +
								"<a href=\"#\" onclick=\"var ae = document.getElementById('arcadeEmbed'); if (ae.style.display == 'block') { ae.style.display = 'none'; this.innerHTML = this.innerHTML.replace(/\\- /, '+ '); } else { ae.style.display = 'block'; this.innerHTML = this.innerHTML.replace(/\\+/, '-'); } return false;\"><font size=\"-1\">+ Add This Game to Your Site<\/font><\/a>" +
							"<\/div>" +
							"<textarea cols=\"24\" id=\"arcadeEmbed\" rows=\"5\" style=\"clear : both; display : none; width : 100%;\">" +
								"&lt;object data=&quot;http://flash.games.gamingmedley.com/" + game + ".swf&quot; height=&quot;" + ((arcadeData["height"]) ? arcadeData["height"] : 480) + "&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;" + ((arcadeData["width"]) ? arcadeData["width"] : 640) + "&quot;&gt;\n" +
									"\t&lt;param name=&quot;menu&quot; value=&quot;false&quot; /&gt;\n" +
									"\t&lt;param name=&quot;movie&quot; value=&quot;http://flash.games.gamingmedley.com/" + game + ".swf&quot; /&gt;\n" +
									"\t&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;\n" +
								"&lt;\/object&gt;" +
							"<\/textarea>" +
							((arcadeData["description"]) ? "<p class=\"description\">" + arcadeData["description"] + "<\/p>" : "") +
							((arcadeData["instructions"]) ? "<p class=\"description\"><b>Instructions:</b> " + arcadeData["instructions"] + "<\/p>" : "") +
						"<\/div>";
					gameTBody = document.getElementById("arcadeGames").getElementsByTagName("tbody")[0];
					gameTBody.insertBefore(arcadeQCE("tr", "", arcadeTd), gameTBody.lastChild);
					for (var x = 1; x < 11; x++)
					{
						var star = arcadeQCE("img", "alt=" + String(x / 2) + ", src=http://proboards.gamingmedley.com/images/red-star-" + ((x % 2) ? "left" : "right") + "-half" + (((!gameRating) || (Number(gameRating) < (x / 2))) ? "-fade" : "") + ".gif, title=" + String(x / 2) + " Star" + ((x != 2) ? "s" : ""));
						star.onclick = function()
						{
							arcadeSC("rating[" + game + "]", this.alt);
							document.arcadeForm.submit();
							document.getElementById("arcadeRating").innerHTML = "<tt style=\"font-size : 12pt;\">R a t e d<\/tt>";
						}
						star.onmouseout = function()
						{
							var stars = document.getElementById("arcadeRating").getElementsByTagName("img");
							for (var omo = 0; omo < 10; omo++)
								stars[omo].setAttribute("src", "http://proboards.gamingmedley.com/images/red-star-" + ((omo % 2) ? "right" : "left") + "-half" + (((!gameRating) || (Number(gameRating) < ((omo + 1) / 2))) ? "-fade" : "") + ".gif");
						}
						star.onmouseover = function()
						{
							this.parentNode.parentNode.getElementsByTagName("input")[1].setAttribute("value", this.alt);
							var stars = document.getElementById("arcadeRating").getElementsByTagName("img");
							for (var omo = 0; omo < 10; omo++)
								stars[omo].setAttribute("src", "http://proboards.gamingmedley.com/images/red-star-" + ((omo % 2) ? "right" : "left") + "-half" + ((Number(this.getAttribute("alt")) < ((omo + 1) / 2)) ? "-fade" : "") + ".gif");
						}
						star.style.cursor = "pointer";
						document.getElementById("arcadeRating").appendChild(star);
					}
				}
				var game = temp[1];
				var gameRating = arcadeRC("rating[" + game + "]");
				document.getElementsByTagName("head")[0].appendChild(arcadeQCE("script", "src=http://proboards.gamingmedley.com/arcade/data.js?game=" + encodeURIComponent(game) + ", type=text/javascript"));
				tables[t + 2].getElementsByTagName("tbody")[0].appendChild(arcadeQCE("tr", "", arcadeQCE("td", "align=center, class=windowbg, colSpan=5, innerHTML=<a href=\"/index.cgi?action=arcade\">Back to the Arcade<\/a>")));
			}
			else
			{
				var font1 = document.getElementsByTagName("font")[1];
				font1.innerHTML = font1.innerHTML.replace(/(An Error Has Occurred|Maintenance Mode Enabled)/, "Arcade");
				tables[t].getElementsByTagName("b")[0].innerHTML = "Arcade";
				columns[0].innerHTML = columns[0].innerHTML.replace(/:: (An Error Has Occurred|Maintenance Mode Enabled)/, ":: Arcade");
				arcadeTitleBg = tables[t].getElementsByTagName("td")[2];
				arcadeTitleBg.innerHTML = "<div style=\"float : left; text-align : left; width : 25%;\"><font size=\"2\"><b><a href=\"http://servicesupport.proboards.com/index.cgi?board=pbass&amp;action=display&amp;thread=143\">[Get Your Own]<\/a><\/b><\/font><\/div><div style=\"float : right; text-align : right; width : 25%;\"><font size=\"2\"><b><a href=\"http://servicesupport.proboards.com/index.cgi?board=pbass\">[Support]<\/a><\/b><\/font><\/div>" + arcadeTitleBg.innerHTML;
				if ((typeof(arcadeMembersOnly) != "undefined") && (arcadeMembersOnly) && (pb_username == "Guest"))
				{
					tables[t].getElementsByTagName("table")[1].rows[1].style.display = "";
					tables[t].getElementsByTagName("table")[1].rows[1].cells[0].getElementsByTagName("font")[0].innerHTML = "You must be logged in to play the arcade! Please, <a href=\"/index.cgi?action=login\">login<\/a> or <a href=\"/index.cgi?action=register\">register<\/a>.";
				}
				else
				{
					arcadify = function(totalGames)
					{
						var gamesTBody = document.getElementById("arcadeGames").getElementsByTagName("tbody")[0],
							letters = new Array('#', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'),
							lettersNav = "", l;
						for (l = 0; l < 27; l++)
							lettersNav += "<a href=\"/index.cgi?action=arcade" + ((arcadeFilter) ? "&amp;filter=" + arcadeFilter : "") + "&amp;letter=" + ((letters[l] == '#') ? "9" : letters[l]) + ((arcadeSort) ? "&amp;sort=" + arcadeSort : "") + "\">&nbsp;" + letters[l] + "&nbsp;<\/a>";
						gamesTBody.appendChild(arcadeQCE("tr", "", arcadeQCE("td", "align=center, class=windowbg, colSpan=5, innerHTML=<a href=\"/index.cgi?action=arcade" + ((arcadeFilter) ? "&amp;filter=" + arcadeFilter : "") + ((arcadeSort) ? "&amp;sort=" + arcadeSort : "") + "\">All<\/a>" + lettersNav + ", vAlign=middle")));
						for (var a = 0; a < arcadeGames.length; a++)
						{
							if (a % 5 == 0)
								var arcadeTr = document.createElement("tr");
							var gameUrl = "/index.cgi?action=arcade&amp;game=" + arcadeGames[a][1];
							arcadeGame = arcadeQCE("td", "align=center, class=windowbg2, width=20%");
							arcadeGame.innerHTML = "<a href=\"" + gameUrl + "\"><img alt=\"" + arcadeGames[a][0] + "\" border=\"0\" src=\"http://flash.games.gamingmedley.com/img/" + arcadeGames[a][1] + "." + arcadeGames[a][2] + "\" /><\/a><br /><a href=\"" + gameUrl + "\">" + arcadeGames[a][0] + "<\/a>";
							arcadeTr.appendChild(arcadeGame);
							if ((a % 5 == 4) || (a == arcadeGames.length - 1))
							{
								arcadeTr.lastChild.setAttribute("colSpan", String(5 - (a % 5)));
								gamesTBody.appendChild(arcadeTr);
							}
						}
						var filterNames = ["No Filter", "Everyone", "Teen", "Mature"],
							filters = [false, "E", "T", "M"],
							sortNames = ["Name (A-Z)", "Name (Z-A)", "Newest", "Random", "Rating"],
							sorts = ["name", "name-desc", "default", "random", "rating"],
							selectPages = ["", "", ""];
						for (a = 1; a <= Math.ceil(totalGames / 25); a++)
							selectPages[0] += "<option value=\"" + a + "\"" + ((a == arcadePage) ? " selected=\"selected\"" : "") + ">Page " + a + "<\/option>";
						for (a = 0; a < 4; a++)
							selectPages[1] += "<option value=\"" + ((!filters[a]) ? "All" : filters[a]) + "\"" + ((filters[a] == arcadeFilter) ? " selected=\"selected\"" : "") + ">" + filterNames[a] + "<\/option>";
						for (a = 0; a < 5; a++)
							selectPages[2] += "<option value=\"" + sorts[a] + "\"" + ((sorts[a] == arcadeSort) ? " selected=\"selected\"" : "") + ">" + sortNames[a] + "<\/option>";
						gamesTBody.appendChild(arcadeQCE("tr", "", arcadeQCE("td", "align=center, class=windowbg, colSpan=5, innerHTML=<font size=\"1\"><div style=\"float : left; text-align : left; width : 10%;\">&nbsp;" + ((arcadePage > 1) ? " <a href=\"/index.cgi?action=arcade&amp;page=" + (arcadePage - 1) + ((arcadeFilter) ? "&amp;filter=" + arcadeFilter : "") + ((arcadeLetter) ? "&amp;letter=" + arcadeLetter : "") + ((arcadeSort) ? "&amp;sort=" + arcadeSort : "") + "\">&#171; Previous<\/a>" : "") + "<\/div><div style=\"float : right; text-align : right; width : 10%;\">" + ((totalGames > arcadePage * 25) ? "<a href=\"/index.cgi?action=arcade&amp;page=" + (arcadePage + 1) + ((arcadeFilter) ? "&amp;filter=" + arcadeFilter : "") + ((arcadeLetter) ? "&amp;letter=" + arcadeLetter : "") + ((arcadeSort) ? "&amp;sort=" + arcadeSort : "") + "\">Next &#187;<\/a> " : "") + "&nbsp;<\/div><select onchange=\"location.href = '/index.cgi?action=arcade&amp;page=' + this.options[this.selectedIndex].value + ((arcadeSort) ? '&amp;sort=' + arcadeSort : '');\">" + selectPages[0] + "<\/select> <select onchange=\"var filter = this.options[this.selectedIndex].value; location.href = '/index.cgi?action=arcade' + ((filter != 'All') ? '&amp;filter=' + filter : '') + ((arcadeLetter) ? '&amp;letter=' + arcadeLetter : '') + ((arcadeSort) ? '&amp;sort=' + arcadeSort : '');\">" + selectPages[1] + "<\/select> <select onchange=\"var sort = this.options[this.selectedIndex].value; location.href = '/index.cgi?action=arcade' + ((arcadeFilter) ? '&amp;filter=' + arcadeFilter : '') + ((arcadeLetter) ? '&amp;letter=' + arcadeLetter : '') + ((sort != 'default') ? '&amp;sort=' + sort : '');\"><option value=\"default\">Sort By<\/option>" + selectPages[2] + "<\/select><\/font>, vAlign=middle")));
					}
					document.getElementsByTagName("head")[0].appendChild(arcadeQCE("script", "src=http://proboards.gamingmedley.com/arcade/index.js?page=" + arcadePage + ((arcadeFilter) ? "&filter=" + arcadeFilter : "") + ((arcadeLetter) ? "&letter=" + arcadeLetter : "") + ((arcadeSort) ? "&sort=" + arcadeSort : "") + ", type=text/javascript"));
				}
			}
		}
	}
}