function markMenuItemActive(elementid)
{
    $$("#mainMenu li a.menuLink").each(
        function(el)
        {
            if(el.hasClass("active"))
            {
                el.removeClass("active");
            }
        });
    $(elementid).addClass("active");
    setMarkerPosition();
}

function setMarkerPosition()
{
	try
	{
		var activeLinks = $$('#mainMenu li a.active');
		var activeLink = (activeLinks.length > 0) ? activeLinks[0] : null;
		var activeLinkMarker = $('activeLinkMarker');
		var menuContainer = $('menuContainer');
		
		if(activeLink != null && activeLinkMarker != null && menuContainer != null)
		{
			var mmx = menuContainer.getPosition().x;
			var alc = activeLink.getCoordinates();
			var almc = activeLinkMarker.getCoordinates();
			var left = Math.floor(parseInt(alc.left) + (parseInt(alc.width) / 2) - 10 - parseInt(mmx));
			activeLinkMarker.setStyles('display:block;top:42px;left:'+left+'px');
		}
	}
	catch(ex)
	{
	}
}

function menuLinkOnHover(e)
{
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	closeMenus();
	closeSearchBox();
	closeFlyoutMenus();
	loadDropdown(tg);
}

function flyMenuLinkOnHover(e)
{
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	closeFlyoutMenus();
	loadFlyout(tg);
}

function flyMenuLinkNextOnHover(e)
{
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	loadNextFlyout(tg);
}

function menuLinkOnOut(e)
{
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	if(reltg != undefined && (reltg.id == 'headerContainer' || reltg.id == 'menuContainer') && window.ie6)
	{
		closeMenus();
	}
}

function flyMenuLinkOnOut(e)
{
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	//alert(reltg.className);
	if(reltg != undefined && reltg.className != 'flyMenuLink' && reltg.className != 'fly' && reltg.className != 'flyMenu')
	{
		closeFlyoutMenus();
	}
	else
	{
		closeFlyoutMenuTest(tg, reltg)
	}
}

function loadDropdown(target)
{
	var mc = $('mainContainer').getPosition();
	var t = $(target);
	var p = t.getParent();
	var pc = p.getPosition();
	var tc = t.getPosition();
	var tcc = t.getCoordinates();
	var left = parseInt(tc.x) - parseInt(mc.x);
	var top = parseInt(pc.y) - parseInt(tc.y) + parseInt(tcc.height);

	p.getChildren().each(
		function(el)
		{
			if(el.getTag() == 'ul')
			{
				el.setStyles('display:block;position:absolute;margin:0;padding:0;top:'+top+'px;left:'+left+'px;visibility:visible;');
				el.getChildren().each(
					function (el)
					{
						if(el.className == 'fly')
						{
							el.getChildren().each(
								function (elc)
								{
									if(elc.getTag() == 'a')
									{
										elc.onmouseover = flyMenuLinkOnHover;
										elc.onmouseout = flyMenuLinkOnOut;
									}
								}
							);
						}
						else
						{
							el.getChildren().each(
								function (elc)
								{
									if(elc.getTag() == 'a')
									{
										elc.onmouseout = flyMenuLinkOnOut;
									}
								}
							);
						}
					}
				);
			}
		}
	);
}


function loadFlyout(target)
{
	var mcc = $('mainMenu').getCoordinates();
	var t = $(target);
	var p = t.getParent();
	var pc = p.getPosition();
	var tc = t.getPosition();
	var tcc = t.getCoordinates();
	
	var top = parseInt(tcc.top) - parseInt(mcc.bottom);
	var left = parseInt(tcc.width);

	p.getChildren().each(
		function(el)
		{
			if(el.getTag() == 'ul')
			{
				el.setStyles('display:block;position:absolute;margin:0;padding:0;top:'+top+'px;left:'+left+'px;visibility:visible;');
				checkForNextLevel(el);
			}
		}
	);
}

function loadNextFlyout(target)
{
	var mcc = $('mainMenu').getCoordinates();
	var t = $(target);
	var p = t.getParent();
	var pc = p.getPosition();
	var pcc = p.getCoordinates();
	var tc = t.getPosition();
	var tcc = t.getCoordinates();
	
	//var top = parseInt(tcc.top) - parseInt(mcc.bottom);
	var top = parseInt(pc.y) - parseInt(mcc.bottom);
	//alert(pc.y + "-" + pcc.top + "-" + tc.y + "-" + tcc.top);
	var left = parseInt(tcc.width);

	p.getChildren().each(
		function(el)
		{
			if(el.getTag() == 'ul')
			{
				el.setStyles('display:block;position:absolute;margin:0;padding:0;top:'+top+'px;left:'+left+'px;visibility:visible;');
				checkForNextLevel(el);
			}
		}
	);
}

function	checkForNextLevel(target)
{
	target.getChildren().each(
		function (elcc)
		{
			if(elcc.className == 'fly')
			{
				elcc.getChildren().each(
					function(elccc)
					{
						if(elccc.getTag() == 'a')
						{
							elccc.onmouseover = flyMenuLinkNextOnHover;
							elccc.onmouseout = flyMenuLinkOnOut;
						}
					}
				);
			}
		}
	);
}

function closeMenus()
{
	$$('.dropMenu').each(
		function(el)
		{
			el.setStyle('display','none');	
		}
	);
}

function closeFlyoutMenus()
{
	$$('.flyMenu').each(
		function(el)
		{
			el.setStyles('display:none; visibility:hidden;');	
		}
	);
}

function closeFlyoutMenuTest(elem, reltg)
{
//	alert($(elem).innerHTML);
//	alert($(elem).className + "-" + $(reltg).className);
	if($(elem).className == 'flyMenuLink' && $(elem).className != $(reltg).className)
	{
		$(elem).getParent().getChildren().each(
			function(el)
			{
				//alert(el.innerHTML);
				//alert(el.className);
				if(el.className == 'flyMenu')
				{
					el.setStyles('display:none; visibility:hidden;');	
				}
			}
		);
	}
}

function closeSearchBox()
{
	if($('searchContainer').getStyle('display') != "none") searchOff();
}

function getElementsByClassName(clsName,callBack) 
{ 
	var arr = new Array(); 
	var elems = document.getElementsByTagName("*");
	for ( var cls, i = 0; ( elem = elems[i] ); i++ )
	{
		if ( elem.className == clsName )
		{
			arr[arr.length] = elem;
		}
	}
	return arr;
}


// Try to set the marker position on load. If fail, pass anyway. 
try
{
    addOnLoad(setMarkerPosition);
}
catch(e){}