code: function (id, options) {
          var canvas = this.canvas, that = this, Geom = this.geom, config = this.config;
          var innerController = {
              Move: {
          	    enable: true,
                offsetX: config.offsetX || 0,
                offsetY: config.offsetY || 0  
              },
              setRightLevelToShowConfig: false,
              onBeforeRequest: $.empty,
              onBeforeContract: $.empty,
              onBeforeMove: $.empty,
              onBeforeExpand: $.empty
          };
          var complete = $.merge(this.controller, innerController, options);
          
          if(!this.busy) {
              this.busy = true;
              var node = this.graph.getNode(id);
              this.selectPath(node, this.clickedNode);
             	this.clickedNode = node;
              complete.onBeforeCompute(node);
              complete.onBeforeRequest(node);
              this.requestNodes(node, {
                  onComplete: function() {
                      complete.onBeforeContract(node);
                      that.contract({
                          onComplete: function() {
                              Geom.setRightLevelToShow(node, canvas, complete.setRightLevelToShowConfig);
                              complete.onBeforeMove(node);
                              that.move(node, {
                                  Move: complete.Move,
                                  onComplete: function() {
                                      complete.onBeforeExpand(node);
                                      that.expand(node, {
                                          onComplete: function() {
                                              that.busy = false;
                                              complete.onAfterCompute(id);
                                              complete.onComplete();
                                          }
                                      }); // expand
                                  }
                              }); // move
                          }
                      });// contract
                  }
              });// request
          }
        }
docs: /*
  Method: onClick
  
  Animates the <ST> to center the node specified by *id*.
  
  Parameters:
  
  id - (string) A node id.
  options - (optional|object) A group of options and callbacks described below.
  onComplete - (object) An object callback called when the animation finishes.
  Move - (object) An object that has as properties _offsetX_ or _offsetY_ for adding some offset position to the centered node.
  
  Example:
  
  (start code js)
  st.onClick('mynodeid', {
  Move: {
  enable: true,
  offsetX: 30,
  offsetY: 5
  },
  onComplete: function() {
  alert('yay!');
  }
  });
  (end code)