jQuery(document).ready(function ($) {

    var rowStr = "<ul>";

    var wikipediaJsCategory = {
        category: 'JavaScript',
        subcategories: [
            {category: 'Ajax (programming)'},
            {category: 'JavaScript engines'},
            {category: 'JavaScript programming languages family',
                subcategories: [{
                        category: 'JavaScript dialect engines'
                    }]
            },
            {category: 'JavaScript based calendar components'},
            {category: 'JavaScript based HTML editors'}
        ]
    };


    var tree = Arboreal.parse(wikipediaJsCategory, 'subcategories');


    function iterator(node) {
        if (node.children.length > 0)
        {
            rowStr += '';
            rowStr += '<li class="jstree-open">' + node.data.category + '<ul>';
        } else
        {
            rowStr += '<li>' + node.data.category + '</li>';
        }
    }

    function iteratorAfter(node) {
        if (node.children.length > 0)
        {

            rowStr += '</ul></li>';
        }
    }

    tree.traverseDown(iterator, iteratorAfter);

    rowStr += "</ul>";

    $("#container").html(rowStr);

    $('#container').jstree();
});