Ok, Now let's try it with a layer and see if it still works!
I get no errors from the concole and no output to the screen in Mozilla, but again this is ok in Netscape 4.7x. If I'm doing something stupid please point it out! Sean <html> <head> <title>Layer Test</title> <script language="JavaScript1.2"> docText = ''; var CR = String.fromCharCode( 13 ); var depth = 0; var docText = '<h1>Menu</h1>' + CR; function Node( name, data, url, pRef ) { this.name = name; this.data = data; this.url = url; this.pRef = pRef; this.kids = new Array(); this.add = addKid; this.paint = paintNode; this.toggle = toggleNode; this.dump = dumpNode; }; function addKid( p, k ) { var subscripts = new Array(); subscripts = p.split( ',' ); pRef = 'menu'; for ( var i in subscripts ) { if ( subscripts[ i ] !='' ) { pRef = pRef + '.kids[' + eval( subscripts[ i ] ) + ']'; }; }; pRef = pRef + '.kids'; kids = eval( pRef ); var temp = new Array( ( kids.length + 1 ) ); if ( kids.length > 0 ) { for ( var i in kids ) { temp[ i ] = kids[ i ]; }; }; temp[ kids.length ] = new Node( k, 1, k + '.html', pRef + '[' + kids.length + ']' ); eval( pRef + ' = temp' ); eval( k + ' = kids.length' ); }; function paintNode() { docText = docText + '<br>'; if ( depth > 0 ) { for ( i = 0; i < depth; i++ ) { docText = docText + ' '; }; }; if ( this.kids.length != 0 ) { docText = docText + '<a href="JavaScript:' + this.pRef + '.toggle();rePaint();"><b>' + this.name + '</b></a>' + CR; } else { docText = docText + '<a href="' + this.url + '">' + this.name + '</a>' + CR; }; if ( this.data > 0 ) { depth = depth + 1; for ( i in this.kids ) { this.kids[ i ].paint(); }; depth = depth - 1; }; }; function toggleNode() { this.data = ( ( this.data + 1 ) % 2 ); }; function dumpNode() { alert( 'name: ' + this.name + ' data: ' + this.data + ' url: ' + this.url + ' kids: ' + this.kids.length ); for ( i in this.kids ) { this.kids[ i ].dump(); }; }; // build the menu menu = new Node( 'root', 1 , 'root' ); menu.add( '', 'Evaluation' ); menu.add( 'Evaluation', 'History' ); menu.add( 'Evaluation', 'Physical' ); menu.add( 'Evaluation', 'Laboratory' ); menu.add( 'Evaluation', 'Imaging' ); menu.add( 'Evaluation,Imaging', 'Radiology' ); menu.add( 'Evaluation,Imaging', 'Ultrasound' ); menu.add( 'Evaluation,Imaging', 'CT' ); menu.add( 'Evaluation,Imaging', 'MRI' ); menu.add( 'Evaluation,Imaging', 'Angiography' ); menu.add( '', "Therapy" ); function rePaint() { docText = ''; // paint the menu for ( i in menu.kids ) { menu.kids[ i ].paint(); }; if ( navigator.appName == "Netscape" ) { // write the page to the frame with ( document.xmenu.document ) { close(); open( "text/html", "replace" ); writeln( docText ); close(); }; }; if ( navigator.appName == "Microsoft Internet Explorer" ) { xmenu.innerHTML = docText; }; }; </script> </head> <body bgcolor=white onLoad="rePaint();"> <script language="JavaScript1.2"> if ( navigator.appName == "Netscape" ) { document.write( '<LAYER NAME="xmenu" LEFT=8 width=256 BGCOLOR=white></LAYER>' ); }; if ( navigator.appName == "Microsoft Internet Explorer" ) { document.write( '<DIV ID="xmenu"></DIV>'); }; </script> </body> </html>