// funktion fuer popups
/*
oeffnet neues Fenster, beruecksichtigt URL, Breite, Hoehe, Parameter, X- und Y-Koordinaten, rahmenlos etc.
werden breite, hoehe und schalter nicht angegeben, werden Default-Einstellungen verwendet
default: breite=600, hoehe=400, schalter=resizable,scrollbars,toolbar,menubar,directories,location,hotkeys=no,dependent
aufruf: openPopup("URL","fenstername"[,breite[,hoehe[,schalter[,x-Koordinate, y-Koordinate]]]]);
Beispielaufruf I: "openPopup('anfahrt.html','popup',400,320,'r')" = Fenster 400x320 px oeffnen, nur resizable, ohne scrollers, menu etc.
Beispielaufruf II: "openPopup('anfahrt.html','popup',400,320,'rt',400,200)" = Fenster 400x320 px oeffnen, resizable, mit Toolbar, plazieren bei 400/200
Beispielaufruf III: "openPopup('anfahrt.html')" = fenster 600x400 px oeffnen
von MS, Nov. 1999

*/


var ie = 0;
var agent = navigator.userAgent.toLowerCase();
var isMac = (agent.indexOf('mac') > -1) ? true : false;

if (navigator.appName.indexOf("Explorer") > -1) {
	if (navigator.appVersion.indexOf("MSIE 5") > -1) { ie = 5 }
	else {
		if (navigator.appVersion.indexOf("MSIE 3") > -1) { ie = 3 }
		else {  ie = parseInt(navigator.appVersion.substring(0,1)) }
	}
}
// Liste geoeffneter Popups
var openedPopups = new Array();

// Default-Werte best. Parameter
var defaults = new Array();
defaults['url'] = ""; // Default-URL: leeres fenster (was z.B. mit Javascripts fenster.document.write() gefuellt werden kann
defaults['name'] = "popup"; // Default-Name des Popups
defaults['width'] = 600; // Default-Breite
defaults['height'] = 400; // Default-Hoehe

var temp;

function openpopup (url,name,w,h,switches,x,y) {

	// ++ URL setzen ++
	if (!url) { url = defaults['url'] }


	// ++ Fenstername setzen ++
	if (!name) { name = defaults['name'] }


	// Breite nachbearbeiten
	if (!w) { w = defaults['width'] }
	else { w = parseInt(w) } // in Integer umwandeln
	if (ie && isMac){ w -= 15 } // auf dem Mac zu gross


	// Hoehe nachbearbeiten
	if (!h) { h = defaults['height'] }
	else { h = parseInt(h) } // in Integer umwandeln
//	if (ie && ie < 5) { h -= 20} // der Explorer 4- macht das Fenster zu gross
	if (ie && (ie < 5 || isMac)) { h -= 20} // der Explorer 4- bzw. Mac IE macht das Fenster zu gross


	// Breite und Hoehe nachbearbeiten wenn Vollbildmodus
	if (switches && switches.indexOf("f") > -1 && window.screen) { // wenn Schalter 'f' und screen-Objekt vorhanden
		/*w = "outerWidth=" + window.screen.availWidth;
		h = ",outerHeight=" + window.screen.availHeight; */
		w = window.screen.availWidth;
		h = window.screen.availHeight;
	}


	// Position berechnen
	var xpos; // keine Defaultposition
	var ypos;
	var xInt = parseInt(x); // vermeidet Fehlermeldungen im IE3 wenn x und y nicht gesetzt
	var yInt = parseInt(y);
	if (xInt > -1 && yInt > -1) { // an best. Position x/y (Koordinaten linker oberer Fensterecke)
		xpos = xInt;
		ypos = yInt;
	}
	else {
		if (switches && window.screen) { // wenn Schalter und screen-Objekt vorhanden
			if (switches.indexOf("c") > -1) { // wenn Schalter 'c' = centered
				// Koordinaten fuer bildschirmmittige Positionierung errechnen
				xpos = parseInt((window.screen.availWidth - w)/2);
				ypos = parseInt((window.screen.availHeight - h)/2);
			}
			if (switches.indexOf("f") > -1) { // wenn Schalter 'f' = fullscreen
				xpos = 0;
				ypos = 0;
			}
		}
	}


	// ++ Parameterliste setzen ++ //
	var params = getPopupParams(w,h,switches,xpos,ypos);


	// ++ jetzt geht's los: Popup oeffnen ++
	var newwin;

	// zuerst ggf. noch offenes Popup gleichen Namens schliessen wenn Eintrag und close-Funktion vorhanden und noch offen
	if (openedPopups[name]) {
		if (!openedPopups[name].closed && openedPopups[name].close && !(isMac && ie > 0)) { // does not work properly on Mac/IE
			openedPopups[name].close(); // Popup schliessen
		}
		openedPopups[name] = ""; // Referenz auf jeden Fall loeschen
	}

	// neues Fenster oeffnen
	newwin = window.open(url, name, params);

	// ++ Nachbereitungen ++
	// Wenn der Schalter 'b' (fuer rahmenlose Fenster) angegeben wurde, wurde das Fenster in
	// fullscreen geoeffnet. Jetzt muss anschliessend seine Groesse und Position geaendert werden.
	if (switches && switches.indexOf('b') > -1 && window.moveTo && window.resizeTo && window.focus) { // wenn Schalter 'b' (borderless) sowie Methoden moveTo, resizeTo und focus vorhanden
		// Popup waehrend Groessenaenderung "unsichtbar" machen
		newwin.blur();	// Fenster verlassen
		newwin.opener.focus(); // Herkunftsfenster nach vorne bringen
		// Popup von Fullscreen auf kleinere Groesse setzen
		newwin.resizeTo(w,h)
		newwin.moveTo(xpos,ypos)
	}

	 // wenn focus unterstuetzt wird: Popup nach vorne bringen
	if (window.focus) { newwin.focus() }

	// Popup-Referenz speichern. Wert kann mit getWindow(fenstername) abgefragt werden.
	openedPopups[name] = newwin;

	return false
}

// ende openPopup


function OpenWindow(name, url) {
// fuer external includes
	openpopup (url,name,500,500,'rs');
	return false;
}

function NeuFenster(datei) {
// special function for IQ-Web Knowledge Database
	if (navigator.appName == "Netscape") {
    	SpezFenster = window.open(datei, "Troubleshooting", "hotkeys=no,toolbar=0,menubar=0,resizable=yes,scrollbars=yes,locationbar=no,status=0,width=750,height=530");
		SpezFenster.focus();
    } else {
		SpezFenster = window.open(datei, "Troubleshooting", "hotkeys=no,toolbar=0,menubar=0,resizable=yes,scrollbars=yes,locationbar=no,status=0,width=770,height=550");
	}
}

// funktion fuers automatische schliessen von popups, wenn neue seite geladen wird
/*
Tipp: kann vom onunload-Event im body-tag des Openers aufgerufen werden. Beim Verlassen oder Reload des Dokuments werden alle Popups automatisch geschlossen.
von MS, Nov. 1999
neu seit April 2002 von MS:
- es werden alle in openedPopups gespeicherten Fenster geschlossen (bisher konnte immer nur ein einziges Popup auf sein)
*/

function closePopups () {
	if (ie && ie < 4) {return} // raus wenn IE3, sonst Fehlermeldungen
	if (window.close){ // wenn close-Methode vorhanden
		var popup, win;
		for (popup in openedPopups) {
			win = openedPopups[popup];
			if (win.close && !win.closed) {
				win.close(); // Popup schliessen
				openedPopups[popup] = ""; // Referenz loeschen
			}
		}
	}
}

// ende closePopups


//mk - openpopup - ohne returnwert
function openpopupfromflash (url,name,w,h,switches,x,y) {

	// ++ URL setzen ++
	if (!url) { url = defaults['url'] }


	// ++ Fenstername setzen ++
	if (!name) { name = defaults['name'] }


	// Breite nachbearbeiten
	if (!w) { w = defaults['width'] }
	else { w = parseInt(w) } // in Integer umwandeln
	if (ie && isMac){ w -= 20 } // auf dem Mac zu gross
	if (ie == 5) { w += 20 } // Groessenaenderung rueckgaengig bei IE5


	// Hoehe nachbearbeiten
	if (!h) { h = defaults['height'] }
	else { h = parseInt(h) } // in Integer umwandeln
	if (ie && ie < 5) { h -= 20} // der Explorer 4- macht das Fenster zu gross


	// Breite und Hoehe nachbearbeiten wenn Vollbildmodus
	if (switches && switches.indexOf("f") > -1 && window.screen) { // wenn Schalter 'f' und screen-Objekt vorhanden
		/*w = "outerWidth=" + window.screen.availWidth;
		h = ",outerHeight=" + window.screen.availHeight; */
		w = window.screen.availWidth;
		h = window.screen.availHeight;
	}


	// Position berechnen
	var xpos; // keine Defaultposition
	var ypos;
	var xInt = parseInt(x); // vermeidet Fehlermeldungen im IE3 wenn x und y nicht gesetzt
	var yInt = parseInt(y);
	if (xInt > -1 && yInt > -1) { // an best. Position x/y (Koordinaten linker oberer Fensterecke)
		xpos = xInt;
		ypos = yInt;
	}
	else {
		if (switches && window.screen) { // wenn Schalter und screen-Objekt vorhanden
			if (switches.indexOf("c") > -1) { // wenn Schalter 'c' = centered
				// Koordinaten fuer bildschirmmittige Positionierung errechnen
				xpos = parseInt((window.screen.availWidth - w)/2);
				ypos = parseInt((window.screen.availHeight - h)/2);
			}
			if (switches.indexOf("f") > -1) { // wenn Schalter 'f' = fullscreen
				xpos = 0;
				ypos = 0;
			}
		}
	}


	// ++ Parameterliste setzen ++ //
	var params = getPopupParams(w,h,switches,xpos,ypos);


	// ++ jetzt geht's los: Popup oeffnen ++
	var newwin;
	// zuerst ggf. noch offenes Popup gleichen Namens schliessen
	if (openedPopups[name]) {
		if (!openedPopups[name].closed && openedPopups[name].close && !(isMac && ie > 0)) { // does not work properly on Mac/IE
			openedPopups[name].close(); // Popup schliessen
		}
		openedPopups[name] = ""; // Referenz auf jeden Fall loeschen
	}

	// neues Fenster oeffnen
	newwin = window.open(url, name, params);

	// ++ Nachbereitungen ++
	// Wenn der Schalter 'b' (fuer rahmenlose Fenster) angegeben wurde, wurde das Fenster in
	// fullscreen geoeffnet. Jetzt muss anschliessend seine Groesse und Position geaendert werden.
	if (switches && switches.indexOf('b') > -1 && window.moveTo && window.resizeTo && window.focus) { // wenn Schalter 'b' (borderless) sowie Methoden moveTo, resizeTo und focus vorhanden
		// Popup waehrend Groessenaenderung "unsichtbar" machen
		newwin.blur();	// Fenster verlassen
		newwin.opener.focus(); // Herkunftsfenster nach vorne bringen
		// Popup von Fullscreen auf kleinere Groesse setzen
		newwin.resizeTo(w,h)
		newwin.moveTo(xpos,ypos)
	}

	 // wenn focus unterstuetzt wird: Popup nach vorne bringen
	if (window.focus) { newwin.focus() }

	// Popup-Referenz speichern. Wert kann mit getWindow(fenstername) abgefragt werden.
	openedPopups[name] = newwin;

}

// ende openPopupFlash

// Funktion fuer das Zusammenbasteln der Popup-Parameter
function getPopupParams (w,h,switches,xpos,ypos) {

	// Breite setzen
	var width = "width=" + w;

	// Hoehe setzen
	var height = ",height=" + h;

	// weitere Parameter setzen
	var parent = ""; // z.Zt. nur NN4+
	var dirbar = "";
	var fullscreen = ""; // z.Zt. nur IE3+
	var hotkeys = ""; // z.Zt. nur NN4+
	var locbar = "";
	var menubar = "";
	var resizable = "";
	var scrollbars = "";
	var statusbar = "";
	var toolbar = "";
	if (switches) {
		if (switches.indexOf("p") > -1 ) { parent = ",dependents"	}
		if (switches.indexOf("d") > -1 ) { dirbar = ",directories"	}
		if (switches.indexOf("h") > -1 ) { hotkeys = ",hotkeys=no"	}
		if (switches.indexOf("l") > -1 ) { locbar = ",location"	}
		if (switches.indexOf("m") > -1 ) { menubar = ",menubar"	}
		if (switches.indexOf("r") > -1 ) { resizable = ",resizable"	}
		if (switches.indexOf("s") > -1 ) { scrollbars = ",scrollbars" }
		if (switches.indexOf("u") > -1 ) { statusbar = ",status"	}
		if (switches.indexOf("t") > -1 ) { toolbar = ",toolbar"	}
		if (switches.indexOf("k") > -1 || switches.indexOf("b") > -1 ) { fullscreen = ",fullscreen=1" }
	}

	// Popup-Position (x/y-Koordinate) setzen
	var pos = "";
	var xposInt = parseInt(xpos); // vermeidet Fehlermeldungen im IE3 wenn xpos und ypos nicht gesetzt
	var yposInt = parseInt(ypos);
	if (xposInt > -1 && yposInt > -1) { pos = ",left=" + xposInt + ",top=" + yposInt }

	// Parameterliste zusammensetzen und zureuckgeben
	return width + height + parent + dirbar + hotkeys + locbar + menubar + resizable + scrollbars + statusbar + toolbar + pos + fullscreen;
}
