﻿function ShowTooltip(child, message, offsetX, offsetY, width) {
    SetTooltipParent(child);
    SetTooltipMessage(message);
    SetOffsetX(offsetX);
    SetOffsetY(offsetY);
    SetTooltipWidth(width);
    if (document.HideTooltipTimeout) clearTimeout(document.HideTooltipTimeout);
    document.ShowTooltipTimeout = setTimeout("ShowTooltipGo()", 300);
}
function HideTooltip() {
    if (document.ShowTooltipTimeout) clearTimeout(document.ShowTooltipTimeout);
    document.HideTooltipTimeout = setTimeout("HideTooltipGo()", 100);
}
function CancelHideTooltip() {
    if (document.HideTooltipTimeout) clearTimeout(document.HideTooltipTimeout);
}
function ShowTooltipGo() {
    CancelHideTooltip();
    var tooltip = GetTooltip();
    var target = GetTooltipTarget();
    var parent = GetTooltipParent();
    var message = GetTooltipMessage();
    message = message.replace(/\[\[/g, "<");
    message = message.replace(/\]\]/g, ">");
    if (tooltip && target && parent && message) {
        target.innerHTML = message;
        tooltip.style.display = "block";
        var newLeft = FindPosX(parent) + GetWidth(parent) + GetOffsetX();
        var newTop = FindPosY(parent) + GetOffsetY();
        tooltip.style.left = newLeft + "px";
        tooltip.style.top = newTop + "px";
        var howWide = GetTooltipWidth();
        if (howWide > 0) {
            tooltip.style.width = howWide + "px";
        }
    }
}
function HideTooltipGo() {
    var tooltip = GetTooltip();
    if (tooltip) {
        tooltip.style.display = "none";
    }
}
function GetWidth(parent) {
    return parent.offsetWidth;
}
function FindPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
        } while (obj = obj.offsetParent);
    }
    else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}
function FindPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        do {
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}
function SetOffsetX(offsetX) {
    document.SavedTooltipOffsetX = offsetX;
}
function GetOffsetX() {
    if (document.SavedTooltipOffsetX && document.SavedTooltipOffsetX != 0)
        return document.SavedTooltipOffsetX;
    return 0;
}
function SetOffsetY(offsetY) {
    document.SavedTooltipOffsetY = offsetY;
}
function GetOffsetY() {
    if (document.SavedTooltipOffsetY && document.SavedTooltipOffsetY != 0)
        return document.SavedTooltipOffsetY;
    return 0
}
function SetTooltipWidth(width) {
    document.SavedTooltipWidth = width;
}
function GetTooltipWidth() {
    if (document.SavedTooltipWidth && document.SavedTooltipWidth > 0)
        return document.SavedTooltipWidth;
    return 120;
}
function SetTooltipTopOffset(n) {
    document.SavedTooltipTopOffset = n;
}
function GetTooltip() {
    if (!document.SavedTooltip)
        document.SavedTooltip = document.getElementById("charlieTooltip");
    return document.SavedTooltip;
}
function GetTooltipTarget() {
    if (!document.SavedTooltipTarget)
        document.SavedTooltipTarget = document.getElementById("charlieTooltipTarget");
    return document.SavedTooltipTarget;
}
function SetTooltipParent(el) {
    document.SavedTooltipParent = el;
}
function GetTooltipParent() {
    return document.SavedTooltipParent;
}
function SetTooltipMessage(msg) {
    document.SavedTooltipMessage = msg;
}
function GetTooltipMessage() {
    return document.SavedTooltipMessage;
}
