     @busy = false
     @queue = []
     @moves = 0
+    @active = true
 
     # floor positions
     width = @maze.dimensions[0] * 71 + 1


    # attach key event handlers
    $(document).keyup((event) =>
      if event.which == 82 # R key
        @goUp()
        @whenIdle(=>@updateMsg())
      else if event.which == 70 # F key
        @goDown()
        @whenIdle(=> @updateMsg())
      else if event.which == 37 # Left key
        @goLeft()
        @whenIdle(=> @updateMsg())
      else if event.which == 38 # Up key
        @goForward()
        @whenIdle(=> @updateMsg())
      else if event.which == 39 # Right key
        @goRight()
        @whenIdle(=> @updateMsg())
      else if event.which == 40 # Down key
        @goBackward()
        @whenIdle(=> @updateMsg())
    )

    # messagebox

          left: @x * 71
    }, 200, callback)

  updateStatus: ->
    if @maze.isFinish([@x, @y, @z])
      msg = MazeUI3D.msg['win']
      @active = false
    else if @maze.passageExists([[@x, @y, @z], [@x, @y, @z + 1]]) or @maze.passageExists([[@x, @y, @z - 1], [@x, @y, @z]])
      msg = MazeUI3D.msg['updown']
    else
