<!--
var numLadders = 2;
var xmlDoc;
var xslDoc;
var board_id = 0;
var board_segment = 0;
var board_offset = 0;
var board_limit = 100;
var vRecordsPerPage = 20;
var sort_field = "score";
var sort_order = "desc";
var sort_footer = 3;

function hilite1(elem) {
	if (elem.className == "inactiveTab")
	{
		elem.style.color = "steelblue";
		elem.style.background = "gainsboro";
	}
}

function restore1(elem) {
	if (elem.className == "inactiveTab")
	{
		elem.style.color = "steelblue";
		elem.style.background = "snow";
	}
}

function init() {
	if (window.ActiveXObject) {
		xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
		xslDoc = new ActiveXObject("Msxml2.DOMDocument");
		xmlDoc.onreadystatechange = function() {
			if (xmlDoc.readyState == 4 && xmlDoc.parseError.errorCode == 0)
				updateLadder();
		}
	} else if (document.implementation && document.implementation.createDocument) {
		xmlDoc = document.implementation.createDocument("", "doc", null);
		xslDoc = document.implementation.createDocument("", "doc", null);
		xmlDoc.onload = updateLadder;
	}

	xslDoc.async = false;

	xslDoc.load("ladder.xsl");
	xmlDoc.load("xml.php?tbl=0");
}

function updateLadder() {
	// fill data sheet
	if (document.getElementById("ladder").filters)
		document.getElementById("ladder").filters[0].apply();

	if (window.ActiveXObject) {
		xslDoc.selectSingleNode("//xsl:param[@name='begin']").text = board_offset + 1;
		xslDoc.selectSingleNode("//xsl:param[@name='end']").text = board_offset + vRecordsPerPage;
		document.getElementById("ladder").innerHTML = xmlDoc.transformNode(xslDoc);
	} else {
		var xslt = new XSLTProcessor();
		xslt.importStylesheet(xslDoc);

		xslt.setParameter(null, "begin", board_offset + 1);
		xslt.setParameter(null, "end", board_offset + vRecordsPerPage);

		var ladder_tbl = xslt.transformToFragment(xmlDoc, document);

		var div = document.getElementById("ladder");
		while (div.hasChildNodes())
			div.removeChild(div.lastChild);
		div.appendChild(ladder_tbl);
	}

	// fill page number
	var oSel = document.getElementById("pageno");
	oSel.innerHTML = "";
	var totalcnt = parseInt(xmlDoc.getElementsByTagName("ladder")[0].getAttribute("count"));
	for (i = 0; i < totalcnt/vRecordsPerPage; i++) {
		var oOpt = document.createElement("OPTION");
		oOpt.setAttribute("VALUE", i, 0);
		oOpt.innerHTML = i+1;
		oSel.appendChild(oOpt);
	}
	oSel.selectedIndex = (board_segment + board_offset) / vRecordsPerPage;

	if (document.getElementById("ladder").filters)
		document.getElementById("ladder").filters[0].play();
}

function switchBoard(anch, new_board_id) {
	if (board_id != new_board_id) {
		document.getElementById("board_head"+board_id).className = "inactiveTab";
		document.getElementById("board_head"+board_id).style.color = "steelblue";
		document.getElementById("board_head"+board_id).style.background = "snow";
		document.getElementById("board_head"+new_board_id).className = "activeTab";
		document.getElementById("board_head"+new_board_id).style.color = "white";
		document.getElementById("board_head"+new_board_id).style.background = "#1352C1";
		document.getElementById("ladder").innerHTML = "<b><font color=\"gray\"><center>Loading...</center></font></b>";

//		alert(document.getElementById("board_head"+board_id).className);

		board_id = new_board_id;

		xmlDoc.load("xml.php?tbl="+board_id);
		board_segment = board_offset = 0;
		sort_footer = 3;
	}

	anch.blur();
}

function showLadder(segment, offset, field, order) {
	if (field != undefined)
		sort_field = field;
	if (order != undefined)
		sort_order = order;

	if (board_segment != segment || field != undefined || order != undefined) {
		board_segment = segment;
		board_offset = offset;
		document.getElementById("ladder").innerHTML = "<b><font color=\"gray\"><center>Loading...</center></font></b>";
		xmlDoc.load("xml.php?tbl="+board_id+"&field="+sort_field+"&order="+sort_order+"&footer="+sort_footer+"&start="+board_segment);
	} else if (board_offset != offset) {
		board_offset = offset;
		updateLadder();
	}
}

function toPage(action) {
	var totalcnt = parseInt(xmlDoc.getElementsByTagName("ladder")[0].getAttribute("count"));
	var segment = board_segment;
	var offset = board_offset;

	switch (action) {
	case "firstPage":
		showLadder(0, 0);
	break;

	case "prevPage":
		offset = board_offset - vRecordsPerPage;
		if (offset < 0) {
			segment = Math.max(board_segment - board_limit, 0);
			offset = Math.max(board_segment - vRecordsPerPage, 0) % board_limit;
		}

		showLadder(segment, offset);
		break;

	case "nextPage":
		board_left = totalcnt - board_segment;

		if (board_offset + vRecordsPerPage < Math.min(board_limit, board_left)) {
			offset = board_offset + vRecordsPerPage;
		} else if (board_left > board_limit) {
			segment = board_segment + board_limit;
			offset = 0;
		}

		showLadder(segment, offset);
		break;

	case "lastPage":
		segment = parseInt((totalcnt-1) / board_limit) * board_limit;
		offset = parseInt((totalcnt-1) % board_limit / vRecordsPerPage) * vRecordsPerPage;

		showLadder(segment, offset);
		break;

	default:
		var recno = document.getElementById("pageno").selectedIndex * vRecordsPerPage;
		segment = parseInt(recno / board_limit) * board_limit;
		offset = recno % board_limit;

		showLadder(segment, offset);
		break;
	}
}

function sortby(field, order) {
	if (field == sort_field && order == sort_order)
		return;

	showLadder(0, 0, field, order);
}

function setFooter(footer) {
	if (sort_footer != footer) {
		sort_footer = footer;
		board_segment = 0;
		board_offset = 0;
		sort_field = "score";
		sort_order = "desc";
		document.getElementById("ladder").innerHTML = "<b><font color=\"gray\"><center>Loading...</center></font></b>";
		xmlDoc.load("xml.php?tbl="+board_id+"&field="+sort_field+"&order="+sort_order+"&footer="+sort_footer+"&start="+board_segment);
	}
}

function dropMenu() {
	if (window.ActiveXObject) {
		if (document.getElementById("footermenu").filters)
			document.getElementById("footermenu").filters[0].apply();

		document.getElementById("footermenu").style.display = "block";

		if (document.getElementById("footermenu").filters)
			document.getElementById("footermenu").filters[0].play();
	}
}

function showMenu() {
	if (window.ActiveXObject)
		document.getElementById("footermenu").style.display = "block";
}

function hideMenu() {
	if (window.ActiveXObject)
		document.getElementById("footermenu").style.display = "none";
}

-->