dojo.require("dojo.date");
dojo.require("dojo.date.stamp");

function updatetimes () {
  var now = new Date();
  var tslist = dojo.query('div.header .ts');
  var timelist = dojo.query('div.header .time,.rtime');
  for (var i=0; i < tslist.length; i++) {
    //alert(tslist[i].innerHTML);
    var storytime = dojo.date.stamp.fromISOString (tslist[i].innerHTML);
    var diff = dojo.date.difference (storytime, now, 'second');
                 //alert(storytime + ' ' + diff);
    var timestr;
    if (diff > 60*60*4)
      timestr = Math.round(diff/(60*60)) + 't';
    else if (diff > 60*60) {
      var h = Math.floor(diff/(60*60));
      var m = Math.round ((diff - h * 60 * 60)/60);
      timestr =  h + 't';
      if (m > 0)
        timestr = timestr + m + 'm';
    } else if (diff > 60) {
      var m = Math.round((diff)/60);
      timestr =  m + 'm';
    } else
      timestr = '<1m';

    timelist[i].innerHTML = '&nbsp;' + timestr + '&nbsp;';
    if (diff < 60*30)
      timelist[i].className = 'rtime';
    else
      timelist[i].className = 'time';
  }
  //alert ('updatetimes ' + tslist.length);
  window.setTimeout(function () { updatetimes (); }, 20*1000);
}

function relayout () {
  var stories = dojo.query ("div.sstory");
  var maxheight = -1;
  var offsetTop = -999;
  var newrowix = -1;
  var ping = 0;
  var countcols = 0;
  /*alert ("stories.length " + stories.length);*/
  for (var i=0; i < stories.length; i++) {
    var s = stories[i];
    // If new row, resize all elements in last row
    if (s.offsetTop != offsetTop) {
        if ((newrowix >= 0) && (countcols)) {
        for (var j=newrowix; j < i; j++) {
            stories[j].style.height = maxheight+'px';
        }
        countcols = 0;
      }
      newrowix = i;
      maxheight = s.offsetHeight;
      offsetTop = s.offsetTop;
      //alert ("newrowix " + i + " maxheight " + maxheight + " offsetTop " + offsetTop);
    } else {
        countcols++;
      if (s.offsetHeight > maxheight)
        maxheight = s.offsetHeight;
    }
  }
}

function main() {
  relayout ();
  updatetimes();
}

dojo.addOnLoad (main);
