﻿TooltipLibrary = function()
{
    this.documentElement = (document.documentElement.clientWidth==0)?document.body:document.documentElement;

    this.getLocationX = function(event, menuObject)
    {    
        var scrollLeft = (document.all)?this.documentElement.scrollLeft:window.pageXOffset;
        var x = scrollLeft + event.clientX;
        x = this.checkLocationX(event, x ,menuObject);
        return x;
    }

    this.getLocationY= function(event, menuObject)
    {
        var scrollTop = (document.all)?this.documentElement.scrollTop:window.pageYOffset;
        var y = scrollTop + event.clientY;
        y = this.checkLocationY(event, y, menuObject);
        return y;
    }

    this.checkLocationX = function(event, x, menuObject, parentObj)
    {
        var scrollLeft = (document.all)?this.documentElement.scrollLeft:window.pageXOffset;
        var prevX = x;
        if((x + menuObject.scrollWidth) > (this.documentElement.clientWidth + scrollLeft)) 
        {                                                   //20 for scrollbar width
               x -= (menuObject.scrollWidth + 10);
               if(parentObj)
               {
                    x-=parentObj.offsetWidth;
               }
        }
        else
        {
            x += 10;
        }
               
        return (x>0)?x:prevX;
    }
    this.checkLocationY = function(event, y, menuObject, parentObj)
    {    
        var scrollTop = (document.all)?this.documentElement.scrollTop:window.pageYOffset;        
        var prevY = y;        
        if((y + menuObject.scrollHeight) > (this.documentElement.clientHeight + scrollTop))
        {                   //20 for scrollbar width
               y -= (menuObject.scrollHeight + 10);    
               if(parentObj)
                     y-=parentObj.offsetHeight ;      
        }
        else
        {
            y += 10;
        }        
        return (y > 0)? y : prevY;
    }

    this.ShowTooltip = function(event,o)
    {   
        var spn = gtPrnt(o,2);
        var toolTip = gtEsBTgNm(spn,"div")[0];
        if (toolTip.innerHTML == '')
            return;
        toolTip.width = toolTip.scrollWidth;
        toolTip.height = toolTip.scrollHeight;
        var locX = this.getLocationX(event, toolTip);
        var locY = this.getLocationY(event, toolTip);
        var zoomObj = document.getElementById("zoomObj");
        if( zoomObj && zoomObj.offsetLeft)
        {
            var zoom = 1;
            zoom = zoomObj.offsetLeft/100; //100 is absolute position of the zoomObj div set in subscription page
            locX = parseInt(locX/zoom);
            locY = parseInt(locY/zoom);
        }
        toolTip.style.left = locX + 'px';
        toolTip.style.top  = locY + 'px';
        toolTip.style.zIndex = 99999;
        var txt = toolTip.innerHTML;
        
        if (txt.substring(0,4).toLowerCase() != "<div")
        {
           toolTip.innerHTML = "<div class=\"Content\"><table cellpadding=\"5px\"><tr><td>" + txt + "</td></tr></table></div>";
        }
        else
        {
           toolTip.innerHTML = txt ; // let the browser redraw the content as per current location
        }
        toolTip.style.display = 'inline';
    }


    this.HideTooltip = function(o)
    {
        var tc = gtPrnt(o,2);
        var toolTip = gtEsBTgNm(tc,"div")[0];
        if (toolTip != null)
        {
            toolTip.style.display='none';
        }
    }
}

var Tooltip = new TooltipLibrary();
