﻿/*
* Tooltip simples criada por Thomaz Saito.
* Depende de imagem referenciada no projeto. Ver comentários abaixo.
* 
* object (object): Object o qual deve ser enviado para ser "tooltipado"
* htmlContent (string): conteúdo HTML da div que conterá a tip
* imgSource (string): caminho da imagem que ficará acima da caixa da tooltip (geralmente uma seta)
* useFading (bool): determina se haverá fading in na tooltip
*/
function toolTipMe(object, htmlContent, imgSource, useFading) {
  
    if (object != null) {

        var posX = object.offsetLeft;
        var posY = object.offsetTop;

        var refAux = object.offsetParent;

        while (refAux != null) {
            posX += refAux.offsetLeft;
            posY += refAux.offsetTop;
            refAux = refAux.offsetParent;
        }

        var novaDiv = document.createElement('div');
        novaDiv.setAttribute('id', object.id + '_tip');

        novaDiv.style.color = '#FFF';
        novaDiv.style.fontSize = '10px';
        novaDiv.style.fontFamily = 'Verdana';

        
        novaDiv.style.position = 'absolute';
        //Verificar caminho de sua imagem. Aqui pode-se alterar a cor da caixa, imagem, etc.
        novaDiv.innerHTML = '<div style="text-align: center;">' +
                            '<img src="' + imgSource +  '" style="width: 10px; height: 10px">' +
                            '</div><div style="text-align: center;background-color: #000;padding: 3px">' +
                            htmlContent + '</div>';

        novaDiv.style.top = (posY + object.clientHeight) + 'px';
        novaDiv.style.left = (posX) + 'px';
    
        if(useFading){
            novaDiv.style.opacity = '0';
            novaDiv.style.filter = 'alpha(opacity=0)';
        }

        document.body.appendChild(novaDiv);

        //Ajusta posição da div de acordo com o conteúdo
        novaDiv.style.left = (novaDiv.style.left.replace('px', '') - novaDiv.clientWidth/2 + object.clientWidth/2) + 'px';


        if (useFading) {
            tooltipFader(new Array(novaDiv));
        }
    }
}

function untipMe(object) {
    if (object != null) {

        try {
            var ttip = document.getElementById(object.id + '_tip');
            ttip.parentNode.removeChild(ttip);
        } catch (Error) { }
    }
}

function tooltipFader(objects) {

        var opacity = 1;

        var raiseOpacity = function() {
        for (var j = 0; j < objects.length; j++) {
                objects[j].style.opacity = opacity / 10;
                objects[j].style.filter = 'alpha(opacity=' + (opacity * 10) + ')';
            }
            opacity++;
        }

        var oppRaiser = setInterval(raiseOpacity, 30);

        var stopOpacity = function() {
            clearInterval(oppRaiser);
        }

        setTimeout(stopOpacity, 1000);
}
