﻿//document.addEventListener ? document.addEventListener("mouseover", TooltipCheck_onmouseover, false) : document.onmouseover = function() { TooltipCheck_onmouseover(); };
document.onmouseover = function() { TooltipCheck_onmouseover(); };

function __firefox() {
    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
    window.constructor.prototype.__defineGetter__("event", __window_event);
    Event.prototype.__defineGetter__("srcElement", __event_srcElement);
}

function __element_style() {
    return this.style;
}

function __window_event() {
    return __window_event_constructor();
}

function __event_srcElement() {
    return this.target;
}

function __window_event_constructor() {
    if (document.all) {
        return window.event;
    }

    var _caller = __window_event_constructor.caller;

    while (_caller != null) {
        var _argument = _caller.arguments[0];

        if (_argument) {
            var _temp = _argument.constructor;

            if (_temp.toString().indexOf("Event") != -1) {
                return _argument;
            }
        }

        _caller = _caller.caller;
    }

    return null;
}

if (window.addEventListener) {
    __firefox();
}

TooltipCheck_onmouseover = function (evt) {
    try {
        if (!isHttps()) {
            if (top.IsIdle) {
                top.IsIdle = false;
                top.SetOnlineStatus(top.OnlineStatus_Enum.Online);

                //ChatTitleChanger_Accounts_Remove
                var ClientIFrame = top.document.getElementById("ClientIFrame");
                var ChatAccount = "";

                if (/LiveChat/.test(ClientIFrame.src)) {
                    ChatAccount = top.QueryAnalyzer(ClientIFrame.src, "account");
                }
                else if (/PrivateChat/.test(ClientIFrame.src)) {
                    ChatAccount = top.QueryAnalyzer(ClientIFrame.src, "account");
                }

                if (ChatAccount != "") {
                    top.ChatTitleChanger_Accounts_Remove(ChatAccount);
                }
            }

            top.IdleDate = null;
            top.IdleDate = new Date();

            if (!evt) evt = window.event;

            var target = evt.target ? evt.target : evt.srcElement;

            if (target.tagName == "IMG") {
                if (target.alt) {
                    if (target.alt != "") {
                        target.popUpToolTip = target.alt;
                        target.alt = "";

                        CreateTooltip(evt);

                        if (target.addEventListener) {
                            document.addEventListener("mouseout", RemoveTooltip, false);
                            //target.addEventListener("mouseout", RemoveTooltip, false);
                            target.addEventListener("mousemove", MoveTooltip, false);
                        }
                        else {
                            document.onmouseout = new Function("RemoveTooltip();");
                            //target.onmouseout = new Function("RemoveTooltip();");
                            target.onmousemove = new Function("MoveTooltip();");
                        }
                    }
                }
            }
            else if (target.tagName == "A") {
                if (target.alt) {
                    if (target.alt != "") {
                        target.popUpToolTip = target.alt;
                        target.alt = "";

                        CreateTooltip(evt);

                        if (target.addEventListener) {
                            document.addEventListener("mouseout", RemoveTooltip, false);
                            //target.addEventListener("mouseout", RemoveTooltip, false);
                            target.addEventListener("mousemove", MoveTooltip, false);
                        }
                        else {
                            document.onmouseout = new Function("RemoveTooltip();");
                            //target.onmouseout = new Function("RemoveTooltip();");
                            target.onmousemove = new Function("MoveTooltip();");
                        }
                    }
                }
                else {
                    try {
                        while (target && target.tagName != "TD") {
                            target = target.parentNode;
                        }

                        if (!target.tagName) return;
                        if (target.tagName != "TD") return;

                        if (target.title) {
                            if (target.title != "") {
                                target.popUpToolTip = target.title;
                                target.title = "";

                                CreateTooltip(evt);

                                if (target.addEventListener) {
                                    document.addEventListener("mouseout", RemoveTooltip, false);
                                    //target.addEventListener("mouseout", RemoveTooltip, false);
                                    target.addEventListener("mousemove", MoveTooltip, false);
                                }
                                else {
                                    document.onmouseout = new Function("RemoveTooltip();");
                                    //target.onmouseout = new Function("RemoveTooltip();");
                                    target.onmousemove = new Function("MoveTooltip();");
                                }
                            }
                        }
                    }
                    catch (e) {
                        //error
                    }
                }
            }
            else if (target.tagName.toUpperCase() == "SPAN") {
                if (target.alt) {
                    if (target.alt != "") {
                        target.popUpToolTip = target.alt;
                        target.alt = "";

                        CreateTooltip(evt);

                        if (target.addEventListener) {
                            document.addEventListener("mouseout", RemoveTooltip, false);
                            //target.addEventListener("mouseout", RemoveTooltip, false);
                            target.addEventListener("mousemove", MoveTooltip, false);
                        }
                        else {
                            document.onmouseout = new Function("RemoveTooltip();");
                            //target.onmouseout = new Function("RemoveTooltip();");
                            target.onmousemove = new Function("MoveTooltip();");
                        }
                    }
                }
                else {
                    try {
                        while (target && target.tagName != "TD") {
                            target = target.parentNode;
                        }

                        if (!target.tagName) return;
                        if (target.tagName != "TD") return;

                        if (target.title) {
                            if (target.title != "") {
                                target.popUpToolTip = target.title;
                                target.title = "";

                                CreateTooltip(evt);

                                if (target.addEventListener) {
                                    document.addEventListener("mouseout", RemoveTooltip, false);
                                    //target.addEventListener("mouseout", RemoveTooltip, false);
                                    target.addEventListener("mousemove", MoveTooltip, false);
                                }
                                else {
                                    document.onmouseout = new Function("RemoveTooltip();");
                                    //target.onmouseout = new Function("RemoveTooltip();");
                                    target.onmousemove = new Function("MoveTooltip();");
                                }
                            }
                        }
                    }
                    catch (e) {
                    }
                }
            }
            else if (target.tagName == "TD") {
                if (target.title) {
                    if (target.title != "") {
                        target.popUpToolTip = target.title;
                        target.title = "";

                        CreateTooltip(evt);

                        if (target.addEventListener) {
                            document.addEventListener("mouseout", RemoveTooltip, false);
                            //target.addEventListener("mouseout", RemoveTooltip, false);
                            target.addEventListener("mousemove", MoveTooltip, false);
                        }
                        else {
                            document.onmouseout = new Function("RemoveTooltip();");
                            //target.onmouseout = new Function("RemoveTooltip();");
                            target.onmousemove = new Function("MoveTooltip();");
                        }
                    }
                }
            }
            else {
                try {
                    while (target && target.tagName != "TD") {
                        target = target.parentNode;
                    }

                    if (!target.tagName) return;
                    if (target.tagName != "TD") return;

                    if (target.title) {
                        if (target.title != "") {
                            target.popUpToolTip = target.title;
                            target.title = "";

                            CreateTooltip(evt);

                            if (target.addEventListener) {
                                document.addEventListener("mouseout", RemoveTooltip, false);
                                //target.addEventListener("mouseout", RemoveTooltip, false);
                                target.addEventListener("mousemove", MoveTooltip, false);
                            }
                            else {
                                document.onmouseout = new Function("RemoveTooltip();");
                                //target.onmouseout = new Function("RemoveTooltip();");
                                target.onmousemove = new Function("MoveTooltip();");
                            }
                        }
                    }
                }
                catch (e) {
                }
            }
        }
    }
    catch (e) {
    }
}

var Tooltip_OffsetX = 10;
var Tooltip_OffsetY = 17;

CreateTooltip = function(evt) {
    if (!evt) evt = window.event;

    var target = evt.target ? evt.target : evt.srcElement;

    if (target.tagName != "TD" && target.tagName != "IMG") {
        if (!target.popUpToolTip) {
            while (target && target.tagName != "TD") {
                target = target.parentNode;
            }
        }
    }

    if (!document.getElementById("TooltipDiv")) {
        var TooltipDiv = document.createElement("div");
        TooltipDiv.id = "TooltipDiv";
        TooltipDiv.style.position = "absolute";
        TooltipDiv.style.left = "-500px";
        TooltipDiv.style.top = "-500px";
        TooltipDiv.style.zIndex = "200001";
        TooltipDiv.className = "Tooltip";

        var TooltipTable = document.createElement("table");
        TooltipTable.border = "0";
        TooltipTable.cellSpacing = "0";
        TooltipTable.cellPadding = "0";

        var TooltipTR = document.createElement("tr");

        var TooltipTD = document.createElement("td");

        TooltipTR.appendChild(TooltipTD);

        addTableRows(TooltipTable, [TooltipTR]);

        TooltipDiv.appendChild(TooltipTable);

        TooltipDiv.tooltipTable = TooltipTable;
        TooltipDiv.tooltipTD = TooltipTD;

        document.body.appendChild(TooltipDiv);
    }

    var TooltipDiv = document.getElementById("TooltipDiv");

    //TooltipDiv.innerHTML = target.popUpToolTip;
    TooltipDiv.tooltipTD.innerHTML = target.popUpToolTip;

    if (TooltipDiv.offsetWidth > 250) {
        TooltipDiv.style.width = "250px";

        TooltipDiv.tooltipTable.style.width = "250px";
        TooltipDiv.tooltipTable.style.tableLayout = "fixed";
        TooltipDiv.tooltipTable.style.wordWrap = "break-word";
    }
    else {
        TooltipDiv.style.width = "";
    }

    if (TooltipDiv.expireID) window.clearTimeout(TooltipDiv.expireID);

    TooltipDiv.expireID = window.setTimeout("TargetCheck('" + target.id + "')", 500);

    var sTop = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;

    var winWidth = window.innerWidth ? window.innerWidth : document.documentElement ? document.documentElement.clientWidth : document.body.clientWidth;
    var winHeight = window.innerHeight ? window.innerHeight : document.documentElement ? document.documentElement.clientHeight : document.body.clientHeight;

    if (evt.clientX + Tooltip_OffsetX + TooltipDiv.offsetWidth >= winWidth)
        TooltipDiv.style.left = (evt.clientX - TooltipDiv.offsetWidth) + "px";
    else
        TooltipDiv.style.left = (evt.clientX + Tooltip_OffsetX) + "px";

    if (evt.clientY + Tooltip_OffsetY + TooltipDiv.offsetHeight >= winHeight)
        TooltipDiv.style.top = (evt.clientY - TooltipDiv.offsetHeight + sTop) + "px";
    else
        TooltipDiv.style.top = (evt.clientY + Tooltip_OffsetY + sTop) + "px";
}

MoveTooltip = function(evt)
{
    if (!evt) evt = window.event;
    
    if (document.getElementById("TooltipDiv"))
    {
        var TooltipDiv = document.getElementById("TooltipDiv");
        var sTop = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;
           
        var winWidth = window.innerWidth ? window.innerWidth : document.documentElement ? document.documentElement.clientWidth : document.body.clientWidth;
        var winHeight = window.innerHeight ? window.innerHeight : document.documentElement ? document.documentElement.clientHeight : document.body.clientHeight;

        if (evt.clientX + Tooltip_OffsetX + TooltipDiv.offsetWidth >= winWidth)
            TooltipDiv.style.left = (evt.clientX - TooltipDiv.offsetWidth) + "px";
        else           
            TooltipDiv.style.left = (evt.clientX + Tooltip_OffsetX) + "px";
        
        if (evt.clientY + Tooltip_OffsetY + TooltipDiv.offsetHeight >= winHeight)
            TooltipDiv.style.top = (evt.clientY - TooltipDiv.offsetHeight + sTop) + "px";
        else
            TooltipDiv.style.top = (evt.clientY + Tooltip_OffsetY + sTop) + "px";
    }
}

TargetCheck = function (id) {
    if (!document.getElementById(id)) {
        HideTooltip();
    }
    else {
        if (document.getElementById("TooltipDiv"))
            var TooltipDiv = document.getElementById("TooltipDiv");
        TooltipDiv.expireID = window.setTimeout("TargetCheck('" + id + "')", 500);
    }
}

RemoveTooltip = function(evt)
{
    if (!evt) evt = window.event;

    var target = evt.target ? evt.target : evt.srcElement;
    
    if (target)
    {
        if (target.tagName != "TD" && target.tagName != "IMG")
        {
            if (!target.popUpToolTip)
            {
                while (target && target.tagName != "TD")
                {
                    target = target.parentNode;
                }
            }
        }
        
        if (!target)
        {
            HideTooltip();
            return;
        }
        
        if (target.popUpToolTip)
        {
            if (target.tagName == "IMG") 
            {
                //if (/\-mouseover/.test(target.src)) target.src = target.src.replace(/\-mouseover/g, "");

                if (target.alt == "")
                    target.alt = target.popUpToolTip;       
            }
            else if (target.tagName == "TD")
                target.title = target.popUpToolTip;
            else if (target.tagName == "A")
            {
                if (target.alt == "")
                    target.alt = target.popUpToolTip;
            }
            else if (target.tagName.toUpperCase() == "SPAN")
            {
                if (target.alt == "")
                    target.alt = target.popUpToolTip;
            }
            else
            {
                while (target && target.tagName != "TD")
                {
                    target = target.parentNode;
                }
                if (target.title == "")
                    target.title = target.popUpToolTip;
            }
        }
        
        if (target.removeEventListener)
        {
            target.removeEventListener("mousemove", CreateTooltip, false);
        }
        else
        {
            target.onmousemove = null;
        }
    }
 
    HideTooltip();
}

HideTooltip = function()
{
    if (document.getElementById("TooltipDiv"))
    {
        var TooltipDiv = document.getElementById("TooltipDiv");
        window.clearTimeout(TooltipDiv.expireID);
            
        TooltipDiv.parentNode.removeChild(TooltipDiv);       
    }
    
    if (document.removeEventListener)
        document.removeEventListener("mouseout", RemoveTooltip, false);
    else
        document.onmouseout = null;
}
