/* JSON status output for the Tier 2 status page, F5VAG 2/2010 */
var version = "3,0";
var ho = location.host;
var hos = ho;
if (ho != "www.aprs2.net") {ho = "f5vag.nerim.net";}
var done = false;
function sload() {
if (done) { return; }
var url = "http://f5vag.nerim.net/php/json_stat.php?sid="+Math.random()+"&ho="+hos;
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url);
var par = document.getElementsByTagName('head')[0];
par.appendChild(script);
done = true;
}
function ddo(nrm) {
if (nrm < 10) { nrm = "0"+nrm; }
return nrm;
}
function mover(xid) {
var doca = document.getElementById(xid);
doca.style.color = "#cc0000";
}
function mweg(xid) {
var doca = document.getElementById(xid);
doca.style.color = "#000099";
}
function stats_out(o) {
var tr = '<tr><td style="border:1px solid #8f8f8f; padding:1px; padding-bottom:2px; text-align:center;">';
var td ='<td style="border:1px solid #8f8f8f; padding:1px; padding-bottom:2px; text-align:right;">';
var t = '&nbsp;</td>' + td;
var tn = '&nbsp;</td></tr>';
var j = 1;
var c = '<table id="stab" style="border-collapse:collapse; width:618px; color:#000099; background-image:url(http://'+ho+'/images/white-mist1.jpg); border:1px solid #8f8f8f; border-top:1px solid #8f8f8f; font-family:verdana; font-weight:bold; font-size:11px; white-space:nowrap; text-align:right;">';
c += '<tr><td colspan="8" style="font-weight:bold; font-size:14px; color:#000099; text-align:center; line-height:20px; background-color:#FFD700;">Current Status for the <a id="TT000" onmouseover="mover(\'TT000\');" onmouseout="mweg(\'TT000\');" style="color:#000099;" href="http://www.aprs2.net" target="_blank" title="APRS2 HomePage">Tier 2</a> javAPRSSrvr Network'+tn;
c += '<tr style="text-align:center; border:1px solid #8f8f8f; background-color:silver;"><td style="border:1px solid #8f8f8f; padding:1px; padding-bottom:2px; text-align:center;">Server ID'+t+'Maps'+t+'Updated [UTC]&nbsp;&nbsp;'+t+'Version'+t+'Users'+t+'Uptime'+t+'BPS Out'+t+'<a id="TTOO3" onmouseover="mover(\'TTOO3\');" onmouseout="mweg(\'TTOO3\');" style="color:#000099; "href="http://f5vag.nerim.net/php/t2_err_hist.php" target="_blank" title="See error history">PE %</a>'+tn;
for (x in o) {
if (o[x].sto){
c += '<tr style="background-color:#FFD700; border:1px solid #8f8f8f;"><td colspan="4" style="text-align:right; border:1px solid #8f8f8f;">'+o[x].sto+t+o[x].snr+t+o[x].stt+t+o[x].snn+'&nbsp;</td><td style="padding-top:3px; padding-right:6px; border:1px solid #8f8f8f;"><img src="http://'+ho+'/images/t2icon.gif" width="16" height="16" border="0" alt="Tier 2 Icon" />'+tn;
continue;
}
if (o[x].pti){
var dd = new Date();
var d = parseInt(0.5+(dd.getTime()-(parseInt(o[x].timestamp)*1000))/60000);
if (d<1){d = "<1";}
var dmaxts = new Date();
dmaxts.setTime(o[x].maxts*1000);
var maxts = dmaxts.getUTCFullYear()+"-"+ddo((dmaxts.getUTCMonth()+1))+"-"+dmaxts.getUTCDate()+" "+ddo(dmaxts.getUTCHours())+":"+ddo(dmaxts.getUTCMinutes());
c += '<tr style="font-size:10px; font-weight:normal; color:#000099; text-align:center; line-height:14px;"><td colspan="8" style="border:1px solid #8f8f8f; font-size:10px;">Last update '+d+'m ago. <a id="TTOO1" onmouseover="mover(\'TTOO1\');" onmouseout="mweg(\'TTOO1\');" style="color:#000099;" href="http://www.aprs2.net/tier2_stat_help.php" target="_blank" title="HELP for this page">HELP</a>. &copy; <a id="TTOO2" onmouseover="mover(\'TTOO2\');" onmouseout="mweg(\'TTOO2\');" style="color:#000099;" href="http://f5vag.eu/" target="_blank">F5VAG</a>. Peak T2 users: '+o[x].max+' ('+maxts+'z). '+o[x].hits+' hits'+tn;
continue;
}
var tid = "T20" + j.toString();
var mid = "M20" + j.toString();
c += tr+'<a id="'+tid+'" onmouseover="mover(\''+tid+'\');" onmouseout="mweg(\''+tid+'\');" style="color:#000099;" href="http://'+o[x].sdo+'.aprs2.net:14501" target="_blank" title="'+o[x].sid+' Status Page">'+o[x].sid+'</a>'+t+'<a id="'+mid+'" onmouseover="mover(\''+mid+'\');" onmouseout="mweg(\''+mid+'\');" style="color:#000099;" href="http://f5vag.nerim.net/php/map_t2.php?server='+o[x].sid+'" target="_blank" title="map '+o[x].sid+'">map</a>&nbsp;'+t+o[x].sda+"&nbsp;";
j++
if (o[x].ser){
c += '&nbsp;</td><td colspan="4" style="text-align:center; background-color:yellow; border:1px solid #8f8f8f;">host '+o[x].sdo+'.aprs2.net: '+o[x].ser+t+o[x].spe+tn;
continue;
}
c += t+o[x].sve+t+o[x].sus+t+o[x].sup+t+o[x].sbp+t+o[x].spe+tn;
}
c += '</table>';
var s = document.getElementById("status_table");
s.innerHTML = c;
hilite();
}
function hilite() {
var trs = [];
var pattern2 = /3.15b\d\d\D/;
var pattern3 = /3.15b05\D/;
trs = document.getElementsByTagName("TR");
var count = trs.length;
for (var i=0; i<count; i++) {
if ((trs[i].cells[3]) && (trs[i].cells[3].innerHTML.match(pattern2))) {
if (trs[i].cells[3].innerHTML.match(pattern3)) {
trs[i].cells[3].style.backgroundColor = "#ee0000";
}
}
}
}
// for server status page, highlithes un-validated connections and "NOCALL"
var patterno = /No/;
var patterno2 = /n[o0]call/i;
var hiliteno_done = false;
function hiliteno() {
if (hiliteno_done) { return; }
hiliteno_done = true;
trs = document.getElementsByTagName("TR");
count = trs.length;
for (var i=0; i<count; i++) {
if ((trs[i].cells[2]) && (trs[i].cells[2].innerHTML.match(patterno2))) {
trs[i].cells[2].style.backgroundColor = "#eeee00";
}
if ((trs[i].cells[3]) && (trs[i].cells[3].innerHTML.match(patterno))) {
trs[i].cells[3].style.backgroundColor = "#eeee00";
}
}
}
window.onload=function(){window.onload;sload();}
