var NUM_NAVIGATION_BOXES = 5;


var STEP_0 = 0;
var STEP_1 = 1;
var STEP_2 = 2;
var STEP_3 = 3;
var STEP_4 = 4;
var STEP_5 = 5;
var STEP_6 = 6;
var STEP_7 = 7;
var STEP_8 = 8;
var current_step = STEP_0;



/*************************************
 * Navigation functions
 ******************************/
function invalidateNavBoxes(navigationNumber)
{
	for (i = navigationNumber + 1; i <= NUM_NAVIGATION_BOXES; i++)
	{
		el = document.getElementById("step" + i);
		el.style.borderColor = "#999";
		el.style.color = "gray";
	}
}





function mouseOverNavigation(nav_number, evt)
{
	evt = new Evt(evt);

	if (nav_number <= current_step)
	{
		evt.source.style.backgroundColor = "#449";
	}


	evt.consume();
}

function mouseOutNavigation(evt)
{
	evt = new Evt(evt);

	evt.source.style.backgroundColor = "#DDE";

	evt.consume();
}

function navigateTo(step, evt)
{
	evt = new Evt(evt);

	nav_number = step;

	if (nav_number > current_step)
	{
		//alert("can't do it");
		return;
	}

	navigateToStep(step);

	evt.consume();
}

function mouseOverContinue(evt)
{
	evt = new Evt(evt);
	
	if (current_step < NUM_NAVIGATION_BOXES)
	{
		el = document.getElementById("continueButton");
		el.style.textDecoration = "underline";
		el.style.cursor = "pointer";
	}
	else
	{
		el = document.getElementById("continueButton");
		el.style.textDecoration = "none";
		el.style.cursor = "default";
	}

	evt.consume();
}

function mouseOutContinue(evt)
{
	evt = new Evt(evt);
	
	el = document.getElementById("continueButton");
	el.style.textDecoration = "none";

	evt.consume();
}


function navigateToStep(step)
{
	if (votingWindowOpen)
	{
		alert("Finish voting this ballot before navigating");
		return;
	}


	if (step == NUM_NAVIGATION_BOXES)
	{
		el = document.getElementById("continueButton");
		el.style.color = "#BBB";
	}
	else
	{
		el = document.getElementById("continueButton");
		el.style.color = "black";
	}

	closePopup();


	switch (step)
	{
	case STEP_1:
		current_step = step;
		clearTimeout(timeoutID_ballot);

		loadPage("step1_main.html", "mainBody");
		loadPage("step1_text.html", "currentStep");

		invalidateNavBoxes(step);

		break;
		
	case STEP_2:
		current_step = step;
		clearTimeout(timeoutID_ballot);

		loadPage("step2_main.html", "mainBody");
		loadPage("step2_text.html", "currentStep");

		invalidateNavBoxes(step);

		break;
		
	case STEP_3:
		current_step = step;
		clearTimeout(timeoutID_ballot);

		loadPage("step3_main.html", "mainBody");
		loadPage("step3_text.html", "currentStep");

		invalidateNavBoxes(step);
		numAuditedBallots = numVotedBallots = 0;

		break;

	case STEP_4:
		current_step = step;
		clearTimeout(timeoutID_ballot);

		loadPage("step4_main.html", "mainBody");
		loadPage("step4_text.html", "currentStep");

		invalidateNavBoxes(step);

		numVotedBallots = 0;

		for (i = 0; i < pTable.length; i++)
		{
			pTable[i].voteSide = NO_VOTE;
			pTable[i].exposedSheet = NO_SHEET;
			dTable[i].postElectionAudit = NO_AUDIT;
		}

		break;

	case STEP_5:
		current_step = step;
		clearTimeout(timeoutID_ballot);

		loadPage("step5_main.html", "mainBody");
		loadPage("step5_text.html", "currentStep");

		invalidateNavBoxes(step);

		break;
	}
}


