# File live_tree.rb, line 167
        def construct_live_tree_function(name, options = {})
            options = options.dup;
            if options[:id] != nil
                tree_id = options[:id]
            else
                tree_id = name
            end
            for k in [:on_click_item, :on_expand_item, :on_collapse_item, :on_load_item]
                if options[k] != nil
                    options[k] = "function(item){" + options[k] + "}"
                end
            end
            if options[:data_url] == nil                                
                if options[:data_action] == nil
                    act = name.to_s + "_live_tree_data"
                else
                    act = options[:data_action]
                end
                if options[:data_controller] == nil
                    options[:data_url] = { :action => act }
                else
                    options[:data_url] = { :controller => options[:data_controller], :action => act }
                end
            end
            options[:data_url] = '"' + escape_javascript(url_for(options[:data_url])) + '"'
            for k in [:css_class, :css_style]
                if options[k] != nil
                    options[k] = '"' + escape_javascript(options[k]) + '"'
                end
            end
            if options[:root_item_id] != nil
                options[:root_item_id] = _id_to_javascript(options[:root_item_id])
            end
            if options[:initial_data_root] != nil
                item = options[:initial_data_root]
                if (options[:initial_data_whole_tree])
                    depth = nil
                elsif (options[:expand_root_item] == nil || options[:expand_root_item] || options[:hide_root_item])
                    depth = 2
                else
                    depth = 1
                end
                
                if options[:initial_data_options] == nil
                    data_options_method = controller.method("_#{name}_live_tree_options")
                    if data_options_method
                        data_options = data_options_method.call
                    else
                        data_options = {}
                    end
                else
                    data_options = options[:initial_data_options]
                end
                data_options = data_options.dup
                data_options[:depth] = depth;
                options[:initial_data] = construct_live_tree_data(item, data_options)
            end
            options.delete :id
            options.delete :data_action
            options.delete :data_controller
            options.delete :initial_data_root
            options.delete :initial_data_options
            options.delete :initial_data_whole_tree
            options_js = "{\n" + options.map {|k, v| LiveTreeHelper.live_tree_js_name(k) + ":#{v}"}.join(",\n") + "\n}"                 
            "new LiveTree(\"" + tree_id.to_s + "\"," + options_js + ")"
        end