/*

	/global/menu.js
	===================================
	Window_load
	Menu_load
	Window_resize
	Button_mouseover
	Menu_position
	Menu_mouseover
	Menu_mouseout
	Menu_on
	Menu_off
	Menu_close
	Menu_open
	GetChildren
	Signup_config
	Field_focus
	Field_blur
	Field_keydown
	TabControl
	Form_position
	Form_submit
	Form_close
	
*/

var m_activeMenu;
var m_activeButton;
var m_hoverButton;
var m_topNav;
var m_firstButton;
var m_blnInMenu;
var m_intMenuOpenId;
var m_intMenuCloseId;
var m_intMenuHeight;
var MENU_TIMEOUT = 500;
var MENU_CLOSE = 5;
var MENU_OPEN = 5;
var MENU_RATE = 12;

//window.onload = Window_load;
window.onresize = Window_resize;
Menu_load();

function Window_load() {
	Menu_load();
}


function Menu_load() {
	m_topNav = document.getElementById("TopNav");

	var i;
	var colButtons = m_topNav.getElementsByTagName("a");  //GetChildren(m_topNav, "a");
	var colMenus = GetChildren(document.getElementById("Menus"), "div");
	m_firstButton = colButtons[0];

	for (i = 0; i < colButtons.length; i++) {
		colButtons[i].setAttribute("menu", colMenus[i].id);
		colButtons[i].onmouseover = Button_mouseover;
	}
	document.getElementById("TopNavLeft").onmouseover = TopNavLeft_mouseover;
	document.getElementById("Layout").onmouseover = TopNavLeft_mouseover;
}


function Window_resize() {
	Menu_close();
}


function Button_mouseover() {
	m_hoverButton = this;
	if (m_activeButton != m_hoverButton) {
		if (m_intMenuCloseId) {
			window.clearTimeout(m_intMenuCloseId);
			m_intMenuCloseId = null;
		}
		if (m_activeMenu) {
			m_activeMenu.style.display = "none";
			m_activeMenu.childNodes[0].style.height = "";
		}
		if (m_activeButton) {
			ResetMenuClass();
		}
		if (m_intMenuOpenId) {
			window.clearTimeout(m_intMenuOpenId);
			m_intMenuOpenId = null;
		}
		m_activeButton = this;
		m_blnInMenu = true;

		m_activeMenu = document.getElementById(m_activeButton.getAttribute("menu"));
		m_activeButton.className += " tmpOn";
		m_activeButton.onmouseout = Button_mouseout;

		m_intMenuOpenId = window.setTimeout("Menu_on()", MENU_TIMEOUT / 2);
	}
}


function Menu_position() {
	// fixes rendering glitch in IE8
	var intLeftMargin = Math.floor((document.getElementById("Layout").offsetWidth - m_topNav.offsetWidth) / 2);

	var intOffsetLeft = intLeftMargin;
	var cells = m_topNav.getElementsByTagName("td");
	for (i = 0; i < cells.length; i++) {
		if (m_activeButton == cells[i].firstChild) {
			break;
		} else {
			intOffsetLeft += cells[i].offsetWidth;
		}
	}
	
	m_activeMenu.style.top = (m_topNav.offsetTop + m_topNav.offsetHeight) + "px";

	if (intOffsetLeft + m_activeMenu.offsetWidth > intLeftMargin + m_topNav.offsetWidth) {
		var intPageRight = intLeftMargin + m_topNav.offsetWidth;
		var intMenuRight = intOffsetLeft + m_activeMenu.offsetWidth;
		m_activeMenu.style.left = (intOffsetLeft - (intMenuRight - intPageRight)) + "px";
	} else {
		m_activeMenu.style.left = intOffsetLeft + "px";
	}
}


function Menu_mouseover() {
	if (m_intMenuOpenId) {
		window.clearTimeout(m_intMenuOpenId);
		m_intMenuOpenId = null;
	}
	if (m_intMenuCloseId) {
		window.clearTimeout(m_intMenuCloseId);
		m_intMenuCloseId = null;
		m_intMenuOpenId = window.setTimeout("Menu_open()", MENU_OPEN);
	}
	m_blnInMenu = true;
}


function Menu_mouseout() {
	if (!m_hoverButton) {
		m_blnInMenu = false;
		if (m_activeMenu.childNodes[0].childNodes.length == 0) {
			m_intMenuCloseId = window.setTimeout("Menu_off()", MENU_TIMEOUT / 2);
		} else {
			m_intMenuCloseId = window.setTimeout("Menu_off()", MENU_TIMEOUT);
		}
	}
}


function Button_mouseout() {
	m_hoverButton = null;
	//window.setTimeout("Menu_mouseout()", 50);
}


function TopNavLeft_mouseover() {
	window.setTimeout("Menu_mouseout()", 50);
}


function Menu_on(strCaller) {
	if (m_activeMenu.childNodes[0].childNodes.length > 0 && m_blnInMenu) {
		// if a section has no children, do not display the menu

		m_activeMenu.childNodes[0].style.height = "";
		m_activeMenu.style.visibility = "hidden";
		m_activeMenu.style.display = "block";
		m_intMenuHeight = m_activeMenu.offsetHeight;  //m_activeMenu.offsetHeight;
		m_activeMenu.childNodes[0].style.height = "1px";
		
		m_activeMenu.onmouseover = Menu_mouseover;
		m_activeMenu.onmouseout = Menu_mouseout;

		Menu_position();
		
		m_activeMenu.style.visibility = "visible";
		
		m_intMenuOpenId = window.setTimeout("Menu_open()", MENU_OPEN);
	}
}


function Menu_off(strCaller) {
	if (!m_blnInMenu) {
		if (m_activeMenu) {
			m_intMenuCloseId = window.setTimeout("Menu_close()", MENU_CLOSE);
		}
	}
}


function Menu_close() {
	if (m_activeButton == m_hoverButton) {
		window.clearTimeout(m_intMenuCloseId);
		m_intMenuCloseId = null;
		Menu_open();
		return false;
	}
	var intCurrentHeight = m_activeMenu.childNodes[0].offsetHeight;
	if (intCurrentHeight < ((MENU_RATE / 2) + 1)) {
		m_activeMenu.style.display = "none";
		m_activeMenu.childNodes[0].style.height = "";
		m_intMenuCloseId = null;
		if (m_activeButton) {
			//m_activeButton.style.backgroundImage = "";
			ResetMenuClass();
			m_activeButton = null;
		}
	} else if (intCurrentHeight < 50) {
		m_activeMenu.childNodes[0].style.height = Math.round(intCurrentHeight - (MENU_RATE / 2)) + "px";
		m_intMenuCloseId = window.setTimeout("Menu_close()", MENU_CLOSE * 3);
	} else {
		m_activeMenu.childNodes[0].style.height = Math.round(intCurrentHeight - MENU_RATE) + "px";
		m_intMenuCloseId = window.setTimeout("Menu_close()", MENU_CLOSE);
	}
}


function Menu_open() {
	if (m_activeMenu.childNodes[0].offsetHeight >= (m_intMenuHeight - (MENU_RATE * 3))) {
		m_activeMenu.childNodes[0].style.height = "";
		m_intMenuOpenId = null;
	} else if (m_activeMenu.childNodes[0].offsetHeight < (MENU_RATE * 8)) {
		m_activeMenu.childNodes[0].style.height = Math.round(m_activeMenu.childNodes[0].offsetHeight + (MENU_RATE)) + "px";
		m_intMenuOpenId = window.setTimeout("Menu_open()", MENU_CLOSE);
	} else if (m_activeMenu.childNodes[0].offsetHeight < (MENU_RATE * 25)) {
		m_activeMenu.childNodes[0].style.height = Math.round(m_activeMenu.childNodes[0].offsetHeight + (MENU_RATE * 1.5)) + "px";
		m_intMenuOpenId = window.setTimeout("Menu_open()", MENU_CLOSE / 1.5);
	} else {
		m_activeMenu.childNodes[0].style.height = Math.round(m_activeMenu.childNodes[0].offsetHeight + (MENU_RATE * 2)) + "px";
		m_intMenuOpenId = window.setTimeout("Menu_open()", MENU_CLOSE / 2);
	}
}


function GetChildren(objParent, strTag) {
	// for Firefox, Safari compatibility
	var colNodes = objParent.childNodes;
	var colChildren = new Array();
	var i;
	var j = 0;
	for (i = 0; i < colNodes.length; i++) {
		if (colNodes[i].tagName.toLowerCase() == strTag) {
			colChildren[j++] = colNodes[i];
		}
	}
	return colChildren;
}


function ResetMenuClass() {
	if (m_activeButton.className.indexOf(" ") < 0) {
		m_activeButton.className = ""; // Firefox bug--doesn't put leading space in class
	} else {
		m_activeButton.className = m_activeButton.className.split(" ")[0];
	}
}


function ViewPhoto(strPhoto) {
	document.getElementById("LargePhoto").style.backgroundImage = strPhoto;
}
