function setHoverFunctions(node)
{
	node.onmouseover = function()
	{
		hoverMOver(this);
	}
	node.onmouseout = function()
	{
		hoverMOut(this);
	}
}

function hoverMOver(node)
{
	node.className += " hover";
	if (node.tagName == 'LI')
		node.style.zIndex = 9;
}

function hoverMOut(node)
{
	node.className = node.className.replace(" hover", "");
	if (node.tagName == 'LI')
		node.style.zIndex = 1;
}

function formElementType(node)
{
	if(node.tagName == 'INPUT')
	{
		return (node.type.toLowerCase());
	}
	else if (node.tagName == 'SELECT' || node.tagName == 'TEXTAREA')
	{
		return (node.tagName.toLowerCase());
	}

	return false;
}

startList = function()
{
	if (document.all && document.getElementById)
	{
		if (navRoot = document.getElementById("menu"))
		{
			for (i=0; i<navRoot.childNodes.length; i++)
			{
				node = navRoot.childNodes[i];
				if (node.nodeName=="LI")
				{
					setHoverFunctions(node);
				}
			}
		}

		setFocus = false;
		navRoot = document.getElementsByTagName('FORM');
		for (f=0; f<navRoot.length; f++)
		{
			navDivs = navRoot[f].getElementsByTagName('DIV');
			for (i=0; i<navDivs.length; i++)
			{
				node = navDivs[i];

				if (node.className.indexOf("help") >= 0)
				{
					node = node.parentNode;
					setHoverFunctions(node);

					for (k=0; k<node.all.length; k++)
					{
						field = node.all[k];
						if (formElementType(field))
							field.divNode = node;
					}
				}
			}

			navFields = navRoot[f].elements;

			for (fi=0; fi<navFields.length; fi++)
			{
				field = navFields[fi];
				fieldType = formElementType(field);

				if(fieldType)
				{
					if (field.onchange)
					{
						field.onchange();
					}

					if (!field.onfocus && !field.onblur)
					{
						field.onfocus = function()
						{
							if (this.divNode)
								hoverMOver(this.divNode);

							if (formElementType(this) == 'textarea' || this.className.indexOf('text') >= 0)
							{
								this.className += ' focus';
							}
						}

						field.onblur = function()
						{
							if (this.divNode)
								hoverMOut(this.divNode);

							if (formElementType(this) == 'textarea' || this.className.indexOf('text') >= 0)
							{
								this.className = this.className.replace(' focus', '');
							}
						}
					}

					if (fieldType != 'hidden' && setFocus == false)
					{
						if (fieldType == 'text')
						{
							if (field.setSelectionRange)
							{
								field.setSelectionRange(0, 0);
							}
							else if (field.createTextRange)
							{
								var range = field.createTextRange();
								range.expand('textedit');
								range.select();
							}

						}

						if (fieldType != 'select')
						{
							try
							{
								field.focus();
								setFocus = true;
							}
							catch (e)
							{
								return;
							}
						}
					}
				}
			}
		}

		if (navCal = document.getElementById("calendar"))
		{
			navLi = navCal.getElementsByTagName("LI");
			for(var i = 0; i < navLi.length; i++)
			{
				var list = navLi[i];
				if (list.className.indexOf('chsb') >= 0 || list.className.indexOf('aptm') >= 0)
				{
					if (list.childNodes.length)
					{
						setHoverFunctions(list);
					}
				}
			}
		}
	}
}

window.onload = startList;
