
var DH = 0;
var an = 0;
var al = 0;
var ai = 0;

if (document.getElementById) {ai = 1; DH = 1;}else {if (document.all) {al = 1; DH = 1;} else { browserVersion = parseInt(navigator.appVersion); if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {an = 1; DH = 1;}}} 

function fd(oi, wS) 
{
    if (ai) 
        return wS ? document.getElementById(oi).style:document.getElementById(oi); 
    if (al) 
        return wS ? document.all[oi].style: document.all[oi]; 
    if (an) 
        return document.layers[oi];
}

function pw() 
{
    return  window.innerWidth != null ? 
            window.innerWidth: document.body.clientWidth;
}

function scrollX()
{
    return  document.documentElement.scrollLeft ?  
            document.documentElement.scrollLeft : document.body.scrollLeft;
}

function scrollY()
{
    return  document.documentElement.scrollTop ? 
            document.documentElement.scrollTop : document.body.scrollTop; 
}

function popUp(evt,oi) 
{
    if (DH) 
    {
        var wp = pw(); 
        ds = fd(oi,1); 
        dm = fd(oi,0); 
        st = ds.visibility; 
        if (dm.offsetWidth) 
            ew = dm.offsetWidth; 
        else if (dm.clip.width) 
            ew = dm.clip.width; 
        if (st == "visible" || st == "show") 
        { 
            ds.visibility = "hidden"; 
        } 
        else 
        {
            lv = evt.clientX - (ew/4); 
            tv = evt.clientY + 20; 
            if (lv < 2) 
                lv = 2; 
            else if (lv + ew > wp) 
                lv -= ew/2; 
            var cur = dm;
            var hasFixedParent = 0;
            while (cur.offsetParent)
            {
                cur = cur.offsetParent;
                lv -= cur.offsetLeft; 
                tv -= cur.offsetTop;
                if (cur.style.position == "fixed")
                {
                    hasFixedParent = 1;
                    break;
                }
            }
            if (!hasFixedParent)
            {
                lv += scrollX(); 
                tv += scrollY();
            }
            if (!an) 
            {
                lv += 'px';
                tv += 'px';
            } 
            ds.left = lv; 
            ds.top = tv; 
            ds.visibility = "visible";
        }
    }
}

function zorder(id)
{
    var ret = "";
    //debugger;
    for (var cur = fd(id, 0); cur; cur = cur.parentElement)
    {
        ret += cur.nodeName + ": " + cur.id + ": " + cur.style.zIndex + "\n";
    }
    return ret;
}
