// =================================== //
// DOM Browsing                        //
// v1.0 - May 27, 2006                 //
// ----------------------------------- //
// Created by Lloyd Hassell            //
// Website: lloydhassell.brinkster.net //
// Email: lloydhassell@hotmail.com     //
// =================================== //

function browseDom(STARTOBJSTR) {
   if (STARTOBJSTR == null) STARTOBJSTR = 'self';
   var thisObj = eval(STARTOBJSTR);
   var documentHtmlStr = '<html><head><title>' + STARTOBJSTR + '</title></head>';
   documentHtmlStr += '<body bgcolor="#FFFFFF" link="#000099" vlink="#000099" alink="#990000">';
   documentHtmlStr += '<p><font color="#000000" face="verdana,arial" size="2"><b>' + STARTOBJSTR + '</b>';
   if (STARTOBJSTR.indexOf('.') != -1) documentHtmlStr += ' [ <a href="javascript:window.opener.browseDom(\'' + STARTOBJSTR.substring(0,STARTOBJSTR.lastIndexOf('.')) + '\')" onMouseOver="javascript:window.status = \'' + STARTOBJSTR.substring(0,STARTOBJSTR.lastIndexOf('.')) + '\'; return true;" onMouseOut="javascript:window.status = \'\'; return true;">parent</a> ]';
   documentHtmlStr += '</font></p>';
   documentHtmlStr += '<table cellpadding="3" cellspacing="1" border="0" width="100%">';
   var objProperties = new Array();
   for (var propertyLoop in thisObj) objProperties[objProperties.length] = propertyLoop;
   objProperties.sort();
   if (objProperties.length == 0) documentHtmlStr += '<p><font color="#000000" face="verdana,arial" size="2">This object has no properties.</font></p>';
   for (var propertyLoop in objProperties) {
      var tempProperty = thisObj[objProperties[propertyLoop]];
      if (typeof(tempProperty) == 'object' && tempProperty != null && objProperties[propertyLoop] != 'location') tempProperty = '<a href="javascript:window.opener.browseDom(\'' + STARTOBJSTR + '.' + objProperties[propertyLoop] + '\')" onMouseOver="javascript:window.status = \'' + STARTOBJSTR + '.' + objProperties[propertyLoop] + '\'; return true;" onMouseOut="javascript:window.status = \'\'; return true;">' + tempProperty + '</a>';
      else {
         tempProperty += '';
         tempProperty = tempProperty.replace(/\</g,'&lt;');
         tempProperty = tempProperty.replace(/\>/g,'&gt;');
         }
      documentHtmlStr += '<tr>';
      documentHtmlStr += '<td valign="top" width="25%" bgcolor="#006699"><font color="#FFFFFF" face="verdana,arial" size="2"><b>' + objProperties[propertyLoop] + '</b></font></td>';
      documentHtmlStr += '<td valign="top" width="75%" bgcolor="#DDDDDD"><font color="#000000" face="verdana,arial" size="2">' + tempProperty + '&nbsp;</font></td>';
      documentHtmlStr += '</tr>';
      }
   documentHtmlStr += '</table></body></html>';
   var domBrowsingWinObj = window.open('','domBrowsingWin','location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no');
   domBrowsingWinObj.document.write(documentHtmlStr);
   domBrowsingWinObj.document.close();
   domBrowsingWinObj.focus();
   }