<?php
#
function pctcolour($pct)
{
 if ($pct == 100)
 {
	$fg = '#fff';
	$bg = '#000';
 }

 if ($pct < 100)
 {
	$grn = (2.0 - log10($pct)) * 255;
	if ($grn < 0)
		$grn = 0;
	if ($grn > 255)
		$grn = 255;

	if ($grn > 190)
		$fg = '#00f';
	else
		$fg = '#fff';
	$bg = sprintf("#00%02x00", $grn);
 }

 if ($pct > 100)
 {
	$red = (log10(pow($pct,4.0)) - 8.0) / 3.0 * 255;
	if ($red < 0)
		$red = 0;
	if ($red > 255)
		$red = 255;

	$fg = '#fff';
	$bg = sprintf("#%02x0000", $red);
 }

 return array($fg, $bg);
}
#
function doblocks($data, $user)
{
 $blink = '<a href=https://blockchain.info/block-height/';

 $pg = '<h1>Blocks</h1>';

 $ans = getBlocks($user);

 $pg .= "<table callpadding=0 cellspacing=0 border=0>\n";
 $pg .= "<tr class=title>";
 $pg .= "<td class=dl>Height</td>";
 $pg .= "<td class=dl>Who</td>";
 $pg .= "<td class=dr>Reward</td>";
 $pg .= "<td class=dc>When</td>";
 $pg .= "<td class=dr>Status</td>";
 $pg .= "<td class=dr>Diff</td>";
 $pg .= "<td class=dr>%</td>";
 $pg .= "</tr>\n";
 $blktot = 0;
 $nettot = 0;
 $i = 0;
 if ($ans['STATUS'] == 'ok')
 {
	$count = $ans['rows'];
	for ($i = 0; $i < $count; $i++)
	{
		if (($i % 2) == 0)
			$row = 'even';
		else
			$row = 'odd';

		$ex = '';
		$stat = $ans['status:'.$i];
		if ($stat == 'Orphan')
			$ex = 's';
		if ($stat == '1-Confirm')
			$stat = 'Conf';

		$stara = '';
		$starp = '';
		if (isset($ans['status:'.($i+1)]))
			if ($ans['status:'.($i+1)] == 'Orphan'
			&&  $stat != 'Orphan')
			{
				$stara = '<span class=st1>*</span>';
				$starp = '<span class=st0>*</span>';
			}

		$hi = $ans['height:'.$i];
		$hifld = "$blink$hi>$hi</a>";

		$diffacc = $ans['diffacc:'.$i];
		$acc = number_format($diffacc, 0);

		$netdiff = $ans['netdiff:'.$i];
		if ($netdiff > 0)
		{
			$pct = 100.0 * $diffacc / $netdiff;
			list($fg, $bg) = pctcolour($pct);
			$bpct = "<font color=$fg>$starp".number_format($pct, 2).'%</font>';
			$bg = " bgcolor=$bg";
			$blktot += $diffacc;
			if ($stat != 'Orphan')
				$nettot += $netdiff;
		}
		else
		{
			$bg = '';
			$bpct = '?';
		}

		$pg .= "<tr class=$row>";
		$pg .= "<td class=dl$ex>$hifld</td>";
		$pg .= "<td class=dl$ex>".htmlspecialchars($ans['workername:'.$i]).'</td>';
		$pg .= "<td class=dr$ex>".btcfmt($ans['reward:'.$i]).'</td>';
		$pg .= "<td class=dl$ex>".gmdate('Y-m-d H:i:s+00', $ans['firstcreatedate:'.$i]).'</td>';
		$pg .= "<td class=dr$ex>".$stat.'</td>';
		$pg .= "<td class=dr>$stara$acc</td>";
		$pg .= "<td class=dr$bg>$bpct</td>";
		$pg .= "</tr>\n";
	}
 }
 if ($nettot > 0)
 {
	if (($i % 2) == 0)
		$row = 'even';
	else
		$row = 'odd';

	$pct = 100.0 * $blktot / $nettot;
	list($fg, $bg) = pctcolour($pct);
	$bpct = "<font color=$fg>".number_format($pct, 2).'%</font>';
	$bg = " bgcolor=$bg";

	$pg .= "<tr class=$row>";
	$pg .= "<td class=dl colspan=6></td>";
	$pg .= "<td class=dr$bg>".$bpct.'</td>';
	$pg .= "</tr>\n";
 }
 $pg .= "</table>\n";

 return $pg;
}
#
function show_blocks($page, $menu, $name, $user)
{
 gopage(NULL, 'doblocks', $page, $menu, $name, $user);
}
#
?>