
var menuID='navExpMenu';
registerInitFunc(initNavVerticalExp);

function initNavVerticalExp()
{
	var nav=document.getElementById('NavVerticalExp');	// denotes the navigation element
	// if DOM is not available stop right here.
	if(!document.getElementById && !document.createTextNode || !nav){
		return;
	}
	var Indent = parseFloat(nav.getAttribute('Indent')); // Dictates how many pixels to indent the sub items
	var Toggle = nav.getAttribute('Toggle');
	
	// Set the default Indent value
	if(isNaN(Indent)){ Indent = 0;}
	
	// Set the default Toggle value
	if (Toggle == null){
		Toggle = new Boolean(true);
	}else{
		Toggle = new Boolean(Toggle);
	}
	
	if(nav != null)
	{
		// Store all the li's in an array
		var lis = nav.getElementsByTagName('li');
		
		AddIDs();
		AddDefaultClasses();
	}
	
	//---------------------------------------------------------------------
	// Add id's to all li tags
	function AddIDs()
	{
		for(var i=0; i<lis.length; i++){
			if(lis[i].parentNode.id == 'NavVerticalExp'){
				lis[i].id = 'MainItem';
			}else{
				lis[i].id = 'SubItem';
			}
			AddOnClickEvent(lis[i]);
		}
	}
	
	//---------------------------------------------------------------------
	// Add id's to all li tags
	function AddDefaultClasses()
	{
		for(var i=0; i<lis.length; i++){
			lis[i].className = lis[i].className.toLowerCase();
			if(lis[i].className == undefined){
				lis[i].className == '';
			}else if(lis[i].className == 'current'){
				expand(lis[i]);
			}
		}
	}
	
	//---------------------------------------------------------------------
	
	function AddOnClickEvent(li){
		var uls = li.getElementsByTagName('ul');
		var aTag = li.getElementsByTagName('a')[0];
		if(uls.length > 0){
			aTag.onclick = function(){
				expand(li);
			}
			AddIndent(uls[0]);
		}
	}
	
	//---------------------------------------------------------------------
	// Adds padding-left to the parsed tag to create an indent
	function AddIndent(tag)
	{
		var lis = tag.getElementsByTagName('li');
		var newStyle = "padding-left:"+Indent+"px;";
		for(var i=0; i<lis.length; i++){
			var width = lis[i].width;
			lis[i].setAttribute('style',newStyle);
		}
	}
	
	//---------------------------------------------------------------------
	
	function expand(tag){
		if(tag.id == 'SubItem'){
			tag = tag.parentNode.parentNode;
		}
		for(var i=0; i<lis.length; i++){
			if(lis[i] == tag){
				if(Toggle == true){
					toggleCurrent(tag);
				}else{
					lis[i].setAttribute('class','current');
				}
			}else{
				if(lis[i].parentNode == tag.parentNode){
					var uls = lis[i].getElementsByTagName('ul');
					lis[i].setAttribute('class','');
					if(uls.length>0){
						//uls[0].setAttribute('style','display:none!important;');
					}
				}
			}
		}
	}
	
	//---------------------------------------------------------------------
	
	function toggleCurrent(tag){
		if(tag.className == 'current'){
			tag.className = '';
		}else{
			tag.className = 'current';
		}
	}
}
