var lived, liven;
var highlighted;
var watched;

function unhighlight()
{
	if (highlighted != null) {
		for (i = 1; document.getElementById(highlighted + '-' + i + '-trace'); i++)
			if (document.getElementById(highlighted + '-' + i + '-trace').className != 'livetrace')
				document.getElementById(highlighted + '-' + i + '-trace').className = null;
	}
}

function show2(d, n, focus)
{
	unhighlight();

	if (lived != null) {
		document.getElementById(lived + "-" + liven).style.display = 'none';
		document.getElementById(lived).style.display = 'block';
		document.getElementById(lived + "-" + liven + "-trace").className = null;
		if (watched != null)
			document.getElementById(watched + "-" + lived + "-" + liven).style.display = 'none';
	}

	highlight(d);

	document.getElementById(d).style.display = 'none';
	document.getElementById(d + "-" + n).style.display = 'block';
	document.getElementById(d + "-" + n + "-trace").className = 'livetrace';

	if (watched != null)
		document.getElementById(watched + "-" + d + "-" + n).style.display = 'inline';

	if (focus)
		window.location.hash = d + "-" + n;

	lived = d;
	liven = n;
}

function show(d, n)
{
	show2(d, n, true);
}

function showfrom(d, n, d2, n2)
{
	show(d, n);
	Fat.fade_element(d + "-" + n + "-" + d2 + "-" + n2, 30, 1000);
}

function fadevalue(d, n, n2)
{
	show(d, n);
	Fat.fade_element(d + "-" + n + "-value-" + n2, 30, 1000);
}

function showloop(f, n, m)
{
	for (i = 0; i < 20; i++)
		if (document.getElementById(f + '-' + n + '-loop-' + i) != null)
			document.getElementById(f + '-' + n + '-loop-' + i).style.display = (i == m) ? 'block' : 'none';
}

function highlight(f)
{
	unhighlight();

	for (i = 1; document.getElementById(f + '-' + i + '-trace'); i++)
		document.getElementById(f + '-' + i + '-trace').className = 'highlighted';

	highlighted = f;
}

function watch(v)
{
	watched = v;
}