/* 

	List Expander
		
*/

this.listexpander = function(mnemonic){

	var expandTo = 1;		
	var listClass = "listexpanderP" 
	
	this.start = function(){
		var ul = document.getElementsByTagName("ul");
		for (var i=0;i<ul.length;i++){
			if(ul[i].className == listClass){
				create(ul[i]);
				//buttons(ul[i])
			};
		};
	};

	this.create = function(list) {	
		var items = list.getElementsByTagName("li");
		for(var i=0;i<items.length;i++){
			listItem(items[i]);
		};
	};	

	this.listItem = function(li){
		if(li.getElementsByTagName("ul").length > 0){
			var ul = li.getElementsByTagName("ul")[0];
			ul.style.display = (depth(ul) <= expandTo) ? "block" : "none";
			li.className = (depth(ul) <= expandTo) ? "expanded" : "collapsed";
			li.over = true;	
			ul.onmouseover = function(){li.over = false;} 
			ul.onmouseout = function(){li.over = true;} 
			li.onclick = function(){
			
			/*start
			if(document.getElementById(mnemonic)!=null){

				
				var selectedNode = document.getElementById(mnemonic);
				var count = depth(selectedNode);
				var temp = new Array();
				
				var t = "selectedNode";
				for(var i=0;i<=count+1;i++){
					t = t + ".parentNode";
					temp[i]=t;
				}
	
				for(var j=temp.length-1; j>=0; j--){
					var myNode = eval(temp[j]);
					if(j!=temp.length-1)
					{
					myNode.style.display="none";
					}
					if(myNode.nodeName == "LI"){
						myNode.className = "collapsed";
					}
				}

				selectedNode.className = "collapsed";
				if (selectedNode.childNodes[3]!=null)
				{
					selectedNode.childNodes[3].style.display="none";
				}
			}
			end*/

				if(this.over){
					ul.style.display = (ul.style.display == "none") ? "block" : "none";
					this.className = (ul.style.display == "none") ? "collapsed" : "expanded";				
				};
			};
		};		
	};	
	
	this.buttons = function(list){
		var parent = list.parentNode;
		var p = document.createElement("p");
		p.className = listClass;
		var a = document.createElement("a");
		a.innerHTML = expandText;
		a.onclick = function(){expand(list)};
		p.appendChild(a);
		var a = document.createElement("a");
		a.innerHTML = collapseText;
		a.onclick = function(){collapse(list)};
		p.appendChild(a);
		parent.insertBefore(p,list);
	};
	
	this.expand = function(list){
		li = list.getElementsByTagName("li");
		for(var i=0;i<li.length;i++){
			if(li[i].getElementsByTagName("ul").length > 0){
				var ul = li[i].getElementsByTagName("ul")[0];
				ul.style.display = "block";
				li[i].className = "expanded";
			};
		};
	};
	
	this.collapse = function(list){
		li = list.getElementsByTagName("li");
		for(var i=0;i<li.length;i++){
			if(li[i].getElementsByTagName("ul").length > 0){
				var ul = li[i].getElementsByTagName("ul")[0];
				ul.style.display = "none";
				li[i].className = "collapsed";
			};
		};
	};
	
	this.depth = function(obj){
		var level = 1;
		while(obj.parentNode.className != listClass){
			if (obj.tagName == "UL") level++;
			obj = obj.parentNode;
		};
		return level;
	};	
	
	start();
	
	if(document.getElementById(mnemonic)!=null){

		var selectedNode = document.getElementById(mnemonic);
		var count = depth(selectedNode);
       // alert("depth:::"+ count);
		var temp = new Array();
	
		var t = "selectedNode";
		for(var i=0;i<=count+1;i++){
			t = t + ".parentNode";
			temp[i]=t;
		}
	
		for(var j=temp.length-1; j>=0; j--){
			var myNode = eval(temp[j]);
			myNode.style.display="block";
			if(myNode.nodeName == "LI"){
				myNode.className = "expanded";
			}
		}
		
				selectedNode.className = "expanded";		
		//alert("selectednode::::"+selectedNode.nodeName);
//alert("selectednode::::"+selectedNode.childNodes.length);
//alert("selectednode11111111::::"+selectedNode.childNodes[0].childNodes[0].nodeName);
		if(navigator.appName=="Microsoft Internet Explorer")
		{
			//alert("navigator.appName:::"+navigator.appName);
			if (selectedNode.childNodes[1]!=null){
				//alert("Value:: " + selectedNode.childNodes[1].nodeName);
				selectedNode.childNodes[1].style.display="block";
				//selectedNode.childNodes[1].className="expanded";
			}
			else{
				//alert("childnode[1]::: null");
				selectedNode.style.display="block";
				selectedNode.childNodes[0].childNodes[0].className = "expanded";


			}
		}
		else{
			//alert(": ff:");
			selectedNode.className="expanded";
			if (selectedNode.childNodes[3]!=null){
				//alert("Value:: " + selectedNode.childNodes[3].nodeName);
				selectedNode.childNodes[3].style.display="block";
			}
			else
			{
				//alert("ff::;else");
				//alert("childnode[0]:ff::: "+selectedNode.childNodes[3].nodeName);
				//alert("childnode[1]:ff::: "+selectedNode.childNodes[3].nodeName);
				//alert("childnode[2]:ff::: "+selectedNode.childNodes[3].nodeName);
				//alert("childnode[3]:ff::: "+selectedNode.childNodes[3].nodeName);
				//alert("childnode[4]:ff::: "+selectedNode.childNodes[4].nodeName);
				selectedNode.style.display="block";
				//selectedNode.childNodes[0].childNodes[0].className = "expanded";
			}
		}
		
		
	
	}
		/*for(var i=0;i<li.length;i++){			
		
			if(li[i].getElementsByTagName("ul").length > 0){
				var ul = li[i].getElementsByTagName("ul")[0];
				li[i].style.display = "block";
				li[i].className = "expanded";
				this.className =  "expanded";
			};
		};*/

};




