function setCookie(name, value) {
  var date = new Date();
  date.setTime(date.getTime() + 30 * 24 * 60 * 60 * 1000);
  var expires = date.toGMTString();
  var path = "/";
  var re = new RegExp("/[a-z]*?:\/\/(.*?)(\/.*/)/");
  var m = re.exec(location.href);
  if (m) path = m[2];
  document.cookie = name + "=" + value + "; expires=" + expires + "; path=" + path;
}

function getCookie(name) {
  var nameeq = name + "=";
  var s = document.cookie;
  s = s.split("; ");
  for (var i = s.length - 1; i >= 0; --i) {
    var c = s[i].split("=");
    if (c[0] == name) return c[1];
  }
  return null;
}

function getTime() {
  if (Date.now) return Date.now();
  return new Date().getTime();
}

function getTimeSecs() {
  return parseInt(getTime() / 1000);
}

function timeSince(when) {
  return getTime() - when;
}

function formatSeconds(time) {
  var secs = time % 60;
  var mins = parseInt(time / 60);
  secs = secs < 10 ? "0" + secs : secs;
  return mins + ":" + secs;
}

function formatAgo(ago) {
  var fn = function(x, y) {
    x = parseInt(x);
    if (x == 0) return null;
    if (x == 1) return strings["agoformat"].replace("%t", x).replace("%u", strings[y]);
    return strings["agoformat"].replace("%t", x).replace("%u", strings[y + "s"]);
  }
  if (ago < 10)
    return strings["justnow"];
  if (ago < 60) {
    var secs = fn(ago, "second");
    if (secs) return secs;
  }
  else if (ago < 60 * 60) {
    var mins = fn(ago / 60, "minute");
    if (mins) return mins;
  }
  var years = fn(ago / 60 / 60 / 24 / 365, "year");
  if (years) return years;
  var days = fn(ago / 60 / 60 / 24, "day");
  if (days) return days;
  var hours = fn(ago / 60 / 60, "hour");
  if (hours) return hours;
  return "";
}
