<html> 
<head>
<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
<title>Traversal Test</title> 
</head> 
<body>
<div id="test">
<span id="A"></span><span id="B"></span><span id="C"></span><span id="D"></span><span id="E"></span><span id="F"></span><span id="G"></span><span id="H"></span><span id="I"></span>
</div>
<div style="font-family: Courier; font-size: 14;">
<script>
if (window.layoutTestController)
    layoutTestController.dumpAsText();

var root = document.getElementById('test');

function testNodeFiter(n)
{
    if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
    return NodeFilter.FILTER_SKIP;
}

var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
for (i = 0; i < 5; i++)
    it.nextNode();
it.previousNode();
document.write(dumpNodeIterator(it, "ref node 'E'; pointer before"));

// remove node 'E'
document.write("<p>remove node 'E'");
root.removeChild(document.getElementById('E'));
document.write(dumpNodeIterator(it, "ref node 'F'; pointer before"));
</script>
</div>
</body>
</html>
