
function expiresdate() {
	var exp = new Date();
	exp.setTime(exp.getTime() + (1/*years*/ * 365/*days*/ * 24/*hours*/ * 60/*minutes*/ * 60/*seconds*/ *1000/*milliseconds*/)); // ~1 year	
	return exp.toGMTString();
}

var tree_tpl = {

	// general
	'target':'_self',	// name of the frame links will be opened in
							// other possible values are:
							// _blank, _parent, _search, _self and _top

	'cookie_ext':'expires='+expiresdate()+';',
	'b_solid':true, //if true will significantly effect appearance delay of the control on huge hierarchy
						// _blank, _parent, _search, _self and _top
	// icons - root	
	'icon_48':'icons/base.gif',   // root icon normal
	'icon_52':'icons/base.gif',   // root icon selected
	'icon_56':'icons/base.gif',   // root icon opened
	'icon_60':'icons/base.gif',   // root icon selected opened

	// icons - node	
	'icon_16':'icons/page.gif', // node icon normal
	'icon_20':'icons/pagesel.gif', // node icon selected
	'icon_24':'icons/pagesel.gif', // node icon opened
	'icon_28':'icons/pagedown.gif', // node icon selected opened

	'icon_80':'icons/pagesel.gif', // mouseovered node icon normal
	'icon_88':'icons/pagesel.gif',

	// icons - leaf
	'icon_0':'icons/page.gif', // leaf icon normal
	'icon_4':'icons/pagesel.gif', // leaf icon selected
	'icon_64':'icons/pagesel.gif', // leaf icon selected
	
	// icons - junctions	
	'icon_2':'icons/joinbottom.gif', // junction for leaf
	'icon_3':'icons/join.gif',       // junction for last leaf
	'icon_18':'icons/plusbottom.gif', // junction for closed node
	'icon_19':'icons/plus.gif',       // junctioin for last closed node
	'icon_26':'icons/minusbottom.gif',// junction for opened node
	'icon_27':'icons/minus.gif',      // junctioin for last opended node

	// icons - misc
	'icon_e':'icons/empty.gif', // empty image
	'icon_l':'icons/line.gif',  // vertical line
	
	// styles - root
	'style_48':'mout', // normal root caption style
	'style_52':'selmout', // selected root catption style
	'style_56':'mout', // opened root catption style
	'style_60':'selmout', // selected opened root catption style
	'style_112':'mover', // mouseovered normal root caption style
	'style_116':'selmover', // mouseovered selected root catption style
	'style_120':'mover', // mouseovered opened root catption style
	'style_124':'selmover', // mouseovered selected opened root catption style
	
	// styles - node
	'style_16':'mout', // normal node caption style
	'style_20':'selt0ic', // selected node catption style
	'style_24':'t0ic', // opened node catption style
	'style_28':'selt0ic', // selected opened node catption style
	'style_80':'mover', // mouseovered normal node caption style
	'style_84':'selt0io', // mouseovered selected node catption style
	'style_88':'t0io', // mouseovered opened node catption style
	'style_92':'selt0io', // mouseovered selected opened node catption style

	// styles - leaf
	'style_0':'t0ic', // normal leaf caption style
	'style_4':'selt0ic', // selected leaf catption style
	'style_64':'t0io', // mouseovered normal leaf caption style
	'style_68':'selt0io', // mouseovered selected leaf catption style
	
	
	'onItemOpen':'onItemOpenHandler' // on item close event handler


	
};





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);

	// proceed to default handler
	return true;
}

