I have a very specific requirement. I am looking for a javascript based category selector. The categories would be in a tree hierarchy and the depth is not predetermined. The selector would render as a DIV on click of a button. On selection of a high level category, the next level categories will be rendered. Likewise on selection of any of the second level categories, third level categories will be rendered. As the categories keep getting rendered, the DIV will increase in size and on deselection, it will reduce in size. Once the category selection is done, the user will simply click the cross button and category will be ajaxed to the server. The category tree data will come all at once on page load. There is no need of ajax to populate the tree. Whether the hierarchical category data comes as xml or json object, doesn't matter much.
Each of the category levels can be selected. So for example, if the root level category is selected, but later the user thinks of expanding the root category and chooses to select a sub category, then the root selection is removed and the sub category selection is accepted. The categories are of products and services that a consumer might be looking for.