var _canHide = true;
var _timeoutId = null;
var _timeoutLength = 1500;
var _linkToClear = null;
var _defaultTab = null;

var fixes = {
	ie8:{adj:15,ser:0},
	ie7:{adj:-17, ser:17},
	ie6:{adj:0, ser:0},
	ff:{adj:-17, ser:17},
	chrome:{adj:-16, ser:16},
	safari:{adj:-16, ser:16},
	other:{adj:15, ser:15}
};


function menuItem_onMouseOver(subNavigationId, childTag, prefix, parentId)
{
	_hideDefault();
	changeDisplay(subNavigationId, childTag, prefix, 'block', parentId);
	_canHide = false;
	clearTimeout(_timeoutId);
	if (_linkToClear != null) _removeCssClass(_linkToClear);
	_linkToClear = null;
	var link = document.getElementById("lnk_" + subNavigationId);
	_addCssClass(link);
	if (link != null) _linkToClear = link;
}

function menuItem_onMouseOut(subNavigationId, childTag, prefix, parentId, link)
{
	_timeoutId = window.setTimeout(function() {
		_hideSubMenu(subNavigationId, childTag, prefix, parentId, link);
	}, _timeoutLength);
}

function subMenu_onMouseOver(subNavigationId, childTag, prefix, parentId)
{
	menuItem_onMouseOver(subNavigationId, childTag, prefix, parentId);
	_addCssClass(document.getElementById("lnk_" + subNavigationId));
}

function subMenu_onMouseOut(subNavigationId, childTag, prefix, parentId)
{
	var link = document.getElementById("lnk_" + subNavigationId);
	menuItem_onMouseOut(subNavigationId, childTag, prefix, parentId, link);
	_linkToClear = link;
}

function _hideSubMenu(subNavigationId, childTag, prefix, parentId)
{
	changeDisplay(subNavigationId, childTag, prefix, null ,parentId);
	if (_linkToClear != null) _removeCssClass(_linkToClear);
	_linkToClear = null;
	_showDefault();
}

function _removeCssClass(link)
{
	if (link != null)
	{
		if (link.className) link.className = link.className.replace(/_selected/g, '');
		if (link.cssClass) link.cssClass = link.cssClass.replace(/_selected/g, '');
	}
}

function _addCssClass(link)
{
	if (link != null)
	{
		if (link.className) link.className = link.className.replace(/_selected/g, '');
		if (link.cssClass) link.cssClass = link.cssClass.replace(/_selected/g, '');
		link.className += '_selected';
		link.cssClass  += '_selected';
	}
}

function _hideDefault()
{
	if (_defaultTab != null)
		_removeCssClass(_defaultTab);
}

function _showDefault()
{
	
	if (_defaultTab != null)
	{
		_addCssClass(_defaultTab);
		//changeDisplay(_defaultTab.id.replace(/lnk_/g, ''), null, _defaultTab.prefixName, 'block');
	}
}

function changeDisplay(subNavigationId, childTag, prefix, display, parentId)
{
	if (childTag == null) childTag = 'DIV';
	if (prefix == null) prefix = "";
	if (display == null) display = 'none';
	
	var subNav = document.getElementById(prefix + subNavigationId);
	var parent = document.getElementById(parentId);
	if (!(subNav == null && parent == null))
	{
		parent = (parent == null) ? subNav.parentNode : parent;
		
		for (var i = 0; i < parent.childNodes.length; i++)
		{
			var element = parent.childNodes[i];
			if (element.tagName == childTag)
			{
				element.style.display = 'none';
			}
		}
		if (subNav != null)
		{
			subNav.style.display = display;
		}
		
	}
}

function navigationBuild()
{
	var tabId = window.location.href.substring(window.location.href.lastIndexOf('/') + 1);
	if (tabId != "")
	{
		if (tabId.indexOf('-') > 0)
			tabId = tabId.substring(0, tabId.indexOf('-'));
		else
			tabId = tabId.substring(0, tabId.indexOf('.'));
		_defaultTab = document.getElementById("lnk_" + tabId);
		if (_defaultTab != null)
		{
			var prefix = _defaultTab.attributes.onmouseout.nodeValue.split(',');
			prefix = prefix[2].replace(/[\s'"]+/g, '');
			_defaultTab.prefixName = prefix;
			eval(_defaultTab.attributes.onmouseout.nodeValue);
		}
		
	}
	correctLinkBox();
	enablePageTasks();
}

function correctLinkBox()
{
	var linkBox = document.getElementById("lbWrapper");
	if (null != linkBox)
	{
		var cls = (linkBox.className) ? linkBox.className : linkBox.cssClass;

		if (!(cls.indexOf('lbTop') >= 0))
		{
			var linkBoxParent = linkBox.parentNode;
			
			linkBoxParent.removeChild(linkBox);	
			
			var lastChild = null;
			var stack = [];
			
			for (var i = linkBoxParent.childNodes.length - 1; i >= 0; i--)
			{
				var nt = linkBoxParent.childNodes[i].tagName;
							
				stack[stack.length] = linkBoxParent.childNodes[i];
				linkBoxParent.removeChild(linkBoxParent.childNodes[i]);
				
				if (nt == 'P' || nt == 'UL' || nt == 'OL')
				{
					i=-1;
				}
			}
			
			linkBoxParent.appendChild(linkBox);
			
			for (var i = stack.length - 1; i >= 0; i--)
			{
				linkBoxParent.appendChild(stack[i]);
			}
			
			linkBox.style.width = document.getElementById('linkBox').offsetWidth + 'px';
		}
		else
		{
			linkBox.style.width = document.getElementById('linkBox').offsetWidth + 'px';
		}
	}
}

function showFieldset(fieldsetId, sender)
{
	var fieldSet = document.getElementById('fieldset-' + fieldsetId);
	if (null != fieldSet)
	{
		for (var i = 0; i < fieldSet.childNodes.length; i++)
		{
			var elem = fieldSet.childNodes[i];
			if (elem.tagName == 'DL')
			{
				if (elem.style.display == 'block')
				{
					elem.style.display = 'none';
					sender.className = 'hidden';
					sender.cssClass = 'hidden';
				}
				else
				{
					elem.style.display = 'block';
					sender.className = 'showing';
					sender.cssClass = 'showing';
				}
				i = fieldSet.childNodes.length;
			}
		}
	}
}

var _ptLoaded = false; 
function enablePageTasks()
{
	_ptLoaded = true;
}

function showTasks(sender)
{
	if (_ptLoaded)
	{
		var css = (sender.className) ? sender.className : sender.cssClass;
		var pageTasks = document.getElementById('pageTasks');
		if (null != pageTasks)
		{
			if (css.indexOf('Showing') >= 0)
			{
				sender.className = 'pageTasksLink';
				sender.cssClass = 'pageTasksLink';
				pageTasks.style.display = 'none';
			}
			else
			{
				sender.className = 'pageTasksLinkShowing';
				sender.cssClass = 'pageTasksLinkShowing';
				pageTasks.style.display = 'block';
				var pos = findPos(sender);
				pageTasks.style.left = pos.left + 'px';
			}
		}
	}
}

function findPos(obj)
{
	var curLeft = curTop = 0;
	if (obj.offsetParent)
	{
		do
		{
			curLeft += obj.offsetLeft;
			curTop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return {left: curLeft, top: curTop};
}