﻿var dhtmlgoodies_tooltip = false;
var dhtmlgoodies_tooltipMaxWidth = 200;
var dhtmlgoodies_tooltipMinWidth = 32;
var dhtmlgoodies_iframe = false;
var tooltip_is_msie = (navigator.userAgent.indexOf('MSIE') >= 0 && navigator.userAgent.indexOf('opera') == -1 && document.all) ? true : false;

var VlVToolTip = Class.create();
VlVToolTip.prototype = {
    initialize: function() {
        this.updateElementList();
    },
    updateElementList: function() {
        if (!document.getElementsByTagName) { return; }
        var anchors = document.getElementsByTagName('a');

        // Loop through all anchor tags...
        for (var i = 0; i < anchors.length; i++) {
            var anchor = anchors[i];
            var relAttribute = String(anchor.getAttribute('rel'));

            // Use the string.match() method to catch 'lightbox' references in the rel attribute
            if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('vlvtooltip'))) {
                var TextId = relAttribute.toLowerCase();

                if (TextId.length > 12) {
                    TextId = TextId.substring(11, TextId.length - 1);
                    anchor.onmouseover = function(event) { myVlVToolTip.showTooltip(event, this); return false; }
                    anchor.onmouseout = function() { myVlVToolTip.hideTooltip(); return false; }
                }
            }
        }
    },
    showTooltip: function(e, element) {
        var bodyWidth = Math.max(document.body.clientWidth, document.documentElement.clientWidth) - 20;

        var tooltipTxt = "<div style=\"padding-left:5px;\"><img src=\"/images/loading.gif\" alt=\"Loading...\" /></div>";

        var relAttribute = String(element.getAttribute('rel'));
        var TextId = relAttribute.toLowerCase();
        if (TextId.length > 12) {
            TextId = TextId.substring(11, TextId.length - 1);
            if (TextId.indexOf(",", 0) > 0) {
                var TextInfo = TextId.split(",");
                VlikeVintage.WebService.GetFrontendText(TextInfo[0], TextInfo[1], TextInfo[2], myVlVToolTip.updateTooltip);
            } else {
                VlikeVintage.WebService.GetFrontendText(TextId, myVlVToolTip.updateTooltip);
            }

        }

        if (!dhtmlgoodies_tooltip) {
            dhtmlgoodies_tooltip = document.createElement('DIV');
            dhtmlgoodies_tooltip.id = 'dhtmlgoodies_tooltip';
            dhtmlgoodies_tooltip.className = 'VlVTooltip';

            document.body.appendChild(dhtmlgoodies_tooltip);

            if (tooltip_is_msie) {
                dhtmlgoodies_iframe = document.createElement('IFRAME');
                dhtmlgoodies_iframe.frameborder = '5';
                dhtmlgoodies_iframe.style.backgroundColor = '#FFFFFF';
                dhtmlgoodies_iframe.src = '#';
                dhtmlgoodies_iframe.style.zIndex = 100;
                dhtmlgoodies_iframe.style.position = 'absolute';
                document.body.appendChild(dhtmlgoodies_iframe);
            }

        }

        dhtmlgoodies_tooltip.style.display = 'block';
        if (tooltip_is_msie) dhtmlgoodies_iframe.style.display = 'block';

        var st = Math.max(document.body.scrollTop, document.documentElement.scrollTop);
        if (navigator.userAgent.toLowerCase().indexOf('safari') >= 0) st = 0;
        var leftPos = 10;
        var topPos = 10;
        if (e != null) leftPos = e.clientX + 10;
        if (e != null) topPos = e.clientY + 10;

        dhtmlgoodies_tooltip.style.width = null; // Reset style width if it's set 
        dhtmlgoodies_tooltip.innerHTML = tooltipTxt;
        dhtmlgoodies_tooltip.style.left = leftPos + 'px';
        dhtmlgoodies_tooltip.style.top = topPos + st + 'px';

        if (dhtmlgoodies_tooltip.offsetWidth > dhtmlgoodies_tooltipMaxWidth) {	/* Exceeding max width of tooltip ? */
            dhtmlgoodies_tooltip.style.width = dhtmlgoodies_tooltipMaxWidth + 'px';
        }

        var tooltipWidth = dhtmlgoodies_tooltip.offsetWidth;
        if (tooltipWidth < dhtmlgoodies_tooltipMinWidth) tooltipWidth = dhtmlgoodies_tooltipMinWidth;


        dhtmlgoodies_tooltip.style.width = tooltipWidth + 'px';

        if ((leftPos + tooltipWidth) > bodyWidth) {
            dhtmlgoodies_tooltip.style.left = (leftPos - ((leftPos + tooltipWidth) - bodyWidth)) + 'px';
        }

        if (tooltip_is_msie) {
            dhtmlgoodies_iframe.style.left = dhtmlgoodies_tooltip.style.left;
            dhtmlgoodies_iframe.style.top = dhtmlgoodies_tooltip.style.top;
            dhtmlgoodies_iframe.style.width = dhtmlgoodies_tooltip.offsetWidth + 'px';
            dhtmlgoodies_iframe.style.height = dhtmlgoodies_tooltip.offsetHeight + 'px';

        }
    },
    updateTooltip: function(result) {

        //var leftPos = e.clientX + 10;

        dhtmlgoodies_tooltip.style.width = null; // Reset style width if it's set
        dhtmlgoodies_tooltip.innerHTML = result;
        //dhtmlgoodies_tooltip.style.left = leftPos + 'px';
        //dhtmlgoodies_tooltip.style.top = e.clientY + 10 + st + 'px';

        if (dhtmlgoodies_tooltip.offsetWidth > dhtmlgoodies_tooltipMaxWidth) {	/* Exceeding max width of tooltip ? */
            dhtmlgoodies_tooltip.style.width = dhtmlgoodies_tooltipMaxWidth + 'px';
        }

        var tooltipWidth = dhtmlgoodies_tooltip.offsetWidth;
        if (tooltipWidth < dhtmlgoodies_tooltipMinWidth) tooltipWidth = dhtmlgoodies_tooltipMinWidth;


        dhtmlgoodies_tooltip.style.width = tooltipWidth + 'px';

        //if ((leftPos + tooltipWidth) > bodyWidth) {
        //dhtmlgoodies_tooltip.style.left = (leftPos - ((leftPos + tooltipWidth) - bodyWidth)) + 'px';
        //}

        if (tooltip_is_msie) {
            dhtmlgoodies_iframe.style.left = dhtmlgoodies_tooltip.style.left;
            dhtmlgoodies_iframe.style.top = dhtmlgoodies_tooltip.style.top;
            dhtmlgoodies_iframe.style.width = dhtmlgoodies_tooltip.offsetWidth + 'px';
            dhtmlgoodies_iframe.style.height = dhtmlgoodies_tooltip.offsetHeight + 'px';

        }
    },
    hideTooltip: function() {
        dhtmlgoodies_tooltip.style.display = 'none';
        if (tooltip_is_msie) dhtmlgoodies_iframe.style.display = 'none';
    }
}

function getXYpos(elem) {
    if (!elem) {
        return { "x": 0, "y": 0 };
    }
    var xy = { "x": elem.offsetLeft, "y": elem.offsetTop }
    var par = getXYpos(elem.offsetParent);
    for (var key in par) {
        xy[key] += par[key];
    }
    return xy;
}

function showVlvTooltipManual(obj, tooltipText, timeout, rnd) {
    var bodyWidth = Math.max(document.body.clientWidth, document.documentElement.clientWidth) - 20;

    var mytooltip = null;
    var mytooltipframe = null;

    mytooltip = document.createElement('DIV');
    mytooltip.className = 'VlVTooltip';
    mytooltip.id = 'vlvmanualtooltip_' + obj.id + rnd;
    document.body.appendChild(mytooltip);

    if (tooltip_is_msie) {
        mytooltipframe = document.createElement('IFRAME');
        mytooltipframe.id = 'vlvmanualtooltipframe_' + obj.id + rnd;
        mytooltipframe.frameborder = '5';
        mytooltipframe.style.backgroundColor = '#FFFFFF';
        mytooltipframe.src = '#';
        mytooltipframe.style.zIndex = 100;
        mytooltipframe.style.position = 'absolute';
        document.body.appendChild(mytooltipframe);
    }

    mytooltip.style.display = 'block';
    if (tooltip_is_msie) mytooltipframe.style.display = 'block';

    var st = Math.max(document.body.scrollTop, document.documentElement.scrollTop);
    if (navigator.userAgent.toLowerCase().indexOf('safari') >= 0) st = 0;

    var xy = getXYpos(obj);
    var leftPos = xy["x"];
    var topPos = xy["y"];

    //alert('Manual ToolTip  Left:' + leftPos + ' Top:' + topPos);
     
    mytooltip.style.width = null; // Reset style width if it's set
    mytooltip.innerHTML = '<table><tr valign="top"><td>' + tooltipText + '</td><td><img src="/images/close.gif" width="10px" height="10px" alt="X" /></td></tr></table>';
    mytooltip.style.left = (leftPos + obj.offsetWidth + 5) + 'px';
    //mytooltip.style.top = (topPos + obj.offsetHeight + 5) + 'px';
    mytooltip.style.top = topPos + 'px';

    if (mytooltip.offsetWidth > dhtmlgoodies_tooltipMaxWidth) {	/* Exceeding max width of tooltip ? */
        mytooltip.style.width = dhtmlgoodies_tooltipMaxWidth + 'px';
    }

    var tooltipWidth = mytooltip.offsetWidth;
    if (tooltipWidth < 200) tooltipWidth = 200;
    mytooltip.style.width = tooltipWidth + 'px';

    var tooltipHeight = mytooltip.offsetHeight;
    if (tooltipHeight < 25) tooltipHeight = 25;
    mytooltip.style.height = tooltipHeight + 'px';

    if ((leftPos + tooltipWidth) > bodyWidth) {
        mytooltip.style.left = (leftPos - ((leftPos + tooltipWidth) - bodyWidth)) + 'px';
    }

    if (tooltip_is_msie) {
        mytooltipframe.style.left = mytooltip.style.left;
        mytooltipframe.style.top = mytooltip.style.top;
        mytooltipframe.style.width = mytooltip.offsetWidth + 'px';
        mytooltipframe.style.height = mytooltip.offsetHeight + 'px';

    }

    mytooltip.onclick = function() { this.style.display = 'none'; }
    if (tooltip_is_msie) {
        setTimeout("hideVlvTooltipManual('" + mytooltip.id + "', '" + mytooltipframe.id + "');", timeout);
    }
    else {
        setTimeout("hideVlvTooltipManual('" + mytooltip.id + "', null);", timeout);
    }
}

function hideVlvTooltipManual(id, fid) {
    if ($(id) != null) {
        $(id).style.display = 'none';
    }
    if (fid != null) {
        if ($(fid) != null) {
            $(fid).style.display = 'none';
        }
    }
}

function initVlVToolTip() { myVlVToolTip = new VlVToolTip(); }
Event.observe(window, 'load', initVlVToolTip, false);