jquery('#tree').bind("change_state.jstree", function (e, data) {
if (!this._changeStateProcessActive) {
this._changeStateProcessActive = true;
var tree_instance = data.inst;
var node = data.rslt;
if (tree_instance.is_checked(node)) {
function recursiveUncheckChilds(node) {
var childs = tree_instance._get_children(node);
for (var i = 0; i < childs.length; i++) {
tree_instance.uncheck_node(childs[i]);
recursiveUncheckChilds(childs[i]);
}
}
function recursiveUncheckParents(node) {
if (node) {
tree_instance.uncheck_node(node);
recursiveUncheckParents(tree_instance._get_parent(node));
}
}
recursiveUncheckChilds(node);
recursiveUncheckParents(tree_instance._get_parent(node));
tree_instance.close_node(node);
} else {
tree_instance.open_node(node);
}
this._changeStateProcessActive = null;
}
});