
// 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)
// 20100418 zspatko modified: content size is set, 
// tested on Ubuntu with Firefox 3.0.11, on Windows with Netscape 9.0.0.6, Firefox 3.0.10, IE 7
// IE7 has problems with borders


var w3c=(document.getElementById)? true: false;
var ie5=(w3c && document.all)? true : false;
var ns6=(w3c && (navigator.appName=="Netscape"))? true: false;
currIDb=null; xoff=0; yoff=0;
currRS=null; rsxoff=0; rsyoff=0;
oldac=null; newac=null; zdx=1; mx=0; my=0;

var idlist=new Array();
idlist.btns=new Array();
idlist.btns[0]=new Image(); idlist.btns[0].src="../images/min.gif";
idlist.btns[1]=new Image(); idlist.btns[1].src="../images/max.gif";
idlist.btns[2]=new Image(); idlist.btns[2].src="../images/close.gif";
idlist.btns[3]=new Image(); idlist.btns[3].src="../images/resize.gif";


function truebody(){ //Dynamic Drive added function
        return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function hidebox(id){
        if(w3c){
                document.getElementById(id+'_b').style.display='none';
                document.getElementById(id+'_s').style.display='none';
        }
}

function showbox(id){
        if(w3c){
                var bx=document.getElementById(id+'_b').style;
                var sh=document.getElementById(id+'_s').style;
                bx.display='block';
                sh.display='block';
                sh.zIndex=++zdx;
                bx.zIndex=++zdx;
        }
}

function minimize(){
        if(w3c){
                this.IDS[0].style.height=(ie5)? '28px':'24px';
                this.IDS[3].style.height='28px';
                this.IDS[2].style.display='none';
                this.IDS[4].style.display='none';
                setTimeout('ns6bugfix()',100);
        }
}

function restore(){
        if(w3c){
                var h=this.IDS[10];
                this.IDS[0].style.height=h+'px'; //box
                this.IDS[3].style.height=(ie5)? h+'px':h+5+'px'; //shd
                this.IDS[2].style.display='block';
                this.IDS[4].style.display='block'; 
                setTimeout('ns6bugfix()',100);
        }
}

function ns6bugfix(){
        self.resizeBy(0,1);
        self.resizeBy(0,-1);
}

function trackmouse(evt){
        mx=(ie5)?event.clientX+truebody().scrollLeft:evt.pageX;
        my=(ie5)?event.clientY+truebody().scrollTop:evt.pageY;
        if(!ns6)movepopup();
        if((currIDb!=null)||(currRS!=null))return false;
}

function movepopup(){
        if((currIDb!=null)&&w3c){
                var x=mx+xoff;
                var y=my+yoff;
                currIDb.style.left=x+'px';
                currIDs.style.left=x+4+'px';
                currIDb.style.top=y+'px';
                currIDs.style.top=y+4+'px';
        }
        if((currRS!=null)&&w3c){
                var rx=mx+rsxoff;
                var ry=my+rsyoff;
                var c=currRS;
                c.style.left=Math.max(rx,((ie5)?88:92))+'px';
                c.style.top=Math.max(ry,((ie5)?68:72))+'px';
                c.IDS[0].style.width=Math.max(rx+((ie5)?12:8),100)+'px';
                c.IDS[0].style.height=Math.max(ry+((ie5)?12:8),80)+'px';
                c.IDS[1].style.width=Math.max(rx+((ie5)?4:3),((ns6)?95:92))+'px';
                c.IDS[5].style.left=parseInt(c.IDS[1].style.width)-48+'px';
                c.IDS[3].style.width=Math.max(rx+12,((ie5)?100:104))+'px';
                c.IDS[3].style.height=Math.max(ry+((ie5)?12:13),((ie5)?80:86))+'px';
                c.IDS[2].style.width=Math.max(rx-((ie5)?-5:0),((ie5)?92:87))+'px';
                c.IDS[2].style.height=Math.max(ry-((ie5)?24:28),44)+'px';
                c.IDS[10]=parseInt(c.IDS[0].style.height);
        }
}

function startRS(evt){
        var ex=(ie5)?event.clientX+truebody().scrollLeft:evt.pageX;
        var ey=(ie5)?event.clientY+truebody().scrollTop:evt.pageY;
        rsxoff=parseInt(this.style.left)-ex;
        rsyoff=parseInt(this.style.top)-ey;
        currRS=this;
        if(ns6)this.IDS[2].style.overflow='hidden';
        return false;
}

function stopdrag(){
        currIDb=null;
        ns6bugfix();
}

function grab_id(evt){
        var ex=(ie5)?event.clientX+truebody().scrollLeft:evt.pageX;
        var ey=(ie5)?event.clientY+truebody().scrollTop:evt.pageY;
        xoff=parseInt(this.IDS[0].style.left)-ex;
        yoff=parseInt(this.IDS[0].style.top)-ey;
        currIDb=this.IDS[0];
        currIDs=this.IDS[3];
        return false;
}

function subBox(x,y,w,h,bgc,id){
        var v=document.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';
        v.style.backgroundColor=bgc;
        v.style.visibility='visible';
        v.style.padding='0px 0px 0px 0px';
        return v;
}

function get_cookie(Name) {
        var search = Name + "="
        var returnvalue = ""
        if (document.cookie.length > 0) {
                offset = document.cookie.indexOf(search)
                if (offset != -1) {
                        offset += search.length
                        end = document.cookie.indexOf(";", offset)
                        if (end == -1)
                        end = document.cookie.length;
                        returnvalue=unescape(document.cookie.substring(offset, end))
                }
        }
        return returnvalue;
}


function popUp(x,y,w,h,cid,text,bgcolor,textcolor,fontstyleset,title,titlecolor,titletextcolor,bordercolor,scrollcolor,shadowcolor,showonstart,isdrag,isresize,oldOK,POPPERSESSION){
        var proceedtopop=false
        if (POPPERSESSION){
                if (get_cookie(cid)==""){
                        proceedtopop=true
                        document.cookie=cid+"=yes"
                }
        }else{
                proceedtopop=true
        }
        if (proceedtopop){
                if(w3c){
                        var tw, th;
                        w=Math.max(w,100);
                        h=Math.max(h,80);
                        //resize div
                        tw=(ie5)?w-3:w-1;
                        th=h+28;
                        var rdiv=new subBox(tw,th,7,7,'',cid+'_rs');
                        if(isresize){
                                rdiv.innerHTML='<img src="../images/resize.gif" width="7" height="7">';
                                rdiv.style.cursor='move';
                        }
                        //shadow
                        tw=(ie5)?w+12:w+12;
                        th=(ie5)?h+42:h+40;
                        var shadow=new subBox(x+4,y+4,tw,th,shadowcolor,cid+'_s');
                        if(ie5)shadow.style.filter="alpha(opacity=50)";
                        else shadow.style.MozOpacity=.5;
                        shadow.style.zIndex=++zdx;
                        
                        //outer div
                        tw=(ie5)?w+12:w+8;
                        th=(ie5)?h+42:h+36;
                        var outerdiv=new subBox(x,y,tw,th,bordercolor,cid+'_b');
                        outerdiv.style.borderStyle="outset";
                        outerdiv.style.borderWidth="2px";
                        outerdiv.style.borderColor=bordercolor;
                        outerdiv.style.zIndex=++zdx;
                        
                        //titlebar
                        tw=w+4-2;
                        th=20;
                        var titlebar=new subBox(2,2,tw,th,titlecolor,cid+'_t');
                        titlebar.style.overflow="hidden";
                        titlebar.style.cursor="default";
                        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><span id="'+cid+'_btt" style="position:absolute; width:48px; height:16px; left:'+(tw-48)+'px; top:2px;"><img src="../images/min.gif" width="16" height="16" id="'+cid+'_min"><img src="../images/max.gif" width="16" height="16"  id="'+cid+'_max"><img src="../images/close.gif" width="16" height="16" id="'+cid+'_cls"></span>';
                        
                        //content
                        tw=(ie5)?w+4:w;
                        th=(ie5)?h+4:h;
                        var content=new subBox(2,24,tw,th,bgcolor,cid+'_c');
                        content.style.borderColor=bordercolor;
                        content.style.borderStyle="inset";
                        content.style.borderWidth="2px";
                        content.style.overflow="auto";
                        content.style.padding="0px 0px 0px 0px";
                        content.style.font=fontstyleset;
                        content.style.color=textcolor;
                        if(ie5)content.style.scrollbarBaseColor=scrollcolor;
                        content.innerHTML=text;
                        
                        outerdiv.appendChild(titlebar);
                        outerdiv.appendChild(content);
                        outerdiv.appendChild(rdiv);
                        document.body.appendChild(shadow);
                        document.body.appendChild(outerdiv);
                        
                        if(!showonstart)hidebox(cid);
                        var IDS=new Array();
                        IDS[0]=document.getElementById(cid+'_b');
                        IDS[1]=document.getElementById(cid+'_t');
                        IDS[2]=document.getElementById(cid+'_c');
                        IDS[3]=document.getElementById(cid+'_s');
                        IDS[4]=document.getElementById(cid+'_rs');
                        IDS[5]=document.getElementById(cid+'_btt');
                        IDS[6]=document.getElementById(cid+'_min');
                        IDS[7]=document.getElementById(cid+'_max');
                        IDS[8]=document.getElementById(cid+'_cls');
                        IDS[9]=cid;
                        IDS[10]=(ie5)?h+36+6:h+36;
                        this.IDb=IDS[0]; this.IDb.IDS=IDS;
                        this.IDt=IDS[1]; this.IDt.IDS=IDS;
                        this.IDc=IDS[2]; this.IDc.IDS=IDS;
                        this.IDs=IDS[3]; this.IDs.IDS=IDS;
                        this.IDrs=IDS[4]; this.IDrs.IDS=IDS;
                        this.IDbtt=IDS[5]; this.IDbtt.IDS=IDS;
                        this.IDmin=IDS[6]; this.IDmin.IDS=IDS;
                        this.IDmax=IDS[7]; this.IDmax.IDS=IDS;
                        this.IDcls=IDS[8]; this.IDcls.IDS=IDS;
                        this.IDb.activecolor=titlecolor;
                        this.IDb.inactivecolor=scrollcolor;
                        if(oldac!=null)oldac.IDS[1].style.backgroundColor=oldac.inactivecolor;
                        oldac=this.IDb;
                        this.IDcls.onclick=new Function("hidebox('"+cid+"');");
                        if(isresize){
                                this.IDmin.onclick=minimize;
                                this.IDmax.onclick=restore;
                                this.IDrs.onmousedown=startRS;
                                this.IDrs.onmouseup=new Function("currRS=null");
                        }
                        this.IDb.onmousedown=function(){
                           if(oldac!=null){
                                   oldac.IDS[1].style.backgroundColor=oldac.inactivecolor;
                           }
                           if(ns6)this.IDS[2].style.overflow='auto';
                           oldac=this;
                           this.IDS[1].style.backgroundColor=this.activecolor;
                           this.IDS[3].style.zIndex=++zdx;
                           this.style.zIndex=++zdx;
                        }
                        if(isdrag){
                                this.IDt.onmousedown=grab_id;
                                this.IDt.onmouseup=stopdrag;
                        }
                }else{
                        if(oldOK){
                                var ctr=new Date();
                                ctr=ctr.getTime();
                                var win=window.open("" , "abc"+ctr , "status=no,menubar=no,width="+w+",height="+h+",resizable=yes,scrollbars=yes");
                                var 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){
        document.onmousemove=trackmouse;
        document.onmouseup=new Function("currRS=null");
}
 

