+### 
+Overview of a node
+
+The Class Methods are used internally by the framework.
+###
 class Node
 
   @__currentId = 0
-
-  @nextId: ->
-    Node.__currentId = Node.__currentId + 1
-
-    return Node.__currentId
 
   @Transitions:
     ACTIVATE: 'activate'


    false

  @toggle: (node) ->
    if node.isActivated()
      return @deactivate node
    else
      return @activate node

  @lineageIsBusy: (node)->
    if parent = node.parent()
      return true if parent.isBusy()

        return true if parent.isBusy()
    false

  ### 
  Node instances call this function when done activating. If there is a pending action it will be executed.
  @param [Node] node
  ###
  @onNodeActivated: (node)->
    node.parent().onChildActivated(node) if node.parent()
    if action = node.onActivatedAction()
      @processAction action

  ### 
  Node instances call this function when done deactivating. If there is a pending action it will be executed.
  @param [Node] node
  ###
  @onNodeDeactivated: (node)->
    node.parent().onChildDeactivated(node) if node.parent()
    if action = node.onDeactivatedAction()
