﻿var tipShowing = false;

Dea.ToolTip = function(event, node, bId, router) {
    var e = event || window.event;
    var node_tooltip = Dea.Get("emsTip");
    Dea.ToolTip.node = node;
    Dea.ToolTip.isFocus = e.type === "focus";
    showHandler();
    return Dea.browser.stopPropagation(e);

    function showHandler() {
        Dea.setDisplay(node_tooltip, "block", null, null, "absolute");
        Dea.browser.addEvent(node, "blur", hideHandler, true);
        Dea.browser.addEvent(node, "mouseout", hideHandler, true);
        Dea.ToolTip.currentTipTimer = window.setTimeout("Dea.ToolTip.getTip(" + bId + ", '" + router + "')", 1000);
        tipShowing = true;
    }

    function hideHandler(event) {
        var e = event || window.event;
        Dea.ToolTip.hideTip();
        Dea.setDisplay(node_tooltip, "none", null, null, null);
        Dea.browser.removeEvent(node, "blur", hideHandler, true);
        Dea.browser.removeEvent(node, "mouseout", hideHandler, true);
        Dea.setHtml(Dea.ToolTip.tip, ems_PauseToLoadMsg);
        return Dea.browser.stopPropagation(e);
    }
}


Dea.ToolTip.hideTip = function() {
    if (Dea.ToolTip.currentTipTimer !== null) {
        window.clearTimeout(Dea.ToolTip.currentTipTimer);
        Dea.ToolTip.currentTipTimer = null;
    }
    Dea.setDisplay(Dea.ToolTip.tip, "none");
    tipShowing = false;
}


Dea.ToolTip.loadTipHtml = function(tipHtml, tipWidth, tipColor, tipBorder) {
    if (typeof tipWidth !== "undefined" && tipWidth !== null) {
        Dea.ToolTip.tip.style.width = tipWidth = "px";
    }

    if (typeof tipColor !== "undefined" && tipColor !== null) {
        Dea.ToolTip.tip.style.bgColor = tipColor;
    }

    if (typeof tipBorder !== "undefined" && tipBorder !== null) {
        Dea.ToolTip.tip.style.border = tipBorder;
    }
    Dea.setHtml(Dea.ToolTip.tip, tipHtml);
    tipShowing = true;
    Dea.ToolTip.setPosition();
    return false;
}

Dea.ToolTip.init = function() {
    Dea.ToolTip.tip = Dea.Get("emsTip");
    Dea.ToolTip.node = null;
    Dea.ToolTip.isFocus = false;
    Dea.ToolTip.currentTipTimer = null;
    Dea.setHtml(Dea.ToolTip.tip, ems_PauseToLoadMsg);
    Dea.browser.addEvent(document, "mousemove", Dea.ToolTip.setPosition);
}

Dea.ToolTip.setPosition = function() {
    if (Dea.ToolTip.tip) {
        if (tipShowing) {

            if (Dea.ToolTip.isFocus) {
                var p = Dea.findPos(Dea.ToolTip.node);
                Dea.setDisplay(Dea.ToolTip.tip, "", Number(p[0]) - 15 + "px", p[1] + Dea.ToolTip.node.offsetHeight + "px")
            }
            else {
                var pageX = Dea.Mouse.x;
                var pageY = Dea.Mouse.y;

                Dea.ToolTip.tip.style.visibility = "hidden";

                if ((pageX + 20 + Dea.ToolTip.tip.offsetWidth) > Dea.Mouse.windowWidth) {
                    Dea.ToolTip.tip.style.left = pageX - (Dea.ToolTip.tip.offsetWidth + 20) + "px";
                }
                else {
                    Dea.ToolTip.tip.style.left = pageX + 20 + "px";
                }

                if ((pageY + 20 + Dea.ToolTip.tip.offsetHeight) > Dea.Mouse.windowHeight) {
                    Dea.ToolTip.tip.style.top = Dea.Mouse.windowHeight - (Dea.ToolTip.tip.offsetHeight) + "px";
                }
                else {
                    Dea.ToolTip.tip.style.top = pageY + "px";
                }

            }
            Dea.ToolTip.tip.style.visibility = "visible";
        }
    }
}

Dea.ToolTip.getTip = function(itemId, router) {
    Dea.setEmsData(true);
    Dea.emsData.tipItemId = itemId;
    Dea.makeCallback(router);
    return;
}

function showDetails(page, qs, w, h) {
    var link = PathToRoot + page + "?" + qs;
    var width = w || 500;
    var height = h || 550;
    showPopWin(link, width, height, null, true);
    return false; 
}

document.write("<div id='emsTip'></div>");
Dea.widgets.add(Dea.ToolTip);




