
function updateLists() {
  var lists = document.getElementsByTagName("ul");
  for (var i=0; i<lists.length; i++) {
    //alert("Handling list " + i + " of " + lists.length);
    handleList(lists[i]);
  }
}

function handleList(list) {
  var items = list.getElementsByTagName("li");
  // Get first item
  //if (items[0].style.display != "inline") { return; }
  //alert("Inline List? " + items[0].style.display);
  
  /*
  s = "";
  var lastY = -1;
  var isFirst = true;
  for (var i=0; i<items.length; i++) {
    s += i + "\t";
    var y = getPageOffsetTop(items[i].childNodes[0]) + items[i].childNodes[0].offsetHeight;
    if (y != lastY) {
      isFirst = true;
    }
    lastY = y;
    
    s += items[i].innerText.substr(0,5) + "\t";
    
    s += y + "\t";
    
    if (isFirst) {
      if (!hasClassName(items[i], "first")) { items[i].className += " first"; }
    }
    else {
      if (hasClassName(items[i], "first")) { removeClassName(items[i], "first"); }
    }
    
    s += isFirst + "\t" + items[i].className + "\n";
    
    isFirst = false;
  }
  alert(s);
  */
  
  var arrFirst = new Array();
  var lastY = -1;
  var isFirst = false;
  for (var i=0; i<items.length; i++) {
    var y = getPageOffsetTop(items[i].childNodes[0]) + items[i].childNodes[0].offsetHeight;
    if (y != lastY) {
      isFirst = true;
    }
    lastY = y;
    
    arrFirst[i] = isFirst;
    
    if (isFirst) {
      if (!hasClassName(items[i], "first")) { items[i].className += " first"; }
    }
    else {
      if (hasClassName(items[i], "first")) { removeClassName(items[i], "first"); }
    }
    
    isFirst = false;
  }
  // For IE, shift them by one
  var newArr = new Array();
  if (document.all) {
    for (var i=1; i<items.length; i++) {
      newArr[i-1] = arrFirst[i];
    }
    arrFirst = newArr;
  }
  // Make sure the first element is marked
  arrFirst[0] = true;
  // Now match the class names
  for (var i=0; i<items.length; i++) {
    if (arrFirst[i]) {
      if (!hasClassName(items[i], "first")) { items[i].className += " first"; }
    }
    else {
      if (hasClassName(items[i], "first")) { removeClassName(items[i], "first"); }
    }
  }
}

// Setup page load and resize events

addLoadEvent( function() { updateLists(); });
addWindowEvent( function() { updateLists(); }, "resize" );
