if (typeof currId=='undefined')
	currId='';

// repair ns4 resize bug
if (l){
	init_innerWidth=window.innerWidth;
	init_innerHeight=window.innerHeight;
	window.onresize=ns4_resize;
}

function ns4_resize(){
	if (init_innerWidth!=window.innerWidth || init_innerHeight!=window.innerHeight)
		d.location=d.location;
}

// open node of tree
function openMenu(id){
	if (!l){
		var state=getElement(id).style.display;
		if (state=="none" || state==""){
			getElement(id).style.display="block";
			getElement(id.replace(/S/,"M")).innerHTML = getElement(id.replace(/S/,"M")).innerHTML.replace(/folder_closed/,"folder_open");
		} else if (state=="block"){
			getElement(id).style.display="none";
			getElement(id.replace(/S/,"M")).innerHTML = getElement(id.replace(/S/,"M")).innerHTML.replace(/folder_open/,"folder_closed");
		}
	} else {
		if (subLayers[id]){
			subLayers[id]=0;
			handleChildren(id,-1);
		} else {
			subLayers[id]=1;
			handleChildren(id,1);
		}
		plotTree_ns4();
	}
}

// open node of current page
function initTree(){
	if (currId!=''){
	var idToOpen="S";
	for (var i=1;i<currId.split("i").length-1;i++){
		idToOpen += "i" + currId.split("i")[i];
		l ? subLayers[idToOpen]=1 : openMenu(idToOpen);
	}
	if (!l){
		getElement(currId).className="activeitem";
	} else {
		base[0]=d.menu;
		base[0].clip.width=159;
		plotTree_ns4();
		getElement(currId).document.images[0].src=currLayer.document.images[0].src.replace(/space/,"menu/activepage");
	}}
}

var posY=new Array(0,0,0);
var counter=new Array(0,0,0);
var base=new Array();
var level=0;
var currLayer;
var menuReady;
var subLayers=new Array();

// plot tree for ns4
function plotTree_ns4(){
	if (counter[level] < base[level].document.layers.length){
		currLayer=base[level].document.layers[counter[level]];
		currLayer.top=posY[level];
		counter[level]++;
		if (currLayer.id.charAt(0)=="S") {// folder
			level++;
			counter[level]=0;
			posY[level]=0;
			base[level]=currLayer;
			if (!menuReady) subLayers[subLayers.length]=currLayer.id;
		} else {// menu item or space
			if (level>0 && (!subLayers[base[level].id] || subLayers[base[level].id]<=0)){
				currLayer.visibility = "hide";
			} else {
				currLayer.visibility = "show";
				posY[level] +=  currLayer.clip.height;
			}
			if (!menuReady) for (var i=0;i<=level;i++){base[i].clip.height += currLayer.clip.height;}
		}
	} else if (level>0) {
		var currBullet=base[level-1].document.layers[base[level].id.replace(/S/,"M")].document.images[0];
		if (subLayers[base[level].id] && subLayers[base[level].id]>0){
			base[level].visibility="show";
			currBullet.src=currBullet.src.replace(/closed/,"open");
			posY[level-1] +=  posY[level];
		} else {
			base[level].visibility="hide";
			currBullet.src=currBullet.src.replace(/open/,"closed");
		}
		level--;
	} else {
		counter[level]=0;
		posY[level]=0;
		menuReady=1;
		return false;
	}
	plotTree_ns4();
}

function handleChildren(id,state){
	for (var i=0;i<subLayers.length;i++){
		if (subLayers[i].indexOf(id)!=-1 && subLayers[subLayers[i]]==-1*state){
			subLayers[subLayers[i]]=state;
		}
	}
}

// get object reference of layer
function getElement(e,f){if(l){f=(f)?f:self;var V=f.document.layers;if(V[e])return V[e];for(var W=0;W<V.length;)t=getElement(e,V[W++]);return t;}if(d.all)return d.all[e];return d.getElementById(e);}

if (currId != "")
{
	initTree()
}