/*********************************************************************

prototype based CollapseMenu class
requires dom compatible browser (IE5+, NS6.1+, Mozilla, Firebird etc)

*********************************************************************/

/**********	Begin menu ***************/

document.attachEvent("onload", "window.oMenu = new CollapseMenu('oCollapse', 'collapseMenu');");

document.write("<style>\n");
document.write("	ul#collapseMenu ul {\n");
document.write("		display:none;\n");
document.write("	}\n");
document.write("</style>\n");

function CollapseMenu(oID, sID)
{
	this.sID = sID;
	this.oID = oID;
	this.aA = document.getElementById(this.sID).getElementsByTagName("A");
	var obj = this;
	for(var i=0; i<this.aA.length; i++)
	{
		if(this.aA[i].parentNode.getElementsByTagName("ul").length > 0)
		{
			this.aA[i].className += "child";
			for(var j=0; j<this.aA[i].parentNode.getElementsByTagName("ul").length; j++)
			{
				this.aA[i].parentNode.getElementsByTagName("ul")[j].style.display = "none";
				this.aA[i].onclick = function()
				{
					obj.collapseAll();
					for(var j=0; j<this.parentNode.getElementsByTagName("ul").length; j++)
					{
						if(this.parentNode.getElementsByTagName("ul")[j].parentNode.parentNode == this.parentNode.parentNode)
						{
							this.parentNode.getElementsByTagName("ul")[j].style.display = "block";
							var oNode = this;
							while(oNode.parentNode.id != this.sID)
							{
								if(oNode.parentNode.tagName == "li")
									oNode.parentNode.getElementsByTagName("A")[0].className += " active";
								if(oNode.parentNode.tagName == "ul")
									oNode.parentNode.style.display = "block";
								oNode = oNode.parentNode;
							};							
						};
					};
				};
			};
		};
	};
	
	if(typeof(menuID) != 'undefined' && menuID != 'none')
  {	
	  if(typeof(document.getElementById(menuID)) != 'undefined')
	    document.getElementById(menuID).className += " active";
  }
  
  if(typeof(submenuID) != 'undefined' && submenuID != 'none')
  {
	  if(typeof(document.getElementById(submenuID)) != 'undefined')
	  {
	    document.getElementById(submenuID).className += " active";
    	if(typeof(subsubmenuID) != 'undefined' && subsubmenuID == 'none')
	      document.getElementById(submenuID).href = "#";
	  }
	}  
	  
	if(typeof(subsubmenuID) != 'undefined' && subsubmenuID != 'none')
	{
	  if(typeof(document.getElementById(subsubmenuID)) != 'undefined')
    {
      document.getElementById(subsubmenuID).className += " active";
      document.getElementById(subsubmenuID).href = "#";
    }  
	}
	
	this.openToActive();
};
CollapseMenu.prototype.openToActive = function(){
	for(var i=0; i<this.aA.length; i++){
		if(this.aA[i].className.indexOf("active") != -1){
			var oNode = this.aA[i];
			while(oNode.parentNode.id != this.sID){
				if(oNode.parentNode.tagName == "li")
					oNode.parentNode.getElementsByTagName("A")[0].className += " active";
				if(oNode.parentNode.tagName == "ul"){
					oNode.parentNode.style.display = "block";
				};
				oNode = oNode.parentNode;
			};
			for(var j=0; j<this.aA[i].parentNode.getElementsByTagName("ul").length; j++){
				if(this.aA[i].parentNode.getElementsByTagName("ul")[j].parentNode.parentNode == this.aA[i].parentNode.parentNode)
					this.aA[i].parentNode.getElementsByTagName("ul")[j].style.display = "block";
			};
		};
	};
};
CollapseMenu.prototype.collapseAll = function(){
	for(var i=0; i<this.aA.length; i++){
		this.aA[i].className = this.aA[i].className.replace("active", "");
		if(this.aA[i].parentNode.getElementsByTagName("ul").length > 0){
			for(var j=0; j<this.aA[i].parentNode.getElementsByTagName("ul").length; j++){
				this.aA[i].parentNode.getElementsByTagName("ul")[j].style.display = "none";
			};
		};
	};
};

