/*************************************************************
Project:    FOLDER MENU
Author:     Sergey V Musenko             sergey@musenko.com
Date:       Sep 2006
-----------------------------------------------------------
Part:       JavaScript lib
**************************************************************/
// folder codes: nn_nn_nn...

// setup
var clFolderPref='divFold';
var clImgPref='imgFold';

var clTree=new Array(); // track opened subtree

// open/close a folder ---
function clFoldClick(n) {
	var l=clWhichLvl(n);
	clCloseTree(l,n);
	clFoldVision(n,l,2);
	return false;
}

// change folder's vision ( 0:hide, 1:show, 2:change ) ---
var rImage;
function clFoldVision(n,l,m,forced) {
	var f=document.getElementById(clFolderPref+n);
	if(f) {
		if(m==0 || (m==2 && f.style.display=='block')) { // close it
			f.style.display='none';
			clTree[l]=false;
		} else { // open it
			f.style.display='block';
			clTree[l]=n;
		}
	}
}

// detect a level by folder code ---
function clWhichLvl(n) {
	var i=0, p=0, l=n.length;
	while(p<l) { if(n.charAt(p)=='_') i++; p++;}
	return i;
}

// close opened levels in subtree ---
function  clCloseTree(l,n) {
	var t=clTree.length;
	while(t>0) {
		t--;
		if(clTree[t]&&t>=l&&clTree[t]!=n) {
			clFoldVision(clTree[t],t,0,1);
		}
	}
}

// open tree - for startup ---
function  clOpenTree(n) { // 0_0_0_1
	if(!n) return;
	var p=0, t='';
	while(1) {
		p=n.indexOf('_',p);
		if(p>0) {
			t=n.substring(n,p);
			clFoldVision(t,clWhichLvl(t),1);
			p++;
		} else break;
	}
	clFoldVision(n,clWhichLvl(n),1);
}

// blur a link onckick ---
function clBl(l) { if(l.blur) l.blur(); }
