
var disp = null;
var stds = null;
var most_pos_gained = 0;
var most_pos_lost = 0;
var preview = false;
var season_id = 0;
var show_pos = 0;

var table_bdr = null;
var table_bg = null;
var table_fg = null;
var table_href = null;

function FillTable(sortby)
{
	if (sortby == "chg") stds.sort(SortByChg);
	else if (sortby == "dr") stds.sort(SortByDriver);
	else if (sortby == "starts") stds.sort(SortByStarts);
	else if (sortby == "prov") stds.sort(SortByProv);
	else if (sortby == "rc") stds.sort(SortByRacesCounted);
	else if (sortby == "wins") stds.sort(SortByWins);
	else if (sortby == "t5") stds.sort(SortByT5);
	else if (sortby == "t10") stds.sort(SortByT10);
	else if (sortby == "pts") stds.sort(SortByPoints);
	else if (sortby == "bpts") stds.sort(SortByPointsBonus);
	else if (sortby == "ppts") stds.sort(SortByPointsPenalty);
	else if (sortby == "laps") stds.sort(SortByLaps);
	else if (sortby == "inc") stds.sort(SortByInc);
	else if (sortby == "bld") stds.sort(SortByBehLead);
	else if (sortby == "bnx") stds.sort(SortByBehNext);
	else if (sortby == "pp") stds.sort(SortByPoles);
	else if (sortby == "ipr") stds.sort(SortByIncRace);
	else if (sortby == "ipl") stds.sort(SortByIncLap);
	else if (sortby == "ipc") stds.sort(SortByIncCorner);
	else if (sortby == "cnr") stds.sort(SortByCorners);
	else if (sortby == "cls") stds.sort(SortByClass);
	else if (sortby == "ml") stds.sort(SortByMiles);
	else if (sortby == "team") stds.sort(SortByTeam);
	else if (sortby == "club") stds.sort(SortByClub);
	else stds.sort(SortByPos);

	for (var i = 0 ; i < disp.length ; i++)
	{
		var col_sort = null;
		if (disp[i].id == 1) col_sort = "pos";
		else if (disp[i].id == 2) col_sort = "chg";
		else if (disp[i].id == 3) col_sort = "dr";
		else if (disp[i].id == 4) col_sort = "starts";
		else if (disp[i].id == 5) col_sort = "prov";
		else if (disp[i].id == 6) col_sort = "rc";
		else if (disp[i].id == 7) col_sort = "wins";
		else if (disp[i].id == 8) col_sort = "t5";
		else if (disp[i].id == 9) col_sort = "t10";
		else if (disp[i].id == 10) col_sort = "pts";
		else if (disp[i].id == 11) col_sort = "bpts";
		else if (disp[i].id == 12) col_sort = "ppts";
		else if (disp[i].id == 13) col_sort = "laps";
		else if (disp[i].id == 14) col_sort = "inc";
		else if (disp[i].id == 15) col_sort = "bld";
		else if (disp[i].id == 16) col_sort = "bnx";
		else if (disp[i].id == 17) col_sort = "pp";
		else if (disp[i].id == 18) col_sort = "ipr";
		else if (disp[i].id == 19) col_sort = "ipl";
		else if (disp[i].id == 20) col_sort = "ipc";
		else if (disp[i].id == 21) col_sort = "cnr";
		else if (disp[i].id == 22) col_sort = "cls";
		else if (disp[i].id == 23) col_sort = "ml";
		else if (disp[i].id == 24) col_sort = "team";
		else if (disp[i].id == 25) col_sort = "club";

		TableSkeletonHdr("hdr_" + disp[i].id, sortby, col_sort, disp[i].hdr, "FillTable");
	}

	var str = "";
	var j = 0;
	for (var i = 0 ; i < stds.length ; i++)
	{
		for (j = 0 ; j < disp.length ; j++)
		{
			switch (disp[j].id)
			{
				case 1:		// Points pos
					str = stds[i].pos;
					break;

				case 2:		// Chg
					if (stds[i].chg == 0) str = "-";
					else if (stds[i].chg > 0) str = "+" + stds[i].chg;
					else str = stds[i].chg;

					var bg = "#FFFFFF";
					if (typeof(table_bg) == "string" && table_bg.length > 0) bg = "#" + table_bg;
					if (stds[i].chg > 0 && stds[i].chg == most_pos_gained) bg = "#CCFFCC";
					else if (stds[i].chg < 0 && stds[i].chg == most_pos_lost) bg = "#FFCCCC";
					document.getElementById("body_" + disp[j].id + "_" + i).style.background = bg;
					break;

				case 3:		// Driver
					str = "<a href='driver_stats.php?driver_id=" + stds[i].drid + "&season_id=" + season_id + "'";
					str += " title='Driver Stats'>" + stds[i].dr + "</a>";
					break;

				case 4:		// Starts
					str = stds[i].starts;
					break;

				case 5:		// Prov
					str = stds[i].prov;
					break;

				case 6:		// Races counted
					str = stds[i].rc;
					break;

				case 7:		// Wins
					str = stds[i].wins;
					break;

				case 8:		// Top 5
					str = stds[i].t5;
					break;

				case 9:		// Top 10
					str = stds[i].t10;
					break;

				case 10:	// Total points
					if (stds[i].tpts < 0) str = "<span class='red'>" + stds[i].tpts_str + "</a>";
					else str = stds[i].tpts_str;
					break;

				case 11:	// Bonus points
					str = stds[i].bpts_str;
					break;

				case 12:	// Penalty points
					str = stds[i].ppts_str;
					break;

				case 13:	// Laps
					str = stds[i].laps_str;
					break;

				case 14:	// Incidents
					str = stds[i].inc_str;
					break;

				case 15:	// Behind lead
					str = stds[i].bld_str;
					break;

				case 16:	// Behind next
					str = stds[i].bnx_str;
					break;

				case 17:	// Poles
					str = stds[i].pp;
					break;

				case 18:	// Inc per race
					str = stds[i].ipr_str;
					break;

				case 19:	// Inc per lap
					str = stds[i].ipl_str;
					break;

				case 20:	// Inc per corner
					str = stds[i].ipc_str;
					break;

				case 21:	// Num corners
					str = stds[i].cnr_str;
					break;

				case 22:	// Class
					str = stds[i].cls;
					break;

				case 23:	// Miles
					str = stds[i].ml_str;
					break;

				case 24:	// Team
					str = stds[i].team;
					break;

				case 25:	// Club
					str = stds[i].club;
					break;

				default:
					str = "<i class='gray'>ID " + disp[j].id + "</i>";
			}

			document.getElementById("body_" + disp[j].id + "_" + i).innerHTML = str;
		}
	}
}

function PageLoad()
{
	if (stds == null || stds.length == 0) return;
	if (disp == null || disp.length == 0) return;

	var cols = new Array();
	for (var i = 0 ; i < disp.length ; i++)
	{
		cols.push({hdr_id:"hdr_" + disp[i].id, body_id:"body_" + disp[i].id, align:disp[i].align, nowrap:1});
	}

	var table_length = stds.length;
	if (show_pos > 0) table_length = show_pos;
	if (table_length > stds.length) table_length = stds.length;

	var str = TableSkeleton("standings_table", cols, table_length, null);
	document.getElementById("js_body").innerHTML = str;

	var sortby = getCookie("stds_sort");
	if (sortby == null || sortby.length == 0) sortby = "pos";
	FillTable(sortby);
}

function SetStandings(sel)
{
	var val = sel[sel.selectedIndex].value;
	var url = "season_standings.php?";
	if (val.substring(0, 1) == "c") url += "championship_id=" + val.substring(1);
	else url += "season_id=" + val.substring(1);
	self.location.href = url;
}

function SortByBehLead(a, b)
{
	if (a.bld == b.bld) return SortByPos(a, b);
	else return (a.bld > b.bld ? 1 : -1);
}

function SortByBehNext(a, b)
{
	if (a.bnx == b.bnx) return SortByPos(a, b);
	else return (a.bnx > b.bnx ? 1 : -1);
}

function SortByChg(a, b)
{
	if (a.chg == b.chg) return SortByPos(a, b);
	else return (a.chg > b.chg ? -1 : 1);
}

function SortByClass(a, b)
{
	if (a.cls == b.cls) return SortByPos(a, b);
	else return (a.cls > b.cls ? 1 : -1);
}

function SortByClub(a, b)
{
	if (a.club == b.club) return SortByPos(a, b);
	else return (a.club > b.club ? 1 : -1);
}

function SortByCorners(a, b)
{
	if (a.cnr == b.cnr) return SortByPos(a, b);
	else return (a.cnr > b.cnr ? -1 : 1);
}

function SortByDriver(a, b)
{
	return (a.dr_lf > b.dr_lf ? 1 : -1);
}

function SortByInc(a, b)
{
	if (a.inc == b.inc) return SortByPos(a, b);
	else return (a.inc > b.inc ? -1 : 1);
}

function SortByIncCorner(a, b)
{
	if (a.ipc == b.ipc) return SortByPos(a, b);
	else return (a.ipc > b.ipc ? -1 : 1);
}

function SortByIncLap(a, b)
{
	if (a.ipl == b.ipl) return SortByPos(a, b);
	else return (a.ipl > b.ipl ? -1 : 1);
}

function SortByIncRace(a, b)
{
	if (a.ipr == b.ipr) return SortByPos(a, b);
	else return (a.ipr > b.ipr ? -1 : 1);
}

function SortByLaps(a, b)
{
	if (a.laps == b.laps) return SortByPos(a, b);
	else return (a.laps > b.laps ? -1 : 1);
}

function SortByMiles(a, b)
{
	if (a.ml == b.ml) return SortByPos(a, b);
	else return (a.ml > b.ml ? -1 : 1);
}

function SortByPoints(a, b)
{
	if (a.tpts == b.tpts) return SortByPos(a, b);
	else return (a.tpts > b.tpts ? -1 : 1);
}

function SortByPointsBonus(a, b)
{
	if (a.bpts == b.bpts) return SortByPos(a, b);
	else return (a.bpts > b.bpts ? -1 : 1);
}

function SortByPointsPenalty(a, b)
{
	if (a.ppts == b.ppts) return SortByPos(a, b);
	else return (a.ppts > b.ppts ? -1 : 1);
}

function SortByPoles(a, b)
{
	if (a.pp == b.pp) return SortByPos(a, b);
	else return (a.pp > b.pp ? -1 : 1);
}

function SortByPos(a, b)
{
	return (a.pos > b.pos ? 1 : -1);
}

function SortByProv(a, b)
{
	if (a.prov == b.prov) return SortByPos(a, b);
	else return (a.prov > b.prov ? -1 : 1);
}

function SortByRacesCounted(a, b)
{
	if (a.rc == b.rc) return SortByPos(a, b);
	else return (a.rc > b.rc ? -1 : 1);
}

function SortByStarts(a, b)
{
	if (a.starts == b.starts) return SortByPos(a, b);
	else return (a.starts > b.starts ? -1 : 1);
}

function SortByT10(a, b)
{
	if (a.t10 == b.t10) return SortByPos(a, b);
	else return (a.t10 > b.t10 ? -1 : 1);
}

function SortByT5(a, b)
{
	if (a.t5 == b.t5) return SortByPos(a, b);
	else return (a.t5 > b.t5 ? -1 : 1);
}

function SortByTeam(a, b)
{
	if (a.team == b.team) return SortByPos(a, b);
	else return (a.team > b.team ? 1 : -1);
}

function SortByWins(a, b)
{
	if (a.wins == b.wins) return SortByPos(a, b);
	else return (a.wins > b.wins ? -1 : 1);
}


