code: function pongHistogram_SetData( divId, data, dataDocSubPath ) {
      log( "pongHistogram", "SetData start "+divId);
      log( "pongHistogram", JSON.stringify(data) );
      var pmd = moduleConfig[ divId ];
      var hist = [];
      for ( var i = 0; i < pmd.blockCount; i++ ) {
        hist[i] = {};
        hist[i][ pmd.dataY ] = 0;
      }
      log( "pongHistogram", JSON.stringify(hist) );
      log( "pongHistogram", JSON.stringify( pongHistogram[ divId ]) );
      for ( var i = 0; i < data.length; i++ ) {
        var val = parseFloat( data[i][ pmd.dataX ] );
        log( "pongHistogram", 'val='+val );          
        for ( var j = 0; j < pongHistogram[ divId ].length; j++ ) {
          var x1 = parseFloat( pongHistogram[ divId ][j].x1 );
          var x2 = parseFloat( pongHistogram[ divId ][j].x2 );
          if ( x1 < val && val <= x2 ) {
            log( "pongHistogram", x1 +" < "+val+" < "+x2+"    -> "+j);      
            hist[j][ pmd.dataY ] = hist[j][ pmd.dataY ] + 1;
          }
        }
      }
      log( "pongHistogram", JSON.stringify(hist) );
      pongHistogram_UpdateBars( divId, hist );
      log( "pongHistogram", "SetData end.");
  }
docs: ======= Code for hook ================================================ set data call back hook