﻿var _tooltipIsTouchDevice = null;

var TooltipIsTouchDevice = (function ()
{
    if (_tooltipIsTouchDevice != null)
    {
        return _tooltipIsTouchDevice;
    }
    else
    {
        var touchEvent;
        if (!("createTouch" in document))
        {
            try
            {
                touchEvent = document.createEvent("TouchEvent");
            }
            catch (error)
            {
                _tooltipIsTouchDevice = false;
                return _tooltipIsTouchDevice;
            }

            if (!touchEvent.initTouchEvent)
            {
                _tooltipIsTouchDevice = false;
                return _tooltipIsTouchDevice;
            }
        }

        _tooltipIsTouchDevice = true;
        return _tooltipIsTouchDevice;
    }
})();

function ShowTooltipHover(targetCtl, hoverContentId, TopOffset, LeftOffSet, IsContentPassed)
{
    if (IsContentPassed)
    {
        if (targetCtl.attr('id') != undefined && targetCtl.attr('id') != "")
        {
            jQuery("#" + targetCtl.attr('id')).hover(function() { ShowTooltipHoverContent("#" + targetCtl.attr('id'), hoverContentId, TopOffset, LeftOffSet, IsContentPassed); }, function() { HideTooltipHoverContent("#" + targetCtl.attr('id')); });
        }
        else
        {
            jQuery(targetCtl).hover(function() { ShowTooltipHoverContent(targetCtl, hoverContentId, TopOffset, LeftOffSet, IsContentPassed); }, function() { HideTooltipHoverContent(targetCtl); });
        };
    }
    else
    {
        if (targetCtl.attr('id') != undefined && targetCtl.attr('id') != "")
        {
            jQuery("#" + targetCtl.attr('id')).hover(function() { ShowTooltipHoverContent("#" + targetCtl.attr('id'), "#" + hoverContentId.attr('id'), TopOffset, LeftOffSet, IsContentPassed); }, function() { HideTooltipHoverContent("#" + targetCtl.attr('id')); });
        };
    }
}


function checknumb(num)
{
    return parseInt(num) || 0;
};

function ShowTooltipHoverContent(targetCtl, hoverContentId, TopOffset, LeftOffSet, IsContentPassed)
{

    var width = jQuery(targetCtl).outerWidth();
    var height = jQuery(targetCtl).outerHeight();

    var scrollTop = checknumb(jQuery(document).scrollTop());
    var scrollLeft = checknumb(jQuery(document).scrollLeft());
    var docWidth = checknumb(jQuery(window).width());
    var docHeight = checknumb(jQuery(window).height());
    var winRight = scrollLeft + docWidth;
    var winBottom = scrollTop + docHeight;
    var space = new Object();
    space.top = jQuery(targetCtl).offset().top - scrollTop;
    space.bottom = docHeight - ((jQuery(targetCtl).offset().top + height) - scrollTop);
    space.left = jQuery(targetCtl).offset().left - scrollLeft;
    space.right = docWidth - ((jQuery(targetCtl).offset().left + width) - scrollLeft);


    jQuery("#byopopupdiv").remove();
    if (IsContentPassed)
    {
        $("body").append("<div id=\"byopopupdiv\" style=\"display:none\">" + hoverContentId + "</div>");
    }
    else
    {
        $("body").append("<div id=\"byopopupdiv\" style=\"display:none\">" + jQuery(hoverContentId).html() + "</div>");
    }
    
    LeftOffSet = jQuery(targetCtl).offset().left + (jQuery(targetCtl).width() / 2) - (jQuery("#byopopupdiv").width() / 2);
    var ArrowOffset = 0;
    if (space.bottom < ( jQuery("#byopopupdiv").height() + 50 ) )
    {
        TopOffset = jQuery(targetCtl).offset().top - jQuery("#byopopupdiv").height() - TopOffset;
        ArrowOffset = 0; //jQuery("#byopopupdiv").height() -7;
        jQuery("#byopopupdiv .videotooltiparrow").attr("src", "http://cache.bmwusa.com/image_be71f2d8-4a28-484b-b0a4-df8f811f993a.arox");
        jQuery("#byopopupdiv .videotooltiparrow").css({ 'clear': 'both', 'display': 'inline', 'position': 'absolute', 'bottom': ArrowOffset + 'px', 'left': jQuery("#byopopupdiv").width() / 2 + 'px' });  

    }
    else
    {        
        ArrowOffset = -10;
        TopOffset = jQuery(targetCtl).offset().top + jQuery(targetCtl).height() + TopOffset;
        jQuery("#byopopupdiv .videotooltiparrow").css({ 'clear': 'both', 'display': 'inline', 'position': 'absolute', 'top': ArrowOffset + 'px', 'left': jQuery("#byopopupdiv").width() / 2 + 'px' });  

    }
    
    jQuery("#byopopupdiv").attr('style', 'position:absolute;top:' + (TopOffset) + 'px;left:' + LeftOffSet + 'px;z-index:9999');
    
    jQuery("#byopopupdiv").show();

}

function HideTooltipHoverContent(targetCtl)
{
    jQuery("#byopopupdiv").remove();
}

