var banners = new Array;
var contentMenuItems = new Array;
var nextBanner = 0;
var bannerSwitchTime;
var lastCategoryDiv;

function timedBannerSwitch()
{
	bannerSwitch(document.getElementById("menu_"+nextBanner));
	nextBanner++;
	if(nextBanner >= contentMenuItems.length)
	{
		nextBanner=0;
	}
}

function activateMenu(menuName, menuType)
{
	var menuDiv = document.getElementById(menuName);
	for(i=0;i<menuDiv.childNodes.length;i++)
	{
		if(menuDiv.childNodes[i].nodeName == "UL")
		{
			var menuUL = menuDiv.childNodes[i];
			for(j=0;j<menuUL.childNodes.length;j++)
			{
				if(menuUL.childNodes[j].nodeName =="LI")
				{
					var menuLI = menuUL.childNodes[j];
					if(menuType == "side")
					{
						menuLI.onmouseover = function() {
							displayArea(this, true);
							//this.className += " over";
						}
						menuLI.onmouseout = function() {
						}
					}
					if(menuType == "main")
					{
						menuLI.onmouseover = function() {
							this.className += " over";
						}
						menuLI.onmouseout = function() {
							this.className = this.className.replace("over", "");
						}
					}
					for(k=0;k<menuLI.childNodes.length;k++)
					{
						if(menuLI.childNodes[k].nodeName == "UL")
						{
							var ul2 = menuLI.childNodes[k];
							for(l=0;l<ul2.childNodes.length;l++)
							{
								if(ul2.childNodes[l].nodeName == "LI")
								{
									var li2 = ul2.childNodes[l];
									li2.onmouseover = function() {
										this.className += " over";
									}
									li2.onmouseout = function() {
										this.className = this.className.replace("over", "");
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

function showHideCategory(divId, displayStyle)
{
    if (document.getElementById(divId))
    {
        var CategoryDiv = document.getElementById(divId);
        CategoryDiv.style.display = displayStyle;
        if ( lastCategoryDiv != null )
        {
            CategoryDiv = document.getElementById(lastCategoryDiv);
            CategoryDiv.style.display = 'none';
        }
        lastCategoryDiv = divId;
    }
}

function activateBanners()
{
	if(document.getElementById('banners') && document.getElementById('content_menu'))
	{
		var bannersDiv = document.getElementById('banners');
		for(i=0;i<bannersDiv.childNodes.length;i++)
		{
			if(bannersDiv.childNodes[i].nodeName == "DIV")
			{
				banners.push(bannersDiv.childNodes[i]);
			}
		}
		var contentItems = document.getElementById('content_menu');
		for(i=0;i<contentItems.childNodes.length;i++)
		{
			if(contentItems.childNodes[i].nodeName == "LI")
			{
				contentMenuItems.push(contentItems.childNodes[i]);
				var currentItem = contentItems.childNodes[i];
				currentItem.id = "menu_"+(contentMenuItems.length-1);
				currentItem.onmouseover = function() {
					clearInterval(bannerSwitchTime);
					bannerSwitch(this);
				}
			}
		}
	}
	bannerSwitchTime = setInterval(timedBannerSwitch,5000);
}

function bannerSwitch(activeDiv)
{
	var idString = activeDiv.id;
	idString = idString.substring(5,idString.length);
	for(i=0;i<contentMenuItems.length;i++)
	{
		contentMenuItems[i].className = "";
	}
	activeDiv.className = "active";
	for(i=0;i<banners.length;i++)
	{
		banners[i].style.display = "none";
	}
	banners[parseInt(idString)].style.display = "block";
}

function resolvePath(relativePath){
    return rootWebPath + relativePath;
}

var activeDiv;
var hidingDiv;
var hiding = false;
var revealing = false;

function displayArea(menuItem, hide) {
	var clickedLI = menuItem;
	if(clickedLI.className != "over" && !hiding && !revealing)
	{
		var nextClass = "over";
		//if(clickedLI.className == "over") { nextClass="down"; }
		var parentUL = menuItem.parentNode;
		if(hide)
		{
			for(i=0;i<parentUL.childNodes.length;i++)
			{
				if(parentUL.childNodes[i].nodeName == "LI")
				{
					parentUL.childNodes[i].className = "down";
					for(j=0;j<parentUL.childNodes[i].childNodes.length;j++)
					{
						if(parentUL.childNodes[i].childNodes[j].nodeName == "UL" && parentUL.childNodes[i].childNodes[j].style.display != "none")
						{
							hiding = true;
							hidingDiv = parentUL.childNodes[i].childNodes[j];
							targetHeight = hidingDiv.offsetHeight;
							parentUL.childNodes[i].childNodes[j].style.height = targetHeight + "px";
							parentUL.childNodes[i].childNodes[j].style.overflow = "hidden";
							hideDiv(hidingDiv, targetHeight, 5);
						}
					}
				}
			}
		}
		clickedLI.className = nextClass;
		if(nextClass == "over")
		{
			for(i=0;i<clickedLI.childNodes.length;i++)
			{
				if(clickedLI.childNodes[i].nodeName == "UL")
				{
					revealing = true;
					activeDiv = clickedLI.childNodes[i];
					clickedLI.childNodes[i].style.display = "block";
					targetHeight = clickedLI.childNodes[i].offsetHeight - 14;
					clickedLI.childNodes[i].style.overflow = "hidden";
					clickedLI.childNodes[i].style.height = "0px";
					revealDiv(activeDiv, targetHeight, 5);
				}
			}
		}
		else
		{
			for(i=0;i<clickedLI.childNodes.length;i++)
			{
				if(clickedLI.childNodes[i].nodeName == "UL")
				{
					hiding = true;
					hidingDiv = clickedLI.childNodes[i];
					targetHeight = hidingDiv.offsetHeight;
					clickedLI.childNodes[i].style.height = targetHeight + "px"
					clickedLI.childNodes[i].style.overflow = "hidden";
					hideDiv(hidingDiv, targetHeight, 5);
				}
			}
		}
	}
}

function revealDiv(myDiv, myHeight, timer)
{
	if(!hiding)
	{
		myDiv.style.display = "block";
		if(myDiv.offsetHeight < myHeight)
		{
			var currentHeight = myDiv.style.height;
			currentHeight = currentHeight.substring(currentHeight, (currentHeight.length-2));
			nextHeight = parseInt(currentHeight) + (myHeight / 8);
			if(nextHeight > myHeight)
			{
				myDiv.style.height = "100%";
				myDiv.style.overflow = "visible";
				revealing = false;
			}
			else
			{
				myDiv.style.height = nextHeight + "px";
				setTimeout("revealDiv(activeDiv, "+myHeight+", "+timer+")", timer);
			}
		}
		else
		{
			myDiv.style.height = "100%";
			myDiv.style.overflow = "visible";
			revealing = false;
		}
	}
	else
	{
		myDiv.style.display = "none";
		setTimeout("revealDiv(activeDiv, "+myHeight+", "+timer+")", timer);
	}
}

function hideDiv(myDiv, hideHeight, timer)
{
	if(myDiv.offsetHeight > 0)
	{
		var currentHeight = myDiv.style.height;
		currentHeight = currentHeight.substring(currentHeight, (currentHeight.length-2));
		nextHeight = parseInt(currentHeight) - (parseInt(hideHeight) / 8);
		if(nextHeight < 0)
		{
			myDiv.style.display = "none";
			myDiv.style.height = "auto";
			hiding = false;
		}
		else
		{
			myDiv.style.height = nextHeight + "px";
			setTimeout("hideDiv(hidingDiv, "+hideHeight+", "+timer+")", timer);
		}
	}
	else
	{
		myDiv.style.display = "none";
		myDiv.style.height = "auto";
		hiding = false;
	}
}