function nodeMove(sourceNode, targetNode)
  {
    updateSelectedPath(); 
    return true; 
  }

  function nodeRename(sourceNode, newName)
  { 
    TreeView1.SelectedNode.SetProperty('Text', newName);
    updateSelectedPath(); 
    return true; 
  }

  function nodeSelect(node)
  { 
    updateSelectedPath(); 
  }
  
  function updateSelectedPath()
  {
    var curNode = TreeView1.SelectedNode; 
    while (curNode != null)
    {
      curNode = curNode.ParentNode; 
    }
  }
  
  function expandAll()
  {
    TreeView1.ExpandAll();
  }
  
  function collapseAll()
  {
    TreeView1.CollapseAll();
  }