// JavaScript Document
var submitCount = 0;

var agt = navigator.userAgent.toLowerCase();

var isIE = (agt.indexOf("msie") != -1);
var isIE50 = (agt.indexOf("msie 5.0") != -1);
var isIE55 = (agt.indexOf("msie 5.5") != -1);
var isIE60 = (agt.indexOf("msie 6") != -1);
var isIE5Mac = (agt.indexOf("mac") != -1);
var isIE55Plus = (isIE60 || isIE55);
var isGecko = (document.getElementById && !document.all);
var isNS6 = (isGecko && agt.indexOf("netscape") != -1);

var gMenuOpenStack = new Object;
gMenuOpenStack.items = new Array();

var gActiveMenuBarItem = null;
var gActive = "";
var gShowMenuTimer = null;

var gMenuOffsets = new Object;
var menuBarItemList;

if (isIE)
{	
	gMenuOffsets.subMenuX = -5;
	gMenuOffsets.subMenuY = 0;
	gMenuOffsets.menuBarX = 0;
	gMenuOffsets.menuBarY = 3;
}
else if (isNS6)
{
	gMenuOffsets.subMenuX = -5;
	gMenuOffsets.subMenuY = 0;
	gMenuOffsets.menuBarX = 0;
	gMenuOffsets.menuBarY = 3;
}
else
{
	gMenuOffsets.subMenuX = -5;
	gMenuOffsets.subMenuY = 0;
	gMenuOffsets.menuBarX = 1;
	gMenuOffsets.menuBarY = 3;
}

var gMenuOpenDelay = 100;


//
// stack-handling functions
//

function clearStackItem(ob)
{
	ob.hide();
  
	if (ob.activeItem)
	{
		ob.activeItem.className = "menu_inactiveItem";
		ob.activeItem = null;
	}
}


function emptyMenuStack(check)
{
	if (check && gActive != null && gActiveMenuBarItem != null)
		return;

	if (gActiveMenuBarItem)
	{
		gActiveMenuBarItem.className = "menuBar_inactiveItem";
		var cell = document.getElementById(gActiveMenuBarItem.menuName + "_cell");
		cell.className = "menuBar_inactiveCell";
		gActiveMenuBarItem = null;
	}

	for (i in gMenuOpenStack.items)
		clearStackItem(gMenuOpenStack.items[i]);

	gMenuOpenStack.items.length = 0;
}


function emptyMenuStackFrom(ob)
{
	with (gMenuOpenStack)
	{
		var found = 0, removed = 0;
		
		for (i in items)
		{
			if (items[i] == ob)
				found = 1;
			
			if (found > 0)
			{
				clearStackItem(items[i]);
				removed++;
			}
		}
		
		items.length = items.length - removed;
	}
}


function addToMenuStack(ob)
{
	gMenuOpenStack.items[gMenuOpenStack.items.length] = ob;
}


//
// menu-manipulation functions
//


function show()
{
	this.style.visibility = "visible";
}


function hide()
{
	this.style.visibility = "hidden";
}


function handleMenuLink()
{
	location = this.destination;
}


function setMenuBarItemActive()
{
	if (gActiveMenuBarItem)
	{
		if (gActiveMenuBarItem == this)
			return;

		gActiveMenuBarItem.className = "menuBar_inactiveItem";
		var cell = document.getElementById(gActiveMenuBarItem.menuName +
													  "_cell");
		cell.className = "menuBar_inactiveCell";
	}

	gActive = this;
	gMenuOpenStack.empty(0);
	gActiveMenuBarItem = this;

	if (this.childMenu)
	{
		var cell = document.getElementById(this.menuName + "_cell");
		cell.className = "menuBar_activeCell";
		this.className = "menuBar_activeItem";

		this.showChildMenu();
	}
	else
		this.className = "menuBar_activeLink";
}


function setMenuBarItemInactive()
{
	gActive = null;
}


function setMenuItemActive()
{
	var prevItem = this.parentMenu.activeItem;

	if (prevItem)
	{
		if (prevItem != this)
		{
			prevItem.className = "menu_inactiveItem";

			if (prevItem.childMenu)
				gMenuOpenStack.emptyFrom(prevItem.childMenu);
		}
	}

	if (this.childMenu && this.childMenu.style.visibility != "visible")
	{
		gShowMenuTimer = setTimeout("showChildMenu('" + this.childMenu.menuName
											 + "', 1);", gMenuOpenDelay);
	}

	gActive = this.parentMenu;
	this.parentMenu.activeItem = this;
  
	this.className = "menu_activeItem";
}


function setMenuItemInactive()
{
	gActive = null;
	clearTimeout(gShowMenuTimer);
}


function showChildMenu(name, isSubmenu)
{
	var newLeft, newTop, menu, name;

	if (!name)
	{
		name = this.menuName;
		menu = this.childMenu;
	}
	else
		menu = document.getElementById(name);

	if (menu.style.visibility == "visible")
		return;

	if (!isSubmenu)
	{
		var menuBarCell = document.getElementById(name + "_cell");
		var menuBar = document.getElementById('menuBar_table');

		menu.style.left = menuBar.offsetLeft + menuBarCell.offsetLeft +
		gMenuOffsets.menuBarX + "px";
		menu.style.top =  menuBar.offsetTop + menuBarCell.offsetHeight + 
		gMenuOffsets.menuBarY + "px";
	}

	else
	{
		newLeft = (menu.parentMenu.offsetLeft - 0) + 
		(menu.parentMenu.offsetWidth - 0)  + gMenuOffsets.subMenuX;
		newTop = menu.parentMenu.offsetTop +
		menu.parentMenu.activeItem.offsetTop; 

		if (isGecko)
			docWidth = document.body.scrollWidth;
		else
			docWidth = document.body.clientWidth;

		if (newLeft + menu.offsetWidth >= docWidth)
			newLeft = menu.parentMenu.style.posLeft - menu.offsetWidth;


		menu.style.left = newLeft + "px";
		menu.style.top = newTop + "px";
		menu.style.zIndex = menu.parentMenu.style.zIndex + 1;
	}

	if (isIE55Plus)
		menu.style.filter =
		"progid:DXImageTransform.Microsoft.Fade(duration=0.1)";  
	else if (isIE)
		menu.style.filter = "blendTrans(duration=0.15)";

	if (isIE && (isIE55Plus || menu.filters.blendTrans))
	{
		menu.hide();
		menu.filters[0].Apply();
		menu.show();
		menu.filters[0].Play();
	}
	else
		menu.show();

	gMenuOpenStack.addToMenuStack(menu);
}


//
// menu creation functions
//

function buildMenu(id, items)
{
	var body = document.body;

	var newItem;
	var newMenu = document.createElement('div');

	newMenu.id = id;
	newMenu.menuName = id;
	newMenu.className = "menu";
	newMenu.show = show;
	newMenu.hide = hide;

	for (var i = 0; i < items.length; i+= 2)
	{
		newItem = document.createElement('div');
		newItem.id = id + "_i" + i;
		newItem.innerHTML = items[i];

		if (items[i+1] == 0) // an unusable item
		{
			if (typeof items[i] == "string") // a divider
			{
				newItem.className = "menu_dividerItem";        
   
				if (isIE50 || isGecko)
					newItem.innerHTML = 
					'<img src="/images/clrspacer.gif" height=1 border=0>';
				else
					newItem.innerHTML = "";
			}
		}
		else if (items[i+1] == "disabled")
		{
			newItem.className = "menu_unusableItem";
		}
		else	
		{
			newItem.className = "menu_inactiveItem";

			newItem.onmouseover = setMenuItemActive;
			newItem.onmouseout = setMenuItemInactive;

			if (typeof items[i+1] == "string")
			{
				newItem.onclick = handleMenuLink;
				newItem.destination = items[i+1];
			}

			else if (items[i+1].isLink)
			{
				with (items[i+1])
				{
					if (url)
						newItem.destination = url;
	  
					if (target)
						newItem.target = target;

					if (action)
						newItem.onclick = new Function(action);
				}
			}

			else     	 
			{
				newItem.childMenu = buildMenu(newItem.id, items[i+1]);
				newItem.menuName = newItem.id;
				newItem.childMenu.parentMenu = newMenu;
				body.appendChild(newItem.childMenu);
			}
		}

		newItem.parentMenu = newMenu;
		newMenu.appendChild(newItem);
            
		if (newItem.childMenu)
		{
			newItem.innerHTML = items[i] + "<b>...</b>";
			newMenuItems = newItem.childMenu.getElementsByTagName("div");

			for (j in newMenuItems)
				if (typeof newMenuItems[j] == "object")
               if(isGecko)
					   newMenuItems[j].style.width = newItem.childMenu.innerWidth;
               else
					   newMenuItems[j].style.width = newItem.childMenu.clientWidth;
		}
    
	}

	return newMenu;
}


function menuLink(url, target, action)
{
	l = new Object;
	l.url = url;
	l.target = target;
	l.action = action;
	l.isLink = true;

	return l;
}


function bodyClick()
{
	gMenuOpenStack.empty(); 
}


function setup()
{
	var body = document.body;

	var newMenu;
	var name;
	var menu;
	var newMenuBarItem;

	if (menuBarItemList == null)
		return;

	document.body.onclick = bodyClick;

	var newMenuBarCell = document.getElementById("menuBarItemsCell");
	var menuBarRow = document.getElementById('menuBar_row');
	var finalCell = document.getElementById("menuBar_finalCell");

	gMenuOpenStack.empty = emptyMenuStack;
	gMenuOpenStack.emptyFrom = emptyMenuStackFrom;
	gMenuOpenStack.addToMenuStack = addToMenuStack;

	for (l in menuBarItemList)
	{
		name = menuBarItemList[l];
		menu = menuBarItemMenu[name];

		newMenuBarItem = document.createElement('span');
		newMenuBarItem.id = "menuBar_" + name;
		newMenuBarItem.className = "menuBar_inactiveItem";
		newMenuBarItem.parentMenu = null;
		newMenuBarItem.menuName = name + "_menu";

		newMenuBarItem.onmouseover = setMenuBarItemActive;
		newMenuBarItem.onmouseout = setMenuBarItemInactive;
    
		newMenuBarItem.innerHTML = menuBarItemNameList[l];

		if (typeof menu == "string") // menu bar item is a link
		{
			newMenuBarItem.destination = menu;
			newMenuBarItem.onclick = handleMenuLink;
		}
  
		else
		{
			newMenu = buildMenu(name + "_menu", menuBarItemMenu[name]);
			body.appendChild(newMenu);

			newMenuBarItem.onclick = setMenuBarItemActive;
			newMenuBarItem.showChildMenu = showChildMenu;
			newMenuBarItem.childMenu = newMenu;
			newMenuBarItem.hide = hide;
			newMenuBarItem.innerHTML = menuBarItemNameList[l];

			newMenu.parentMenu = newMenu;
		}

		newMenuBarCell = document.createElement('td');
		newMenuBarCell.id = newMenuBarItem.menuName + "_cell";
		newMenuBarCell.className = "menuBar_inactiveCell";
		newMenuBarCell.appendChild(newMenuBarItem);
		menuBarRow.insertBefore(newMenuBarCell, finalCell);
    
		newMenuBarSeparator = document.createElement('td');
		newMenuBarSeparator.className = "menuBar_separator";

		if (l < menuBarItemList.length - 1)
		{
			if (isIE5Mac)
				newMenuBarSeparator.innerHTML = "|&nbsp;";
			else
				newMenuBarSeparator.innerHTML = "| ";
		}

		menuBarRow.insertBefore(newMenuBarSeparator, finalCell);

		if (newMenu)
		{
			items = newMenu.getElementsByTagName("div");

			for (i in items)
				if (typeof items[i] == "object")
               if(isGecko)
					   items[i].style.width = newMenu.innerWidth;
               else
					   items[i].style.width = newMenu.clientWidth;
		}
	}
}

function startSiteBuilder(url)
{ 
	window.open(url, "templates", 
					"toolbar,scrollbars,resizable,width=640,height=480");
}


function startMiva(url)
{ 
	window.open(url, "miva", 
					"toolbar,scrollbars,status,resizable,width=750,height=550");
}


function jumpTo(dest)
{
	var x;
	x = dest.options[dest.selectedIndex].value
	location.href=x;
}


function submitOnce()
{
	if (submitCount == 0)
	{
		submitCount++;
		return true;
	}
	else
	{
		return false;
	}
}
