/**
* Dropdown Navigation Menu Management Functions
* Based on AnyLink Menu Source - Dynamic Drive (www.dynamicdrive.com)
*/

var OutDelay = 250;
var RenderIE = (document.all);
var RenderMoz = (document.getElementById && !document.all);
var RenderOpera = window.opera;
var th = null;

function GetOffset(ObjRef, OffsetRef) {
    
    var TotalOffset = (OffsetRef == "left") ? ObjRef.offsetLeft : ObjRef.offsetTop;
    var ParentElement = ObjRef.offsetParent;
    while (ParentElement != null) {
        
        TotalOffset = (OffsetRef == "left") ? TotalOffset + ParentElement.offsetLeft : TotalOffset + ParentElement.offsetTop;
        ParentElement = ParentElement.offsetParent;
        
    }
    
    return TotalOffset;
    
}


function SetVisibility (RefObject, EventRef) {
    
    if (RenderIE || RenderMoz) MenuObject.style.left = MenuObject.style.top =  -500;
    
	if (EventRef.type == "click" && RefObject.visibility == "hidden"  ||  EventRef.type == "mouseover") RefObject.visibility = "visible";
    else if (EventRef.type == "click") RefObject.visibility = "hidden";
	
}


function DisplayButtonHighlight (RefObject) {
	
	if (RenderIE || RenderMoz) {
		
		var H = document.getElementById(RefObject);
		var ImageLocation = ""+H.src;
		H.src = ImageLocation.replace(/\.gif/i,"_f2.gif");
	
	}

}

function HideButtonHighlight (RefObject) {
	
	if (RenderIE || RenderMoz) {
		
		var H = document.getElementById(RefObject);
		var ImageLocation = ""+H.src;
		H.src = ImageLocation.replace(/_f2\.gif/i,".gif");
	
	}

}

function SetSection (SectionName) {
	
	DisplayButtonHighlight(SectionName + "Button");
	
}

function SetupRollover (RefObject) {
	
	if (RenderIE || RenderMoz) {
		
		var oh = document.getElementById(RefObject);
		if (typeof oh != 'undefined') {
			oh.onmouseover = function () {
				DisplayButtonHighlight(RefObject);	
			}
			oh.onmouseout = function () {
				HideButtonHighlight(RefObject);	
			}
		}
	
	}
	
}

function GetIECompatRef() {
    
    return (document.compatMode && document.compatMode  !=  "BackCompat") ? document.documentElement : document.body;
    
}


function GetDocOffset(RefObject, EdgeSelector) {
    
    var EdgeOffset = 0;
    if (EdgeSelector == "rightedge") {
        
        var ViewportEdge = (RenderIE && !RenderOpera) ? GetIECompatRef().scrollLeft + GetIECompatRef().clientWidth - 15 : window.pageXOffset + window.innerWidth - 15;
        MenuObject.ContentHeight = MenuObject.offsetWidth;
        if (ViewportEdge - MenuObject.x  <  MenuObject.ContentHeight) EdgeOffset = MenuObject.ContentHeight - RefObject.offsetWidth;
        
    }
    
    else {
        
        var TopEdge = (RenderIE && !RenderOpera) ? GetIECompatRef().scrollTop : window.pageYOffset;
        var ViewportEdge = (RenderIE && !RenderOpera) ? GetIECompatRef().scrollTop + GetIECompatRef().clientHeight - 15 : window.pageYOffset + window.innerHeight - 18;
        MenuObject.ContentHeight = MenuObject.offsetHeight;
        if (ViewportEdge - MenuObject.y  <  MenuObject.ContentHeight) {
            EdgeOffset = MenuObject.ContentHeight + RefObject.offsetHeight;
            if ((MenuObject.y - TopEdge) < MenuObject.ContentHeight) EdgeOffset = MenuObject.y + RefObject.offsetHeight - TopEdge;
        }
        
        
    }
    
    return EdgeOffset;
    
}


function DisplayMenu (RefObject, EventRef, MenuContainer) {
    
    if (window.event) event.cancelBubble = true;
    else if (EventRef.stopPropagation) EventRef.stopPropagation();
    
	if (typeof MenuObject != "undefined") MenuObject.style.visibility = "hidden";
    
	HideTimerReset();
    
	if (RenderIE || RenderMoz) {
        
        RefObject.onmouseout = HideTimer;
        MenuObject = document.getElementById(MenuContainer);
        MenuObject.onclick = function () {
            MenuObject.style.visibility = 'hidden';
        }
        
        MenuObject.onmouseover = HideTimerReset;
        MenuObject.onmouseout = RenderIE ? function() {
            HideMenu(event);
        }
        : function (event) {
            HideMenu(event);
        }
        
        SetVisibility(MenuObject.style, EventRef);
        MenuObject.x = GetOffset(RefObject, "left");
        MenuObject.y = GetOffset(RefObject, "top");
        MenuObject.style.left = MenuObject.x - GetDocOffset(RefObject, "rightedge") + "px";
        MenuObject.style.top = MenuObject.y - GetDocOffset(RefObject, "bottomedge") + RefObject.offsetHeight + "px";
        
    }
    
}


function MozParent(a, b) {
    
    while (b.parentNode) {
		if ((b = b.parentNode) ==  a) return true;
	}
    return false;
    
}


function HideMenu(EventRef) {
    
    if (RenderIE && !MenuObject.contains(EventRef.toElement)) HideTimer();
    else if (RenderMoz && EventRef.currentTarget !=  EventRef.relatedTarget && !MozParent(EventRef.currentTarget, EventRef.relatedTarget)) HideTimer();
    
}


function HideTimer () {
    
    th = setTimeout("MenuObject.style.visibility = 'hidden'",OutDelay);
    
}


function HideTimerReset () {
    
    if (typeof th != "undefined");
    clearTimeout(th);
    
}
