function init() {
	var mp = 'nav';
	var hp = 'hide';
	var sp = 'show';
	var ct = 'control';
	var pp = 'parent';
	var pa = 'active';
	var cu = 'current';
	var d, uls, i;
	if (!document.getElementById && !document.createTextNode) {
		return;
	}
	d = document.getElementById('ctlg_tree');
	
	if (!d) {
		return;
	}
	addclass(d, mp);
	uls = d.getElementsByTagName('UL');
	for (i = 0; i < uls.length; i++) {
		if (checkcurrent(uls[i])) {
			var ctrl = createcontrol(uls[i]);
			addclass(ctrl, pa);
		}
		else{
			if (uls[i].lang == 'extended')
				addclass(uls[i], sp);
			else 
				addclass(uls[i], hp);
			var ctrl = uls[i].parentNode.firstChild;
			if (ctrl.lang == ''){
				ctrl.onclick = function() {
					if (this.title == 'collapse') this.title = 'extend'; else this.title = 'collapse';
					this.parentNode.className = (this.parentNode.className == pa)?pp:pa;
					swapclass(this.parentNode.getElementsByTagName('UL') [0], hp, sp);			
					return false;
				}
			}
		}
	}
	function createcontrol(o) {
		var l = o.parentNode.firstChild; 
		var c = document.createElement("A");
		c.title = 'extend';
		return o.parentNode.insertBefore(c, l);
	}
	function checkcurrent(o) {
		if (check(o.parentNode, cu)) {
			return true;
		}
		for (var i = 0; i < o.getElementsByTagName('LI').length; i++) {
			if (check(o.getElementsByTagName('LI') [i], cu)) {
				return true;
			}
		}
		return false;
	}
	function swapclass(o, c1, c2) {
		var cn = o.className
		o.className = !check(o,c1)?cn.replace(c2,c1):cn.replace(c1, c2);
	}
	function addclass(o, c) {
		if (!check(o, c)) {
			o.className += o.className == ''?c:' '+c;
		}
	}
	function check(o, c) {
	 	return new RegExp('\\b' + c + '\\b').test(o.className);
	}
}

