Configuration

The options object you pass at initialization contains all of the configuration options for the tree.

You could save some time and pass only the properties that are different from the defaults:

Configuration defaults
{
	data	: {
		type	: "predefined",	// ENUM [json, xml_flat, xml_nested, predefined]
		method	: "GET",		// HOW TO REQUEST FILES
		async	: false,		// BOOL - async loading onopen
		async_data : function (NODE) { return { id : $(NODE).attr("id") || 0 } }, // PARAMETERS PASSED TO SERVER
		url		: false,		// FALSE or STRING - url to document to be used (async or not)
		json	: false,		// FALSE or OBJECT if type is JSON and async is false - the tree dump as json
		xml		: false			// FALSE or STRING
	},
	selected	: false,		// FALSE or STRING or ARRAY
	opened		: [],			// ARRAY OF INITIALLY OPENED NODES
	languages	: [],			// ARRAY of string values (which will be used as CSS classes - so they must be valid)
	path		: false,		// FALSE or STRING (if false - will be autodetected)
	cookies		: false,		// FALSE or OBJECT (prefix, open, selected, opts - from jqCookie - expires, path, domain, secure)
	ui		: {
		dots		: true,		// BOOL - dots or no dots
		rtl			: false,	// BOOL - is the tree right-to-left
		animation	: 0,		// INT - duration of open/close animations in miliseconds
		hover_mode	: true,		// SHOULD get_* functions chage focus or change hovered item
		scroll_spd	: 4,
		theme_path	: false,	// Path to themes
		theme_name	: "default",// Name of theme
		context		: [ 
			{
				id		: "create",
				label	: "Create", 
				icon	: "create.png",
				visible	: function (NODE, TREE_OBJ) { if(NODE.length != 1) return false; return TREE_OBJ.check("creatable", NODE); }, 
				action	: function (NODE, TREE_OBJ) { TREE_OBJ.create(false, TREE_OBJ.get_node(NODE)); } 
			},
			"separator",
			{ 
				id		: "rename",
				label	: "Rename", 
				icon	: "rename.png",
				visible	: function (NODE, TREE_OBJ) { if(NODE.length != 1) return false; return TREE_OBJ.check("renameable", NODE); }, 
				action	: function (NODE, TREE_OBJ) { TREE_OBJ.rename(); } 
			},
			{ 
				id		: "delete",
				label	: "Delete",
				icon	: "remove.png",
				visible	: function (NODE, TREE_OBJ) { var ok = true; $.each(NODE, function () { if(TREE_OBJ.check("deletable", this) == false) ok = false; return false; }); return ok; }, 
				action	: function (NODE, TREE_OBJ) { $.each(NODE, function () { TREE_OBJ.remove(this); }); } 
			}
		]
	},
	rules	: {
		multiple	: false,	// FALSE | CTRL | ON - multiple selection off/ with or without holding Ctrl
		metadata	: false,	// FALSE or STRING - attribute name (use metadata plugin)
		type_attr	: "rel",	// STRING attribute name (where is the type stored if no metadata)
		multitree	: false,	// BOOL - is drag n drop between trees allowed
		createat	: "bottom",	// STRING (top or bottom) new nodes get inserted at top or bottom
		use_inline	: false,	// CHECK FOR INLINE RULES - REQUIRES METADATA
		clickable	: "all",	// which node types can the user select | default - all
		renameable	: "all",	// which node types can the user select | default - all
		deletable	: "all",	// which node types can the user delete | default - all
		creatable	: "all",	// which node types can the user create in | default - all
		draggable	: "none",	// which node types can the user move | default - none | "all"
		dragrules	: "all",	// what move operations between nodes are allowed | default - none | "all"
		drag_copy	: false,	// FALSE | CTRL | ON - drag to copy off/ with or without holding Ctrl
		droppable	: [],
		drag_button	: "left"
	},
	lang : {
		new_node	: "New folder",
		loading		: "Loading ..."
	},
	callback	: {				// various callbacks to attach custom logic to
		// before focus  - should return true | false
		beforechange: function(NODE,TREE_OBJ) { return true },
		beforeopen	: function(NODE,TREE_OBJ) { return true },
		beforeclose	: function(NODE,TREE_OBJ) { return true },
		// before move   - should return true | false
		beforemove  : function(NODE,REF_NODE,TYPE,TREE_OBJ) { return true }, 
		// before create - should return true | false
		beforecreate: function(NODE,REF_NODE,TYPE,TREE_OBJ) { return true }, 
		// before rename - should return true | false
		beforerename: function(NODE,LANG,TREE_OBJ) { return true }, 
		// before delete - should return true | false
		beforedelete: function(NODE,TREE_OBJ) { return true }, 

		onJSONdata	: function(DATA,TREE_OBJ) { return DATA; },
		onselect	: function(NODE,TREE_OBJ) { },					// node selected
		ondeselect	: function(NODE,TREE_OBJ) { },					// node deselected
		onchange	: function(NODE,TREE_OBJ) { },					// focus changed
		onrename	: function(NODE,LANG,TREE_OBJ,RB) { },				// node renamed ISNEW - TRUE|FALSE, current language
		onmove		: function(NODE,REF_NODE,TYPE,TREE_OBJ,RB) { },	// move completed (TYPE is BELOW|ABOVE|INSIDE)
		oncopy		: function(NODE,REF_NODE,TYPE,TREE_OBJ,RB) { },	// copy completed (TYPE is BELOW|ABOVE|INSIDE)
		oncreate	: function(NODE,REF_NODE,TYPE,TREE_OBJ,RB) { },	// node created, parent node (TYPE is createat)
		ondelete	: function(NODE, TREE_OBJ,RB) { },					// node deleted
		onopen		: function(NODE, TREE_OBJ) { },					// node opened
		onopen_all	: function(TREE_OBJ) { },						// all nodes opened
		onclose		: function(NODE, TREE_OBJ) { },					// node closed
		error		: function(TEXT, TREE_OBJ) { },					// error occured
		// double click on node - defaults to open/close & select
		ondblclk	: function(NODE, TREE_OBJ) { TREE_OBJ.toggle_branch.call(TREE_OBJ, NODE); TREE_OBJ.select_branch.call(TREE_OBJ, NODE); },
		// right click - to prevent use: EV.preventDefault(); EV.stopPropagation(); return false
		onrgtclk	: function(NODE, TREE_OBJ, EV) { },
		onload		: function(TREE_OBJ) { },
		onfocus		: function(TREE_OBJ) { },
		ondrop		: function(NODE,REF_NODE,TYPE,TREE_OBJ) {}
	}
}