

/*****************************************/
var dragObj = new Object();
var browser = new Browser();
function Browser() {
    var ua,s,i;
    this.isIE = false;
    this.isNS = false;
    this.version = null;
    ua = navigator.userAgent;
    s = "MSIE";
    if ((i = ua.indexOf(s)) >= 0) {
        this.isIE = true;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
    }
    s = "Netscape6/";
    if ((i = ua.indexOf(s)) >= 0) {
        this.isNS = true;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
    }
    s = "Gecko";
    if ((i = ua.indexOf(s)) >= 0) {
        this.isNS = true;
        this.version = 6.1;
        return;
    }
    s = "Opera";
    if ((i = ua.indexOf(s)) >= 0) {
        this.isOp = true;
        this.version = parseFloat(ua.substr(i + 1 + s.length));
        return;
    }
}
/**********************************************************/



//****************************
//** NOVO MENU
var visiblemenus = [];

/* ** Exit menu functions ** */
var exitmenu = false; /* if true the menu will be exited */
var exittime;         /* time when the menu will be exited */
var isAwaken = false; /* the handler is awaken */
var LOOKUP_PERIOD = 500; /* interval between each menu checking */

// Exits the main menu by closing all the submenus
function ExitMenu() {
    exitmenu = true;
    exittime = new Date().getTime() + LOOKUP_PERIOD;
    WakeExitMenuHandler();
}
function WakeExitMenuHandler() {
    if (!isAwaken) setTimeout("ExitMenuHandler()", LOOKUP_PERIOD);
}
// Handler for exiting the menu
function ExitMenuHandler() {
    if (exitmenu) {
        if (exittime < new Date().getTime()) {
            CloseOtherMenus();
            // IE < 6 BUFIX: Menu overlapped by select boxes
	        if (browser.isIE && browser.version < 6) {
    	        aspnm_restoreSelectElements();
	        }
            exitmenu = false;
        }
        setTimeout("ExitMenuHandler()", LOOKUP_PERIOD);
        return;
    }
    // Going to sleep
    isAwaken = false;
}
/* ** END exit menu functions ** */

// Handler for focusing or hovering a menuitem
function OnFocus(parentId, childId) {
    return function () {
        exitmenu = false;
        CloseOtherMenus(parentId);
        // IE < 6 BUFIX: Menu overlapped by select boxes
        if (browser.isIE && browser.version < 6) {
            aspnm_restoreSelectElements();
            for (var i = 0; i < visiblemenus.length; i++)
                aspnm_hideSelectElements(visiblemenus[i]);
            if (childId != null)
                aspnm_hideSelectElements(childId);
        }
        if(childId != null)
            ShowMenu(childId);
    };
}
// Handler for losing the focus on a menuitem
function OnBlur() {
    return function () { ExitMenu(); };
}
// Activates the menu
function ActivateMenu(nav) {
    var navElement = GetElement(nav);
    var firstAnchor = null;
    if (navElement != undefined) {
        var navroot = GetElement(nav);
        /* Identify first and last LI and add the '.first' and '.last' class */
        var uls = navroot.getElementsByTagName("UL");
		for (var i=0; i < uls.length; i++) {
			if (uls[i].childNodes.length > 0) {
				var first = null;
				var last = null;
				for (var j=0; j < uls[i].childNodes.length; j++) {
					if (uls[i].childNodes[j].tagName == 'LI') {
						if (first == null)
							first = uls[i].childNodes[j];
						last = uls[i].childNodes[j];
					}
				}
				first.className+=first.className?' first':'first';
				last.className+=last.className?' last':'last';
			}
		}
        
        /* Get all the list items within the menu */
        var lis = navroot.getElementsByTagName("A");
        for (var i=0; i < lis.length; i++) {
            var parent = lis[i].parentNode;
            parent.id = '_mli' + i;

            var ulchild = null;
           /* Look for other menu levels */
            for (var j=0; j < parent.childNodes.length; j++) {
                var child = parent.childNodes[j];
                if (child.tagName == 'UL') {
                    child.id = '_mul' + i;
                    ulchild = child;
                    // Create a IFRAME - IE 6.0 BUGFIX: Menu overlapped by select boxes
                    if (browser.isIE && browser.version >= 6 && browser.version < 7) {
                        var iframeEl = document.createElement("IFRAME");
                        iframeEl.frameBorder = 0;
                        
                        /** Nasty, Ugly and Stupid IE BUG, that crapy browser will send a http response with this one */                        
                    	//  iframeEl.src = "javascript:;";
                   		if(document.location.protocol == "https:")
							iframeEl.src="web/images/px.gif";/*******************************************************/
						else
						 iframeEl.src="javascript:false;";
		
                        iframeEl.style.display = "none";
                        iframeEl.style.position = "absolute";
                        iframeEl.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
                        iframeEl.zindex = "-1";
                        iframeEl.tabIndex = -1;  // omitted from the tabbing order
                        ulchild.iframeEl = ulchild.parentNode.insertBefore(iframeEl, ulchild);
                    }
					HideElement(ulchild);
                    break;
                }
            }
            /* assign the function to the ANCHOR */
            if(window.addEventListener) { // Mozilla, Netscape, Firefox
                parent.addEventListener('mouseover', function() {exitmenu = false;}, false);
                lis[i].addEventListener('focus', OnFocus(parent.id, ulchild != null? ulchild.id: null), false);
                lis[i].addEventListener('mouseover', OnFocus(parent.id, ulchild != null? ulchild.id: null), false);
                lis[i].addEventListener('blur', OnBlur(), false);
                lis[i].addEventListener('mouseout', OnBlur(), false);
            } else { // IE
                parent.attachEvent('onmouseover', function() {exitmenu = false;});
                lis[i].attachEvent('onfocus', OnFocus(parent.id, ulchild != null? ulchild.id: null));
                lis[i].attachEvent('onmouseover', OnFocus(parent.id, ulchild != null? ulchild.id: null));
                lis[i].attachEvent('onblur', OnBlur());
                lis[i].attachEvent('onmouseout', OnBlur());
            }
        }
    }
}

// -- Auxiliary Functions

// Unhides the menu identified by the received id
function ShowMenu(id) {
    exitmenu = false; // Showing a new menu -> cancel the exit menu timeout
    var isVisible = false;
    for (var i = 0; i < visiblemenus.length; i++) {
        if (visiblemenus[i] == id) {
            isVisible = true;
            break;
        }
    }
    if (!isVisible)
        visiblemenus.push(id);

    var elem = GetElement(id);
    ShowElement(elem);
    if (elem.iframeEl != undefined)
    {
        elem.iframeEl.style.left = elem.offsetLeft;
        elem.iframeEl.style.top  = elem.offsetTop;
        elem.iframeEl.style.width  = elem.offsetWidth;
        elem.iframeEl.style.height = elem.offsetHeight;
        elem.iframeEl.style.display = "";
    }
}

// Get an element by its id
function GetElement(id) {
    if (document.getElementById && document.getElementById(id)) {
        return document.getElementById(id);
    } else if (document.all && document.all[id]) {
        return document.all[id];
    } else if (document.layers && document.layers[id]) {
        return document.layers[id];
    }
}
// Close all menus except the one received
function CloseOtherMenus(id) {
    var keptmenus = [];
    for (var i = 0; i < visiblemenus.length; i++) {
        var iterId = visiblemenus[i];
        if (id != iterId && !IsParent(iterId, id)) {
            var elem = GetElement(iterId);
            HideElement(elem);
            if (elem.iframeEl != null)
                elem.iframeEl.style.display = "none";
        }
        else
            keptmenus.push(iterId);
    }
    visiblemenus = keptmenus;
}
// Returns true if the menu n is a parent of c
function IsParent(n, c) {
    if (c == undefined)
        return false;
    var elem = GetElement(c);
    var parent = elem.parentNode;
    while (parent.id == undefined || parent.id != 'vertnav') {
        if (parent.id && parent.id == n)
            return true;
        parent = parent.parentNode;
    }
    return false;
}
// Hides an HTML element
function ShowElement(elem) {
	var className = elem.className;
	if (className != undefined && className.indexOf("hidden") >= 0)
		elem.className = className.replace(/ hidden|hidden |hidden/,""); 
}
// Shows an HTML element
function HideElement(elem) {
	var className = elem.className;
	if (className == undefined || className.indexOf("hidden") < 0)
		elem.className = className? "hidden" : className + " hidden"; 
}
//** FIM DO NOVO MENU
//****************************




