/*************************************************************
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 clImgClosed=new Image(); clImgClosed.src="img/arrow_closed.gif";
	var clImgClosing=new Image(); clImgClosing.src="img/arrow_closing.gif";
	var clImgOpened=new Image(); clImgOpened.src="img/arrow_opened.gif";

	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);
		var i=document.getElementById(clImgPref+n);
		rImage=i;
		if(f) {
			if(m==0 || (m==2 && f.style.display=='block')) { // close it
				f.style.display='none';
				if(forced) {
					i.src=clImgClosed.src;
				} else {
					i.src=clImgClosing.src;
					setTimeout("rImage.src=clImgClosed.src",400);
				}
				clTree[l]=false;
			} else { // open it
				f.style.display='block';
				i.src=clImgOpened.src;
				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(); }
