/*
	Feel free to use your custom icons for the tree. Make sure they are all of the same size.
	User icons collections are welcome, we'll publish them giving all regards.
*/

var TREE_TPL = {

	'icon_e'  : 'tree/icons/empty.gif', // empty image
	'icon_l'  : 'tree/icons/line.gif',  // vertical line
	
	//'icon_48' : 'tree/icons/base.gif',   // root icon normal
	//'icon_52' : 'tree/icons/base.gif',   // root icon selected
	//'icon_56' : 'tree/icons/base.gif',   // root icon opened
	//'icon_60' : 'tree/icons/base.gif',   // root icon selected
	
	//'icon_16' : 'tree/icons/folder.gif', // node icon normal
	//'icon_20' : 'tree/icons/folderopen.gif', // node icon selected
	//'icon_80' : 'tree/icons/folderopen.gif', // node icon selected
	//'icon_24' : 'tree/icons/folderopen.gif', // node icon opened
	//'icon_28' : 'tree/icons/folderopen.gif', // node icon selected opened
	//'icon_92' : 'tree/icons/folderopen.gif', // node icon selected opened

	//'icon_0'  : 'tree/icons/page.gif', // leaf icon normal
	//'icon_4'  : 'tree/icons/page.gif', // leaf icon selected
	//'icon_64'  : 'tree/icons/page.gif', // leaf icon normal
	//'icon_68'  : 'tree/icons/page.gif', // leaf icon selected
	
	//'icon_2'  : 'tree/icons/joinbottom.gif', // junction for leaf
	//'icon_3'  : 'tree/icons/join.gif',       // junction for last leaf
	//'icon_18' : 'tree/icons/plusbottom.gif', // junction for closed node
	//'icon_19' : 'tree/icons/plus.gif',       // junctioin for last closed node
	//'icon_26' : 'tree/icons/minusbottom.gif',// junction for opened node
	//'icon_27' : 'tree/icons/minus.gif',       // junctioin for last opended node

	'icon_2'  : 'tree/icons/item.gif',				// junction for leaf
	'icon_3'  : 'tree/icons/last.gif',				// junction for last leaf
	'icon_18' : 'tree/icons/plus.gif',				// junction for closed node
	'icon_19' : 'tree/icons/plus.gif',				// junctioin for last closed node
	'icon_26' : 'tree/icons/minus.gif',				// junction for opened node
	'icon_27' : 'tree/icons/minus.gif',				// junctioin for last opended node


	'target':'content',							// name of the frame links will be opened in
												// other possible values are:
												// _blank, _parent, _search, _self and _top

	// styles - root
	'style_48':'normal',						// normal root caption style
	'style_52':'normal_selected',				// selected root catption style
	'style_56':'normal_open',					// opened root catption style
	'style_60':'normal_open_selected',			// selected opened root catption style
	'style_112':'normal_m_over',				// mouseovered normal root caption style
	'style_116':'normal_selected_m_over',		// mouseovered selected root catption style
	'style_120':'normal_open_m_over',			// mouseovered opened root catption style
	'style_124':'normal_selected_m_over',		// mouseovered selected opened root catption style
	
	// styles - node
	'style_16':'normal',						// normal node caption style
	'style_20':'normal_selected',				// selected node catption style
	'style_24':'normal_open',					// opened node catption style
	'style_28':'normal_open_selected',			// selected opened node catption style
	'style_80':'normal_m_over',					// mouseovered normal node caption style
	'style_84':'normal_selected_m_over',		// mouseovered selected node catption style
	'style_88':'normal_open_m_over',			// mouseovered opened node catption style
	'style_92':'normal_selected_m_over',		// mouseovered selected opened node catption style

	// styles - leaf
	'style_0':'normal_leaf',					// normal leaf caption style
	'style_4':'normal_selected_leaf',			// selected leaf catption style
	'style_64':'normal_m_over_leaf',			// mouseovered normal leaf caption style
	'style_68':'normal_selected_m_over_leaf',	// mouseovered selected leaf catption style

	'onItemSelect':'onItemSelectHandler',		// Single-klick open node (if disabled, you need to double-click to open node)
	'onItemOpen':'onItemOpenHandler'			// Close nodes on node change
};

function onItemSelectHandler (o_item)
{
	if (o_item.a_children)
	{
	o_item.o_root.toggle(o_item.n_id)

	return true;
	}
}

function onItemOpenHandler (o_item) {
	// get current block
	var a_curblock = o_item.o_parent.a_children;
	// close all nodes except current
	for (var i = 0; i < a_curblock.length; i++)
		if (a_curblock[i].n_state & 48 && a_curblock[i] != o_item)
			a_curblock[i].open(true);
	return true;
}