function walkColumnCell(currentColumnNode,callBackFunction,includeHeaders) {
  previous = currentColumnNode.previousSibling;
  index = 1;
  while(previous) {
    if (previous.nodeType==Node.ELEMENT_NODE) {
      index++;
    }
    previous = previous.previousSibling;
  }
  ancestor = currentColumnNode.parentNode;
  while(ancestor && ancestor.tagName != "TABLE") {
    ancestor = ancestor.parentNode;
  }
  if (ancestor) {
    if (includeHeaders || !ancestor.getElementsByTagName("tbody").length) {
      rows = ancestor.getElementsByTagName("tr");
    } else {
      rows = ancestor.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
    }
    for (i=0;i<rows.length;i++) {
      j = 0;
      cursor = rows[i].firstChild;
      while(cursor) {
        if (cursor.nodeType==Node.ELEMENT_NODE) {
          j++;
          if (j==index) {
            break;
          }
        }
        cursor = cursor.nextSibling;
      }
      if (j==index && cursor) {
        callBackFunction(cursor);
      }
    }
  }
}

