dhtmlxTree is an Ajax-based JavaScript tree menu that allows you to create full-featured navigation trees and organize your data into hierarchical order. Dynamic loading of items from XML stream gives the ability to create trees with unlimited number of nodes. dhtmlxTree can load its content dynamically from server using Ajax or directly from on-page XML data-island. Loading data from JSON and CVS is also supported. If the tree has hundreds of nodes, subnodes can be asynchronously loaded on the client side and then displayed by portions on demand. It's possible due to Distributed Parsing functionality implemented in dhtmlxTree. Smart Rendering is another feature that solves performance problems in trees with great number of nodes per level. Powerful client-side API allows complete customization of the treeview with JavaScript. dhtmlxTree allows users to edit text of tree nodes right in a web browser. All the changes performed over the tree (text editing, nodes reorganizing) can be automatically saved in backend database on the server side. Extended drag-and-drop functionality greatly simplifies tree usage. Drop-as-sibling behavior makes it easy to reorder nodes in a tree view. The tree control supports drag-and-drop not only within one tree, but between trees, even if they are located in different frames or iframes. You also can select and drag multiple tree items. This JavaScript tree has checkbox system in order to use this component as a navigation bar with selection lists. In addition to usual two-state checkboxes (checked item, unchecked item), you can use three state checkboxes with "partly-checked" value (some sub-items are checked). dhtmlxTree is distributed under both GNU GPL and commercial license (PRO edition). Source code is available.