// JavaScript Document
var isInitedTree;

window.onload = InitTree;

var img_plus = '../img/ico_plus.gif';
var img_minus = '../img/ico_minus.gif';
var img_nochild = '../img/ico_nochild.gif';

// var page_id = 34;

function InitTree()
{
	if(isInitedTree) return;
	
	var tree, childs, child;
	
	tree = document.getElementById('left');
	// alert('Node Name is' + tree.nodeName);
	if(tree.hasChildNodes())
	{	
		childs = tree.childNodes;
		len =  tree.childNodes.length;
		
		for(i = 0; i < len; i++)
		{
			child = childs[i];	
			if(child.nodeName == 'UL')
			{
				RecursiveInitEvents(child);
				break;
			}
		}	
	}
	// Setting Current Element
	if(page_id && page_id > 0)
	{
		setCurrentElement(page_id);	
	}
	
	balancePage();
}


function changeActiveElement(elm)
{
	if(!elm) return;
	
	if(elm.nodeName == 'LI')
	{
		// Setting class sel 
		// var a = getLiA(elm);
		elm.className = 'sel';
		
		recursiveOpen(elm);
	}	
}


function setCurrentElement(pid)
{
	pid = 'page_' + pid;
	var elm = document.getElementById(pid);
	
	changeActiveElement(elm);
}



function getLiImage(li)
{
	if(li.hasChildNodes())
	{
		for(var i = 0; i < li.childNodes.length; i++)
		{
			if(li.childNodes[i].nodeName == 'IMG')
			{
				return li.childNodes[i];
			}
		}
	}
	return null;
}


function getLiA(li)
{
	if(li.hasChildNodes())
	{
		for(var i = 0; i < li.childNodes.length; i++)
		{
			if(li.childNodes[i].nodeName == 'A')
			{
				return li.childNodes[i];
			}
		}
	}
	return null;
}


function recursiveOpen(elm)
{
	var par;
	par = elm.parentNode;
	if(par)
	{
		if(par.nodeName == 'UL')
		{
			par.style.display = 'block';
			recursiveOpen(par);
		}
		else if(par.nodeName == 'LI')
		{
			// Getting IMG
			var img = getLiImage(par);
			img.src = img_minus;
			
			recursiveOpen(par);
		}
		else return;
	}
	
	// opening child UL if exists
	if(elm.hasChildNodes)
	{
		for(var i = 0; i < elm.childNodes.length; i++)
		{
			if(elm.childNodes[i].nodeName == 'UL')
			{
				elm.childNodes[i].style.display = 'block';
				
				var img = getLiImage(elm);
				img.src = img_minus;
			}
		}
	}
	
}


function RecursiveInitEvents(elm)
{
	var childs, len;
	
	if(elm.nodeName == 'IMG')
	{
		elm.onclick = toggleContainer;
		setIcon(elm);
	}
		
		
	if((elm.nodeName == 'LI' || elm.nodeName == 'UL') && elm.hasChildNodes()) // (elm.nodeName == 'LI' || elm.nodeName == 'UL')
	{
		childs = elm.childNodes;
		len =  elm.childNodes.length;
		
		for(var i = 0; i < len; ++i)
		{
			// child = childs[i];
			RecursiveInitEvents(childs[i]);
		}
	}
}


function setIcon(elm)
{
	var par, count;
	count = 0;
	par = elm.parentNode;
	
	if(par.hasChildNodes())
	{
		var len = par.childNodes.length;
		
		for(var i = 0; i < len; ++i)
		{
			if(par.childNodes[i].nodeName == 'UL')
			{
				elm.src = img_plus;
				par.childNodes[i].style.display = 'none';
				return;
			}
		}	
	}
	
	elm.src = img_nochild;
	return;
}





function toggleContainer(evt)
{
	var src, cont;
	src = getEventSrc(evt);
	
	cont = getChildContainer(src);
	
	if(cont)
	{
		// alert(cont.style.display);
		
		if(cont.style.display == 'none')
		{
			cont.style.display = 'block';
			src.src = img_minus;
		}
		else
		{
			cont.style.display = 'none';
			src.src = img_plus;
		}
	}
}


function getChildContainer(src)
{
	var len, childs, par;
	
	par = src.parentNode;
	
	if(par && par.hasChildNodes())	
	{
		childs = par.childNodes;
		len = childs.length;
		for(var i = 0; i < len; i++)
		{
			if(childs[i].nodeName == 'UL')
			{
				return childs[i];
			}
		}
	}
	return null;
}

var isLoadedTreeJS = true;
