// Popup Windows - V 3.1
// Author: Brian Gosselin w/ changes by Dynamicdrive.com
// Site URL: http://scriptasylum.com
// Script featured on Dynamic Drive (http://www.dynamicdrive.com)
// Added option to pop up ONCE per browser session by Dynamic Drive
//
// Browser compatibility:
// IE4+, NS4+, NS6+ (with limited functionality in pre 5.0 browsers)

var w3c = (document.getElementById) ? true : false;
var ns4 = (document.layers) ? true : false;
var ie5 = (w3c && document.all) ? true : false;
var ns6 = (w3c && !document.all) ? true : false;
var d = document;
currIDb = null;
xoff = 0;
yoff = 0;
currRS = null;
rsxoff = 0;
rsyoff = 0;
oldac = null;
newac = null;
zdx = 15;
mx = 0;
my = 0;
var currFb = null;
var currFs = null;
var currFID = 0;
var currFcnt = 0;
var cidlist = new Array();
var popUpcam = 0;
var popUptxt = 0;
var popUptxt1 = 0;
var scrollposx = 0, scrollposy = 0;
var tempy = 0, tempx = 0;
var myWidth = 0, myHeight = 0;

function getlocation(boxid)
{
    if (typeof(window.innerWidth) == 'number')
    {
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    }
    else
    {
        if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
        {
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
        }
        else
        {
            if (document.body && (document.body.clientWidth || document.body.clientHeight))
            {
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
        }
    }
    scrollposy = (ie5) ? d.body.scrollTop : window.pageYOffset;
    scrollposx = (ie5) ? d.body.scrollLeft : window.pageXOffset;
    tempy = parseInt(d.getElementById(boxid + "_b").style.top);
    tempx = parseInt(d.getElementById(boxid + "_b").style.left);
    if (tempy > (myHeight + scrollposy - 80))
        tempy = scrollposy + (myHeight / 8);
    if (tempy < scrollposy)
        tempy = scrollposy + (myHeight / 8);
    if (tempx > (myWidth + scrollposx - 80))
        tempx = scrollposx + (myWidth / 4);
    if (tempx < scrollposx)
        tempx = scrollposx + (myWidth / 4);
    movePopup(boxid, tempx, tempy);
}

function hidebox(id)
{
    if (w3c)
    {
        if (currFb != d.getElementById(id + '_b'))
        {
            d.getElementById(id + '_b').style.display = 'none';
        }
    }
}

function showbox(id)
{
    if (w3c)
    {
        getlocation(id);
        var bx = d.getElementById(id + '_b');
        bx.style.display = 'block';
        bx.style.zIndex = ++zdx;
        changez(bx);
    }
}

function changecontent(id, text)
{
    if (!document.getElementById(id + '_b').isExt)
    {
        var d = document.getElementById(id + '_c');
        if (ns6)
            d.style.overflow = "hidden";
        d.innerHTML = text;
        if (ns6)
        d.style.overflow = "block";
    }
    else
        document.getElementById(id + '_ifrm').src = text;
    showbox(id);
}

function movePopup(ids, x, y)
{
    var idb = document.getElementById(ids + '_b');
    idb.style.left = x + 'px';
    idb.style.top = y + 'px';
}

function resizePopup(ids, rx, ry)
{
    if (w3c)
    {
        if (d.getElementById(ids + '_rs').rsEnable)
        {
            d.gEl = d.getElementById;
            d.gEl(ids + "_extWA").style.display = "block";
            d.gEl(ids + "_rs").style.left = Math.max(rx, ((ie5) ? 88 : 92)) + 'px';
            d.gEl(ids + "_rs").style.top = Math.max(ry, ((ie5) ? 68 : 72)) + 'px';
            d.gEl(ids + "_b").style.width = Math.max(rx + ((ie5) ? 12 : 8), 100) + 'px';
            d.gEl(ids + "_b").style.height = Math.max(ry + ((ie5) ? 12 : 8), 80) + 'px';
            d.gEl(ids + "_t").style.width = Math.max(rx + ((ie5) ? 4 : 3), ((ns6) ? 95 : 92)) + 'px';
            d.gEl(ids + "_btt").style.left = parseInt(d.gEl(ids + "_t").style.width) - 48+'px';
            d.gEl(ids + "_c").style.width = Math.max(rx - ((ie5) ?  - 5: 5), ((ie5) ? 92 : 87)) + 'px';
            d.gEl(ids + "_c").style.height = Math.max(ry - ((ie5) ? 24 : 28),44) + 'px';
            d.gEl(ids + "_max").h = parseInt(d.gEl(ids + "_b").style.height);
        }
    }
}

function hideAllScrollbars()
{
    if (document.all)
    {
        var id;
        for (i = 0; i < cidlist.length; i++)
        {
            id = cidlist[i];
            if (!document.getElementById(id + '_b').isExt)
            document.getElementById(id + '_c').style.overflow = "hidden";
        }
    }
}

function showAllScrollbars()
{
    if (document.all)
    {
        var id;
        for (i = 0; i < cidlist.length; i++)
        {
            id = cidlist[i];
            if (!document.getElementById(id + '_b').isExt)
            document.getElementById(id + '_c').style.overflow = "auto";
        }
    }
}

function preloadBttns()
{
    var btns = new Array();
    btns[0] = new Image();
    btns[0].src = "images/min.gif";
    btns[1] = new Image();
    btns[1].src = "images/max.gif";
    btns[2] = new Image();
    btns[2].src = "images/close.gif";
    btns[3] = new Image();
    btns[3].src = "images/resize.gif";
}

preloadBttns();
function minimize()
{
    if (w3c)
    {
        d.getElementById(this.cid + "_b").style.height = (ie5) ? '28px' : '24px';
        d.getElementById(this.cid + "_c").style.display = 'none';
        d.getElementById(this.cid + "_rs").style.display = 'none';
        ns6bugfix();
    }
}

function restore()
{
    if (w3c)
    {
        d.getElementById(this.cid + "_b").style.height = this.h + 'px';
        d.getElementById(this.cid + "_c").style.display = 'block';
        d.getElementById(this.cid + "_rs").style.display = 'block';
        ns6bugfix();
    }
}

function ns6bugfix()
{
    if (navigator.userAgent.indexOf("Netscape/6") > 0)
    setTimeout('self.resizeBy(0,1); self.resizeBy(0,-1);', 100);
}

function trackmouse(evt)
{
    mx = (ie5) ? event.clientX + d.body.scrollLeft: evt.pageX;
    my = (ie5) ? event.clientY + d.body.scrollTop: evt.pageY;
    movepopup();
    if ((currIDb != null) || (currRS != null))
    return false;
}

function movepopup()
{
    if ((currIDb != null) && w3c)
        movePopup(currIDb.cid, mx + xoff, my + yoff);
    if ((currRS != null) && w3c)
        resizePopup(currRS.cid, mx + rsxoff, my + rsyoff);
    return false;
}

function stopRS()
{
    d.getElementById(this.cid + "_extWA").style.display = "none";
    currRS = null;
}

function startRS(evt)
{
    var ex = (ie5) ? event.clientX + d.body.scrollLeft: evt.pageX;
    var ey = (ie5) ? event.clientY + d.body.scrollTop: evt.pageY;
    rsxoff = parseInt(this.style.left) - ex;
    rsyoff = parseInt(this.style.top) - ey;
    currRS = this;
    if (ns6)
        d.getElementById(this.cid + "_c").style.overflow = 'hidden';
    return false;
}

function changez(v)
{
    var th = (v != null) ? v : this;
    if (oldac != null)
        d.getElementById(oldac.cid + "_t").style.backgroundColor = oldac.inactivecolor;
    if (ns6)
        d.getElementById(th.cid + "_c").style.overflow = 'auto';
    oldac = th;
    d.getElementById(th.cid + "_t").style.backgroundColor = th.activecolor;
    th.style.zIndex = ++zdx;
    d.getElementById(th.cid + "_rs").style.zIndex = ++zdx;
}

function stopdrag()
{
    currIDb = null;
    document.getElementById(this.cid + "_extWA").style.display = "none";
    ns6bugfix();
}

function grab_id(evt)
{
    var ex = (ie5) ? event.clientX + d.body.scrollLeft: evt.pageX;
    var ey = (ie5) ? event.clientY + d.body.scrollTop: evt.pageY;
    xoff = parseInt(d.getElementById(this.cid + "_b").style.left) - ex;
    yoff = parseInt(d.getElementById(this.cid + "_b").style.top) - ey;
    currIDb = d.getElementById(this.cid + "_b");
    d.getElementById(this.cid + "_extWA").style.display = "block";
    return false;
}

function subBox(x, y, w, h, bgc, id)
{
    var v = d.createElement('div');
    v.setAttribute('id', id);
    v.style.position = 'absolute';
    v.style.left = x + 'px';
    v.style.top = y + 'px';
    v.style.width = w + 'px';
    v.style.height = h + 'px';
    if (bgc != '')
        v.style.backgroundColor = bgc;
    v.style.visibility = 'visible';
    v.style.padding = '0px';
    return v;
}

function get_cookie(Name)
{
    var search = Name + "=";
    var returnvalue = "";
    if (d.cookie.length > 0)
    {
        offset = d.cookie.indexOf(search);
        if (offset !=  - 1)
        {
            offset += search.length;
            end = d.cookie.indexOf(";", offset);
            if (end ==  - 1)
                end = d.cookie.length;
            returnvalue = unescape(d.cookie.substring(offset, end));
        }
    }
    return returnvalue
}

function popUp(x, y, w, h, cid, text, bgcolor, textcolor, fontstyleset, title, titlecolor, titletextcolor, bordercolor, scrollcolor, showonstart, isdrag, isresize, oldOK, isExt, popOnce)
{
    var okPopUp = false;
    if (popOnce)
    {
        if (get_cookie(cid) == "")
        {
            okPopUp = true;
            d.cookie = cid + "=yes";
        }
    }
    else
        okPopUp = true;
    if (okPopUp)
    {
        if (w3c)
        {
            cidlist[cidlist.length] = cid;
            w = Math.max(w, 100);
            h = Math.max(h, 80);
            var rdiv = new subBox(w - ((ie5) ? 12 : 8), h - ((ie5) ? 12 : 8), 7, 7, '', cid + '_rs');
            if (isresize)
            {
                rdiv.innerHTML = '<img src="images/resize.gif" width="7" height="7">';
                rdiv.style.cursor = 'move';
            }
            rdiv.rsEnable = isresize;
            var tw = (ie5) ? w : w + 4;
            var th = (ie5) ? h : h + 6;
            var position = (ie5) ? document.body.scrollTop : window.pageYOffset;
            y = y + position;
            var outerdiv = new subBox(x, y, w, h, bordercolor, cid + '_b');
            outerdiv.style.display = "block";
            outerdiv.style.borderStyle = "outset";
            outerdiv.style.borderWidth = "2px";
            outerdiv.style.borderColor = bordercolor;
            outerdiv.style.zIndex = ++zdx;
            tw = (ie5) ? w - 8: w - 5;
            th = (ie5) ? h + 4: h - 4;
            var titlebar = new subBox(2, 2, tw, 20, titlecolor, cid + '_t');
            titlebar.style.overflow = "hidden";
            titlebar.style.cursor = "default";
            var tmp = (isresize) ? '<img src="images/min.gif" width="16" height="16" id="' + cid + '_min"><img src="images/max.gif" width="16" height="16" id="' + cid + '_max">': '';
            titlebar.innerHTML = '<span style= "position:absolute; left:3px; top:1px; font:bold 10pt sans-serif; color:' + titletextcolor + '; height:18px; overflow:hidden; clip-height:16px;">' + title + '</span><div id="' + cid + '_btt" style="position:absolute; width:48px; height:16px; left:' + (tw - 48) + 'px; top:2px; text-align:right">' + tmp + '<img src="images/close.gif" width="16" height="16" id="' + cid + '_cls"></div>';
            tw = (ie5) ? w - 7: w - 13;
            var content = new subBox(2, 24, tw, h - 36, bgcolor, cid + '_c');
            content.style.borderColor = bordercolor;
            content.style.borderWidth = "2px";
            if (isExt)
            {
                content.innerHTML = '<iframe id="' + cid + '_ifrm" src="' + text + '" width="100%" height="100%"></iframe>';
                content.style.overflow = "hidden";
            }
            else
            {
                if (ie5)
                    content.style.scrollbarBaseColor = scrollcolor;
                content.style.borderStyle = "inset";
                content.style.overflow = "auto";
                content.style.padding = "0px 2px 0px 4px";
                content.innerHTML = text;
                content.style.font = fontstyleset;
                content.style.color = textcolor;
            }
            var extWA = new subBox(2, 24, 0, 0, '', cid + '_extWA');
            extWA.style.display = "none";
            extWA.style.width = '100%';
            extWA.style.height = '100%';
            outerdiv.appendChild(titlebar);
            outerdiv.appendChild(content);
            outerdiv.appendChild(extWA);
            outerdiv.appendChild(rdiv);
            d.body.appendChild(outerdiv);
            d.gEl = d.getElementById;
            if (!showonstart)
                hidebox(cid);
            var wB = d.gEl(cid + '_b');
            wB.cid = cid;
            wB.isExt = (isExt) ? true : false;
            var wT = d.gEl(cid + '_t');
            wT.cid = cid;
            if (isresize)
            {
                var wRS = d.gEl(cid + '_rs');
                wRS.cid = cid;
                var wMIN = d.gEl(cid + '_min');
                wMIN.cid = cid;
                var wMAX = d.gEl(cid + '_max');
                wMAX.h = h;
                wMAX.cid = cid;
                wMIN.onclick = minimize;
                wMAX.onclick = restore;
                wRS.onmousedown = startRS;
                wRS.onmouseup = stopRS;
            }
            var wCLS = d.gEl(cid + '_cls');
            var wEXTWA = d.gEl(cid + '_extWA');
            wB.activecolor = titlecolor;
            wB.inactivecolor = scrollcolor;
            if (oldac != null)
                d.gEl(oldac.cid + "_t").style.backgroundColor =
                    oldac.inactivecolor;
            oldac = wB;
            wCLS.onclick = new Function("hidebox('" + cid + "');");
            wB.onmousedown = function()
            {
                changez(this);
            }
            if (isdrag)
            {
                wT.onmousedown = grab_id;
                wT.onmouseup = stopdrag;
            }
        }
        else
        {
            if (oldOK)
            {
                var ctr = new Date();
                ctr = ctr.getTime();
                var t = (isExt) ? text : '';
                var posn = (ns4) ? 'screenX=' + x + ',screenY=' + y: 'left=' + x + ',top=' + y;
                var win = window.open(t, "abc" + ctr, "status=no,menubar=no,width=" + w + ",height=" + h + ",resizable=" + ((isresize) ? "yes" : "no") + ",scrollbars=yes," + posn);
                if (!isExt)
                {
                    t = '<html><head><title>' + title + '</title></head><body bgcolor="' + bgcolor + '"><font style="font:' + fontstyleset + '; color:' + textcolor + '">' + text + '</font></body></html>';
                    win.document.write(t);
                    win.document.close();
                }
            }
        }
    }
}

if (ns6)
    setInterval('movepopup()', 40);
if (w3c)
{
    d.onmousemove = trackmouse;
    d.onmouseup = new Function("currRS=null");
}