// $Id: $

// * Redesign *

function objById(id) {
	if (document.getElementById)
		var returnVar = document.getElementById(id);
	else if (document.all)
		var returnVar = document.all[id];
	else if (document.layers)
		var returnVar = document.layers[id];
	return returnVar;
}

// Created by: Dustin Diaz :: http://www.dustindiaz.com/
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if (node == null)
		node = document;
	if (tag == null)
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if (pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

var round1WinnerImages = new Array();
//var round1ThumbnailImages = new Array();		// No need for these
var round2WinnerImages = new Array();
var round2ThumbnailImages = new Array();
var round3WinnerImages = new Array();
var round3ThumbnailImages = new Array();
var round4WinnerImages = new Array();
var round4ThumbnailImages = new Array();
var matchupImages = new Array();
var players;
var interWinner;
var interLoser;
var versus_comments = new Array();
var isVs2 = window.vsVersion ? (window.vsVersion == 2) : false;

// New Vspoll2 handling retains positions with window.winnerGoesLeft = false
var winnerGoesLeft = window.keepOrder ? false : true;
var interLeft;
var interRight;

if (document.images) {

	// Round 1 results warrants the round 2 images
	if (window.results_round != undefined) {

		var round2Players = new Array();	// Winners of round 1
		var round3Players = new Array();	// Winners of round 2
		var round4Players = new Array();	// Winners of round 3
		var round5Players = new Array();	// Winner (an array of 1)

		if (window.results_round >= 1) {

			// Load the round 2 images (the round 1 winner images)
			for (var i = j = 0;i < votes.length;i += 2,++j) {
				var win = winner[i][i+1];
				var img = new Image(54,54);
				img.src = '../../img/data/'+imageIds[win?i:i+1]+'-54x54.jpg';
				round1WinnerImages[j] = img;
				round2Players[j] = win ? i : i+1;
			}
		}
		if (window.results_round >= 2) {

			// Load the round 3 images (the round 2 winner images)
			for (var i = j = 0;i < round2Players.length;i += 2,++j) {
				var win = winner[round2Players[i]][round2Players[i+1]];	// 1st win?
				var img = new Image(83,83);
				img.src = '../../img/data/'+imageIds[win ? round2Players[i] : round2Players[i+1]]+'-83x83.jpg';
				round2WinnerImages[j] = img;
				round3Players[j] = win ? round2Players[i] : round2Players[i+1];
			}
		}
		if (window.results_round >= 3) {

			// Load the round 4 images (the round 3 winner images)
			for (var i = j = 0;i < round3Players.length;i += 2,++j) {
				var win = winner[round3Players[i]][round3Players[i+1]];	// 1st win?
				var img = new Image(114,114);
				img.src = '../../img/data/'+imageIds[win ? round3Players[i] : round3Players[i+1]]+'-114x114.jpg';
				round3WinnerImages[j] = img;
				round4Players[j] = win ? round3Players[i] : round3Players[i+1];
			}
		}
		if (window.results_round >= 4) {

			// Load the round 4 images (the round 3 winner images)
			for (var i = j = 0;i < round4Players.length;i += 2,++j) {
				var win = winner[round4Players[i]][round4Players[i+1]];	// 1st win?
				var img = new Image(175,162);
				img.src = '../../img/data/'+imageIds[win ? round4Players[i] : round4Players[i+1]]+'-175x162.jpg';
				round4WinnerImages[j] = img;
				round5Players[j] = win ? round4Players[i] : round4Players[i+1];
			}
		}

	}

	// Preloading images for the vote rounds
	if (window.vote_round != undefined) {

		var round2Players = new Array();	// Winners of round 1
		var round3Players = new Array();	// Winners of round 2
		var round4Players = new Array();	// Winners of round 3
		var round5Players = new Array();	// Winner (an array of 1)

		// Inspect command line parameters to adjust window.vote_round
		// and/or adjust window.match
		if (qsParms['round'] != undefined)
			window.vote_round = parseInt(qsParms['round']);
		if (qsParms['match'] != undefined)
			window.match = parseInt(qsParms['match'])-1;	// Internally index match 0+

		if (window.vote_round < 2 || window.vote_round > 4)
			window.vote_round = 2;

		if (window.vote_round >= 2) {

			// Load the round 2 thumbnails (the round 1 winner thumbnails)
			for (var i = j = 0;i < votes.length;i += 2,++j) {
				var win = winner[i][i+1];
				var img = new Image(36,36);
				img.src = '../../img/data/'+imageIds[win ? i : i+1]+'-36x36.jpg';
				round2ThumbnailImages[j] = img;
				round2Players[j] = win ? i : i+1;
			}

			if (window.vote_round == 2) {
				if (window.match < 0 || window.match > 3)
					window.match = 0;
				players = round2Players;
			}

		}
		if (window.vote_round >= 3) {
			// Load the round 3 thumbnails (the round 2 winner thumbnails)
			for (var i = j = 0;i < round2Players.length;i += 2,++j) {
				var win = winner[round2Players[i]][round2Players[i+1]];	// 1st win?
				round3ThumbnailImages[j] = round2ThumbnailImages[i+(win?0:1)];
				round3Players[j] = win ? round2Players[i] : round2Players[i+1];
			}
			if (window.vote_round == 3) {
				if (window.match < 0 || window.match > 1)
					window.match = 0;
				players = round3Players;
			}
		}
		if (window.vote_round >= 4) {
			// Load the round 4 images (the round 3 winner images)
			for (var i = j = 0;i < round3Players.length;i += 2,++j) {
				var win = winner[round3Players[i]][round3Players[i+1]];	// 1st win?
				round4ThumbnailImages[j] = round3ThumbnailImages[i+(win?0:1)];
				round4Players[j] = win ? round3Players[i] : round3Players[i+1];
			}
			if (window.vote_round == 4) {
				if (window.match < 0 || window.match > 0)
					window.match = 0;
				players = round4Players;
			}
		}

		var img = new Image(309,316);
		img.src = '../../img/data/'+imageIds[players[window.match*2]]+'-309x316.jpg';
		matchupImages[0] = img;
		img = new Image(309,316);
		img.src = '../../img/data/'+imageIds[players[window.match*2+1]]+'-309x316.jpg';
		matchupImages[1] = img;
	}

	if (window.inter_round != undefined) {

		var round1Players = new Array();	// Round 1
		var round2Players = new Array();	// Winners of round 1
		var round3Players = new Array();	// Winners of round 2
		var round4Players = new Array();	// Winners of round 3
		var round5Players = new Array();	// Winner (an array of 1)

		// Inspect command line parameters to adjust window.inter_round
		// and/or adjust window.match
		if (qsParms['round'] != undefined)
			window.inter_round = parseInt(qsParms['round']);
		if (qsParms['match'] != undefined)
			window.match = parseInt(qsParms['match'])-1;	// Internally index match 0+

		if (window.inter_round < 1 || window.inter_round > 4)
			window.vote_round = 1;

		if (window.inter_round == 1) {
			for (var i = 0;i < votes.length;++i)
				round1Players[i] = i;
			if (window.match < 0 || window.match > 15)
				window.match = 0;
			players = round1Players;
		}
		else if (window.inter_round >= 2) {

			// Load the round 2 thumbnails (the round 1 winner thumbnails)
			for (var i = j = 0;i < votes.length;i += 2,++j) {
				var win = winner[i][i+1];
				round2Players[j] = win ? i : i+1;
			}

			if (window.inter_round == 2) {
				if (window.match < 0 || window.match > 3)
					window.match = 0;
				players = round2Players;
			}

		}

		if (window.inter_round >= 3) {
			// Load the round 3 thumbnails (the round 2 winner thumbnails)
			for (var i = j = 0;i < round2Players.length;i += 2,++j) {
				var win = winner[round2Players[i]][round2Players[i+1]];	// 1st win?
				round3Players[j] = win ? round2Players[i] : round2Players[i+1];
			}
			if (window.inter_round == 3) {
				if (window.match < 0 || window.match > 1)
					window.match = 0;
				players = round3Players;
			}
		}
		if (window.inter_round >= 4) {
			// Load the round 4 images (the round 3 winner images)
			for (var i = j = 0;i < round3Players.length;i += 2,++j) {
				var win = winner[round3Players[i]][round3Players[i+1]];	// 1st win?
				round4Players[j] = win ? round3Players[i] : round3Players[i+1];
			}
			if (window.inter_round == 4) {
				if (window.match < 0 || window.match > 0)
					window.match = 0;
				players = round4Players;
			}
		}

		// Is the first player in the matchup winning?
		var first_win = winner[players[window.match*2]][players[window.match*2+1]];
		interWinner = players[window.match*2+(first_win?0:1)];
		interLoser = players[window.match*2+(first_win?1:0)];
		interLeft = winnerGoesLeft ? interWinner : players[window.match*2];
		interRight = winnerGoesLeft ? interLoser : players[window.match*2+1];
		var img = new Image(114,114);
		img.src = '../../img/data/'+imageIds[interLeft]+'-114x114.jpg';  // xxxxxxxxxx
		matchupImages[0] = img;
		img = new Image(114,114);
		img.src = '../../img/data/'+imageIds[interRight]+'-114x114.jpg';
		matchupImages[1] = img;

		// Default versus comments - when no published js is fetched (these arrays are indexed 1+)
		versus_comments[interLeft+1] = new Array();
		versus_comments[interRight+1] = new Array();
		versus_comments[interLeft+1][interRight+1] = versus_comments[interRight+1][interLeft+1] = '<span class="no_reasons">(No reasons submitted yet)</span>';
	}
}

// Handling for interstitial
function interstitial() {
	var titles = objById("choice_names").getElementsByTagName('p');

	var img = objById("inner_left_col").getElementsByTagName('img')[0];
	img.src = matchupImages[0].src;
	img.title = titles[interLeft].innerHTML;

	img = objById("inner_right_col").getElementsByTagName('img')[0];
	img.src = matchupImages[1].src;
	img.title = titles[interRight].innerHTML;

	var winnerText = ''+titles[interWinner].innerHTML+' will go on to the next round.';
	var loserText = ''+titles[interLoser].innerHTML+' will not go on to the next round.';
	var first_win = winner[players[window.match*2]][players[window.match*2+1]];
	var preferred_form_id = winnerGoesLeft ? 'winner_form' : (first_win ? 'contestant_left_form' : 'contestant_right_form');
	var preferredTitle = ''+titles[interWinner].innerHTML;
	var contestant = interWinner+1;
	var adversary = interLoser+1;

	if (gotChoices) {
		var results = choices.match("^(\\d+)\\-(\\d+)$");
		if (results.length == 3) {

			var isWinner = (parseInt(results[1])-1 == interWinner);
			var isLoser = (parseInt(results[1])-1 == interLoser);

			winnerText = isWinner
				? 'Congratulations, most people agree. '+titles[interWinner].innerHTML+' will go on to the next round.'
				: 'Sorry, but '+titles[interLoser].innerHTML+' will not go to the next round. More people voted for '+titles[interWinner].innerHTML+'.'
				;

			loserText = isLoser
				? ''+titles[interLoser].innerHTML+' will not go on to the next round.'
				: ''+titles[interLoser].innerHTML+' will NOT go on to the next round.'
				;

			if (isLoser) {
				preferred_form_id = winnerGoesLeft ? 'loser_form' : (first_win ? 'contestant_right_form' : 'contestant_left_form');
				preferredTitle = ''+titles[interLoser].innerHTML;
				contestant = interLoser+1;
				adversary = interWinner+1;
			}

			var span = objById(isWinner?"youVotedForWinner":"youVotedForLoser");
			span.innerHTML = '<br />You voted for '+titles[isWinner?interWinner:interLoser].innerHTML+'.';
		}
	}

	if (winnerGoesLeft) {
		objById("winner").innerHTML = winnerText;
		//objById("winner_count").innerHTML = votes[interWinner][interLoser];
		objById("loser").innerHTML = loserText;
		//objById("loser_count").innerHTML = votes[interWinner][interLoser];
	}
	else {
		var span = objById("contestant_left");
		span.innerHTML = first_win ? winnerText : loserText;
		span.id = first_win ? "winner" : "loser";
		//objById("contestant_left_count").innerHTML = votes[interLeft][interRight];
		span = objById("contestant_right");
		span.innerHTML = first_win ? loserText : winnerText;
		span.id = first_win ? "loser" : "winner";
		//objById("contestant_right_count").innerHTML = votes[interRight][interLeft];

		// Swap images
		if (!first_win) {
			var img = objById("image_left");
			if (img != null) {
				img.src = "../../img/versus/vs2-loser.gif";
				img.title = "Loser";
				img.alt = "Loser";
			}
			img = objById("image_right");
			if (img != null) {
				img.src = "../../img/versus/vs2-winner.gif";
				img.title = "Winner";
				img.alt = "Winner";
			}

			var div = objById("inner_left_col");
			div.className = "loser";

			div = objById("inner_right_col");
			div.className = "winner";
		}
	}
	var preferred_form = objById(preferred_form_id);
	getElementsByClass('enterReason', preferred_form, 'div')[0].innerHTML = 'Enter your reason for voting for '+preferredTitle+' (optional). Hit button to submit and go to the NEXT MATCH.';
	preferred_form.style.visibility = 'visible';
	var input = preferred_form.getElementsByTagName('input');

	//input[0].value = POLLID;
	input[1].value = contestant;
	input[2].value = adversary;

	var gotoResults = true;

	// Next match-up parameter is +1
	var nextMatch = window.match+2;
	switch (window.inter_round) {
		case 1:
			gotoResults = !(nextMatch < 9);
			break;
		case 2:
			gotoResults = !(nextMatch < 5);
			break;
		case 3:
			gotoResults = !(nextMatch < 3);
	}

	if (gotoResults) {
		input[3].value = ''+window.publishId+'-results-'+window.inter_round+'.html';
		input[5].src = go2results_src;
	}
	else if (window.inter_round == 1)
		input[3].value = ''+window.publishId+'-round-'+window.inter_round+'-match-'+nextMatch+'.html';
	else
		input[3].value = ''+window.publishId+'-round-'+window.inter_round+'.html?match='+nextMatch;

	input[4].focus();
}

function results_round_1() {

	var titles = objById("choice_names").getElementsByTagName('p');

	var round2Players = new Array();
	//var round1Votes = new Array();

	// Walk through the round 1 results
	// Matching off 1st vs 2nd, 3rd vs 4th etc.

	var row = objById("fourth_row").rows[0];
	for (var i = j = 0;i < votes.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[i][i+1];
		round2Players[j] = win ? i : i+1;
		//round1Votes[j] = win ? votes[i][i+1] : votes[i+1][i];

		divs[0].className = win ? 'winner' : 'box_grey';
		divs[2].innerHTML = ""+votes[i][i+1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner' : 'box_grey';
		divs[2].innerHTML = ""+votes[i][i-1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;
	}

	// Prepare the round 2 images
	row = objById("third_row").rows[0];
	for (var i = 0;i < round2Players.length;++i) {

		// Should we repeat the count? Probably not. The CSS makes it invisible anyhow.
		//var divs = row.cells[i].getElementsByTagName('div');
		//divs[2].innerHTML = ""+round1Votes[i]+" votes";

		var imgs = row.cells[i].getElementsByTagName('img');
		imgs[0].src = round1WinnerImages[i].src;
		imgs[0].title = titles[round2Players[i]].innerHTML;
	}
}

function results_round_2() {

	var titles = objById("choice_names").getElementsByTagName('p');
	var round2Players = new Array();
	//var round1Votes = new Array();

	// Walk through the round 1 results
	// Matching off 1st vs 2nd, 3rd vs 4th etc.

	var row = objById("fourth_row").rows[0];
	for (var i = j = 0;i < votes.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[i][i+1];
		round2Players[j] = win ? i : i+1;
		//round1Votes[j] = win ? votes[i][i+1] : votes[i+1][i];

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[i][i+1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[i][i-1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;
	}

	// Prepare the round 2 images
	row = objById("third_row").rows[0];
	for (var i = 0;i < round2Players.length;++i) {
		var imgs = row.cells[i].getElementsByTagName('img');
		imgs[0].src = round1WinnerImages[i].src;
		imgs[0].title = titles[round2Players[i]].innerHTML;
	}

	var round3Players = new Array();
	//var round2Votes = new Array();

	for (var i = j = 0;i < round2Players.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[round2Players[i]][round2Players[i+1]];
		round3Players[j] = win ? round2Players[i] : round2Players[i+1];
		//round2Votes[j] = win ? votes[round2Players[i]][round2Players[i+1]] : votes[round2Players[i+1]][round2Players[i]];

		divs[0].className = win ? 'winner' : 'box_grey';		// New news
		divs[2].innerHTML = ""+votes[round2Players[i]][round2Players[i+1]]+" votes";
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner' : 'box_grey';		// New news
		divs[2].innerHTML = ""+votes[round2Players[i]][round2Players[i-1]]+" votes";
		++i;
	}

	// Prepare the round 2 images
	row = objById("second_row").rows[0];
	for (var i = 0;i < round3Players.length;++i) {
		var imgs = row.cells[i].getElementsByTagName('img');
		imgs[0].src = round2WinnerImages[i].src;
		imgs[0].title = titles[round3Players[i]].innerHTML;
	}

}

function results_round_3() {

	var titles = objById("choice_names").getElementsByTagName('p');
	var round2Players = new Array();
	//var round1Votes = new Array();

	// Walk through the round 1 results
	// Matching off 1st vs 2nd, 3rd vs 4th etc.

	var row = objById("fourth_row").rows[0];
	for (var i = j = 0;i < votes.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[i][i+1];
		round2Players[j] = win ? i : i+1;
		//round1Votes[j] = win ? votes[i][i+1] : votes[i+1][i];

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[i][i+1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[i][i-1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;
	}

	// Prepare the round 2 images
	row = objById("third_row").rows[0];
	for (var i = 0;i < round2Players.length;++i) {
		var imgs = row.cells[i].getElementsByTagName('img');
		imgs[0].src = round1WinnerImages[i].src;
		imgs[0].title = titles[round2Players[i]].innerHTML;
	}

	var round3Players = new Array();
	//var round2Votes = new Array();

	for (var i = j = 0;i < round2Players.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[round2Players[i]][round2Players[i+1]];
		round3Players[j] = win ? round2Players[i] : round2Players[i+1];
		//round2Votes[j] = win ? votes[round2Players[i]][round2Players[i+1]] : votes[round2Players[i+1]][round2Players[i]];

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[round2Players[i]][round2Players[i+1]]+" votes";
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[round2Players[i]][round2Players[i-1]]+" votes";
		++i;
	}

	// Prepare the round 2 images
	row = objById("second_row").rows[0];
	for (var i = 0;i < round3Players.length;++i) {
		var imgs = row.cells[i].getElementsByTagName('img');
		imgs[0].src = round2WinnerImages[i].src;
		imgs[0].title = titles[round3Players[i]].innerHTML;
	}


	var round4Players = new Array();
	//var round2Votes = new Array();

	for (var i = j = 0;i < round3Players.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[round3Players[i]][round3Players[i+1]];
		round4Players[j] = win ? round3Players[i] : round3Players[i+1];
		//round3Votes[j] = win ? votes[round3Players[i]][round3Players[i+1]] : votes[round3Players[i+1]][round3Players[i]];

		divs[0].className = win ? 'winner' : 'box_grey';		// New news
		divs[2].innerHTML = ""+votes[round3Players[i]][round3Players[i+1]]+" votes";
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner' : 'box_grey';		// New news
		divs[2].innerHTML = ""+votes[round3Players[i]][round3Players[i-1]]+" votes";
		++i;
	}

	// Prepare the round 4 images
	row = objById("top_row").rows[0];
	for (var i = 0;i < round4Players.length;++i) {
		var imgs = row.cells[i==0?i:i+1].getElementsByTagName('img');	// Central cell reserved for winner
		imgs[i==0?0:1].src = round3WinnerImages[i].src;			// Skip the navigation image
		imgs[i==0?0:1].title = titles[round4Players[i]].innerHTML;
	}

}

function results_round_4() {

	var titles = objById("choice_names").getElementsByTagName('p');
	var round2Players = new Array();
	//var round1Votes = new Array();

	// Walk through the round 1 results
	// Matching off 1st vs 2nd, 3rd vs 4th etc.

	var row = objById("fourth_row").rows[0];
	for (var i = j = 0;i < votes.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[i][i+1];
		round2Players[j] = win ? i : i+1;
		//round1Votes[j] = win ? votes[i][i+1] : votes[i+1][i];

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[i][i+1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[i][i-1]+"<br />votes";
		row.cells[i].getElementsByTagName('img')[0].title = titles[i].innerHTML;
		++i;
	}

	// Prepare the round 2 images
	row = objById("third_row").rows[0];
	for (var i = 0;i < round2Players.length;++i) {
		var imgs = row.cells[i].getElementsByTagName('img');
		imgs[0].src = round1WinnerImages[i].src;
		imgs[0].title = titles[round2Players[i]].innerHTML;
	}

	var round3Players = new Array();
	//var round2Votes = new Array();

	for (var i = j = 0;i < round2Players.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[round2Players[i]][round2Players[i+1]];
		round3Players[j] = win ? round2Players[i] : round2Players[i+1];
		//round2Votes[j] = win ? votes[round2Players[i]][round2Players[i+1]] : votes[round2Players[i+1]][round2Players[i]];

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[round2Players[i]][round2Players[i+1]]+" votes";
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[round2Players[i]][round2Players[i-1]]+" votes";
		++i;
	}

	// Prepare the round 2 images
	row = objById("second_row").rows[0];
	for (var i = 0;i < round3Players.length;++i) {
		var imgs = row.cells[i].getElementsByTagName('img');
		imgs[0].src = round2WinnerImages[i].src;
		imgs[0].title = titles[round3Players[i]].innerHTML;
	}


	var round4Players = new Array();
	//var round3Votes = new Array();

	for (var i = j = 0;i < round3Players.length;++j) {

		var divs = row.cells[i].getElementsByTagName('div');
		var win = winner[round3Players[i]][round3Players[i+1]];
		round4Players[j] = win ? round3Players[i] : round3Players[i+1];
		//round3Votes[j] = win ? votes[round3Players[i]][round3Players[i+1]] : votes[round3Players[i+1]][round3Players[i]];

		divs[0].className = win ? 'winner_old' : 'box_grey_old';	// Old news
		divs[2].innerHTML = ""+votes[round3Players[i]][round3Players[i+1]]+" votes";
		++i;

		divs = row.cells[i].getElementsByTagName('div');
		win = !win;

		divs[0].className = win ? 'winner_old' : 'box_grey_old';		// Old news
		divs[2].innerHTML = ""+votes[round3Players[i]][round3Players[i-1]]+" votes";
		++i;
	}

	// Prepare the round 4 images
	row = objById("top_row_winner").rows[0];
	for (var i = 0;i < round4Players.length;++i) {
		var imgs = row.cells[i==0?i:i+1].getElementsByTagName('img');	// Central cell reserved for winner (extra image in Vspoll2)
		// Vspoll2 extra image handling
		imgs[0+i*(isVs2?1:0)].src = round3WinnerImages[i].src;		// No longer need to skip the additional navigation image here
		imgs[0+i*(isVs2?1:0)].title = titles[round4Players[i]].innerHTML;
	}

	var round5Players = new Array();
	//var round4Votes = new Array();

	for (var i = j = 0;i < round4Players.length;++j) {

		var divs = row.cells[i==0?i:i+1].getElementsByTagName('div');
		var win = winner[round4Players[i]][round4Players[i+1]];
		round5Players[j] = win ? round4Players[i] : round4Players[i+1];
		//round4Votes[j] = win ? votes[round4Players[i]][round4Players[i+1]] : votes[round4Players[i+1]][round4Players[i]];

		divs[0].className = win ? 'winner' : 'box_grey';		// New news

		divs[2].innerHTML = ""+votes[round4Players[i]][round4Players[i+1]]+" votes";
		++i;

		divs = row.cells[i==0?i:i+1].getElementsByTagName('div');	// Central cell reserved for winner Vs2 has extra
		win = !win;

		if (divs[0].className != 'box_off') {
			for (var k = 1;k < divs.length;++k)
				if (divs[k].className == 'box_off') {
					divs[k].className = win ? 'winner' : 'box_grey';	// New news
					break;
				}
		}
		else
			divs[0].className = win ? 'winner' : 'box_grey';	// New news
		// Vspoll2 extra 2 divs
		divs[2+(isVs2?2:0)].innerHTML = ""+votes[round4Players[i]][round4Players[i-1]]+" votes";	// <- No longer need to skip the additonal navigation div here
		++i;
	}


	// Prepare the winner images
	var imgs = row.cells[1].getElementsByTagName('img');			// Central (2nd) cell reserved for winner
	imgs[0].src = round4WinnerImages[0].src;
	imgs[0].title = titles[round5Players[0]].innerHTML;
	var choiceName = objById("choice_names").getElementsByTagName('p')[round5Players[0]].innerHTML;

	//var divs = row.cells[1].getElementsByTagName('div');
	//divs[2].innerHTML = choiceName+" "+Math.max(votes[round4Players[0]][round4Players[1]],votes[round4Players[1]][round4Players[0]])+" votes";
	objById("winner_name").innerHTML = choiceName;
	objById("vote_count").innerHTML = ""+Math.max(votes[round4Players[0]][round4Players[1]],votes[round4Players[1]][round4Players[0]])+" votes";
}

// Vote round 2 has similar initialisation to results_round_1
function vote_round_2() {

	// Get the round 2 players - there 8 in 4 matchups
	var round2Players = new Array();
	for (var i = j = 0;i < votes.length;++j,i += 2) {
		var win = winner[i][i+1];
		round2Players[j] = win ? i : i+1;
	}

	// Prepare the thumbnail images for round 2 - 8 images
	var div = objById("bottom_thumbs");
	var imgs = div.getElementsByTagName('img');
	var titles = objById("choice_names").getElementsByTagName('p');
	for (var i = 0;i < 8;++i) {
		imgs[i].src = round2ThumbnailImages[i].src;
		imgs[i].title = titles[round2Players[i]].innerHTML;
	}

	// Highlight the current matchup
	var dls = div.getElementsByTagName('dl');
	dls[window.match].className = 'on';

	// Remove border from the next rounds matchups
	for (var i = 4;i < 8;++i)
		dls[i].className = 'noborder';

	var choiceNames = objById("choice_names").getElementsByTagName('p')
	var descriptions = objById("choice_descriptions").getElementsByTagName('div')

	// Load the match-ups
	var lis = objById("matchup").getElementsByTagName('li');
	imgs = lis[0].getElementsByTagName('img');
	imgs[0].src = matchupImages[0].src;
	imgs[0].title = choiceNames[round2Players[window.match*2]].innerHTML;
	var lisdivs = lis[0].getElementsByTagName('div');
	for (var i = 0;i < lisdivs.length;++i)
		if (lisdivs[i].className == 'text')
			lisdivs[i].innerHTML = choiceNames[round2Players[window.match*2]].innerHTML;
		else if (lisdivs[i].className == 'description')
			lisdivs[i].innerHTML = descriptions[round2Players[window.match*2]].innerHTML;

	imgs = lis[2].getElementsByTagName('img');
	imgs[0].src = matchupImages[1].src;
	imgs[0].title = choiceNames[round2Players[window.match*2+1]].innerHTML;
	lisdivs = lis[2].getElementsByTagName('div');
	for (var i = 0;i < lisdivs.length;++i)
		if (lisdivs[i].className == 'text')
			lisdivs[i].innerHTML = choiceNames[round2Players[window.match*2+1]].innerHTML;
		else if (lisdivs[i].className == 'description')
			lisdivs[i].innerHTML = descriptions[round2Players[window.match*2+1]].innerHTML;
}

// Vote round 3 has similar initialisation to results_round_2
function vote_round_3() {

	// Round 2 players (8 in 4 matchups)
	var round2Players = new Array();
	for (var i = j = 0;i < votes.length;++j,i += 2) {
		var win = winner[i][i+1];
		round2Players[j] = win ? i : i+1;
	}
	var div = objById("bottom_thumbs");
	var imgs = div.getElementsByTagName('img');
	var titles = objById("choice_names").getElementsByTagName('p');
	for (var i = 0;i < 8;++i) {
		imgs[i].src = round2ThumbnailImages[i].src;
		imgs[i].title = titles[round2Players[i]].innerHTML;
	}

	// Round 3 players (4 in 2 matchups)
	var round3Players = new Array();
	for (var i = j = 0;i < 8;++j,i += 2) {
		var win = winner[round2Players[i]][round2Players[i+1]];
		round3Players[j] = win ? round2Players[i] : round2Players[i+1];
	}
	for (var i = 0;i < round3Players.length;++i) {
		imgs[8+i].src = round3ThumbnailImages[i].src;
		imgs[8+i].title = titles[round3Players[i]].innerHTML;
	}

	// Highlight the current matchup
	var dls = div.getElementsByTagName('dl');
	dls[4+window.match].className = 'on';

	// Remove border from the remaining matchups
	for (var i = 6;i < 8;++i)
		dls[i].className = 'noborder';

	var choiceNames = objById("choice_names").getElementsByTagName('p')
	var descriptions = objById("choice_descriptions").getElementsByTagName('div')

	// Load the match-ups
	var lis = objById("matchup").getElementsByTagName('li');
	imgs = lis[0].getElementsByTagName('img');
	imgs[0].src = matchupImages[0].src;
	imgs[0].title = choiceNames[round3Players[window.match*2]].innerHTML;
	var lisdivs = lis[0].getElementsByTagName('div');
	for (var i = 0;i < lisdivs.length;++i)
		if (lisdivs[i].className == 'text')
			lisdivs[i].innerHTML = choiceNames[round3Players[window.match*2]].innerHTML;
		else if (lisdivs[i].className == 'description')
			lisdivs[i].innerHTML = descriptions[round3Players[window.match*2]].innerHTML;

	imgs = lis[2].getElementsByTagName('img');
	imgs[0].src = matchupImages[1].src;
	imgs[0].title = choiceNames[round3Players[window.match*2+1]].innerHTML;
	lisdivs = lis[2].getElementsByTagName('div');
	for (var i = 0;i < lisdivs.length;++i)
		if (lisdivs[i].className == 'text')
			lisdivs[i].innerHTML = choiceNames[round3Players[window.match*2+1]].innerHTML;
		else if (lisdivs[i].className == 'description')
			lisdivs[i].innerHTML = descriptions[round3Players[window.match*2+1]].innerHTML;
}

// Vote round 4 has similar initialisation to results_round_3
function vote_round_4() {

	// Round 2 players (8 in 4 matchups)
	var round2Players = new Array();
	for (var i = j = 0;i < votes.length;++j,i += 2) {
		var win = winner[i][i+1];
		round2Players[j] = win ? i : i+1;
	}
	var div = objById("bottom_thumbs");
	var imgs = div.getElementsByTagName('img');
	var titles = objById("choice_names").getElementsByTagName('p');
	for (var i = 0;i < 8;++i) {
		imgs[i].src = round2ThumbnailImages[i].src;
		imgs[i].title = titles[round2Players[i]].innerHTML;
	}

	// Round 3 players (4 in 2 matchups)
	var round3Players = new Array();
	for (var i = j = 0;i < 8;++j,i += 2) {
		var win = winner[round2Players[i]][round2Players[i+1]];
		round3Players[j] = win ? round2Players[i] : round2Players[i+1];
	}
	for (var i = 0;i < round3Players.length;++i) {
		imgs[8+i].src = round3ThumbnailImages[i].src;
		imgs[8+i].title = titles[round3Players[i]].innerHTML;
	}

	// Round 4 players (2 in 1 matchups)
	var round4Players = new Array();
	for (var i = j = 0;i < 4;++j,i += 2) {
		var win = winner[round3Players[i]][round3Players[i+1]];
		round4Players[j] = win ? round3Players[i] : round3Players[i+1];
	}
	for (var i = 0;i < round4Players.length;++i) {
		imgs[12+i].src = round4ThumbnailImages[i].src;
		imgs[12+i].title = titles[round4Players[i]].innerHTML;
	}

	// Highlight the current matchup
	var dls = div.getElementsByTagName('dl');
	dls[6+window.match].className = 'on';

	// Remove the border from the remaining match-up (actually this isn't a match-up, it is the winner)
	for (var i = 7;i < 8;++i)
		dls[i].className = 'noborder';

	var choiceNames = objById("choice_names").getElementsByTagName('p')
	var descriptions = objById("choice_descriptions").getElementsByTagName('div')

	// Load the match-ups
	var lis = objById("matchup").getElementsByTagName('li');
	imgs = lis[0].getElementsByTagName('img');
	imgs[0].src = matchupImages[0].src;
	imgs[0].title = choiceNames[round3Players[window.match*2]].innerHTML;
	var lisdivs = lis[0].getElementsByTagName('div');
	for (var i = 0;i < lisdivs.length;++i)
		if (lisdivs[i].className == 'text')
			lisdivs[i].innerHTML = choiceNames[round4Players[window.match*2]].innerHTML;
		else if (lisdivs[i].className == 'description')
			lisdivs[i].innerHTML = descriptions[round4Players[window.match*2]].innerHTML;

	imgs = lis[2].getElementsByTagName('img');
	imgs[0].src = matchupImages[1].src;
	imgs[0].title = choiceNames[round4Players[window.match*2+1]].innerHTML;
	lisdivs = lis[2].getElementsByTagName('div');
	for (var i = 0;i < lisdivs.length;++i)
		if (lisdivs[i].className == 'text')
			lisdivs[i].innerHTML = choiceNames[round4Players[window.match*2+1]].innerHTML;
		else if (lisdivs[i].className == 'description')
			lisdivs[i].innerHTML = descriptions[round4Players[window.match*2+1]].innerHTML;
}

// Vote choice 0 or 1
function vote(choice) {
	var champion = players[window.match*2+parseInt(choice)]+1;
	var opponent = players[window.match*2+1-parseInt(choice)]+1;
	var match = window.match+1;
	choices = ''+champion+'-'+opponent;
	window.location = ''+window.publishId+'-interstitial-'+window.vote_round+'.html?match='+match+'&votes='+choices;
}
