//
// 2006 by bitart; Author: Alexander Graf
//
// Copyright by bitart - Furch & Graf GbR, Gartenstr. 5 56220 St. Sebastian,
// Germany. All rights reserved.
// Copyright in this software is owned by bitart, unless otherwise indicated.
//
// You are not allowed to distribute this software in any form or use it as
// part of another project without asking the owner for permission to use.
//

var pop_scrW    = null; // screen width
var pop_scrH    = null; // screen height
var pop_addW    = 12;   // window border width (ca.)
var pop_addH    = 38;   // window border height (ca.)
var pop_srlW    = 18;   // scrollbar width (ca.)
var pop_srlH    = 18;   // scrollbar height (ca.)
var pop_extwin  = null;
var pop_extopen = false;
var pop_extfocus= false;

// Function external - url: url of external source
//                     wid, hei: Width / Height of image or window
//                     [mode]: 0 = Normal: wid/hei are image sizes - fit to screen and add scrollbar if necessary
//                             1 = Fixed : wid/hei are window sizes - with auto scrollbar
//                             2 = Fixed : wid/hei are window sizes - without scrollbar
//                             3 = Fixed : wid/hei are window sizes - with scrollbar
//                     [extra]: other than default window arguments
//                     [content]: content html for extra window
//                     [useext]: bool : use existing window
function pop_ext(url,wid,hei)
{
	if (!pop_iok) pop_initBrowser();
	if (screen){
		if (pop_scrW == null) pop_scrW = screen.availWidth;
		if (pop_scrH == null) pop_scrH = screen.availHeight;
	}
	var mode    = ((typeof arguments[3]!='undefined')&&(arguments[3]!==null))?arguments[3]:0;
	var extra   = ((typeof arguments[4]!='undefined')&&(arguments[4]!==null))?arguments[4]:'DEF';
	var content = ((typeof arguments[5]!='undefined')&&(arguments[5]!==null))?arguments[5]:null;
	var useext  = ((typeof arguments[6]!='undefined')&&(arguments[6]!==null))?arguments[6]:false;
	if (extra=='DEF') extra = 'locationbar=no,menubar=no,resizable=yes,status=no'+((useext)?'':',dependent=yes');
	var poppos  = coo_GetCookie('config', 'PopPos');
	var maxW=pop_scrW, maxH=pop_scrH, offX=0, offY=0;
	if (poppos == 'bro'){
		if (pop_ope){
			var maxW=window.top.outerWidth, maxH=window.top.outerHeight; // inner
			var offX=window.top.screenLeft, offY=window.top.screenTop; // inner
		}else if (pop_ns4){
			var maxW=window.top.outerWidth, maxH=window.top.outerHeight; // OK
			var offX=window.top.screenX,    offY=window.top.screenY; // OK
		}else if (pop_moz){
			var maxW=window.top.outerWidth, maxH=window.top.outerHeight; // OK
			var offX=window.top.screenX,    offY=window.top.screenY; // OK nur bei Windows, nicht Linux
		} else if (pop_ie|pop_ie4|pop_ie5){
			var maxW=window.top.document.body.clientWidth, maxH=window.top.document.body.clientHeight; // inner
			var offX=window.top.screenLeft, offY=window.top.screenTop; // inner
		}
	}else if (poppos != 'scr' && poppos.indexOf('x') != -1){
		var wh = poppos.split('x');
		var maxW=parseInt(wh[0]), maxH=parseInt(wh[1]);
		var offX=0, offY=0;
	}
	if (wid<100) wid=100;
	if (hei<100) hei=100;
	if (maxW && maxH){
		if (mode){
			var zoW = wid;
			var zoH = hei;
			var srl = (mode==1)?'auto':(mode==2)?'no':'yes';
		}else{
			if (wid+pop_srlW+pop_addW-1 > maxW){
				var zoW = maxW-pop_addW;
				var zoH = (hei+pop_srlH+pop_addH > maxH)?maxH-pop_addH:hei+pop_srlH;
				var srl = 'yes';
			}else{
				if (hei+pop_addH > maxH){
					var zoW = wid+pop_srlW;
					var zoH = maxH-pop_addH;
					var srl = 'yes';
				}else{
					var zoW = wid;
					var zoH = hei;
					var srl = 'no';
					var extra = extra.replace(/resizable=yes/,'resizable=no');
				}
			}
		}
		var loc = ',left='+(Math.floor((maxW-zoW-pop_addW)/2)+offX)+',top='+(Math.floor((maxH-zoH-pop_addH)/2)+offY);
	}else{
		var zoW = wid;
		var zoH = hei;
		var srl = 'no';
		var loc = '';
	}
	if (pop_extopen){
		if (useext)
			try{
				pop_extwin.focus();
				return false;
			} catch(e) {
				try{
					pop_extwin.pop_shutdown=true;
					pop_extwin.close();
				} catch(e) {}
			}
		else{
			try{
				pop_extwin.pop_shutdown=true;
				pop_extwin.close();
			} catch(e) {}
		}
	}
	pop_extfocus=true;
	var now = new Date();
	pop_extwin=window.open((url==null)?'/fix/empty.html':url,''+now.getTime(),'width='+zoW+',height='+zoH+loc+',scrollbars='+srl+','+extra);
	if (content != null){
		pop_extwin.document.open();
		pop_extwin.document.write(content);
		pop_extwin.document.close();
	}
	return false;
}

// Function extclose: should be called onunload to close external window
function pop_extclose()
{
	if (pop_extopen&&pop_extwin){
		pop_extwin.pop_shutdown=true;
		pop_extwin.close();
	}
}

// Code for external source
// ========================
// <body ... onload="pop_opened()" onunload="pop_closed()"

var pop_shutdown = true;
function pop_opened()
{
	pop_shutdown=false;
	try{opener.pop_extopen=true}catch(e){}
	try{if(opener.pop_extfocus)window.focus()}catch(e){}
	try{opener.pop_extfocus=false}catch(e){}
}

function pop_closed()
{
	if (!pop_shutdown)
		try{opener.pop_extopen=false;opener.pop_extwin=null}catch(e){}
}

function pop_reload()
{
	pop_shutdown = true;
	window.location.reload();
}

//
// Browser Detection
//
var pop_iok = false;
var pop_ie  = false;
var pop_ns4 = false;
var pop_dom = true;
var pop_ie4 = false;
var pop_ie5 = false;
var pop_ope = false; // not used
var pop_moz = false;
var pop_bok = true;

function pop_initBrowser()
{
	pop_ie  = (document.all)?true:false;
	pop_ns4 = (document.layers)?true:false;
	pop_dom = (document.getElementById)?true:false;
	pop_ie4 = (document.all && !pop_dom)?true:false;
	pop_ie5 = (pop_dom && navigator.userAgent.indexOf('MSIE 5')>0);
	pop_ope = (pop_dom && navigator.userAgent.indexOf('Opera')>0);
	pop_moz = (pop_dom && navigator.userAgent.indexOf('Gecko')>0);
	pop_bok = pop_ns4 || pop_ie4 || pop_dom;
	return false;
}

