function getElement()
{
    var nodelist;
    var element;
    var count = 0;
    var result = "";
    node=document;
    
    while (count < nodelist.length){
        element = nodelist.item(count);
         result = result + " " + element.nodeName + " " + element.className + "<br/>";
        // result = element.className + " " + element.id;
        // alert(result);
        count++;
    }
    document.write("total result:<br/>" + result + "<br/>");
}

var myElements = new Array();
var numElements = 0;
var builtIns = [
'BODY',
'A',
'CLEAR',
'DIV',
'FORM',
'INPUT',
'OL',
'EM',
'UL',
'LI',
'H6',
'H5',
'H4',
'H3',
'H2',
'H1',
'P',
'FOCUS',
'HOVER',
'VISITED',
'TABLE',
'TBODY',
'TR',
'TD',
'TH',
'TEXTAREA',
'SELECT'
];


function eInfo(node)
{
    this.type = node.nodeType;
    this.css_name = node.nodeName;
    this.css_id = node.id;
    this.css_class = node.className;
}

function getNodes(topNode)
{
    var count = 0;
    var childnode;
    var numchildren;
    var info;

    info = new eInfo(topNode);
    if (info.type == 1){
        if (info.css_class != "" || info.css_id != "")
	        myElements[numElements++] = info; 
        numchildren = topNode.childNodes.length;
        while (count < numchildren){
            childnode = topNode.childNodes[count];
            getNodes(childnode);
            count++;
        }
    }
    return;
}

function myTree()
{
    var x;
    getNodes(document.body);
    document.open();

    for (count=0; count < builtIns.length; count++){
        document.write(builtIns[count] + "<br/>"); 
    }

    for (count=0; count < numElements; count++){
        // x = myElements[count].css_name;
        // if (x != "")
        //    document.write("Name: " + x + " "); 
        x = myElements[count].css_class;
        if (x != "")
            document.write(x + "<br/>"); 
        x = myElements[count].css_id;
        if (x != "")
            document.write(x + "<br/>"); 
    }
    document.close();
}
