var isOpera = false;
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf("opera") >= 0)
    var isOpera = true;

function getMousePos(e) {
    var pos = new Object();
    pos.x = 0;
    pos.y = 0;

    if (!e) var e = window.event;

    if (e.pageX || e.pageY)
    {
        pos.x = e.pageX;
        pos.y = e.pageY;
    }
    else if (e.clientX || e.clientY)
    {
        pos.x = e.clientX + document.body.scrollLeft;
        pos.y = e.clientY + document.body.scrollTop;
    }

    return pos;
}

function getElementPosition(element) {
    var offsetTrail = element;
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 && 
        typeof document.body.leftMargin != "undefined") {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
    return {left:offsetLeft, top:offsetTop};
}

function getElementSize(element) {
    var offsetTrail = element;
    var offsetWidth = 0;
    var offsetHeight = 0;

    offsetWidth += offsetTrail.offsetWidth;
    offsetHeight += offsetTrail.offsetHeight;

    return {width:offsetWidth, height:offsetHeight};
}

function showInfo(e, obj) {
    var newTop, newLeft;
    
    var info = new Object();
    for (i = 0; i <= obj.childNodes.length; i++) {
        if (obj.childNodes[i].id == "thisisit") {
            info = obj.childNodes[i];
            break;
        }
    }

    //isOpera = false;
    
    newTop = isOpera ? (obj.style.top + obj.style.height) : (e.clientY + document.body.scrollTop);
    newLeft = isOpera ? obj.style.left : (e.clientX + document.body.scrollLeft);

    cWidth = document.body.clientWidth;
    cHeight = document.body.clientHeight;

    if (newLeft + info.offsetWidth > cWidth) {
        newLeft = cWidth - info.offsetWidth - 5;
    }

    info.style.top = newTop;
    info.style.left = newLeft;
    info.style.visibility = "visible";
}

function hideInfo(e, obj) {
    var info = new Object();
    for (i = 0; i <= obj.childNodes.length; i++) {
        if (obj.childNodes[i].id == "thisisit") {
            info = obj.childNodes[i];
            break; 
        }
    }

    info.style.visibility = "hidden";
}

function showResourceMenu(e) {
    var theMenu = document.getElementById('d_linkMenu');
    var theAnchor = document.getElementById('d_resourceMenuAnchor');

    if (window.delayHide) {
        clearTimeout(delayHide);
    }

    theMenu.onmouseover = onMenuOver;
    theMenu.onmouseout = onMenuOut;
    theMenu.isOver = true;

    var mousePos = getMousePos(e);

    if (theMenu && theAnchor) {
        var anchorPos = getElementPosition(theAnchor);
        theMenu.style.left = anchorPos.left - (theMenu.offsetWidth - theAnchor.offsetWidth) + 1;
        theMenu.style.top = anchorPos.top + theAnchor.offsetHeight - 4;
        theMenu.style.visibility = "visible";
    }
}

function hideResourceMenu() {
    delayHide = setTimeout("hideResourceMenu_timer()", 50);
}
function hideResourceMenu_timer() {
    var theMenu = document.getElementById('d_linkMenu');

    theMenu.style.visibility = "hidden";
}

function onMenuOver(event) {
    if (window.delayHide) {
        clearTimeout(delayHide);
    }
}
function onMenuOut(event) {
    hideResourceMenu();
}