var autoreload = function (input, second) {
  autoreload.interval = second || 600;
  autoreload.toggle(true);
  return [
    '<p>(<a id ="reload" href="javascript:execute()">reload</a> '
    + '<a id="auto_reload" href="javascript:autoreload.toggle()">auto reload:' + String(autoreload.interval) + '</a>)</p>'
  ].concat(input);
};

autoreload.toggle = function (force) {
  if (autoreload.timer_id) {
    if (!force) {
      window.clearInterval(autoreload.timer_id);
      document.getElementById('auto_reload').innerHTML = 'auto reload:' + String(autoreload.interval);
      autoreload.timer_id = null;
    }
  } else {
    autoreload.timer = (new Date).getTime();
    autoreload.timer_id = window.setInterval(function () {
      var time = parseInt(((new Date).getTime() - autoreload.timer) / 1000, 10),
        auto_reload = document.getElementById('auto_reload') || {};
      if (time > autoreload.interval) {
        auto_reload.innerHTML = 'Loading...';
        autoreload.timer = (new Date).getTime();
        execute();
      } else {
        auto_reload.innerHTML = 'auto reload:' + Math.max(autoreload.interval - time, 0);
      }
    }, 500);
  }
};

