
//*** PopUp-Funktion fuer Nowonscreen-Popup ***
PopUp = function(autoapply){
	 this.types = [];
	 this.defaults = {
		 width:800,
		 height:600,
		 top:0,
		 left:0,
		 location:false,
		 resizable:false,
		 scrollbars:false,
		 status:false,
		 toolbar:false,
		 menubar:false,
		 center:true,
		 title:""
 	 }
	 this.addType({
		 name:"standard",
		 location:true,
		 resizable:true,
		 scrollbars:true,
		 status:true,
		 toolbar:true,
		 menubar:true
	 });
 	if(autoapply) this.apply();
}

o = PopUp.prototype;
o.apply = function(){
	 var links = document.getElementsByTagName("a");
	 if(!links) return;
	 for(var i=0;i<links.length;i++){
		 var l = links[i];
		 if(l.className.indexOf("popup") > -1){
			 this.attachBehavior(l,this.getType(l));
 	 	 }
 	 }
}
o.addType = function(type){
 for(var prop in this.defaults){
 	if(type[prop] == undefined) type[prop] = this.defaults[prop];
 }
 this.types[type.name] = type;
}

o.getType = function(l){
 for(var type in this.types){
 	if(l.className.indexOf(type) > -1) return type;
 }
 return "standard";
}
o.attachBehavior = function(l,type){
 var t = this.types[type];
 l.title = t.title;
 l.popupProperties = {
	 type: type,
	 ref: this
 };
 l.onclick = function(){
 	this.popupProperties.ref.open(this.href,this.popupProperties.type);
 	return false;
 }
}

o.booleanToWord = function(bool){
 if(bool) return "yes";
 return "no";
}
o.getTopLeftCentered = function(typeObj){
 var t = typeObj;
 var r = {left:t.left, top:t.top};
 var sh = screen.availHeight-20;
 var sw = screen.availWidth-10;
 if(!sh || !sw) return r;
 r.left = (sw/2)-(t.width/2);
 r.top = (sh/2)-(t.height/2);
 return r;
}
o.getParamsOfType = function(typeObj){
 var t = typeObj;
 var c = this.booleanToWord;
 if(t.center){
	 var tc = this.getTopLeftCentered(typeObj);
	 t.left = tc.left;
	 t.top = tc.top;
 }
 var p = "width="+t.width;
 p+=",height="+t.height;
 p+=",left="+t.left;
 p+=",top="+t.top;
 p+=",location="+c(t.location);
 p+=",resizable="+c(t.resizable);
 p+=",scrollbars="+c(t.scrollbars);
 p+=",status="+c(t.status);
 p+=",toolbar="+c(t.toolbar);
 p+=",menubar="+c(t.menubar);
 return p;
}
o.open = function(url,type){
 if(!type) type = "standard";
 var t = this.types[type];
 var p = this.getParamsOfType(t);
 var w = window.open(url,t.name,p);
 if(w) w.focus();
 return false;
}

window.onload = function(){ // Better use use a modern onDomReady-Event instead
	if(document.getElementById && document.getElementsByTagName){ // Check DOM
		 popup = new PopUp(); // create new PopUp-Instance
		 popup.addType({ // add a additional type with custom Properties
			 name: "nowonscreen",
			 width: 735,
			 height: 575,
			 location:true
		});
		popup.apply();
	 }
 }