Sha256: 27ecfacb11ecbd113948d1d3468ee7a971e1b6c81ee241014c099f3016ff7618

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

/** Trickster Timer.
 * config: configuration, or TricksterDefaultConfig to get the defaults
 * functions: override helper functions
 */
var TricksterTimer = function(config,functions) {
  var start = (new Date()).getTime();
  var pauseTime = null;
  var running = false;
  var paused  = false;

  function pad(num) {
    if (num < 10) {
      return "0" + num;
    }
    else {
      return num;
    }
  }

  function tick() {
    if (!paused) {
      var now    = (new Date()).getTime();
      var diff   = (now - start) / 1000;
      var hour   = Math.floor(diff / (60 * 60));
      var minute = pad((Math.floor(diff / 60) % 60));
      var second = pad(Math.floor(diff % 60));

      $("#hour").text(hour);
      $("#minute").text(minute);
      $("#second").text(second);
    }

    if (running) {
      window.setTimeout(tick,1000);
    }
    else {
      $("#hour").text("0");
      $("#minute").text("00");
      $("#second").text("00");
    }
  }

  function stop() {
    running = false;
    paused = false;
    $("#pause").hide();
    $("#play").show();
  }

  function pause() {
    paused = true;
    pauseTime = (new Date()).getTime();
    $("#play").show();
    $("#pause").hide();
  }

  function play() {
    if (paused) {
      var timePaused = (new Date()).getTime() - pauseTime;
      start += timePaused;
    }
    paused = false
    $("#play").hide();
    $("#pause").show();
    if (!running) {
      running = true;
      tick();
    }
  }

  return {
    setup: function() { 
      $("#stop").show();
      $("#play").show();
      $("#pause").hide();
    },
    play: play,
    pause: pause,
    stop: stop
  };
};

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
trickster-1.2.0 js/timer.js
trickster-1.1.0 js/timer.js