
function updateLists() {
  var footer = document.getElementById("footer");
  if (!footer) { return; }
  var lists = footer.getElementsByTagName("ul");
  for (var i=0; i<lists.length; i++) {
    handleList(lists[i]);
  }
}

function handleList(list) {
  var items = list.getElementsByTagName("li");
  
  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"); }
    }
  }
  
  //alert(list.innerHTML);
}

// Setup page load and resize events

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