
function popup(url, w, h)
{
    window.open(url, 'popup', 'width='+w+',height='+h+',resizable=yes,scrollbars=yes');
}

function writeEmail(subject)
{
    var em = unescape('%69%6e%6'+'6%6f%40%7'+'3%61%76%65'+'%2d%73%70'+'%62%2e%72%75');
    document.write('<a href="mailto:' + em + '?subject=' + subject.replace(' ', '%20') + '">' + em + '</a>');
}

function min(a, b)
{
    return a<b? a: b;
}

function max(a, b)
{
    return a>b? a: b;
}

var tooltipCtl = null;
var curTipId = '';
function tooltip(ctl, tip_id, event)
{
    if (!tooltipCtl) {
        tooltipCtl = document.createElement('DIV');
        tooltipCtl.style.background = '#FFFFE0';
        tooltipCtl.style.border = 'solid 1px #808080';
        tooltipCtl.style.padding = '4px';
        tooltipCtl.style.visibility = 'hidden';
        tooltipCtl.style.position = 'absolute';
        tooltipCtl.style.width = '200px';
        document.body.appendChild(tooltipCtl);
    }    
    if (!tip_id) {
        tooltipCtl.style.visibility = 'hidden';
        curTipId = '';
    } else {  
        var t = document.getElementById(tip_id);
        if (t) {
            tooltipCtl.style.visibility = 'visible';
            if (curTipId != tip_id) {
                tooltipCtl.innerHTML = t.innerHTML;
                curTipId = tip_id;
            }
            var left = event.clientX + 4 + document.documentElement.scrollLeft, 
                top = event.clientY + 20 + document.documentElement.scrollTop;
            left = max(min(left, document.documentElement.clientWidth + document.documentElement.scrollLeft - 
                tooltipCtl.offsetWidth), 0);
            top = max(min(top, document.documentElement.clientHeight + document.documentElement.scrollTop - 
                tooltipCtl.offsetHeight), 0);
            tooltipCtl.style.left = left + 'px';
            tooltipCtl.style.top = top + 'px';
        }
    }
}
