<body>

<p>This test covers the various ways of accessing DOM elements through
the document object by name, id or index, directly as properties of
the document object. This lookup is supposed to include applet, embed,
form, image, object and iframe by name, but only applet and object by
id. It should give the element itself in the case of a single match,
or an HTMLCollection in the case of multiple matches; except that when
exactly one item that is an iframe matches, it will give the window
object for that iframe.
</p>

<p>Our results match IE.</p>

<hr>

<script>
document.custom=new Object();

if (window.testRunner)
    window.testRunner.dumpAsText();
</script>

<div style="visibility: hidden; width: 0px; height: 0px;">
<img name="image1" width="0" height="0">
<img name="image2" width="0" height="0">
<img name="image2" width="0" height="0">
<img id="image3" width="0" height="0">
<img id="image4" width="0" height="0">
<img id="image4" width="0" height="0">
<img id="image5" width="0" height="0">
<img name="image5" width="0" height="0">
<img name="image5" width="0" height="0">
<img id="image5" width="0" height="0">
<img id="image6" name="image6name" width="0" height="0">
<img id="image7" name="" width="0" height="0">
<img id="image8" name="image8name" width="0" height="0">
<img id="image8" width="0" height="0">
<img id="image8" name="image7name" width="0" height="0">
<img id="image9" name="image9name" width="0" height="0">

<form name="form1" width="0" height="0"></form>
<form name="form2" width="0" height="0"></form>
<form name="form2" width="0" height="0"></form>
<form id="form3" width="0" height="0"></form>
<form id="form4" width="0" height="0"></form>
<form id="form4" width="0" height="0"></form>
<form id="form5" width="0" height="0"></form>
<form name="form5" width="0" height="0"></form>
<form name="form5" width="0" height="0"></form>
<form id="form5" width="0" height="0"></form>

<applet name="applet1" width="0" height="0"></applet>
<applet name="applet2" width="0" height="0"></applet>
<applet name="applet2" width="0" height="0"></applet>
<applet id="applet3" width="0" height="0"></applet>
<applet id="applet4" width="0" height="0"></applet>
<applet id="applet4" width="0" height="0"></applet>
<applet id="applet5" width="0" height="0"></applet>
<applet name="applet5" width="0" height="0"></applet>
<applet name="applet5" width="0" height="0"></applet>
<applet id="applet5" width="0" height="0"></applet>

<embed name="embed1" width="0" height="0"></embed>
<embed name="embed2" width="0" height="0"></embed>
<embed name="embed2" width="0" height="0"></embed>
<embed id="embed3" width="0" height="0"></embed>
<embed id="embed4" width="0" height="0"></embed>
<embed id="embed4" width="0" height="0"></embed>
<embed id="embed5" width="0" height="0"></embed>
<embed name="embed5" width="0" height="0"></embed>
<embed name="embed5" width="0" height="0"></embed>
<embed id="embed5" width="0" height="0"></embed>
<object name="embed6"><embed name="embed6"></embed></object>

<object name="object1" width="0" height="0"></object>
<object name="object2" width="0" height="0"></object>
<object name="object2" width="0" height="0"></object>
<object id="object3" width="0" height="0"></object>
<object id="object4" width="0" height="0"></object>
<object id="object4" width="0" height="0"></object>
<object id="object5" width="0" height="0"></object>
<object name="object5" width="0" height="0"></object>
<object name="object5" width="0" height="0"></object>
<object id="object5" width="0" height="0"></object>

<iframe name="iframe1" width="0" height="0"></iframe>
<iframe name="iframe2" width="0" height="0"></iframe>
<iframe name="iframe2" width="0" height="0"></iframe>
<iframe id="iframe3" width="0" height="0"></iframe>
<iframe id="iframe4" width="0" height="0"></iframe>
<iframe id="iframe4" width="0" height="0"></iframe>
<iframe id="iframe5" width="0" height="0"></iframe>
<iframe name="iframe5" width="0" height="0"></iframe>
<iframe name="iframe5" width="0" height="0"></iframe>
<iframe id="iframe5" width="0" height="0"></iframe>

<span name="span1" width="0" height="0"></span>
<span name="span2" width="0" height="0"></span>
<span name="span2" width="0" height="0"></span>
<span id="span3" width="0" height="0"></span>
<span id="span4" width="0" height="0"></span>
<span id="span4" width="0" height="0"></span>
<span id="span5" width="0" height="0"></span>
<span name="span5" width="0" height="0"></span>
<span name="span5" width="0" height="0"></span>
<span id="span5" width="0" height="0"></span>

<img id="mixed1" width="0" height="0">
<form id="mixed1" width="0" height="0"></form>
<applet id="mixed1" width="0" height="0"></applet>
<embed id="mixed1" width="0" height="0"></embed>
<object id="mixed1" width="0" height="0"></object>
<iframe id="mixed1" width="0" height="0"></iframe>
<span id="mixed1" width="0" height="0"></span>

<img name="mixed2" width="0" height="0">
<form name="mixed2" width="0" height="0"></form>
<applet name="mixed2" width="0" height="0"></applet>
<embed name="mixed2" width="0" height="0"></embed>
<object name="mixed2" width="0" height="0"></object>
<iframe name="mixed2" width="0" height="0"></iframe>
<span name="mixed2" width="0" height="0"></span>

<img id="mixed3" width="0" height="0">
<form id="mixed3" width="0" height="0"></form>
<applet id="mixed3" width="0" height="0"></applet>
<embed id="mixed3" width="0" height="0"></embed>
<object id="mixed3" width="0" height="0"></object>
<span id="mixed3" width="0" height="0"></span>

<img name="mixed4" width="0" height="0">
<form name="mixed4" width="0" height="0"></form>
<applet name="mixed4" width="0" height="0"></applet>
<embed name="mixed4" width="0" height="0"></embed>
<object name="mixed4" width="0" height="0"></object>
<span name="mixed4" width="0" height="0"></span>

<img name="body" with="0" height="0">
<img name="custom" with="0" height="0">
<iframe name="location" with="0" height="0"></iframe>

</div>

<pre id="results">
Results:<br>
</pre>

<script>
function print(x)
{
   document.getElementById("results").innerHTML += x;
}

function printElement(e)
{
    if (e.tagName) {
        print(" " + e.tagName);

    if (e.name && e.id) {
        print("(id,name)");
    } else if (e.name) {
        print("(name)");
        } else if (e.id) {
        print("(id)");
    }
    } else if (e.navigator) {
        print(" WINDOW");
    } else {
        print(" OTHER");
    }
}

function testProperty(description, propName) {
    print(description);
    print(":");
    var propVal = document[propName];

    if (!propVal) {
        print(" undefined");
    } else if (propVal.length) {
        print(" collection(" + propVal.length + ")");
    for (var i = 0; i < propVal.length; i++) {
        printElement(propVal[i]);
    }
    } else {
        print(" single");
    printElement(propVal);
    }
    
    print("<br>");
}

testProperty("Nonexistent image name", "image0");
testProperty("Image by name (unique)", "image1");
testProperty("Image by name (multiple)", "image2");
testProperty("Image by id (unique)", "image3");
testProperty("Image by id (multiple)", "image4");
testProperty("Image by id/name mixed", "image5");
testProperty("Image by id, name present (unique)", "image6");
testProperty("Image by id, empty name present (unique)", "image7");
testProperty("Image by id, name present (multiple)", "image8");
testProperty("Image by name, id present (unique)", "image9name");

print("<br>");

testProperty("Nonexistent form name", "form0");
testProperty("Form by name (unique)", "form1");
testProperty("Form by name (multiple)", "form2");
testProperty("Form by id (unique)", "form3");
testProperty("Form by id (multiple)", "form4");
testProperty("Form by id/name mixed", "form5");
print("<br>");

testProperty("Nonexistent applet name", "applet0");
testProperty("Applet by name (unique)", "applet1");
testProperty("Applet by name (multiple)", "applet2");
testProperty("Applet by id (unique)", "applet3");
testProperty("Applet by id (multiple)", "applet4");
testProperty("Applet by id/name mixed", "applet5");
print("<br>");

testProperty("Nonexistent object name", "object0");
testProperty("Object by name (unique)", "object1");
testProperty("Object by name (multiple)", "object2");
testProperty("Object by id (unique)", "object3");
testProperty("Object by id (multiple)", "object4");
testProperty("Object by id/name mixed", "object5");
print("<br>");

testProperty("Nonexistent embed name", "embed0");
testProperty("Embed by name (unique)", "embed1");
testProperty("Embed by name (multiple)", "embed2");
testProperty("Embed by id (unique)", "embed3");
testProperty("Embed by id (multiple)", "embed4");
testProperty("Embed by id/name mixed", "embed5");
testProperty("Embed by name nested in object with the same name", "embed6");
print("<br>");

testProperty("Nonexistent iframe name", "iframe0");
testProperty("Iframe by name (unique)", "iframe1");
testProperty("Iframe by name (multiple)", "iframe2");
testProperty("Iframe by id (unique)", "iframe3");
testProperty("Iframe by id (multiple)", "iframe4");
testProperty("Iframe by id/name mixed", "iframe5");
print("<br>");

testProperty("Nonexistent span name", "span0");
testProperty("Span by name (unique)", "span1");
testProperty("Span by name (multiple)", "span2");
testProperty("Span by id (unique)", "span3");
testProperty("Span by id (multiple)", "span4");
testProperty("Span by id/name mixed", "span5");
print("<br>");

testProperty("Mixed by id", "mixed1");
testProperty("Mixed by name", "mixed2");
testProperty("Mixed by id (no iframe)", "mixed3");
testProperty("Mixed by name (no iframe)", "mixed4");
print("<br>");

testProperty("Numeric 0", 0);
testProperty("Numeric 12", 12);
testProperty("Numeric 13", 13);
print("<br>");

testProperty("Conflicting image", "body");
testProperty("Conflicting image (custom property)", "custom");
testProperty("Conflicting iframe", "location");

</script>
</body>
