


var VerticalMenu = {
    'enable' : function(element){
        var element = $(element);
        var topMenuElements = element.childNodes;
        if(topMenuElements != undefined) {
            this.init(topMenuElements);
            this.openCurrent(element);
        }
    },
    'init' : function(menuNodes){
        var ul = Array();
        var lis = Array();
        var count = 0;
        for(var i = 0;i < menuNodes.length;i++) {
            if(menuNodes[i] != 'undefined' && menuNodes[i].tagName == 'LI') {
                if(menuNodes[i].childNodes[2] != undefined && menuNodes[i].childNodes[2].tagName == 'UL') {
                    ul[count] = menuNodes[i].childNodes[0];
                    lis[count] = menuNodes[i].childNodes[2];
                    count ++;
                    if(menuNodes[i].childNodes[2].childNodes != undefined) {
                        this.init(menuNodes[i].childNodes[2].childNodes);
                    }
                }
            }
        }


        //setup the accordion elements by clearing display styles
        lis.each(function(el){
            el.style.display = '';
        });
    

        var menuElement = new Fx.Accordion(ul,lis, 
        {
            onActive: function(li){
                //li.setStyle('color', '#ACDA4E');
                //li.setStyle('background-color', '#1d1d1d');
                //li.setStyle('cursor', 'hand');
                //alert(li.className);
                li.parentNode.className = 'open';
                li.parentNode.parentNode.style.height='';
                var parent = li.parentNode.parentNode.parentNode.parentNode;
                while(parent != undefined && parent.tagName == 'UL') {
                  if(parent.tagName == 'UL') {
                      parent.style.height='';
                  }
                  parent = parent.parentNode.parentNode;
                }
            },
            onBackground: function(li){
                //li.setStyle('color', '#FFF');
                //li.setStyle('background-color', '#2d2d2d');
                //li.setStyle('cursor', 'hand');
                li.parentNode.className = '';
                li.parentNode.parentNode.style.height='';
                var parent = li.parentNode.parentNode.parentNode.parentNode;
                while(parent != undefined && parent.tagName == 'UL') {
                  if(parent.tagName == 'UL') {
                      parent.style.height='';
                  }
                  parent = parent.parentNode.parentNode;
                }
            },
            alwaysHide: true,
            start : 'all-closed',
            height: true,
            opacity : true          
        });
    },
    'openCurrent' : function(element){
        //var current = getElementsByClassName(element, 'a', 'current');
        var searchString = '#' + element.id +' a.current';
        var current = $$(searchString);
        if(current.length > 0) {
            ul = current[0];
            var parent = ul.parentNode.parentNode;
            
            if(ul.parentNode.childNodes[2] != undefined && ul.parentNode.childNodes[2].tagName == 'UL') {
                ul.parentNode.childNodes[2].style.display = 'block';
                ul.parentNode.childNodes[2].style.visibility = 'visible';
                ul.parentNode.childNodes[2].style.height = '';
                ul.parentNode.childNodes[2].style.opacity = 1;
                ul.parentNode.childNodes[2].style.filter = "alpha(opacity=100)";
                //ul.parentNode.childNodes[2].style.filters.alpha.opacity=1;
                ul.parentNode.className = 'opened';
            }
            while(parent != undefined && parent.tagName == 'UL') {
            	//alert(parent.tagName);
                if(parent.tagName == 'UL') {
                    parent.style.display = 'block';
                    parent.style.visibility = 'visible';
                    parent.style.opacity= 1;
                    parent.style.filter = "alpha(opacity=100)";
                    parent.style.height = '';
                    parent.className = 'opened';
                }
                parent = parent.parentNode.parentNode;
            }

            parent = ul.parentNode;
            while(parent != undefined && parent.tagName == 'LI') {
            	parent.className = 'opened';
            	parent.style.visibility = 'visible';
            	parent.style.opacity = 1;
            	parent.style.filter = "alpha(opacity=100)";
            	parent.style.display = 'block';
            	parent = parent.parentNode.parentNode;
            }
            
        }
    }
}


/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}