var cMenu = null; //Current Menu
var visibleMenus = [];
var topLevelClassName = "tni";
var topActiveClassName = "topNavActive";
var topCurrentClassName = "topNavCurrent";
var activeClassName = "activeItem";
var activeClassNameList = [];
var inactiveClassName = "nonActiveItem";
var TopLevelMenuTimeoutDelay = 500;
var SubMenuTimeoutDelay = 500;
var menuFadeDuration = 0; 
var menuFadeOnDelay = 80;
	
function sM(pMenu, id, anch, dir, level) //Show Menu
{
	
	var navTierLevel = parseInt(level);
	if (typeof pMenu == "object") {
        var base = pMenu;
    } else {
        var base = document.getElementById(pMenu);
    }

    if (base.currentLink) {
        deactivateNavItem(base.currentLink);
    }
    base.currentLink = anch;
  	
	//Add to Active Link List Except TopLevel 
	if (navTierLevel > 1) {
		activeClassNameList.push(base.currentLink);	
	}
	
	activateNavItem(base.currentLink);
    visibleMenus[visibleMenus.length] = base;
	
    base.onmouseout = function () {
		cMenu = null;
       	setTimeout("hideMenus()", TopLevelMenuTimeoutDelay);
    };

    if (id == null && dir == null) // && offset == null
    {
        cM(pMenu);
        return;
    }

    var menu = document.getElementById(id);
	
	//Reset Active Links
	clrActiveClassNames();

    //if the nav hasn't loaded get out
    if (typeof menu == "undefined" || menu == null) {
        return;
    }
	
    var top = getOffsetProperty(anch, "Top", "topnav");
    var left = getOffsetProperty(anch, "Left", "topnav");
    var width = anch.offsetWidth;
    var height = anch.offsetHeight;
    if (top == "NaN" || left == "NaN") {
        return;
    }

    //alert(menu.className);
   if (menu.className.indexOf("nT2") == -1) 
   {
		var offset = 0;
        //var availscreenwidth = document.documentElement.clientWidth;
	    var menuoffset = (left+width+410);
		
		//var menuoffset = base.offsetWidth + getOffsetProperty(anch, "Left", base);
		//alert(base.offsetWidth + " "+availscreenwidth+ " "+document.getElementById('holder').offsetWidth)
		//alert(menuoffset);
		
		if (menuoffset > document.getElementById('holder').offsetWidth && dir != "b") {
            dir = "l";
        }

        switch (dir) {
	        case "b":
	            offset = -25;
	            menu.style.top = (top + height + offset) + "px";
	            menu.style.left = (left) + "px";
	        break;
	        case "r":
	        	menu.style.top = (top - offset) + "px";
	            menu.style.left = ((left + width) - 410) + "px";
	            menu.style.left = (left + width) + "px";
			break;
        	case "l":
				var ntTopLt = document.getElementById(id+"Top");
				ntTopLt.firstChild.src = "/vimages/menu_subtop_lt.png";
				ntTopLt.style.marginLeft = "14px";
				offset = 14;
                menu.style.top = (top) + "px";
                menu.style.left = (left - width - offset) + "px";
            break;
        }
    };
	
	//Insert Image and Text for nt2
	if (id != 'undefined') {
		switch (id) 
		{
	        //About the RDN
			case "M0sN":
	            document.getElementById('M0Img').innerHTML = "<div class=\"mnimg\"><a href=\"cms.asp?wpID=513\"><img src=\"/vimages/banner_home_about.jpg\" width=\"130\" height=\"86\" /></a>About the RDN</div>"; 
				//alert(document.getElementById('M0Img').innerHTML);
			break;
			//Services
			case "M1sN":
				document.getElementById('M1Img').innerHTML = "<div class=\"mnimg\"><a href=\"cms.asp?wpID=2428\"><img src=\"/vimages/banner_home_services.jpg\" width=\"130\" height=\"86\" /></a>Green Buildings and Incentives</div>"; 
	        break;
			//Regional Board
			case "M2sN":
				document.getElementById('M2Img').innerHTML = "<div class=\"mnimg\"><a href=\"cms.asp?wpID=1624\"><img src=\"/vimages/banner_home_whatsnew.jpg\" width=\"130\" height=\"86\" /></a>Solid Waste Newsletters</div>"; 
	        break;
			//Whats New
			case "M3sN":
				document.getElementById('M3Img').innerHTML = "<div class=\"mnimg\"><a href=\"cms.asp?wpID=321\"><img src=\"/vimages/banner_home_board.jpg\" width=\"130\" height=\"86\" /></a>Local Government Elections</div>"; 
	        break;
			default:
		}
	};
	
	if (navTierLevel > 1 || (navTierLevel == 1 && menu.style.visibility == 'visible')) {
		menu.style.visibility = 'visible';
	} else {
		//alert("fade");
		menu.style.opacity = 0;
		menu.style.filter = 'alpha(opacity=0)';
		//alert(menu);
		menu.style.height = "0px";
		menu.style.visibility = 'visible';
		tJS.fx.stop();
		setTimeout(function() {
			tJS.fx.stop();
			new tJS.fx.animate(menu, "height", 900, {start:0, end:220, easing:'easeOutQuart'});//easeOutQuad,easeInOutQuarteaseInOutQuad
			new tJS.fx.animate(menu, "opacity", 475, {start:0, end:100, easing:'easeOutQuart'});
		},  60);
	}
	
	
	
	
	
    //Sub Menus
    if (menu.currentLink) {
		deactivateNavItem(base.currentLink);
        menu.currentLink = null;
    }
    cMenu = base;
    base.childMenu = menu;
    menu.parentMenu = base;
    visibleMenus[visibleMenus.length] = menu;
	
	hideMenus();
	menu.onmouseout = function () {
		cMenu = null;
		clrActiveClassNames();
		setTimeout("hideMenus()", SubMenuTimeoutDelay);
    };
	
};

function clrActiveClassNames() {
	var x = activeClassNameList.length;
	while(x--) {
		deactivateNavItem(activeClassNameList[x]);
		activeClassNameList.shift();
	}
};

//New Close Menu 
function cM(pMenu) {
	if (typeof pMenu == "object") {
        cMenu = pMenu;
    } else {
        cMenu = document.getElementById(pMenu);
    }
	cMenu.childMenu = null;
}

function cS(pMenu) {
	if (typeof pMenu == "object") {
        cMenu = pMenu;
    } else {
        cMenu = document.getElementById(pMenu);
    }
	cMenu.style.visibility = 'hidden';
}

function hideMenus() {
    var mTreeBase = cMenu;
    var resetVisArray = new Array();
    var activeMenuArray = new Array();
    if (mTreeBase != null) {
        do {
            activeMenuArray[activeMenuArray.length] = mTreeBase;
            //activeMenuArray[activeMenuArray.length] = mTreeBase.shadow;
            mTreeBase = mTreeBase.parentMenu;
        }
        while (mTreeBase != null);
        if (cMenu.childMenu != null) {
            activeMenuArray[activeMenuArray.length] = cMenu.childMenu;
           //activeMenuArray[activeMenuArray.length] = cMenu.childMenu.shadow;
        }
    }

    for (i = visibleMenus.length - 1; i >= 0; i--) {
        var m = visibleMenus[i];
        if (m == null) continue;
        var hideIt = true;
        for (j = 0; j < activeMenuArray.length; j++) {
            if (m == activeMenuArray[j]) {
                hideIt = false;
                break;
            }
        }
		
        // Hides the Top level buttons 
        if (hideIt == true) {
            if (m.className.indexOf(topLevelClassName) < 0) {
				m.style.visibility = 'hidden';
            }
            if (m.currentLink) {
                 deactivateNavItem(m.currentLink);
               	 m.currentLink = null;
            }
        } else {
            resetVisArray[resetVisArray.length] = m;
        }
    }
    visibleMenus = resetVisArray;
}

function activateNavItem(item) {
    if (item.className.indexOf(topCurrentClassName) >= 0) {
        return;
    } else {
        item.doNotDeactivate = false;
    }
    if (item.className.indexOf(topLevelClassName) >= 0) {
        item.className = topLevelClassName + " " + topActiveClassName;
    } else {
        if (item.className.indexOf(inactiveClassName) > 0) {
            item.className = item.className.replace(inactiveClassName, activeClassName);
        } else {
            item.className = activeClassName + " " + item.className;
        }
    }
}

function deactivateNavItem(item) {
    if (item.className.indexOf(topCurrentClassName) >= 0) {
        return;
    }
    if (item.className.indexOf(topLevelClassName) >= 0) {
        item.className = topLevelClassName;
    } else {
        if (item.className.indexOf(activeClassName) > 0) {
            item.className = item.className.replace(activeClassName, inactiveClassName);
        } else {
            item.className = inactiveClassName + " " + item.className;
        }
    }
}

function getOffsetProperty(elementID, property, relativeElmID) {
    var offset = 0;
    if (typeof elementID == "object") {
        var element = elementID;
    } else {
        var element = document.getElementById(elementID);
    }
    if (typeof element == "undefined" || element == null) {
        return "NaN";
    }
    var relativeElm = document.getElementById(relativeElmID);
    if (relativeElm == null || typeof relativeElm == "undefined") relativeElm = document.body;
    do {
        offset += eval('element.offset' + property);
        element = element.offsetParent;
        // mac ie5.2 hack //bad form but it works
        var ua = navigator.userAgent.toLowerCase();
        var ieMac = ((ua.indexOf("msie") != -1) && (ua.indexOf("mac") != -1));
        if (ieMac && element == relativeElm) offset -= eval('element.offset' + property)
    } while (element != relativeElm && element != null);
    return parseInt(offset);
}
