/* charset-encoding="UTF-8" */

/**
 * [26.07.2007] alice distinct-Parameter beim Aufruf von "ueber.ausw"  hinzugefügt
 * [27.08.2007] alice Einige distinct-Parameter wieder entfernt, die im weiteren Verlauf nicht berücksichtigt wurden
 * [27.08.2007] alice Diverse unnötige Variablendeklarationen beseitigt à la "var tab_field = tab_field;"
 * [28.11.2007] lorenz openPopup() ergänzt
 * [08.06.2008] alice Wenn distinct fehlt, dann wird jetzt "0" verwendet und nicht "Undefined"
 * [22.05.2009] lorenz openUebernahmePopup() prüft, ob der Fenstername bereits im aktuellen Fenster verwendet wird
 * [22.09.2009]	wettemann Änderung in openFileDocAtt - undefined disable_sperrverm Parameter wird zu leer umgesetzt.
 * [02.11.2010] wettemann where Parameter für openUebernahmeAkte ergänzt.
 * [23.05.2011] alice openUebernahmePopup() "window.parent" prüfen, weil eventuell ein Wechsel von http nach https (im Iframe) geblockt werden könnte
 * [07.07.2011] lo: Namespace-Deklaration für persis.require() ergänzt (persis.old_scripts.uebernahme_js).
 * [24.04.2012] mj: Anlegen der Funktion openFileDocTab.
 * [06.11.2015] rj: function openServerFile, var wndUrl, ";" beim "back"-Parameter entfernt
 * [23.11.2015] ah: openUbernameAkte um den Parameter "allow_clear" erweitert.
 */

/**
 * Namespace-Deklaration für persis.require()
 */
if(typeof persis != 'undefined') {
	persis.old_scripts = persis.old_scripts || {};
	persis.old_scripts.uebernahme_js = true;
}

/* Funktion zur Übernahme von Werten
Parameter:
form   - Name des Formulars
field1 - Name des 1. Feldes im Formular
field2 - Name des 2. Feldes im Formular
tab    - Name der Stammtabelle
tab_field1 - Name der zum 1. Feld gehörenden Stammtabllenspalte
tab_field2 - Name der zum 2. Feld gehörenden Stammtabllenspalte
 */
// ein Wert
function openUebernahme(form, field1, tab, tab_field1, write_access, ref_field, distinct) {
    //var searchvalue = document.forms[form].elements[field1].value;
    var searchvalue = '';
    var width = 600;
    var height = 500;
    var left = screen.width / 2 - 200;
    var top = screen.height / 2 - 250;

	var tab_para = tab.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	if (typeof distinct ==  "undefined")
			distinct = "0";

	var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&anz=1&searchvalue=" + searchvalue + "&dest_form=" + form + "&dest_field1=" + field1 + "&tab=" + tab + "&tab_field1=" + tab_field1 + "&write_access=" + write_access + "&ref_field=" + ref_field + "&distinct=" + distinct;
    var wnd = window.open(frameURL, "Einfachuebernahme" + tab_para, windParam);
    wnd.focus();
}
// zwei Werte
function openUebernahme2(form, field1, field2, tab, tab_field1, tab_field2, write_access, ref_field, callback, distinct) {
    //var searchvalue = document.forms[form].elements[field1].value;
    var searchvalue = '';
    var width = 600;
    var height = 500;
    var left = screen.width / 2 - 200;
    var top = screen.height / 2 - 250;

	var tab_para = tab.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	if (typeof distinct ==  "undefined")
			distinct = "0";

	var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&anz=2&searchvalue=" + searchvalue + "&searchfield=" + tab_field1 + "&dest_form=" + form + "&dest_field1=" + field1 + "&dest_field2=" + field2 + "&tab=" + tab + "&tab_field1=" + tab_field1 + "&tab_field2=" + tab_field2 + "&write_access=" + write_access + "&ref_field=" + ref_field + "&callback=" + callback + "&distinct=" + distinct;
    var wnd = window.open(frameURL, "Uebernahme2" + tab_para, windParam);
    wnd.focus();
}
/* Funktion zur Übernahme von Werten
Parameter:
form   		 - Name des Formulars
field1 		 - Name des 1. Feldes im Formular
tab    		 - Name der Stammtabelle
tab_field1   - Name der zum 1. Feld gehörenden Stammtabllenspalte
write_access -
ref_field	 - Name des Feldes im Formular (nimmt MA_REFNR oder VGMA_REFNR usw. auf; normalerweise hidden)
Beispiel:
<a title="Übernahme öffnen" persis-id="12540">
<xsl:attribute name="href">
<![CDATA[ javascript:openUebernahmeWhere('form', 'BEZ', 'ST_SEMBEZ', 'BEZ', '0', 'REFNR', ']]><xsl:value-of select="ipersis:baseEncode($where)" /><![CDATA['); ]]></xsl:attribute>
</xsl:attribute>
<img src="images/popup.gif" border="0" align="absmiddle" />
</a>
Zuvor muss noch die Variable die im Aufruflink verwendet, deklariert werden.
<xsl:variable name="where">HIER DANN DIE WHERE BEDINUNGEN OHNE AND z.B BEZ in (select BEZ from SEM where INET = '1')</xsl:variable>
<xsl:variable name="enc_where"><xsl:value-of select="ipersis:baseEncode($where)" /></xsl:variable>
 */
function openUebernahmeWhere(form, field1, tab, tab_field1, write_access, ref_field, where, distinct) {
    //var searchvalue = document.forms[form].elements[field1].value;
    var searchvalue = '';
    var width = 600;
    var height = 500;
    var left = screen.width / 2 - 200;
    var top = screen.height / 2 - 250;

	var tab_para = tab.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	if (typeof distinct ==  "undefined")
			distinct = "0";

    var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&mode=where1&where=" + where + "&searchvalue=" + searchvalue + "&dest_form=" + form + "&dest_field1=" + field1 + "&tab=" + tab + "&tab_field1=" + tab_field1 + "&write_access=" + write_access + "&ref_field=" + ref_field + "&distinct=" + distinct;
    var wnd = window.open(frameURL, "EinfachuebernameWhere" + tab_para, windParam);
    wnd.focus();
}
/* Funktion zur Übernahme von Werten
Parameter:
form   		 - Name des Formulars
field1 		 - Name des 1. Feldes im Formular
tab    		 - Name der Stammtabelle
tab_field1   - Name der zum 1. Feld gehörenden Stammtabllenspalte
write_access -
ref_field	 - Name des Feldes im Formular (nimmt MA_REFNR oder VGMA_REFNR usw. auf; normalerweise hidden)
Beispiel:
<a title="Übernahme öffnen" persis-id="12540">
<xsl:attribute name="href">
<![CDATA[ javascript:openUebernahmeWhere('form', 'BEZ', 'ST_SEMBEZ', 'BEZ', '0', 'REFNR', ']]><xsl:value-of select="ipersis:baseEncode($where)" /><![CDATA['); ]]></xsl:attribute>
</xsl:attribute>
<img src="images/popup.gif" border="0" align="absmiddle" />
</a>
Zuvor muss noch die Variable die im Aufruflink verwendet, deklariert werden.
<xsl:variable name="where">HIER DANN DIE WHERE BEDINUNGEN OHNE AND z.B BEZ in (select BEZ from SEM where INET = '1')</xsl:variable>
<xsl:variable name="enc_where"><xsl:value-of select="ipersis:baseEncode($where)" /></xsl:variable>
 */
function openUebernahme2Where(form, field1, field2, tab, tab_field1, tab_field2, write_access, ref_field, where, callback, distinct) {
   //var searchvalue = document.forms[form].elements[field1].value;
    var searchvalue = '';
    var width = 600;
    var height = 500;
    var left = screen.width / 2 - 200;
    var top = screen.height / 2 - 250;

	var tab_para = tab.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	if (typeof distinct ==  "undefined")
			distinct = "0";
    var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,resizable=yes";
	var frameURL = "main?fn=ueber.ausw&mode=where2&where=" + where + "&searchvalue=" + searchvalue + "&dest_form=" + form + "&dest_field1=" + field1 + "&dest_field2=" + field2 + "&tab=" + tab + "&tab_field1=" + tab_field1 + "&tab_field2=" + tab_field2 + "&write_access=" + write_access + "&ref_field=" + ref_field + "&callback=" + callback + "&distinct=" + distinct;
    var wnd = window.open(frameURL, "Uebernahme2Where" + tab_para, windParam);
    wnd.focus();
}
/* Funktion zur Übernahme von mehreren Werten
	PARAMETER:
form			- Name des Formulars
tab		 	- Name der Stammtabelle
write_access	- 0,1,2 = ?
- 3 = Blendet Add/Edit/Del-Icons aus
ref_field		- Name des Feldes im Formular (nimmt MA_REFNR oder VGMA_REFNR usw. auf; normalerweise hidden)
zaehler 		- Anzahl wie oft eine Scheife durchlaufen soll. (Genauers weiter unten)
field  			- Übergabewert einer internen Seitenbezogenen Variable mit Formularfeldern
tab_field		- Übergabewert einer internen Seitenbezogenen Variable mit Formularfeldern
tab_field_art	- Übergabewert von Typen wie Checkbox z.B.
callback		- Funktionsname der Callbackfunktion, welche nach der Übernahme aufgerufen wird und Callback-Funktionalität ausführt
zaehler 		- Spaltenanzahl - 1 = zaehleranzahl (Bsp: 4 Spalten - 1 = 3) somit wird die Schleife 3x durchlaufen.
werk_templ 		- Die Einbindung des Werk-Templates wird aktiviert mit 1
templ_typ 		- value 'ma' = ma_search/werk oder value 'bvw' = bvw_search/werk

Beispiel:
<a title="Übernahme öffnen" persis-id="12540">
<xsl:attribute name="href">
<![CDATA[ javascript:openUebernahmeX('form', 'ST_UNF_BG', '0', 'REFNR', '3', ]]><xsl:value-of select="ipersis:baseEncode($VARIABLENNAME DER FELDER)" /><![CDATA[', ']]><xsl:value-of select="ipersis:baseEncode($VARIABLENNAME DER TABELLENSPALTEN)" /><![CDATA['); ]]>
</xsl:attribute>
<img src="images/menu_grp.gif" border="0" align="absmiddle"/>
</a>
Zuvor müssen noch Variablen die im Aufruflink verwendet werden, deklariert werden.
<xsl:variable name="VARIABLENNAME DER FELDER">&amp;destField0=FELD_A&amp;destField1=FELD_B&amp;destField2=FELD_C&amp;destField3=FELD_D</xsl:variable>
<xsl:variable name="VARIABLENNAME DER TABELLENSPALTEN">&amp;tabField0=NAME || ', ' || VNAME as NAME&amp;tabField1=PNR&amp;tabField2=ANSCHDPLZ&amp;tabField3=ANSCHDORT</xsl:variable>
Zusätzlich kann man auch der Variablen für die Tabellenspalten noch die Parameter tabTyp10=CHECK&amp;tabTyp14=CHECK anhängen, wenn es ich um eine Checkbox handelt und diese angehackt oder ausgehackt werden soll.
Bisher mögliche Typen:	CHECK = Checkbox
Die FELDNAME, sowie die SPALTENNAMEN müssen nach einem HTML-UND "&amp;" und der Feldposition (tabField0..., destField0...) hintereinander geschrieben werden

 */
function openUebernahmeX(form, tab, write_access, ref_field, zaehler, field, tab_field, tab_field_art, callback, distinct, werk_templ, templ_typ) {
    //var field = field;
    //var tab_field = tab_field;
    //var tab_field_art = tab_field_art;
    //var callback = callback;
    if(typeof tab_field_art == 'undefined') {
        tab_field_art = '';
    }
    if(typeof callback == 'undefined') {
        callback = '';
    }

		if (typeof distinct ==  "undefined")
			distinct = "0";

    //var zaehler = zaehler;
    var searchvalue = '';
    var searchfield = '';
    var width = screen.width * 0.75;
    var height = screen.height * 0.75;
    var left = screen.width / 8;
    var top = screen.height / 8;

	var tab_para = tab.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,status=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&action=x_uebernahme_enc" + "&searchvalue=" + searchvalue + "&searchfield=" + searchfield + "&zaehler=" + zaehler + "&dest_form=" + form + "&tab=" + tab + "&write_access=" + write_access + "&ref_field=" + ref_field + "&field=" + field + "&tab_field=" + tab_field + "&tab_field_art=" + tab_field_art + "&callback=" + callback + "&distinct=" + distinct + "&werk_templ=" +werk_templ + "&templ_typ=" +templ_typ;
    var wnd = window.open(frameURL, "Mehrfachübernahme" + tab_para, windParam);
    if(wnd) wnd.focus();
}
/*Soll im Moment nur Anforderungen aus der Stammtabelle ST_STLANFO als Anforderungen einer Stelle abspeichern.*/
function openInsertStammdatenX(zieltab, zielref, zielfelder, zaehler, quelltab, quellref, quellfelder, write_access) {
    //var zieltab = zieltab;
    //var quelltab = quelltab;
    //var zielref = zielref;
    //var quellref = quellref;
    //var zielfelder = zielfelder;
    //var quellfelder = quellfelder;
    //var zaehler = zaehler;
    //var write_access = write_access;
    var width = screen.width * 0.75;
    var height = screen.height * 0.75;
    var left = screen.width / 8;
    var top = screen.height / 8;

	var tab_para = quelltab.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,status=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&action=x_insertStammdaten" + "&zieltab=" + zieltab + "&zielref=" + zielref + "&zielfelder=" + zielfelder + "&zaehler=" + zaehler + "&quelltab=" + quelltab + "&quellref=" + quellref + "&quellfelder=" + quellfelder + "&write_access=" + write_access;
    var wnd = window.open(frameURL, "SpeichernStammdaten" + tab_para, windParam);
    wnd.focus();
}


/**********************************************************************************************************************************************/
function openUebernahmeXWhere(form, tab, write_access, ref_field, zaehler, field, tab_field, where, tab_field_art, callback, distinct, werk_templ, templ_typ) {
    //var field = field;
    //var tab_field = tab_field;
    //var tab_field_art = tab_field_art;
    //var callback = callback;
    //var where = where;
	//werk_templ = Die Einbindung des Werk-Templates wird aktiviert mit 1
	//templ_typ = value 'ma' = ma_search/werk oder value 'bvw' = bvw_search/werk

    if(typeof tab_field_art == 'undefined') {
        tab_field_art = '';
    }
    if(typeof callback == 'undefined') {
        callback = '';
    }

	if (typeof distinct ==  "undefined")
			distinct = "0";

	//var zaehler = zaehler;
    var searchvalue = '';
    var searchfield = '';
    var width = screen.width * 0.75;
    var height = screen.height * 0.75;
    var left = screen.width / 8;
    var top = screen.height / 8;

	var tab_para = tab.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,status=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&action=x_uebernahme_enc" + "&searchvalue=" + searchvalue + "&searchfield=" + searchfield + "&zaehler=" + zaehler + "&dest_form=" + form + "&tab=" + tab + "&write_access=" + write_access + "&ref_field=" + ref_field + "&field=" + field + "&tab_field=" + tab_field + "&where=" + where + "&tab_field_art=" + tab_field_art + "&callback=" + callback + "&distinct=" + distinct + "&werk_templ=" +werk_templ + "&templ_typ=" +templ_typ;
    var wnd = window.open(frameURL, "MehrfachübernahmeWhere" + tab_para, windParam);
    wnd.focus();
}
// zwei Stammtabellen
// Parameter feld muss '1' sein, soll in field3 der Wert aus tab2.tab2_field2 übernommen werden
function openUebernahmeTwoTab(form, field1, field2, field3, tab1, tab1_field1, tab2, tab2_field1, tab2_field2, tab1_ref_field, tab2_ref_field, tab1_vkn_field, tab2_vkn_field, feld) {
    //var searchvalue1 = document.forms[form].elements[field1].value;
    //var searchvalue2 = document.forms[form].elements[field2].value;
    var searchvalue1 = '';
    var searchvalue2 = '';
    var width = 800;
    var height = 500;
    var left = screen.width / 2 - 350;
    var top = screen.height / 2 - 250;

	var tab_para = tab1.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

	var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,resizable=yes";
    var frameURL = "?fn=ueber.twotab&anz=2&searchvalue1=" + searchvalue1 + "&searchvalue2=" + searchvalue2 + "&searchfield=" + tab1_field1 + "&dest_form=" + form + "&dest_field1=" + field1 + "&dest_field2=" + field2 + "&dest_field3=" + field3 + "&tab1=" + tab1 + "&tab2=" + tab2 + "&tab1_field1=" + tab1_field1 + "&tab2_field1=" + tab2_field1 + "&tab2_field2=" + tab2_field2 + "&tab1_ref_field=" + tab1_ref_field + "&tab2_ref_field=" + tab2_ref_field + "&tab1_vkn_field=" + tab1_vkn_field + "&tab2_vkn_field=" + tab2_vkn_field + "&feld=" + feld;
    //alert(frameURL);
    var wnd = window.open(frameURL, "Uebernahme2Datenbanktabellen" + tab_para, windParam);
    wnd.focus();
}
// zwei Stammtabellen mit WHERE-BEDINGUNG
//Wenn zu tab1_field1 ein Feld tab1_field1_REFNR existiert, wird die Verknüpfungs-REFNR dort hineingeschrieben. z.B. ANTWORTTYP und ANTWORTTYP_REFNR
function openUebernahmeTwoTabWhere(form, field1, field2, field3, tab1, tab1_field1, tab2, tab2_field1, tab2_field2, tab1_ref_field, tab2_ref_field, tab1_vkn_field, tab2_vkn_field, feld, where) {
    //var searchvalue1 = document.forms[form].elements[field1].value;
    //var searchvalue2 = document.forms[form].elements[field2].value;
    var searchvalue1 = '';
    var searchvalue2 = '';
    var width = 800;
    var height = 500;
    var left = screen.width / 2 - 350;
    var top = screen.height / 2 - 250;

	var tab_para = tab1.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

    var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,resizable=yes";
    var frameURL = "?fn=ueber.twotab&anz=2&searchvalue1=" + searchvalue1 + "&searchvalue2=" + searchvalue2 + "&searchfield=" + tab1_field1 + "&dest_form=" + form + "&dest_field1=" + field1 + "&dest_field2=" + field2 + "&dest_field3=" + field3 + "&tab1=" + tab1 + "&tab2=" + tab2 + "&tab1_field1=" + tab1_field1 + "&tab2_field1=" + tab2_field1 + "&tab2_field2=" + tab2_field2 + "&tab1_ref_field=" + tab1_ref_field + "&tab2_ref_field=" + tab2_ref_field + "&tab1_vkn_field=" + tab1_vkn_field + "&tab2_vkn_field=" + tab2_vkn_field + "&feld=" + feld + "&where=" + where;
    //alert(frameURL);
    var wnd = window.open(frameURL, "Uebernahme2DatenbanktabellenWhere" + tab_para, windParam);
    wnd.focus();
}

/*#################################################################################*/
/* Funktion für die Auswahl und Übernahme von Stammdaten des Aktenregisters
 * Parameter:
 * destFieldAkteTypKbez:		Zu setzendes Zielfeld für die Kbez des Aktentyp
 * destFieldAkteTypRegKbez:		Zu setzendes Zielfeld für die Kbez des Aktenregisters
 * akteModul:					Übergabe des Aktenmoduls (ST_AKTE_TYP.MODUL) für die Limitierung des anzuzeigenden Aktentyps
 * akteModulAlias:				Übergabe des Aktenmodulalias (ST_AKTE_TYP.MOD_ALIAS) für die Limitierung des anzuzeigenden Aktentyps
 * akteTyp:						Übergabe des Aktentyps (ST_AKTE_TYP.KBEZ) für die Limitierung des anzuzeigenden Aktentyps (optional)
 * mandant:						Übergabe des Mandanten (ST_AKTE_TYP.MANDANT) für die Limitierung des anzuzeigenden Aktentyps (optional)
 * akteTypKbez:					Wert für Aktetyp zu dem der Pfad geöffnet werden soll (optional)
 * akteTypRegKbez:				Wert für die Kurzbezeichnung des AktetypRegisters zu dem der Pfad geöffnet werden soll (optional)
 * akteTypRegBez:				Wert für die Bezeichnung des AktetypRegisters zu dem der Pfad geöffnet werden soll (optional)
 * callback:					Callback Funktion
 * where:						where clause
 * allow_clear:                 Löschen des Zielfeldes
 */
function openUebernahmeAkte(form, destFieldAkteTypKbez, destFieldAkteTypRegKbez, akteModul, akteModulAlias, akteTyp, mandant, akteTypKbez, akteTypRegKbez, akteTypRegBez, callback, where, allow_clear)
{
	var width = 400;
    var height = 800;
    var left = screen.width / 2 - 350;
    var top = screen.height / 2 - 250;

    var windParam = "width=" + width + ",height=" +height +",left=" +left+ ",top="+ top +",scrollbars=yes,status=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&action=akte_uebernahme" + "&destForm=" + form + "&destFieldAkteTypKbez=" + destFieldAkteTypKbez + "&destFieldAkteTypRegKbez=" + destFieldAkteTypRegKbez + "&akteModul=" + baseEncode(akteModul) + "&akteModulAlias=" + baseEncode(akteModulAlias) + "&akteTyp=" + baseEncode(akteTyp) + "&mandant=" + baseEncode(mandant) + "&searchValueAkteTypKbez=" + akteTypKbez + "&searchValueAkteTypRegKbez=" + akteTypRegKbez + "&searchValueAkteTypRegBez=" + akteTypRegBez + "&allow_clear="+ allow_clear + "&callback=" + callback + (where?"&where="+where:"");

    popupWindow(frameURL, 'Aktenregisterauswahl', windParam, 'DEFAULT', 0);
}

/*#################################################################################*/
/* Funktion die bei der Übernahme von übersetzten Einträgen eventuelle Änderungen nach der Übernahme
im zugehörigen HIDDEN-Feld anpasst.
 */
function onChangeTrans(feld, form) {
    var FELD_TRANS = feld + '_TRANS';
    var WERT = getFieldValue(form, FELD_TRANS);
    getElement(form, feld).value = WERT;
}
/*#################################################################################*/
/*
' Funktion zur Auswahl/Übernahme von Mitarbeitern
' Parameter:
' formName        Name des Formulars
' refnrFieldName  Name des Feldes im Formular (nimmt MA_REFNR auf; normalerweise hidden)
' nameFieldName   Name des Feldes im Formular (nimmt Name auf; normalerweise nicht editierbar
'                 und wird nicht gespeichert)
' searchParams    Parameter, die an die ma_search-Seite übergeben werden (die Parameter müssen
'                 URL-Codiert sein)
' idx						Index des Feldes bei mehreren gleichnamigen Feldern (optional)
' mod						entscheidet welche Seitendefination anschliesend aufgerufen werden soll.
'							Bisher wird "MA" und "login" verwendet. Sollte kein mod angegeben werden wird automatisch MA genommen.
' Beispiel:
'  openMAUebernahme_i('formular', 'MA_REFNR', 'MA_NAME', 'aktiv~1@ausser~123456', 1);
 */
function openMAUebernahme(formName, refnrFieldName, nameFieldName, searchParams, idx, mod) {
    var width = 580;
    var height = 500;
    var left = screen.width - width - 100;
    var top = screen.height - height - 200;
    if(typeof idx == "undefined" || idx == "") {
        idx = -1;
    }
    if(typeof mod == "undefined") {
        mod = "MA";
    }
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&mode=" + mod + "&search_params=" + searchParams + "&dest_form=" + formName + "&dest_field1=" + refnrFieldName + "&dest_field2=" + nameFieldName + "&idx=" + idx;
    var wnd = window.open(frameURL, "Mitarbeiteruebername" + nameFieldName, windParam);
    wnd.focus();
}
/*
' Funktion zur Auswahl/Übernahme von Mitarbeitern
' Parameter:
' formName        Name des Formulars
' refnrFieldName  Name des Feldes im Formular (nimmt MA_REFNR auf; normalerweise hidden)
' nameFieldName   Name des Feldes im Formular (nimmt Name auf; normalerweise nicht editierbar
'                 und wird nicht gespeichert)
' searchParams    Parameter, die an die ma_search-Seite übergeben werden (die Parameter müssen
'                 URL-Codiert sein)
' Beispiel:
'  openMAUebernahme('formular', 'MA_REFNR', 'MA_NAME', 'aktiv~1@ausser~123456');
 */
function openMAUebernahme2(formName, refnrFieldName, refnrTableName, ctrlType, nameFieldName, searchParams) {
    var width = 550;
    var height = 500;
    var left = screen.width - width - 100;
    var top = screen.height - height - 200;

	var tab_para = refnrTableName.replace(/{/g, "");
	tab_para = tab_para.replace(/§/g, "");
	tab_para = tab_para.replace(/}/g, "");
	tab_para = tab_para.replace(/\./g, "_");

    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&mode=MA&search_params=" + searchParams + "&dest_form=" + formName + "&dest_field1=" + refnrFieldName + "&dest_field2=" + nameFieldName + "&ctrlType=" + ctrlType + "&sourceField=" + refnrFieldName + "&sourceTable=" + refnrTableName;
    var wnd = window.open(frameURL, "Mitarbeiteruebername2" + tab_para, windParam);
    wnd.focus();
}
/*
' Funktion zur Auswahl/Übernahme von Personalnummer eines Mitarbeiters
' Eine Anmeldung ist hierfür nicht erforderlich
' Parameter:
' formName        Name des Formulars
' refnrFieldName  Name des Feldes im Formular (nimmt MA_REFNR auf; normalerweise hidden)
' nameFieldName   Name des Feldes im Formular (nimmt Name auf; normalerweise nicht editierbar
'                 und wird nicht gespeichert)
' searchParams    Parameter, die an die ma_search-Seite übergeben werden (die Parameter müssen
'                 URL-Codiert sein)
' idx						Index des Feldes bei mehreren gleichnamigen Feldern (optional)
' Beispiel:
'  openMAUebernahme_i('formular', 'MA_REFNR', 'MA_NAME', 'aktiv~1@ausser~123456', 1);
 */
/*function openMAUebernahme3(formName, refnrFieldName, nameFieldName, searchParams, idx, mod) {
var width = 550;
var height = 500;
var left = screen.width - width - 100;
var top = screen.height - height - 200;
if(typeof idx == "undefined" || idx =="") {
idx = -1;
}
if(typeof mod == "undefined") {
mod = "MA";
}
var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
var frameURL = "main?fn=ueber.ausw&mode=" + mod + "&search_params=" + searchParams + "&dest_form=" + formName +
"&dest_field1=" + refnrFieldName + "&dest_field2=" + nameFieldName + "&idx=" + idx;
var wnd = window.open(frameURL, "uebernahme", windParam);
wnd.focus();
}
 */
/* Funktion zur Übernahme von mehreren Werten
Parameter:
form       		- Name des Formulars
refnrFieldName  - Name der Felder im Formular (nimmt als erstes MA_REFNR auf; normalerweise hidden (DUMMY))
im Anschluss weitere MA Felder auf;
searchParams	- Parameter, die an die ma_search-Seite übergeben werden (die Parameter müssen
URL-Codiert sein)
field  	   		- Übergabewert einer internen Seitenbezogenen Variable mit Formularfeldern
tab_field  		- Übergabewert einer internen Seitenbezogenen Variable mit Formularfeldern
Beispiel:
<a title="Übernahme öffnen" persis-id="12540">
<xsl:attribute name="href">
<![CDATA[ javascript:openMAUebernahmeX('form', 'REFNR', 'aktiv~1@ausser~-1â€™,']]><xsl:value-of select="ipersis:baseEncode($VARIABLENNAME DER FELDER)" /><![CDATA[', ']]><xsl:value-of select="ipersis:baseEncode($VARIABLENNAME DER TABELLENSPALTEN)" /><![CDATA['); ]]>
</xsl:attribute>
<img src="images/menu_grp.gif" border="0" align="absmiddle"/>
</a>
Zuvor müssen noch Variablen die im Aufruflink verwendet, deklariert werden.
<xsl:variable name="VARIABLENNAME DER FELDER">FELD_A;FELD_B;FELD_C_FELD_D;FELD_E</xsl:variable>
<xsl:variable name="VARIABLENNAME DER TABELLENSPALTEN">NAME || ', ' || VNAME as NAME;PNR;ANSCHDPLZ;ANSCHDORT</xsl:variable>
Es müssen also die FELDNAME mit Semikolon getrennt hintereinander geschrieben werden, sowie auch die SPALTENNAMEN.
 */
function openMAUebernahmeX(form, refnrFieldName, searchParams, feldListe, dbListe) {
    var URLdb = '';
    var zaehler = '';
    var ctrlType = 'INDV_UEBERNAHME';
    //var feldListe = feldListe;			<= Warum wurde das auskommentiert?
    //var dbListe = dbListe;				<= Warum wurde das auskommentiert?
    var width = 550;
    var height = 500;
    var left = screen.width - width - 25;
    var top = screen.height - height - 200;
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn=ueber.ausw&mode=MA&search_params=" + searchParams + "&dest_form=" + form + "&dest_field1=" + refnrFieldName + URLdb + "&zaehler=" + zaehler + "&ctrlType=" + ctrlType + "&feldListe=" + feldListe + "&dbListe=" + dbListe;
    var wnd = window.open(frameURL, "MAuebernahmeX" + refnrFieldName, windParam);
    wnd.focus();
}
/*
' Ã–ffnet ein Fenster zur Anzeige der Gruppenmitglieder des angegebenen Mitarbeiters (Admin-Rechte vorausgesetzt)
' Parameter:
' groupKbez    Gruppenkürzel der funktionellen Gruppenbearbeitung
' leaderRefnr  MA_REFNR des Gruppenleiters
' nurEigene    '1' -> es werden nur die eigenen Gruppenmitglieder angezeigt (ohne Vertretungen)
' Beispiel:
'  openGroupMAList('PERSIS_MA_URL', 229, '1');
 */
function openGroupMAList(groupKbez, leaderRefnr, nurEigene) {
    var width = 650;
    var height = 600;
    var left = screen.width - width - 30;
    var top = screen.height - height - 65;
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn~adm.role_fkt@action~list@kbez~" + groupKbez + "@ma_refnr~" + leaderRefnr + "@self_access_only~" + nurEigene;
    var wnd = window.open("main?fn=zurueck.frame&close=1&back=0&print=1&url="+frameURL, "ma_list" + groupKbez, windParam);
    wnd.focus();
}
/*
' Ã–ffnet ein Fenster zur Anzeige der Rollenmitglieder des angegebenen Mitarbeiters (Admin-Rechte vorausgesetzt)
' Parameter:
' groupbez    Gruppenkürzel der Rolle
' roleRefnr  Rollenrefnr
' nurEigene '1' -> es werden nur die eigenen Gruppenmitglieder angezeigt (ohne Vertretungen)
' art			entscheidet ob es sich um eine Rolle handelt oder um eine funktionale Gruppenberechtigung
' Beispiel:
'  openRoleList('PERSIS_AB', 790481, '1', 'role');
 */
function openRoleList(groupbez, roleRefnr, nurEigene, art) {
    var width = 650;
    var height = 600;
    var left = screen.width - width - 30;
    var top = screen.height - height - 65;
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn~adm.role_fkt@action~list@bez~" + groupbez + "@role_refnr~" + roleRefnr + "@self_access_only~" + nurEigene +"@art~" + art;
    var wnd = window.open("main?fn=zurueck.frame&close=1&back=0&print=1&url=" + frameURL, "ma_role_list" + groupbez, windParam);
    wnd.focus();
}
/*
'	Öffnet ein Fenster um die bisherigen Dateianhänge zur aktuellen Aufgabe und gibt die Möglichkeit eine neue
'	Datei hinzuzufügen.
'	Parameter:
'	bvw_refnr	Die BVW_REFNR der aktuellen Idee
'	spalte		gibt an mit welcher Spalte in der Tabelle BVW_ATT die nachfolgende REFNR verglichen werden muÃŸ
'	sp_refnr	Angabe einer PATE_REFNR, GUT_REFNR oder REAL_REFNR
 */
function openFileDoc(bvw_refnr, spalte, sp_refnr, ansicht){
    var width = 650;
    var height = 600;
    var left = screen.width - width - 30;
    var top = screen.height - height - 365;
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn~bvw.file_doc@bvw_refnr~" + bvw_refnr + "@spalte~" + spalte + "@sp_refnr~" + sp_refnr + "@ansicht~" + ansicht;
    var wnd = window.open("main?fn=zurueck.frame&close=1&back=0&print=0&url=" + frameURL, "document" + removeParamHash(spalte), windParam);
    wnd.focus();
}
/*
'	Öffnet ein Fenster um die bisherigen Dateianhänge zur aktuellen Aufgabe und gibt die Möglichkeit eine neue
'	Datei hinzuzufügen.
'	Parameter:
'	tab			Tabellenname aus dem die Werte ermittelt werden
'	spalte		gibt an mit welcher Spalte in der Tabelle BVW_ATT die nachfolgende REFNR verglichen werden muÃŸ
'	sp_refnr	Angabe einer PATE_REFNR, GUT_REFNR oder REAL_REFNR
'	sp_bez		Name der Anzeigespalte für die Bezeichnung
'	sp_anl		Name der Spalte der Anlage; Wenn ein Subselect für die Anlaga auf Z_DOKUMENT gehen soll(Z_DOCUMENT.REFNR = #tab.#sp_doc), muss der Wert "sql" eingetragen werden
'	sp_doc		Spaltenname in der die Dokumentenreferenz steht
'	ansicht		mit 1 dürfen neue Anhänge angehängt und bestehende gelöscht werden; ansonsten nur vorhandene einsehen und runterladen
'	sperr_count	gibt an, wieviel Anhänge maximal angehängt werden dürfen
'	in_tab		bestimmt, ob ein Insert oder update in die angegebene Tabelle gemacht werden soll ("upd" für eine Update in die besagte Tabelle)
'	upd_zusatz	hier können weitere Spalten zusätzlich mit neuen Werten gefüllt werden (Updateliste der Spalten und Werte für die angegebene Tabelle)
'	callback	Javascript-Funktionsname der Funktion die nach dem Schließen des Fensters ausgeführt werden soll
 */
function openFileDocTab(tab, spalte, sp_refnr, sp_bez, sp_anl, sp_doc, ansicht, sperr_count, in_tab, upd_zusatz, callback){
    var width = 650;
    var height = 600;
    var left = screen.width - width - 30;
    var top = screen.height - height - 365;
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn~bvw.file_doc@tab~" + tab + "@spalte~" + spalte + "@sp_refnr~" + sp_refnr + "@sp_bez~" + sp_bez + "@sp_anl~" + sp_anl + "@sp_doc~" + sp_doc + "@ansicht~" + ansicht + "@sperr_count~" + sperr_count + "@in_tab~" + in_tab + "@upd_zusatz~" + upd_zusatz + "@callback~" + callback;
    var wnd = window.open("main?fn=zurueck.frame&close=1&back=0&print=0&url=" + frameURL + "&callback=" + callback, "document" + removeParamHash(spalte), windParam);
    wnd.focus();
}
/*
'	Öffnet ein Fenster um die bisherigen Dateianhänge zur aktuellen Aufgabe und gibt die Möglichkeit eine neue
'	Datei hinzuzufügen.
'	Parameter:
'	disable_sperrverm Optional: Blendet das Flag Sperrvermerk aus.
 */
function openFileDocAtt(modul, modulalias, satz_refnr, pdfcreation_disabled, roleright, disable_sperrverm) {
    var width = 650;
    var height = 600;
    var left = (screen.availWidth/2) - (width/2);
    var top = (screen.availHeight/2) - (height/2);
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    if(typeof disable_sperrverm == "undefined")
    {
    	disable_sperrverm = '';
    }
    var frameURL = "main?fn~file_doc@refnr~" + satz_refnr + "@modul~" + modul + "@modulalias~" + modulalias + "@pdfcreation_disabled~" + pdfcreation_disabled + "@roleright~" + roleright + "@disable_sperrverm~" + disable_sperrverm;
    var wnd = window.open("main?fn=zurueck.frame&close=1&back=0&print=1&url=" + frameURL, "documentATT" + removeParamHash(modul), windParam);
    wnd.focus();
}
/*
'	Öffnet ein Fenster um die bisherigen Dateianhänge zur aktuellen Aufgabe und gibt die Möglichkeit eine neue
'	Datei hinzuzufügen.
'	Parameter:
'	vkn_refnr		Refnr des Datensatzes aus Haupttabelle an welchen die Dokumente hängen
'	att_table		Tabellenname der ATT-Tabelle
'	write_access	,1,2 = ?
-				3 = Blendet Add/Edit/Del-Icons aus
 */
/*function openFileDocAttAllg(vkn_refnr, att_table, write_access){
    var width = 650;
    var height = 600;
    var left = screen.width - width - 30;
    var top = screen.height - height - 365;
    var windParam = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var frameURL = "main?fn~allg.file_doc@vkn_refnr~" + vkn_refnr + "@att_table~" + att_table + "@write_access~" + write_access;
    var wnd = window.open("main?fn=zurueck.frame&close=1&back=0&print=0&url=" + frameURL, "document" + att_table, windParam);
    wnd.focus();
} */



/*
Ã–ffnet ein Übernahmefenster um Dateien auf dem Server auszuwählen.
Die Rückgabe kann in 3 Teilen erfolgen:
pathField	voll-qualifizierter Dateiname
fileField	nur Dateiname
dirField	nur Verzeichnisname
Ist eine Angabe leer (""), wird die Rückgabe entsprechend nicht ausgeführt.
filter und hiddenFilter sind Filter-Angaben, wobei zweitere nicht im Fenster
angezeigt wird.
Mit order und orderdir kann die Sortierung bestimmt werden.
order = "name" | "size" | "date"
orderdir = "1" | "0" ... "0" entspricht absteigend
 */
function openServerFile(form, dir, pathField, fileField, dirField, filter, hiddenFilter, order, orderdir) {
    var width = 400;
    var height = 500;
    var left = screen.width / 2 - 200;
    var top = screen.height / 2 - 250;
    if(typeof filter == "undefined" || filter == "") {
        filter = "*";
    }
    if(typeof hiddenFilter == "undefined" || hiddenFilter == "") {
        hiddenFilter = "*";
    }
    if(typeof order == "undefined" || order == "") {
        order = "name";
    }
    if(typeof orderdir == "undefined" || orderdir == "") {
        orderdir = "1";
    }
    var windParam = "width=" + width + ",height=" + height + ",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
    var wndUrl = "?fn=zurueck.frame&close=1&back=0&print=0&url=";
    var frameUrl = "?fn=adm.file_ausw&dir=" + baseEncode(dir) + "&dest_form=" + form + "&path_field=" + pathField + "&file_field=" + fileField + "&dir_field=" + dirField + "&filter=" + baseEncode(filter) + "&hidden_filter=" + baseEncode(hiddenFilter) + "&order=" + order + "&orderdir=" + orderdir;
    var wnd = window.open(wndUrl + baseEncode(frameUrl), "ServerFile" + fileField, windParam);
    wnd.focus();
}

/*
 Öffnet die angegebene URL in einem Popup-Fenster.
 */
function openUebernahmePopup(url, width, height, windowName) {
	var left = (screen.width / 2) - (width / 2);
	var top = (screen.height / 2) - (height / 2);
	var windParam = "width=" + width + ",height=" + height + ",left=" + left + ",top=" + top + ",scrollbars=yes,resizable=yes";
	if(typeof windowName == "undefined" || windowName == "") {
		windowName = "popup";
	}
	try  // prüfen, weil eventuell ein Wechsel von http nach https (im Iframe) geblockt werden könnte
	{
  	if(window.name == windowName || (window.parent && window.parent.name == windowName))
  		windowName += "1";
	}
	catch (e) { }
	var wnd = window.open(url, windowName, windParam);
	wnd.focus();
}
function openUebernahmePopupDynSize(url, percentWidth, percentHeight, windowName) {
	var width = screen.width * (percentWidth > 100 ? percentWidth / 100 : percentWidth);
	var height = screen.height * (percentHeight > 100 ? percentHeight / 100 : percentHeight);
	openUebernahmePopup(url, width, height, windowName);
}
