
var SdEcTimer = {};			// public  global identifiers
var $_EcTimer = {};			// private global identifiers

$_EcTimer.start = (new Date()).getTime();
$_EcTimer["timer-ticks"] = 0;
$_EcTimer.ie7waringNeeded = true;

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

SdEcTimer.getTime = function ()
{
	var d = new Date();
	var ms = d.getTime();
	return (ms - $_EcTimer.start);
}

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

SdEcTimer.idle = function (ms)
{
	var now = SdEcTimer.getTime();
	var max = now + ms;
	while (now < max)
	{
		now = SdEcTimer.getTime();
	}
}

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

$_EcTimer.updateInternalTimer = function (spanElementId)
{
	var timerTicks = $_EcTimer["timer-ticks"];
	timerTicks = timerTicks + 1;
	$_EcTimer["timer-ticks"] = timerTicks;

	var  pageTicks = $_EcTimer["page-ticks"];
 	if (!pageTicks) pageTicks = "?";

	var otherTicks = $_EcTimer["other-ticks"];

	if (!$_EcTimer.start) $_EcTimer.start = (new Date()).getTime();
	var millisecs  = (new Date()).getTime() - $_EcTimer.start;
	var difference = (timerTicks * 1000) - millisecs;

	var element = document.getElementById(spanElementId);
	if (element) {
		var status = timerTicks + " seconds elapsed"                        +  " -- "
		           + pageTicks  + " seconds elapsed before page is loaded"  +  " -- "
		           + otherTicks + " seconds until ajax data is 100% loaded"
		;

		var browser = SdEcVersion.getBrowserName   ();
		var version = SdEcVersion.getBrowserVersion();

		if (browser != 'Explorer' || version < 7)
		{
			element.innerHTML = status;
		}
		else
		{
			if ($_EcTimer.ie7waringNeeded)
			{
				$_EcTimer.ie7waringNeeded = false;

				var warningNode = document.createTextNode(" -- warning: timer does not work on internet explorer 7+ ");
				element.appendChild(warningNode);
			}
		}
	}

	if (timerTicks < 60) setTimeout("$_EcTimer.updateInternalTimer('" + spanElementId + "')", 1000);
}

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

SdEcTimer.updateExternalTimer = function ()
{
	var timerTicks = $_EcTimer["timer-ticks"];

	$_EcTimer["other-ticks"] = timerTicks;
}

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

SdEcTimer.IncDoneOnLoadEvent = function ()
{
	var timerTicks = $_EcTimer["timer-ticks"];
	$_EcTimer["page-ticks"] = timerTicks;	
}

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

$_EcTimer.updateInternalTimer('ksp_timer');

