text: // Original code from: http://joncom.be/code/javascript-json-formatter/ (with modifications)
  
  function RealTypeOf(v) {
    if (typeof(v) == "object") {
      if (v === null) return "null";
      if (v.constructor == (new Array).constructor) return "array";
      if (v.constructor == (new Date).constructor) return "date";
      if (v.constructor == (new RegExp).constructor) return "regex";
      return "object";
    }
    return typeof(v);
  }
  
  function formatJson(oData, sIndent) {
      if (arguments.length < 2) {
          var sIndent = "";
      }
      var sIndentStyle = "    ";
      var sDataType = RealTypeOf(oData);
  
      // open object
      if (sDataType == "array") {
          if (oData.length == 0) {
              return "[]";
          }
          var sHTML = "[";
      } else {
          var iCount = 0;
          $.each(oData, function() {
              iCount++;
              return;
          });
          if (iCount == 0) { // object is empty
              return "{}";
          }
          var sHTML = "{";
      }
  
      // loop through items
      var iCount = 0;
      $.each(oData, function(sKey, vValue) {
          if (iCount > 0) {
              sHTML += ",";
          }
          if (sDataType == "array") {
              sHTML += ("\n" + sIndent + sIndentStyle);
          } else {
              sHTML += ("\n" + sIndent + sIndentStyle + '<span class="json-key">"' + sKey + '"</span>' + ": ");
          }
  
          // display relevant data type
          switch (RealTypeOf(vValue)) {
              case "array":
              case "object":
                  sHTML += formatJson(vValue, (sIndent + sIndentStyle));
                  break;
              case "boolean":
                  sHTML += '<span class="json-boolean">' + vValue.toString() + '</span>'; 
                  break;
              case "number":
                  sHTML += '<span class="json-number">' + vValue.toString() + '</span>'; 
                  break;
              case "null":
                  sHTML += '<span class="json-null">null</span>';
                  break;
              case "string":
                  sHTML += '<span class="json-string">"' + vValue + '"</span>';
                  break;
              default:
                  sHTML += ("TYPEOF: " + typeof(vValue));
          }
  
          // loop
          iCount++;
      });
  
      // close object
      if (sDataType == "array") {
          sHTML += ("\n" + sIndent + "]");
      } else {
          sHTML += ("\n" + sIndent + "}");
      }
  
      // return
      return sHTML;
  }
  