User:Iota Eta Pi/common.js

From Halopedia, the Halo wiki

< User:Iota Eta Pi
Revision as of 16:57, October 31, 2012 by Iota Eta Pi (talk | contribs) (Created page with "// *************************************** // * Code for the Halo 4 Countdown Timer * // * Template by User:Halo4master * // * Code credit to its original author, Sp...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// ***************************************
 // * Code for the Halo 4 Countdown Timer *
 // * Template by User:Halo4master        *
 // * Code credit to its original author, Splarka  *
 // ***************************************
 
    function updatetimer(i) {
        var now = new Date();
        var then = timers[i].eventdate;
        var diff = count = Math.floor((then.getTime() - now.getTime()) / 1000);
 
        // catch bad date strings
        if (isNaN(diff)) {
            timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **';
            return;
        }
 
        // determine plus/minus
        if (diff < 0) {
            diff = -diff;
            var tpm = 'T plus ';
        } else {
            var tpm = 'Only ';
        }
 
        // calcuate the diff
        var left = (diff % 60) + ' seconds';
        diff = Math.floor(diff / 60);
        if (diff > 0) left = (diff % 60) + ' minutes ' + left;
        diff = Math.floor(diff / 60);
        if (diff > 0) left = (diff % 24) + ' hours ' + left;
        diff = Math.floor(diff / 24);
        if (diff > 0) left = diff + ' days ' + left
        timers[i].firstChild.nodeValue = tpm + left;
 
        // a setInterval() is more efficient, but calling setTimeout()
        // makes errors break the script rather than infinitely recurse
        timeouts[i] = setTimeout('updatetimer(' + i + ')', 1000);
    }
 
    function checktimers() {
        //hide 'nocountdown' and show 'countdown'
        var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown');
        for (var i in nocountdowns) nocountdowns[i].style.display = 'none'
        var countdowns = getElementsByClassName(document, 'span', 'countdown');
        for (var i in countdowns) countdowns[i].style.display = 'inline'
 
        //set up global objects timers and timeouts.
        timers = getElementsByClassName(document, 'span', 'countdowndate'); //global
        timeouts = new Array(); // generic holder for the timeouts, global
        if (timers.length == 0) return;
        for (var i in timers) {
            timers[i].eventdate = new Date(timers[i].firstChild.nodeValue);
            updatetimer(i); //start it up
        }
    }
    addOnloadHook(checktimers);
 
 // End for Halo 4 Countdown code