
var SdEcProgress = {};			// public  global identifiers
var $_EcProgress = {};			// private global identifiers

$_EcProgress.done = 0;
$_EcProgress.todo = 0;

$_EcProgress.oldPctValue = 5;		// always assume at least 5% done

$_EcProgress.allLoadedEventHandlers = [];

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SdEcProgress.registerAllLoadedEventHandler = function (callback)
{
	$_EcProgress.allLoadedEventHandlers.push(callback);
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SdEcProgress.incTodo = function (amount)
{
	$_EcProgress.todo += (amount ? amount : 1);

	$_EcProgress.showPercentageDone();
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SdEcProgress.incDone = function (amount)
{
	$_EcProgress.done += (amount ? amount : 1);

	if ($_EcProgress.done >= $_EcProgress.todo)
	{
		SdEcProgress.callAllLoadedEventHandlers();
	}

	$_EcProgress.showPercentageDone();

}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

$_EcProgress.showPercentageDone = function ()
{
	var aboveValue = $_EcProgress.done;
	var belowValue = $_EcProgress.todo;

	var pctValue;
	if (belowValue == 0)
	{
		pctValue = 0;
	}
	else
	{
		pctValue = Math.floor((aboveValue * 100) / belowValue)
	}

	var oldValue = $_EcProgress.oldPctValue;
	if (pctValue < oldValue) pctValue = oldValue;
	if (pctValue > 100) pctValue = 100;
	$_EcProgress.oldPctValue = pctValue;

	for (var k = 1; k < 6; k++)
	{
		var  pctNode = document.getElementById("enriched-content-completion-percentage-" + k);
		if (!pctNode) continue;
		pctNode.lastChild.nodeValue = pctValue;
	}

}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SdEcProgress.callAllLoadedEventHandlers = function ()
{
	var handlers = $_EcProgress.allLoadedEventHandlers;
	var count = handlers.length;
	for (var k = 0; k < count; k++)
	{
		var handler = handlers[k];
		handler();
	}
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

$_EcProgress.IncDoneOnLoadEvent = function ()
{
	SdEcProgress.incDone(1);
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SdEcProgress.incTodo(1);
SdCommon.addLoadEvent($_EcProgress.IncDoneOnLoadEvent);

