// 
//	TYGR Productions Interactive Statistics
//	
//	This file contains JavaScript support functions for TYGR Productions' Interactive Statistics.  The code contained herein
//  is NOT in the public domain.  This file is provided for download to personal computers and is only authorized for personal 
//  use in conjuction with TYGR Productions' Interactive Statistics.  Copying or reposting this file in whole or in part on 
//  any web server or other network server, or reusing any portion of the code is not allowed without express written consent 
//  of the author.  Any commercial use is strictly prohibited.
//	
//	Copyright (c) 2005 by Jon T. Camp.  All rights reserved.
// 
function loadTable(tableData) 
{
	var cell;
	var cellData;
	var tbody = tableData.Table.tBodies[0];
	var td;
	var tr;

	for (var i = 0; i < tableData.DataColCount; i++) 
	{
		var nodeElement = tableData.Node.getElementsByTagName(tableData.Elements[i]).item(0);
		var nodeList = nodeElement.getElementsByTagName(tableData.IDs[i]);

		for (var j = 0; j < nodeList.length; j++) 
		{
			tr = tbody.rows[dataRowToTableRow(j)];
			cell = tr.cells[dataColToTableCol(i)];
			cellData = nodeList.item(tableData.Ptr[j]).firstChild.nodeValue;
			
			if (bDefaultFormat) cell.firstChild.nodeValue = cellData
			else 
			{
				if (tableData.LeftAlign[i]) cell.innerHTML = "&nbsp;" + cellData
				else cell.innerHTML = cellData + "&nbsp;";
			}
		}
	}
}

function loadTotals() 
{
	var aTotals = []
	var destElement;
	var destList;
	var nValue;
	var totalData = tableDataFromId("tableTotalId");
	
	for (var i = 1; i < totalData.DataColCount - 2; i++) 
	{
		var srcElement = aTableData[i - 1].Node.getElementsByTagName("ranks").item(0);
		var srcList = srcElement.getElementsByTagName("rank");
		destElement = totalData.Node.getElementsByTagName(totalData.Elements[i]).item(0);
		destList = destElement.getElementsByTagName(totalData.IDs[i]);

		for (var j = 0; j < srcList.length; j++) 
		{
			nValue = Number(srcList.item(j).firstChild.nodeValue);
			destList.item(j).firstChild.nodeValue = nValue.toFixed(1);
			if (j > aTotals.length - 1) aTotals[j] = nValue;
			else aTotals[j] += nValue;
		}
	}
	
	destElement = totalData.Node.getElementsByTagName("avgs").item(0);
	destList = destElement.getElementsByTagName("avg");
	
	for (var i = 0; i < destList.length; i++) 
	{
		aTotals[i] = (aTotals[i] / (totalData.DataColCount - 3)).toFixed(1);
		destList.item(i).firstChild.nodeValue = aTotals[i];
	}
}

function loadValues(tableData, nIndex, aValues) 
{
	var nodeElement = tableData.Node.getElementsByTagName(tableData.Elements[nIndex]).item(0);
	var nodeList = nodeElement.getElementsByTagName(tableData.IDs[nIndex]);
	
	for (var i = 0; i < nodeList.length; i++) 
	{
		aValues[i] = nodeList.item(tableData.Ptr[i]).firstChild.nodeValue;
	}
}

function loadXML() 
{
	var selObj = document.getElementById("selectFormatId");
	var cFormat = getCookieData(cStatCookieName);

	if (!isNaN(cFormat)) 
	{
		var nFormat = Number(cFormat);

		if ((nFormat >= 0) && (nFormat < selObj.length)) 
		{
			selObj.selectedIndex = nFormat;
			if (nFormat == 2) bDefaultFormat = true;
			if (nFormat == 1) bDivideRows = true;
		}
	}

	selObj = document.getElementById("loadProfileId");
	var cDefaultProfileIndex = getCookieData(cDefaultProfileCookieName);

	if (!isNaN(cDefaultProfileIndex)) 
	{
		nDefaultProfileIndex = Number(cDefaultProfileIndex);
		if (nDefaultProfileIndex < 0) nDefaultProfileIndex = 0;
	}

	selObj = document.getElementById("selectFavoriteTeamId");
	var cFavoriteTeamIndex = getCookieData(cFavoriteTeamCookieName);

	if (!isNaN(cFavoriteTeamIndex)) 
	{
		var nFavoriteTeamIndex = Number(cFavoriteTeamIndex);

		if ((nFavoriteTeamIndex >= 0) && (nFavoriteTeamIndex < selObj.length)) 
		{
			selObj.selectedIndex = nFavoriteTeamIndex;
			if (nFavoriteTeamIndex > 0) cFavoriteTeam = selObj.item(nFavoriteTeamIndex).text;
		}
	}

	selObj = document.getElementById("loadProfileId");
			
	var cCookieData = getCookieData(cProfileCookieName);
	var nStart = 0;
	
	while (nStart < cCookieData.length) 
	{
		nStart = cCookieData.indexOf("|", nStart);
		if (nStart == -1) break;
		nStop = cCookieData.indexOf("|", nStart + 1);
		if (nStop == -1) break;
		
		var cProfileName = cCookieData.substr(nStart + 1, nStop - nStart - 1);
		selObj.options[selObj.length] = new Option(cProfileName, "");
		nStart = nStop + 1;
	}
	
	if ((nDefaultProfileIndex > 0) && (nDefaultProfileIndex < selObj.length)) selObj.selectedIndex = nDefaultProfileIndex;
	else nDefaultProfileIndex = 0;

	var ckBox = document.getElementById("ckWeightingId");
	var cWeighting = getCookieData(cWeightingCookieName);

	if (ckBox) ckBox.checked = (cWeighting == "true" ? true : false);
	bWeightedRanking = (cWeighting == "true" ? true : false);
	
	var xmlDoc;
	
	if (navigator.appName == "Microsoft Internet Explorer") 
	{
		bIE = true;
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = false;
		xmlDoc.load(cXMLPath);
	}
	else if (navigator.appName == "Netscape") 
	{
		bNetscape = true;
		var myXMLHTTPRequest = new XMLHttpRequest();
    myXMLHTTPRequest.open("GET", cXMLPath, false);
    myXMLHTTPRequest.send(null);
    xmlDoc = myXMLHTTPRequest.responseXML;
	}
	else 
	{
		alert("Unsupported browser: " + navigator.appName);
	}
		
	docbody = document.body;
	if (bNetscape) appendBreak(docbody);
	
	var nodeRoot = xmlDoc.getElementsByTagName("stats").item(0);
	var nodeStat = nodeRoot.firstChild;

	while (nodeStat != null) 
	{
		appendTable(nodeStat);
		nodeStat = nodeStat.nextSibling;
	}

	toolTipData.toolTip = document.createElement("div");
	toolTipData.toolTip.id = "toolTipId";
	with (toolTipData.toolTip.style) 
	{
		position = "absolute";
		left = 0;
		top = 0;
		zIndex = 2;
		backgroundColor = "#FFFFCC";
	}
	docbody.appendChild(toolTipData.toolTip);

	toolTipData.toolTipShadow = document.createElement("div");
	toolTipData.toolTipShadow.id = "toolTipShadowId";
	with (toolTipData.toolTipShadow.style) 
	{
		position = "absolute";
		left = 0;
		top = 0;
		zIndex = 1;
	}
	docbody.appendChild(toolTipData.toolTipShadow);
}
