function get_releases (id)
{
  var rows = id.getElementsByTagName ('tr');
  var ret = new Array ();
window.status = '';
  var index = 0;
  for (row = 0; row < rows.length; ++row)
  {
    if (row % 2)
    {
      for (cell = rows[row].firstChild; cell; cell = cell.nextSibling)
        if (cell.nodeType == Node.ELEMENT_NODE)
          ret[index++].push (cell);
    }
    else
    {
      var i = index;
      for (cell = rows[row].firstChild; cell; cell = cell.nextSibling)
        if (cell.nodeType == Node.ELEMENT_NODE)
        {
          ret.push (null); // push(array) pushes the content, not the array :-|
          ret[i++] = new Array (cell);
        }
    }
  }
  return ret;
}

function calc_columns ()
{
}

function doRelayoutTable (div, cells, columns)
{
  var classes = div.getElementsByTagName ('table')[0].className;
  var newdiv = document.createElement ('div');

  // start adding new content
  for (y = 0; y < cells.length; y += columns)
  {
    table = document.createElement ('table');
    table.className = classes;
    row1 = document.createElement ('tr');
    row1.className = 'release-title';
    row2 = document.createElement ('tr');
    row2.className = 'release-links';
    for (x = y; x < y + columns; ++x)
    {
      if (x < cells.length)
      {
        row1.appendChild (cells[x][0]);
        row2.appendChild (cells[x][1]);
      }
      else
      { // empty cells
        row1.appendChild (document.createElement ('td'));
        row2.appendChild (document.createElement ('td'));
      }
    }
    table.appendChild (row1);
    table.appendChild (row2);
    newdiv.appendChild (table);
  }

  div.replaceChild (newdiv, div.firstChild);
}

var busy = 0;

function doRelayoutTables ()
{
  if (busy)
  {
    setTimeout ('doRelayoutTables ()', 1000);
    return;
  }
  busy = 1;

  var new_columns = Math.floor (main.offsetWidth / 176.0);
  if (new_columns < 1)
    new_columns = 1;
  if (new_columns == columns)
  {
    busy = 0;
    return;
  }

  columns = new_columns;
  doRelayoutTable (frontend, frontend_items, new_columns);
  busy = 0;
}

var main = null;
var frontend = null;
var frontend_items = null;
var columns = 0;

try
{
  main = document.getElementById ('main');
  frontend = document.getElementById ('front-ends');
  if (main == null || frontend == null)
    throw 'null';
  frontend_items = get_releases (frontend);
  if (frontend_items == null || frontend_items.length == 0)
    throw 'null';
  window.onresize = doRelayoutTables;
  doRelayoutTables ();
}
catch (err)
{
}
