  Event.observe(window, "load", effectsSetup);

  var oneSecond = 1000;
  var tenSeconds = 10000;
  function effectsSetup(event) {
    timer = $("rulesTimer");
    Event.observe(timer, "click", toggleTimer);
    pulsateTimer = setTimeout("pulsate()", tenSeconds);
  }

  var timerSeconds = null;
  var halted = true;
  var timer = null;
  var alreadyStarted = false;

  function toggleTimer(event) {
    halted = !halted;
    if (!halted) {
      alreadyStarted = true;
      timerSeconds = setTimeout("tictac()", oneSecond);
    } else {
      clearTimeout(timerSeconds);
    }
  }

  function tictac() {
    var val = parseInt(timer.innerHTML, 10);
    val = (val == 0)? 60: val - 1;
    timer.innerHTML = "" + val;
    if (val == 0) {
      halted = true;
      new Effect.Pulsate(timer, {
	afterFinish: function () { toggleTimer(null); }
      });
    } else {
      timerSeconds = setTimeout("tictac()", oneSecond);
    }
  }

  var pulsateTimer = null;

  function pulsate() {
    if (alreadyStarted) { return; }
    new Effect.Pulsate(timer, {
      afterFinish: function () {
        pulsateTimer = setTimeout("pulsate()", tenSeconds);
      }
    });
  }

