var dFolders, cFolders; var genForums, aForums, allianceId; var plOverview, flOverview, moOverview, nResearch; var unOverview,stDiff,ticks,tUpdate,rankings; var complete, protection, updateTimer; var ovett; function emptyCB(data) { } function Tick(id,first,interval,last,name) { this.id = id; this.first = parseInt(first, 10); this.interval = parseInt(interval, 10); this.stopTime = (last != "") ? parseInt(last, 10) : -1; this.name = name; this.started = true; this.stDays = 0; this.previous = 0; this.next = 0; this.last = 0; this.remaining = 0; this.compute = Tick_compute; this.draw = Tick_draw; } function Tick_compute(st) { this.started = (st >= this.first); if (!this.started) { var tl = this.first - st; this.stDays = Math.floor((tl - (tl % 86400)) / 86400); this.next = this.first; this.remaining = this.next - (st + this.stDays * 86400); this.last = -1; return; } else this.stDays = 0; var f = this.first % 86400; var n = (st % 86400); var tm = n + ((n -1) { var s = (this.stopTime - this.first); var m = s % this.interval; this.last = this.first + s - m } else this.last = -1; if (this.last != -1 && nx + st > this.last) { this.next = -1; this.previous = this.last; } else { this.next = nx + st; this.previous = this.next - this.interval; this.remaining = nx; } } function Tick_draw() { var str = makeNextText(this.name); if (this.next != -1) { if (!this.started) str += '' + this.stDays + ' ' + getDaysText(this.stDays > 1) + ', '; str += '' var rh = (this.remaining - (this.remaining % 3600)) / 3600, rm = (this.remaining - rh*3600 - (this.remaining % 60)) / 60, rs = this.remaining - (rh*60+rm)*60; var s = rh.toString(); if (s.length == 1) s = '0' + s; str += s + ':'; s = rm.toString(); if (s.length == 1) s = '0' + s; str += s + ':'; s = rs.toString(); if (s.length == 1) s = '0' + s; str += s; } else str += 'N/A'; str += ''; return str; } function Folder(id, tMsg, nMsg, name) { this.id = id; this.tMsg = tMsg; this.nMsg = nMsg; this.name = name; } function Category(id, type, name) { this.id = id; this.type = type; this.name = name; this.forums = new Array(); } function Forum(id, nTopics, nUnread, name) { this.id = id; this.nTopics = nTopics; this.nUnread = nUnread; this.name = name; } function initPage() { overviewReceived(document.getElementById('init-data').value); } function updatePage() { clearTimeout(tUpdate); x_getOverview(overviewReceived); } function parseComms(l) { var i, a = l.shift().split('#'); var nCustom = parseInt(a[0],10), nGenCats = parseInt(a[1],10), nAForums = parseInt(a[2],10); allianceId = a[3]; // Default folders dFolders = new Array(); for (i=0;i<3;i++) { a = l.shift().split('#'); dFolders.push(new Folder('', a[0], a[1], '')); } // Custom folders cFolders = new Array(); for (i=0;i 0) { a = l.shift().split('#'); var t = new Tick(a.shift(), a.shift(), a.shift(), a.shift(), a.join('#')); ticks.push(t); } } function overviewReceived(data) { var l = data.split('\n'); complete = (l.shift() == 1); protection = parseInt(l.shift(), 10); parseComms(l); plOverview = l.shift().split('#'); flOverview = l.shift().split('#'); moOverview = l.shift().split('#'); moOverview[2] = (parseInt(moOverview[0],10) - parseInt(moOverview[1],10)).toString(); nResearch = l.shift(); unOverview = l.shift().split('#'); rankings = l.shift().split('#'); parseTicks(l); drawOverviewPage(); updateTimer = setTimeout('updatePage()', 60000); } function drawOverviewPage() { if (complete) drawCompleteOverview(); else drawShortOverview(); drawTicks(); } function drawTicks() { var now = Math.round((new Date().getTime()) / 1000) - stDiff; var i, str = ''; for (i=0;i"; } document.getElementById('ticks').innerHTML = str; tUpdate = setTimeout('drawTicks()', 1000); } function switchMode() { complete = !complete; clearTimeout(tUpdate); drawOverviewPage(); x_switchOvMode(emptyCB); } function breakProtection() { if (!confirmBreakProtection()) { return; } clearTimeout(updateTimer); clearTimeout(tUpdate); x_breakProtection(overviewReceived); }