code: function (callback) {
              if ( !self.isSupported() ) {
                  return false;
              }
              lastId += 1;
              var number = lastId;
              self._callbacks[number] = callback;
              self._listen();
              return number;
          }
docs: Call callback when visibility will be changed. First argument for callback will be original event object, second will be visibility state name.  Return listener ID to unbind listener by `unbind` method.  If Page Visibility API doesn’t supported method will be return false and callback never will be called.  Visibility.change(function(e, state) { Statistics.visibilityChange(state); });  It is just proxy to `visibilitychange` event, but use vendor prefix.