\n"; $pg .= "function wkdet(n,i){var t=document.getElementById(n);if(i&&t){var b,cs,j,c,a;b=i.checked;cs=t.getElementsByTagName('td');for(j=0;c=cs[j];j++) {a=c.getAttribute('data-hid');if(a){if(b){c.className=a}else{c.className='hid'}}}}}"; $pg .= "\n"; $pg .= "Show Details for Invalids:
"; $pg .= "\n"; return $pg; } # function worktitle($data, $user) { addSort(); $r = "input type=radio name=srt onclick=\"sott('worksrt',this);\""; $pg = ''; $pg .= ""; $pg .= ''; $pg .= ""; $pg .= ''; $pg .= ""; $pg .= ""; $pg .= ''; $pg .= ""; $pg .= ""; $pg .= ""; $pg .= ""; $pg .= ""; $pg .= ''; $pg .= ""; $pg .= "\n"; return $pg; } # function workhashorder($a, $b) { return $b['w_uhr'] - $a['w_uhr']; } # function workuser($data, $user, &$offset, &$totshare, &$totdiff, &$totshrate, &$totinvalid, &$totrate, &$blockacc, &$blockreward, $old = false, $srt = false, $one = false, &$title) { $ans = getWorkers($user); $pg = ''; if ($ans['STATUS'] == 'ok') { if (isset($ans['blockacc'])) $blockacc = $ans['blockacc']; if (isset($ans['blockreward'])) $blockreward = $ans['blockreward']; if ($one === true && isset($ans['oldworkers'])) { $days = intval($ans['oldworkers']); if ($days != 0) $title = ' (active during the last '.$days.' day'. (($days==1)?'':'s').')'; } $all = array(); $count = $ans['rows']; $now = $ans['STAMP']; for ($i = 0; $i < $count; $i++) { $lst = $now - $ans['w_lastshare:'.$i]; if ($old !== false && $lst > $old) continue; if ($ans['w_elapsed:'.$i] > 3600) $uhr = $ans['w_hashrate1hr:'.$i]; else $uhr = $ans['w_hashrate5m:'.$i]; $all[] = array('workername' => $ans['workername:'.$i], 'w_lastshare' => $ans['w_lastshare:'.$i], 'w_lastshareacc' => $ans['w_lastshareacc:'.$i], 'w_lastdiff' => $ans['w_lastdiff:'.$i], 'w_shareacc' => $ans['w_shareacc:'.$i], 'w_diffacc' => $ans['w_diffacc:'.$i], 'w_diffinv' => $ans['w_diffinv:'.$i], 'w_diffsta' => $ans['w_diffsta:'.$i], 'w_diffdup' => $ans['w_diffdup:'.$i], 'w_diffhi' => $ans['w_diffhi:'.$i], 'w_diffrej' => $ans['w_diffrej:'.$i], 'w_sharesta' => $ans['w_sharesta:'.$i], 'w_sharedup' => $ans['w_sharedup:'.$i], 'w_sharehi' => $ans['w_sharehi:'.$i], 'w_sharerej' => $ans['w_sharerej:'.$i], 'w_lastdiff' => $ans['w_lastdiff:'.$i], 'w_active_diffacc' => $ans['w_active_diffacc:'.$i], 'w_active_start' => $ans['w_active_start:'.$i], 'w_uhr' => $uhr); } if ($srt) usort($all, 'workhashorder'); for ($i = 0; $i < $count; $i++) { $lst = $now - $all[$i]['w_lastshare']; if ($old !== false && $lst > $old) continue; $lstacc = $now - $all[$i]['w_lastshareacc']; if ((($offset) % 2) == 0) $row = 'even'; else $row = 'odd'; $pg .= ""; $pg .= ''; if ($all[$i]['w_lastdiff'] > 0) $ld = difffmt($all[$i]['w_lastdiff']); else $ld = ' '; $pg .= ""; $pg .= "'; $shareacc = number_format($all[$i]['w_shareacc'], 0); $totshare += $all[$i]['w_shareacc']; $dacc = $all[$i]['w_diffacc']; $diffacc = number_format($dacc, 0); $ds = round($dacc); $totdiff += $dacc; $pg .= ""; $pg .= ""; $acthr = '0'; $acthrv = 0; $actstt = $all[$i]['w_active_start']; if ($actstt <= 0 || ($now - $actstt) < 0) $actsin = ' '; else { $actsin = howmanyhrs($now - $actstt); $elapsed = $now - $actstt; if ($elapsed > 0) { $acthrv = $all[$i]['w_active_diffacc'] * pow(2,32) / $elapsed; $acthr = dsprate($acthrv); $totshrate += $acthrv; } } $pg .= ""; $pg .= ""; $dinv = $all[$i]['w_diffinv']; $dtot = $dacc + $dinv; if ($dtot > 0) { $rejf = $dinv / $dtot; $rej = number_format(100.0 * $rejf, 3); } else { $rejf = 0; $rej = '0'; } $totinvalid += $dinv; $pg .= ""; foreach(array('sta','dup','hi','rej') as $fld) { $shr = number_format($all[$i]['w_share'.$fld]); $dif = $all[$i]['w_diff'.$fld]; $ddif = number_format($dif); $sdif = number_format($dif,0,'',''); $pg .= ""; } if ($blockacc <= 0) $blkpct = ' '; else $blkpct = number_format(100.0 * $dacc / $blockacc, 3) . '%'; $pg .= ""; $uhr = $all[$i]['w_uhr']; if ($uhr == '?') { $uhr = '?GHs'; $su = 0; } else { $su = round($uhr); $totrate += $uhr; $uhr = dsprate($uhr); } $pg .= ""; $pg .= "\n"; $offset++; } } return $pg; } # function worktotal($offset, $totshare, $totdiff, $totshrate, $totinvalid, $totrate, $blockacc, $blockreward) { $pg = ''; $totshrate = dsprate($totshrate); $totrate = dsprate($totrate); if (($offset % 2) == 0) $row = 'even'; else $row = 'odd'; $pg .= ""; $shareacc = number_format($totshare, 0); $pg .= ""; $diffacc = number_format($totdiff, 0); $pg .= ""; $pg .= ""; $dtot = $totdiff + $totinvalid; if ($dtot > 0) $rej = number_format(100.0 * $totinvalid / $dtot, 3); else $rej = '0'; $pg .= ""; if ($blockacc <= 0) $blkpct = ' '; else $blkpct = number_format(100.0 * $totdiff / $blockacc, 3) . '%'; $pg .= ""; $pg .= ""; $pg .= "\n"; return $pg; } # function doworker($data, $user) { $title = ''; $pg = worktable(); $totshare = 0; $totdiff = 0; $totshrate = 0; $totinvalid = 0; $totrate = 0; $offset = 0; $blockacc = 0; $blockreward = 0; $pg .= worktitle($data, $user); $pg .= workuser($data, $user, $offset, $totshare, $totdiff, $totshrate, $totinvalid, $totrate, $blockacc, $blockreward, false, true, true, $title); $pg .= worktotal($offset, $totshare, $totdiff, $totshrate, $totinvalid, $totrate, $blockacc, $blockreward); if (false && $blockacc > 0 && $blockreward > 0) { $btc = btcfmt($totdiff / $blockacc * $blockreward); $pg .= ''; } $pg .= "
Worker Name:<$r id=srtwrk data-sf=s0>Work Diff<$r id=srtlst data-sf=n2>:Last ShareShares<$r id=srtdiff data-sf=r4>:Diff<$r id=srtshrate data-sf=r5>:Share Rate«Elapsed<$r id=srtinv data-sf=r7>:Invalid<$r id=srtstale data-sf=r8>:Stale<$r id=srtdup data-sf=r9>:Duplicate<$r id=srthi data-sf=r10>:High<$r id=srtreject data-sf=r11>:RejectBlock %<$r id=srtrate data-sf=r13>:Hash Rate
'.htmlspecialchars($all[$i]['workername']).'$ld".howlongago($lstacc).'$shareacc$diffacc$acthr$actsin$rej%$ddif/$shr$blkpct$uhr
Total: $offset$shareacc$diffacc$totshrate $rej% $blkpct$totrate
'; $pg .= "
Payout est if block found at 100%: ~$btc BTC"; $pg .= '
\n"; $pg .= "\n"; return "

Workers$title

".$pg; } # function doworkers($data, $user) { $pg = doworker($data, $user); return $pg; } # function show_workers($info, $page, $menu, $name, $user) { gopage($info, NULL, 'doworkers', $page, $menu, $name, $user); } # ?>