// Lightstreamer Monitor Console Demo
// Table Management for the Statistics Section

//////////////// Statistics Table Management

  // create an OverwriteTable
  var monitoringTable = new OverwriteTable(null, null, "MERGE");

  monitoringTable.setDataAdapter("MONITOR");
  monitoringTable.setSnapshotRequired(true);

  // define visual effects and formatting
  monitoringTable.onChangingValues = function (itemPos, visualUpdateInfo, itemName) {
    if (visualUpdateInfo == null) {
      return;
    }

    visualUpdateInfo.setHotTime(1000);
    visualUpdateInfo.setRowStyle("lshot", "lscold");
    
    visualUpdateInfo.forEachChangedField(function(fieldPos,fieldName,serverValue,formattedValue) {
      if (formattedValue.length > 3) {
        var intCharsNum = formattedValue.indexOf(".");
        if (intCharsNum == -1) {
          intCharsNum = formattedValue.length;
        } 
        if (intCharsNum > 3) {
          var res = "";
          while (intCharsNum > 3) {
            res = "," + formattedValue.substr(intCharsNum-3,3) + res;
            intCharsNum -= 3;
          }
          res = formattedValue.substr(0,intCharsNum) + res;
          if (formattedValue.indexOf(".") > -1) {
            res += formattedValue.substr(formattedValue.indexOf("."));
          }
          visualUpdateInfo.setFormattedValue(fieldName,res);
        }
      } 
    });
  };

  // bind the table to the corresponding HTML elements
  pushPage.addTable(monitoringTable, "stats");
