$(document).ready(
    function() {
        $('a.unfold').click(onUnfoldTree);
        $('a.unfold_disabled').click(function() { return false; })
    }
);

function onUnfoldTree() {
    var row       = $(this).parents('tr')[0];
    var partnerId = row.id;
    var element   = this;

    $(this).unbind('click');

    $.ajax({
        url: this.href,
        type: 'POST',
        data: 'unfold=' + partnerId,
        dataType: 'html',
        timeout: 10000,
        success: function(html) {
            $(element).removeClass('unfold');
            $(element).addClass('fold');
            $(element).click(onFoldTree);
            $(row).after(html);
            $('#tree_' + partnerId + ' a.unfold').click(onUnfoldTree);
            $('#tree_' + partnerId + ' a.unfold_disabled').click(
                function() {
                    return false;
                }
            );
        }
    });

    return false;
}

function onFoldTree() {
    var partnerId = $(this).parents('tr')[0].id;

    $(this).unbind('click');
    $(this).removeClass('fold');
    $(this).addClass('unfold');
    $(this).click(onUnfoldTree);
    $('#tree_' + partnerId).remove();
    return false;
}