var msglobalnav = (function(){				
	

	//CHECK FOR IE and NOT Strict
	var isie = (function(){
	    if(_isie == null)
	    {
	        var d=document.doctype 
            strict=(document.compatMode=="CSS1Compat") 
            strict=(d&&d.systemId?(d.systemId.indexOf("strict")>-1?true:(d.publicId.indexOf("transitional")>-1?true:false)):(d&&d.publicId.indexOf("transitional")==-1?true:strict)) 
            strict=(d&&d.name.indexOf(".dtd")>-1)?true:strict 
            _isie = !strict  && navigator.userAgent.indexOf('MSIE') >= 0;
        }
        return _isie;
	}());

				
	var _isie = null;

	var output = {}; 
	var timerIn = null; 
	var timerOut = null; 
	var subItem = null;
	var parentItem = null;
	var menuTopOffset = isie ? -3 : 0; 
	var menuLeftOffset = isie ? -3 : 0; 
	var linkOffset = isie ? 0 : -15;
	var fixedSubs = {}; 
	var framer; 
	var menuInTime = 5; 
	var menuOutTime = 250;
			
	function position(o)
	{
	    var fixBrowserQuirks = true;				
	    var left = 0,top = 0, parentNode = null,offsetParent = null;
	    offsetParent = o.offsetParent;
	    var originalObject = o;
	    var el = o;
	    while (el.parentNode != null) 
	    {
	        el = el.parentNode;
	        if (el.offsetParent != null) 
	        {
	            var considerScroll = true;
	            if (fixBrowserQuirks && window.opera) 
	            {
	                if (el == originalObject.parentNode || el.nodeName == "TR"){considerScroll = false;}
	            }
	            if (considerScroll) 
	            {
	                if (el.scrollTop && el.scrollTop > 0){top -= el.scrollTop;}
	                if (el.scrollLeft && el.scrollLeft > 0){left -= el.scrollLeft;}
	            }
	        }
	        if (el == offsetParent) 
	        {
	            left += o.offsetLeft;
	            if (el.clientLeft && el.nodeName != "TABLE"){left += el.clientLeft;}
	            top += o.offsetTop;
	            if (el.clientTop && el.nodeName != "TABLE"){top += el.clientTop;}
	            o = el;
	            if (o.offsetParent == null) 
	            {
	                if (o.offsetLeft){left += o.offsetLeft;}
	                if (o.offsetTop){top += o.offsetTop;}
	            }
	            offsetParent = o.offsetParent;
	        }
	    }
	    return {'top': top, 'left': left};
	}
	function getItems(id)
	{
		return {
			'child': document.getElementById('subNav' + id),
		 	'parent': document.getElementById('nav' + id)};
	}
	function fixedSub(sub,parent)
	{
		//FIX FOR UHP
        var d = document.getElementById('userdisplay');
	    var uhpOffset = 0;
	    if (d && d.className === 'module' && d.tagName === 'DIV') {uhpOffset = 1;}

		var items = sub.getElementsByTagName('LI');
		var max = 140;
		for(var i = 0; i < items.length; i++)
		{
			if(max < items[i].offsetWidth){ max = items[i].offsetWidth;}
		}
		if(max < parent.offsetWidth) max = parent.offsetWidth;

		sub.style.width = max + 'px';
		for (var i = 0; i < items.length; i++) 
		{
			items[i].style.width = max + 'px';
			items[i].getElementsByTagName('A')[0].style.width = (max + linkOffset + uhpOffset) + 'px';
			
		}
		fixedSubs[sub.id] = true;
	}
	
	output.subToggle = function(id, show)
	{
    	if (framer == null) { framer = document.getElementById('framer'); }
		var items = getItems(id);
		if(show)
		{
			if (timerOut) 
			{
				clearTimeout(timerOut);
				timerOut = null
			}
		}
		else
		{
			if (timerIn) 
			{
				clearTimeout(timerIn);
				timerIn = null
			}


           timerOut = setTimeout(function()
            {
				if(parentItem)parentItem.className = '';
				parentItem = null;
                subItem.style.left = '-100000px';
				framer.style.left = '-100000px';
				timerOut = null;	
				subItem = null;
            }, menuOutTime);                         						
		}
	}

	output.toggle = function(id,show)
	{
		if (framer == null) { framer = document.getElementById('framer'); }
		var items = getItems(id);
		if(show)
		{
			if (timerOut) 
			{
				clearTimeout(timerOut);
				timerOut = null
			}						
			if (subItem && subItem.id != items.child.id) 
			{
				if(parentItem)parentItem.className = '';
				parentItem = null;
				subItem.style.left = '-100000px';
				subItem = null;
				framer.style.left = '-100000px';
			}						
			timerIn = setTimeout(function(){							
				subItem = items.child;	
				parentItem = items.parent;															
				var pos = position(items.parent);							
				if(fixedSubs[items.child.id] == null)fixedSub(items.child,items.parent)
				subItem.style.left = (pos.left + menuLeftOffset) + 'px';	
				subItem.style.top = (pos.top + items.parent.offsetHeight + menuTopOffset) + 'px';
				parentItem.className = 'open';
				framer.style.left = (pos.left + menuLeftOffset) + 'px';	
				framer.style.top = (pos.top + items.parent.offsetHeight + menuTopOffset) + 'px';
				framer.style.width = items.child.offsetWidth;
				framer.style.height = items.child.offsetHeight;
				framer.style.zIndex = items.child.style.zIndex + 1;
				framer.style.display = "block";
				timerIn = null;
			},menuInTime);
		}
		else
		{
			if (timerIn) 
			{
				clearTimeout(timerIn);
				timerIn = null
			}

            timerOut = setTimeout(function()
            {
                if(subItem) subItem.style.left = '-100000px';
				framer.style.left = '-100000px';
				timerOut = null;	
				subItem = null;
				if(parentItem)parentItem.className = '';
				parentItem = null;
            }, menuOutTime);                         
          
		}
	};		
	
	var searchTimer = null;
	output.openSearchTypes = function()
	{
    	var searchList = document.getElementById('srchMenuList')
	    searchList.className = 'open';
	    
		if (framer == null) { framer = document.getElementById('framer'); }
	    var pos = position(searchList);	
	    						
		framer.style.left = (pos.left - 7) + 'px';	
		framer.style.top = (pos.top -2 ) + 'px';
		framer.style.width = searchList.offsetWidth;
		framer.style.height = searchList.offsetHeight;
		framer.style.zIndex = searchList.style.zIndex + 1;
		framer.style.display = "block";

	    clearTimeout(searchTimer);
	    searchTimer = null;
	};
	
	output.hideSearchTypes = function()
	{
        searchTimer = setTimeout(function(){
            if (framer == null) { framer = document.getElementById('framer'); }
			document.getElementById('srchMenuList').className = '';
			framer.style.display = "none";
	        searchTimer = null;
		}, 500);
	};
	
	output.switchSearchTypeTo = function(v)
	{
        var _after = '<small>&#9660;</small>';
        
        document.getElementById('search_t').value = v;
		var types = document.getElementById('srchMenuList').getElementsByTagName('A');
		for(var t = 0; t < types.length; t++)
		{
			if(types[t].id == v)
			{
				$get('searchTypeValue').innerHTML = types[t].innerHTML + _after;
			}
		}
		
		document.getElementById('srchMenuList').className = '';
		framer.style.display = "none";
	    clearTimeout(searchTimer);
	    searchTimer = null;
	};
	
	output.srchMenuList = function(isOn)
	{
	    if(isOn)
	    {
	        clearTimeout(searchTimer);
	        searchTimer = null;
	    }
	    else
	    {
			searchTimer = setTimeout(function(){
			document.getElementById('srchMenuList').className = '';
			framer.style.display = "none";
            searchTimer = null;
			}, 500);
	    }
	};
    var searchTypesOn = 0;

   	var isIntlFooterOn = false;
	output.toggleInternationalLinks = function()
	{
		var internationalLinks = document.getElementById('internationalLinks');
		var intlLink = document.getElementById('intlLink');
		if(isIntlFooterOn)
		{
			internationalLinks.style.left = "-100000px"
		}
		else
		{
			var pos = position(intlLink);
			internationalLinks.style.left = 
				(pos.left - (internationalLinks.offsetWidth /2) + (intlLink.offsetWidth/2)) + 'px';
			internationalLinks.style.top = 
				(document.body.offsetHeight - internationalLinks.offsetHeight - 45) + 'px';
		}
		isIntlFooterOn = !isIntlFooterOn;
	}
	
	return output;
	
}());