// 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)

// Globele variables. You can this modify
var imgPath = "img/";	// Path to your images e.g. img/ or ../img/
var minWidth = 100;
var minHeight = 80;
var shadowOffset = 8;
var titleBarHeight = 20;
var shadowOpacity_IE = 50;
var shadowOpacity_NS = .5;
var startZindex = 50;
// End globele variables

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=startZindex; mx=0; my=0;

var idlist=new Array();
idlist.btns=new Array();
idlist.btns[0]=new Image(); idlist.btns[0].src=imgPath+"min.gif";
idlist.btns[1]=new Image(); idlist.btns[1].src=imgPath+"max.gif";
idlist.btns[2]=new Image(); idlist.btns[2].src=imgPath+"close.gif";
idlist.btns[3]=new Image(); idlist.btns[3].src=imgPath+"resize.gif";

function centerbox(id){
if (w3c){
boxW50=parseInt(document.getElementById(id+'_b').style.width) /2;
boxH50=parseInt(document.getElementById(id+'_b').style.height) /2;
winW=(!ie5)?innerWidth:document.body.offsetWidth-20;
winH=(!ie5)?innerHeight:document.body.offsetHeight-6;
winW50=winW/2+document.body.scrollLeft;
winH50=winH/2+document.body.scrollTop;
moveboxto(id, (winW50-boxW50), (winH50-boxH50));
}}

function slide(endX, endY, steps){
//if document.getElementById(id+'_b').style.width
}

function slidebox(id, fromId, startX, startY, endX, endY, time, steps){
if (w3c){
bx=document.getElementById(id+'_b').style.width;
oldZ=bx.zIndex;
bx.zIndex=1;
if (document.getElementById(fromId)){
startX=document.getElementById(fromId).offsetLeft;
startY=document.getElementById('oCMenu_top0').offsetTop;
alert(startY)
return
}
moveboxto(id, startX, startY);
bx.display='block';

}}

function zoomIt(obj){
alert(obj)
i=bx.style.zoom;
if (i<1){
   bx.style.zoom=(i*100+3)/100;
}
else {
clearTimeout(zoom);
bx.style.zoom="";
sh=document.getElementById(obj+'_s').style;
sh.display='block';
sh.zIndex=++zdx;
bx.style.zIndex=++zdx;
}
}

function zoom(id){
bx=document.getElementById(id+'_b');
bx.style.zoom=".2";
bx.style.display='block';
zoom=setInterval('zoomIt(bx)', 10);
}

function hidebox(id){
if(w3c){
document.getElementById(id+'_b').style.display='none';
document.getElementById(id+'_s').style.display='none';
}}

function showbox(id, action, fromId, startX, startY, endX, endY, time, steps){
if(w3c){
var bx=document.getElementById(id+'_b').style;
var sh=document.getElementById(id+'_s').style;
if (action){
switch(action){
case "center" : centerbox(id); break;
case "slide"  : slidebox(id, fromId, startX, startY, endX, endY, time, steps); return;
case "zoom"	  : {zoom(id); return;}
}}
bx.display='block';
sh.display='block';
sh.zIndex=++zdx;
bx.zIndex=++zdx;
}}

function moveboxto(id, x, y){
if(w3c){
document.getElementById(id+'_b').style.left=x+"px";
document.getElementById(id+'_b').style.top=y+"px";
document.getElementById(id+'_s').style.left=x+shadowOffset+"px";
document.getElementById(id+'_s').style.top=y+shadowOffset+"px";
}}

function minimize(){
if(w3c){
this.IDS[0].style.height=(ie5)? '28px':'24px';	//box
this.IDS[3].style.height='28px';	//shadow
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'; //shadow
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+document.body.scrollLeft:evt.pageX;
my=(ie5)?event.clientY+document.body.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+shadowOffset+'px';
currIDb.style.top=y+'px';
currIDs.style.top=y+shadowOffset+'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:5),((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+document.body.scrollLeft:evt.pageX;
var ey=(ie5)?event.clientY+document.body.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+document.body.scrollLeft:evt.pageX;
var ey=(ie5)?event.clientY+document.body.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,filter){
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';
if (filter && ie5)
   v.style.filter='progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr="' +'#1E9964'+ '", EndColorStr="#CAE7CB")';
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,minWidth);
h=Math.max(h,minHeight);

// Footer - Div
var rdiv=new subBox(w-((ie5)?12:8),h-((ie5)?12:8),7,7,'',cid+'_rs');
if(isresize){
	rdiv.innerHTML='<img src="' + imgPath + 'resize.gif" width="7" height="7">';
	rdiv.style.cursor='nw-resize';
}

// Shadow - Div
tw=(ie5)?w:w+4;
th=(ie5)?h:h+6;
var shadow=new subBox(x+shadowOffset,y+shadowOffset,tw,th,shadowcolor,cid+'_s');
if(ie5)shadow.style.filter="alpha(opacity=" + shadowOpacity_IE + ")";
else shadow.style.MozOpacity=shadowOpacity_NS;
shadow.style.zIndex=++zdx;

// Mainbox - Div
var tw,th;
var outerdiv=new subBox(x,y,w,h,bordercolor,cid+'_b');
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;

// Titlebar - Div
var titlebar=new subBox(2,2,tw,titleBarHeight,titlecolor,cid+'_t',1);
titlebar.style.overflow="hidden";
titlebar.style.cursor="default";
t1='<span style="position:absolute; left:3px; top:1px; font:bold 10pt sans-serif; color:' + titletextcolor;
t1+='; height:' + (titleBarHeight-2) + 'px; overflow:hidden; clip-height:16px;">' + title + '</span>';
t1+='<span id="' + cid + '_btt" style="position:absolute; width:' + ((isresize)?48:16) + 'px; height:16px; left:' + (tw-((isresize)?48:16)) + 'px; top:2px;">';
if (isresize){
   t1+='<img src="' + imgPath + 'min.gif" width="16" height="16" id="' + cid + '_min" title="Minimieren">';
   t1+='<img src="' + imgPath + 'max.gif" width="16" height="16"  id="' + cid + '_max" title="Maximieren">';
}
t1+='<img src="' + imgPath + 'close.gif" width="16" height="16" id="' + cid + '_cls" title="Schließen"></span>';
titlebar.innerHTML = t1;

tw=(ie5)?w-7:w-13;
th=(ie5)?h-36:h-36;
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 2px 0px 4px";
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');
if (isresize){
   IDS[6]=document.getElementById(cid+'_min');
   IDS[7]=document.getElementById(cid+'_max');
}
IDS[8]=document.getElementById(cid+'_cls');
IDS[9]=cid;
IDS[10]=h;
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;
if (isresize){
   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{	//not W3C
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");
}
 
