<?php

namespace Tables;

class Mitglied {
  
  

  
  

    // --- Statische Methoden ---
  
  public static function applyTarif() { 
    
    
    // --- BLOCK: main ---
    
	$time = date('Y')*12+date('m')-1; // aktuellen Monat berechnen
	foreach (\FOP\Database::query('SELECT mitglied.ID AS ID, ((SELECT '.qi('mitgliedDynamicMonthyear').'.'.qi('tarif').' FROM '.qi('mitgliedDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = '.qi('mitglied').'.'.qi('ID').' AND '.qi('dynamic:time').' <= (' . \FOP\Database::quote($time) . ') ORDER BY '.qi('dynamic:time').' DESC LIMIT 1)) AS tarif, (SELECT (SELECT '.qi('tarifDynamicMonthyear').'.'.qi('amount').' FROM '.qi('tarifDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = '.qi('tarif').'.'.qi('ID').' AND '.qi('dynamic:time').' <= (' . \FOP\Database::quote($time) . ') ORDER BY '.qi('dynamic:time').' DESC LIMIT 1) FROM `tarif` WHERE ID = ((SELECT '.qi('mitgliedDynamicMonthyear').'.'.qi('tarif').' FROM '.qi('mitgliedDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = '.qi('mitglied').'.'.qi('ID').' AND '.qi('dynamic:time').' <= (' . \FOP\Database::quote($time) . ') ORDER BY '.qi('dynamic:time').' DESC LIMIT 1))) AS `price`, (SELECT ID FROM mitgliedBuchung WHERE mitglied = mitglied.ID AND `type` = 11 AND `month` = '.intval($time).') AS buchung FROM mitglied')->fetchAll(\PDO::FETCH_ASSOC) AS $mitglied) {
		$data = [
			'mitglied' => $mitglied['ID'],
			'betrag' => -intval($mitglied['price']),
			'date' => strtotime('first day of this month'),
			'type' => '11',
			'tarif' => $mitglied['tarif'],
			'month' => $time
		];
		if ($mitglied['buchung']) {
			// update
			\Tables\MitgliedBuchung::edit($mitglied['buchung'], $data, false, true);
		} else {
			// insert
			\Tables\MitgliedBuchung::create($data, true);
		}
	}

    
  }

  public static function getDefaults() { 
    
    
    // --- BLOCK: main ---
    
	// erstellt ein leeres Objekt zum Befüllen mit Daten oder als Default fürs Create-Formular
	$data = ['sepa' => FALSE,
		'sepaDate' => null,
		'superadmin' => FALSE,
		'name' => '',
		'vorname' => '',
		'geschlecht' => '0',
		'datenschutz' => FALSE,
		'geburtsdatum' => null,
		'land' => '',
		'plz' => '',
		'ort' => '',
		'strasse' => '',
		'email' => null,
		'email2' => null,
		'telefon' => null,
		'mobil' => null,
		'mnr' => \Tables\Mitglied::getNextMnr('%', 5, 1),
		'austrittsdatum' => null,
		'austrittsgrund' => '',
		'verstorben' => null,
		'notiz' => '',
		'iban' => '',
		'bic' => '',
		'password' => '',
		'reminderMitgliedMitglied-gebtagMails' => 'never',
		'reminderMitgliedForderungenMails' => 'never',
		'reminderFop_fints_buchungForderungenMails' => 'never',
		'reminderAufgabeAssignedMails' => 'never',
		'reminderAufgabeNot_assignedMails' => 'never',
		'eintritt' => time(),
		'canAdmin' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('ese9NFlN').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('ese9NFlN').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('ese9NFlN').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'canMitglied' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('uuv2NW5Q').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('uuv2NW5Q').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('uuv2NW5Q').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'canGruppe' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('mNzzceqT').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('mNzzceqT').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('mNzzceqT').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'canCampaign' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('eBtyAUdS').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('eBtyAUdS').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('eBtyAUdS').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'canSammlung' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('dlkeYgFw').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('dlkeYgFw').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('dlkeYgFw').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'canBuchhaltung' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('xRLiYYuU').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('xRLiYYuU').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('xRLiYYuU').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'canProtokoll' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('m7WmX8d8').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('m7WmX8d8').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('m7WmX8d8').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'canDokument' => (((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('zH9A0PFX').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('zH9A0PFX').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('zH9A0PFX').' WHERE TRUE')->fetchColumn()))) : (0)) == (0),
		'dynamic:time' => date('y')*12+date('m')-1,
		'tarif' => null];
	return $data;
	
    
  }

  public static function assignIbanAction() { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: access ---
    if(!(((\FOP\User::getBuchhaltung()) && (\FOP\User::getBuchhaltung())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		\Types\Mitglied::validate($_POST['mitglied']);
		\FOP\Validators::iban_checker($_POST['iban']);

		
		/* Sanitizer */

		$_POST['mitglied'] = \FOP\Sanitizers::null_filter($_POST['mitglied']);
		$_POST['iban'] = \FOP\Sanitizers::iban_filter($_POST['iban']);
		$_POST['iban'] = \FOP\Sanitizers::no_text($_POST['iban']);
		$_POST['iban'] = mb_strtoupper($_POST['iban']);
		$_POST['bic'] = mb_strtoupper($_POST['bic']);

		
	}
	
    // --- BLOCK: main ---
    
		// Main block
	
    // --- BLOCK: main-1 ---
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (true) {
			\FOP\Database::beginTransaction();
    // --- BLOCK: main-2:save-main ---
    
	\FOP\Database::query('UPDATE `mitglied` SET `iban` = ' . \FOP\Database::quote($_POST['iban']) . ', `bic` = ' . \FOP\Database::quote($_POST['bic']) . ' WHERE `ID` = ' . \FOP\Database::quote($_POST['mitglied']));

    // --- BLOCK: main-3 ---
    
			\FOP\Database::commitTransaction();
			
		}
		
		if (isset($_POST['fertig'])) {
			
	header('Location: ' . \TablesRouter\Mitglied::viewURL($_POST['mitglied']));
	die();

		}
		die(json_encode($_POST));
	} else {
    // --- BLOCK: main-4:load-main ---
    
	$buchung = \Tables\Fop_fints_buchung::view($_GET['buchung']);
	$data['iban'] = $buchung['iban'];
	$data['bic'] = $buchung['bic'];

    // --- BLOCK: main-4:load-main-init-bic ---
    $data['bic'] = $data['bic'];
	
    // --- BLOCK: main-4:load-main-init-iban ---
    $data['iban'] = $data['iban'];
	
    // --- BLOCK: main-4:load-main-init-mitglied ---
    $data['mitglied'] = NULL;
	
    // --- BLOCK: main-5 ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('Mitglied zuordnen')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('Mitglied zuordnen')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('Mitglied zuordnen')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::assignIbanURL2(['popup' => $_GET['popup'] ?? null]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-wf_mitglied_assignIban"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_mitglied_assignIban" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 if (isset($_GET['from'])) echo '<input type="hidden" name="fop-from" value="' . htmlentities($_GET['from']) . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'wf:mitglied:assignIban\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_mitglied_assignIban_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="fertig" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">shuffle</i><?php echo(_('IBAN zuordnen')); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#wf_mitglied_assignIban_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_mitglied" id="column_mitglied">
		<!-- Feld "Mitglied": mitglied -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="mitglied"><?php echo(_('Mitglied')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditform_wf_mitglied_assignIban_mitgliedAction($data['mitglied'], [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=mitglied%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=mitglied%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_iban" id="column_iban">
		<!-- Feld "IBAN": iban -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="iban"><?php echo(_('IBAN')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" style="text-transform: uppercase;" class="mdl-textfield__input"  type="text" name="iban" pattern="[A-Z]{2}[0-9 \-]{12,26}" value="<?php echo htmlentities($data['iban']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_bic" id="column_bic">
		<!-- Feld "BIC": bic -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="bic"><?php echo(_('BIC')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" style="text-transform: uppercase;" class="mdl-textfield__input"  type="text" name="bic" pattern="[A-Za-z]{6,6}[A-Za-z2-9][A-Na-nP-Zp-z0-9]([A-Za-z0-9]{3,3}){0,1}" value="<?php echo htmlentities($data['bic']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-wf_mitglied_assignIban').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-wf_mitglied_assignIban').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-wf_mitglied_assignIban').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=wf%3Amitglied%3AassignIban&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=wf%3Amitglied%3AassignIban&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_mitglied_assignIban')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_mitglied_assignIban input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
							<div class="content" id="~spacer"><?php if (!isset($_GET['popup'])) { ?><div style="padding-bottom: 10cm;"></div><?php } ?>
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    // --- BLOCK: main-6 ---
    }
    
  }

  public static function deleteConfirmAction($id = null ) { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: access ---
    if(!(((\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		

		
	}
	
    // --- BLOCK: access-itemlist-mitglied-delete ---
    
		// ID-Liste neu aufbauen und nur die übrig lassen, die auch erlaubt sind
		$id_ = new \FOP\IDList($id);
		$id = new \FOP\IDList();
		foreach (\FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('mitglied').' WHERE ((CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END)) AND ' . $id_->toSQL(qi('ID')))->fetchAll(\PDO::FETCH_COLUMN) AS $id_sub) {
			$id->push($id_sub);
		}
	
    // --- BLOCK: main ---
    
		// Main block
	
    // --- BLOCK: main-1 ---
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (true) {
			\FOP\Database::beginTransaction();
    // --- BLOCK: main-2:save-a-move_ansprechpartner_mitglied ---
    
		if (isset($_POST['move_ansprechpartner_mitglied'])) {
			\Types\Mitglied::validate($_POST['value_ansprechpartner_mitglied']);
			$_POST['value_ansprechpartner_mitglied'] = \FOP\Sanitizers::null_filter($_POST['value_ansprechpartner_mitglied']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('ansprechpartner').' SET '.qi('mitglied').' = ' . \FOP\Database::quote($_POST['value_ansprechpartner_mitglied']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('ansprechpartner').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Ansprechpartner::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_aufgabeEvent_creator ---
    
		if (isset($_POST['move_aufgabeEvent_creator'])) {
			\Types\Mitglied::validate($_POST['value_aufgabeEvent_creator']);
			$_POST['value_aufgabeEvent_creator'] = \FOP\Sanitizers::null_filter($_POST['value_aufgabeEvent_creator']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('aufgabeEvent').' SET '.qi('creator').' = ' . \FOP\Database::quote($_POST['value_aufgabeEvent_creator']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('creator').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('aufgabeEvent').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('creator').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\AufgabeEvent::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_aufgabe_assigned ---
    
		if (isset($_POST['move_aufgabe_assigned'])) {
			\Types\MitgliedNullAssigned::validate($_POST['value_aufgabe_assigned']);
			$_POST['value_aufgabe_assigned'] = \FOP\Sanitizers::null_filter($_POST['value_aufgabe_assigned']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('aufgabe').' SET '.qi('assigned').' = ' . \FOP\Database::quote($_POST['value_aufgabe_assigned']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('assigned').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('aufgabe').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('assigned').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Aufgabe::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_aufgabe_creator ---
    
		if (isset($_POST['move_aufgabe_creator'])) {
			\Types\Mitglied::validate($_POST['value_aufgabe_creator']);
			$_POST['value_aufgabe_creator'] = \FOP\Sanitizers::null_filter($_POST['value_aufgabe_creator']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('aufgabe').' SET '.qi('creator').' = ' . \FOP\Database::quote($_POST['value_aufgabe_creator']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('creator').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('aufgabe').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('creator').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Aufgabe::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_brief_recipient ---
    
		if (isset($_POST['move_brief_recipient'])) {
			\Types\Mitglied::validate($_POST['value_brief_recipient']);
			$_POST['value_brief_recipient'] = \FOP\Sanitizers::null_filter($_POST['value_brief_recipient']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('brief').' SET '.qi('recipient').' = ' . \FOP\Database::quote($_POST['value_brief_recipient']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('recipient').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('brief').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('recipient').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Brief::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_campaignTarget_target ---
    
		if (isset($_POST['move_campaignTarget_target'])) {
			\Types\Mitglied::validate($_POST['value_campaignTarget_target']);
			$_POST['value_campaignTarget_target'] = \FOP\Sanitizers::null_filter($_POST['value_campaignTarget_target']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('campaignTarget').' SET '.qi('target').' = ' . \FOP\Database::quote($_POST['value_campaignTarget_target']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('target').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('campaignTarget').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('target').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\CampaignTarget::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_doc_to-mitglied ---
    
		if (isset($_POST['move_doc_to-mitglied'])) {
			\Types\MitgliedNullDMS::validate($_POST['value_doc_to-mitglied']);
			$_POST['value_doc_to-mitglied'] = \FOP\Sanitizers::null_filter($_POST['value_doc_to-mitglied']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('doc').' SET '.qi('to-mitglied').' = ' . \FOP\Database::quote($_POST['value_doc_to-mitglied']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('to-mitglied').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('doc').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('to-mitglied').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Doc::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_fop_mail_host_box_share_fopuser ---
    
		if (isset($_POST['move_fop_mail_host_box_share_fopuser'])) {
			\Types\Mitglied::validate($_POST['value_fop_mail_host_box_share_fopuser']);
			$_POST['value_fop_mail_host_box_share_fopuser'] = \FOP\Sanitizers::null_filter($_POST['value_fop_mail_host_box_share_fopuser']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('fop_mail_host_box_share').' SET '.qi('fopuser').' = ' . \FOP\Database::quote($_POST['value_fop_mail_host_box_share_fopuser']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('fopuser').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('fop_mail_host_box_share').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('fopuser').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Fop_mail_host_box_share::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_gruppeItem_item ---
    
		if (isset($_POST['move_gruppeItem_item'])) {
			\Types\Mitglied::validate($_POST['value_gruppeItem_item']);
			$_POST['value_gruppeItem_item'] = \FOP\Sanitizers::null_filter($_POST['value_gruppeItem_item']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('gruppeItem').' SET '.qi('item').' = ' . \FOP\Database::quote($_POST['value_gruppeItem_item']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('item').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('gruppeItem').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('item').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\GruppeItem::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_gruppeVerantwortlich_mitglied ---
    
		if (isset($_POST['move_gruppeVerantwortlich_mitglied'])) {
			\Types\Mitglied::validate($_POST['value_gruppeVerantwortlich_mitglied']);
			$_POST['value_gruppeVerantwortlich_mitglied'] = \FOP\Sanitizers::null_filter($_POST['value_gruppeVerantwortlich_mitglied']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('gruppeVerantwortlich').' SET '.qi('mitglied').' = ' . \FOP\Database::quote($_POST['value_gruppeVerantwortlich_mitglied']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('gruppeVerantwortlich').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\GruppeVerantwortlich::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_mitgliedBuchung_mitglied ---
    
		if (isset($_POST['move_mitgliedBuchung_mitglied'])) {
			\Types\Mitglied::validate($_POST['value_mitgliedBuchung_mitglied']);
			$_POST['value_mitgliedBuchung_mitglied'] = \FOP\Sanitizers::null_filter($_POST['value_mitgliedBuchung_mitglied']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('mitgliedBuchung').' SET '.qi('mitglied').' = ' . \FOP\Database::quote($_POST['value_mitgliedBuchung_mitglied']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('mitgliedBuchung').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\MitgliedBuchung::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_mitgliedPassnummer_mitglied ---
    
		if (isset($_POST['move_mitgliedPassnummer_mitglied'])) {
			\Types\Mitglied::validate($_POST['value_mitgliedPassnummer_mitglied']);
			$_POST['value_mitgliedPassnummer_mitglied'] = \FOP\Sanitizers::null_filter($_POST['value_mitgliedPassnummer_mitglied']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('mitgliedPassnummer').' SET '.qi('mitglied').' = ' . \FOP\Database::quote($_POST['value_mitgliedPassnummer_mitglied']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('mitgliedPassnummer').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\MitgliedPassnummer::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_protokoll_creator ---
    
		if (isset($_POST['move_protokoll_creator'])) {
			\Types\Mitglied::validate($_POST['value_protokoll_creator']);
			$_POST['value_protokoll_creator'] = \FOP\Sanitizers::null_filter($_POST['value_protokoll_creator']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('protokoll').' SET '.qi('creator').' = ' . \FOP\Database::quote($_POST['value_protokoll_creator']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('creator').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('protokoll').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('creator').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Protokoll::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_protokoll_leiter ---
    
		if (isset($_POST['move_protokoll_leiter'])) {
			\Types\Mitglied::validate($_POST['value_protokoll_leiter']);
			$_POST['value_protokoll_leiter'] = \FOP\Sanitizers::null_filter($_POST['value_protokoll_leiter']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('protokoll').' SET '.qi('leiter').' = ' . \FOP\Database::quote($_POST['value_protokoll_leiter']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('leiter').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('protokoll').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('leiter').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Protokoll::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_sammlungMitglied_mitglied ---
    
		if (isset($_POST['move_sammlungMitglied_mitglied'])) {
			\Types\Mitglied::validate($_POST['value_sammlungMitglied_mitglied']);
			$_POST['value_sammlungMitglied_mitglied'] = \FOP\Sanitizers::null_filter($_POST['value_sammlungMitglied_mitglied']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('sammlungMitglied').' SET '.qi('mitglied').' = ' . \FOP\Database::quote($_POST['value_sammlungMitglied_mitglied']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('sammlungMitglied').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\SammlungMitglied::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-a-move_sammlung_owner ---
    
		if (isset($_POST['move_sammlung_owner'])) {
			\Types\MitgliedNull::validate($_POST['value_sammlung_owner']);
			$_POST['value_sammlung_owner'] = \FOP\Sanitizers::null_filter($_POST['value_sammlung_owner']);
			
			// ignore duplicate entries
			\FOP\Database::query('UPDATE IGNORE '.qi('sammlung').' SET '.qi('owner').' = ' . \FOP\Database::quote($_POST['value_sammlung_owner']) . ' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('owner').''));
			// iterate over remaining
			\FOP\Database::commitTransaction();
			$remaining = \FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('sammlung').' WHERE ' . (new \FOP\IDList($id))->toSQL(''.qi('owner').''))->fetchAll(\PDO::FETCH_COLUMN);
			if ($remaining) {
				// ask to delete remaining
				// TODO: I18n
				header('Location: ' . \TablesRouter\Sammlung::deleteConfirmURL2(['id' => new \FOP\IDList($remaining), 'from' => $_POST['from']]) . '#snack:Einige Elemente waren nicht verschiebbar');
			} else {
				header('Location: ' . $_POST['from']);
			}
			die();
		}
	
    // --- BLOCK: main-2:save-main ---
    /* view */
    // --- BLOCK: main-3 ---
    
			\FOP\Database::commitTransaction();
			
		}
		
		if (isset($_POST['no'])) {
			
			if (isset($_POST['fop-from']) && $_POST['fop-from']) {
				// Redirect zu fop-from
				header('Location: ' . preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']));
			} else {
				header('Location: ' . \TablesRouter\Mitglied::viewURL2(['id' => $id, 'popup' => $_GET['popup'] ?? null]));
			}
			die();
	
		}
		if (isset($_POST['yes'])) {
			
			if (isset($_POST['fop-from']) && $_POST['fop-from'] && strrpos($_POST['fop-from'], 'insert_param') !== false) {
				// Redirect zu fop-from
				header('Location: ' . preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']));
			} else {
				header('Location: ' . \TablesRouter\Mitglied::deleteURL2(['id' => $id, 'popup' => $_GET['popup'] ?? null, 'from' => $_POST['fop-from'] ?? null]));
			}
			die();
	
		}
		die(json_encode($_POST));
	} else {
    // --- BLOCK: main-4:load-main ---
    
		$data = [];
	
    // --- BLOCK: main-5 ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('confirmdelete')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('confirmdelete')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('confirmdelete')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::deleteConfirmURL2(['popup' => $_GET['popup'] ?? null, 'id' => $id]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
								 
								id="cardform-wf_mitglied_deleteConfirm"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_mitglied_deleteConfirm" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 if (isset($_GET['from'])) echo '<input type="hidden" name="fop-from" value="' . htmlentities($_GET['from']) . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'lifecycle',
										'title' => _(''),
										'order' => '180', // 180 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (true)) {
									$feature = [
										'id' => 'constraints',
										'title' => _(''),
										'order' => '200', // 200 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'wf:mitglied:deleteConfirm\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['lifecycle']);
										?>
		<b>Achtung!</b> Sie sind dabei, einen Datensatz zu löschen, der eigentlich einen Lebenszyklus mit <?php echo(_('Eintrittsdatum')); ?> und <?php echo(_('Austrittsdatum')); ?> besitzt. Möchten Sie stattdessen lieber:<br>
		<a href="<?php echo \TablesRouter\Mitglied::lifecycleEndURL($id); ?>" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo(sprintf(_('%s setzen'), _('Austrittsdatum'))); ?></a>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['lifecycle']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['constraints']);
										?><div class='fop-delete-constraints'><?php
	$foundProblems = false;
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('mitgliedDynamicMonthyear').' WHERE ' . $id->toSQL(''.qi('dynamic:parent').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletioncascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\MitgliedDynamicMonthyear::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(sprintf(_('versions of %s'), _('Mitglied'))) . ' ' . $item['desc'])) . '</a>';
				
			echo '<br>';
		}
		if (count($items)) {
			
			
			
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('mitgliedBuchung').' WHERE ' . $id->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\MitgliedBuchung::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Beitrag')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\MitgliedBuchung::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\MitgliedBuchung::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditmitgliedBuchung_mitglied_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_mitgliedBuchung_mitglied%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_mitgliedBuchung_mitglied%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_mitgliedBuchung_mitglied" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\MitgliedBuchung::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\MitgliedBuchung::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('sammlungMitglied').' WHERE ' . $id->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\SammlungMitglied::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Sammlungs-Mitglied')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\SammlungMitglied::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\SammlungMitglied::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditsammlungMitglied_mitglied_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_sammlungMitglied_mitglied%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_sammlungMitglied_mitglied%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_sammlungMitglied_mitglied" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\SammlungMitglied::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\SammlungMitglied::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('gruppeVerantwortlich').' WHERE ' . $id->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\GruppeVerantwortlich::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Gruppenverantwortlicher')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\GruppeVerantwortlich::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\GruppeVerantwortlich::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditgruppeVerantwortlich_mitglied_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_gruppeVerantwortlich_mitglied%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_gruppeVerantwortlich_mitglied%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_gruppeVerantwortlich_mitglied" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\GruppeVerantwortlich::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\GruppeVerantwortlich::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('mitgliedPassnummer').' WHERE ' . $id->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletioncascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\MitgliedPassnummer::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Passnummer')) . ' ' . $item['desc'])) . '</a>';
				
			echo '<br>';
		}
		if (count($items)) {
			
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditmitgliedPassnummer_mitglied_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_mitgliedPassnummer_mitglied%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_mitgliedPassnummer_mitglied%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_mitgliedPassnummer_mitglied" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('ansprechpartner').' WHERE ' . $id->toSQL(''.qi('mitglied').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletioncascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Ansprechpartner::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Kontaktperson')) . ' ' . $item['desc'])) . '</a>';
				
			echo '<br>';
		}
		if (count($items)) {
			
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditansprechpartner_mitglied_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_ansprechpartner_mitglied%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_ansprechpartner_mitglied%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_ansprechpartner_mitglied" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('protokoll').' WHERE ' . $id->toSQL(''.qi('leiter').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Protokoll::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Protokoll')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Protokoll::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Protokoll::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditprotokoll_leiter_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_protokoll_leiter%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_protokoll_leiter%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_protokoll_leiter" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Protokoll::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Protokoll::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('protokoll').' WHERE ' . $id->toSQL(''.qi('creator').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Protokoll::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Protokoll')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Protokoll::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Protokoll::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditprotokoll_creator_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_protokoll_creator%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_protokoll_creator%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_protokoll_creator" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Protokoll::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Protokoll::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('campaignTarget').' WHERE ' . $id->toSQL(''.qi('target').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletioncascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\CampaignTarget::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Empfänger')) . ' ' . $item['desc'])) . '</a>';
				
			echo '<br>';
		}
		if (count($items)) {
			
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditcampaignTarget_target_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_campaignTarget_target%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_campaignTarget_target%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_campaignTarget_target" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('brief').' WHERE ' . $id->toSQL(''.qi('recipient').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Brief::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Einzelbrief')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Brief::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Brief::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditbrief_recipient_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_brief_recipient%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_brief_recipient%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_brief_recipient" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Brief::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Brief::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('fop_mail_host_box_share').' WHERE ' . $id->toSQL(''.qi('fopuser').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Fop_mail_host_box_share::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Freigabe')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Fop_mail_host_box_share::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Fop_mail_host_box_share::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditfop_mail_host_box_share_fopuser_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_fop_mail_host_box_share_fopuser%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_fop_mail_host_box_share_fopuser%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_fop_mail_host_box_share_fopuser" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Fop_mail_host_box_share::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Fop_mail_host_box_share::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('aufgabe').' WHERE ' . $id->toSQL(''.qi('creator').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Aufgabe::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Aufgabe')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Aufgabe::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Aufgabe::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditaufgabe_creator_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_aufgabe_creator%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_aufgabe_creator%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_aufgabe_creator" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Aufgabe::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Aufgabe::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('aufgabeEvent').' WHERE ' . $id->toSQL(''.qi('creator').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\AufgabeEvent::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(sprintf(_('%s-Ereignis'), _('Aufgabe'))) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\AufgabeEvent::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\AufgabeEvent::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditaufgabeEvent_creator_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_aufgabeEvent_creator%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_aufgabeEvent_creator%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_aufgabeEvent_creator" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\AufgabeEvent::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\AufgabeEvent::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('gruppeItem').' WHERE ' . $id->toSQL(''.qi('item').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletioncascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\GruppeItem::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Gruppenmitglied')) . ' ' . $item['desc'])) . '</a>';
				
			echo '<br>';
		}
		if (count($items)) {
			
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditgruppeItem_item_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_gruppeItem_item%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitglied%26colinsert=value_gruppeItem_item%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitglied", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_gruppeItem_item" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('sammlung').' WHERE ' . $id->toSQL(''.qi('owner').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Sammlung::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Geld-Sammlung')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Sammlung::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Sammlung::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditsammlung_owner_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitgliedNull%26colinsert=value_sammlung_owner%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitgliedNull%26colinsert=value_sammlung_owner%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitgliedNull", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_sammlung_owner" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Sammlung::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Sammlung::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('doc').' WHERE ' . $id->toSQL(''.qi('to-mitglied').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletionsetnull') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Doc::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Dokument')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Doc::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Doc::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditdoc_to_mitglied_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitgliedNullDMS%26colinsert=value_doc_to-mitglied%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitgliedNullDMS%26colinsert=value_doc_to-mitglied%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitgliedNullDMS", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_doc_to-mitglied" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Doc::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Doc::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
		$items = \FOP\Database::query('SELECT '.qi('ID').' AS '.qi('ID').', '.qi('ID').' AS '.qi('desc').' FROM '.qi('aufgabe').' WHERE ' . $id->toSQL(''.qi('assigned').''))->fetchAll(\PDO::FETCH_ASSOC);
		foreach ($items AS $item) {
			echo _('deletiondeniedcascade') . '
				<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Aufgabe::viewURL($item['ID'])) . '">' . htmlentities(sprintf(_('view %s'), htmlentities(_('Aufgabe')) . ' ' . $item['desc'])) . '</a>';
				if (\TablesRouter\Aufgabe::deleteAccess($item['ID'])) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Aufgabe::deleteConfirmURL($item['ID'], ['from' => \FOP\Util::getBackUrl()])) . '">' . htmlentities(_('delete')) . '</a>';
				}
			echo '<br>';
		}
		if (count($items)) {
			$foundProblems = true;
			
				echo htmlentities(_('deletemove'));
				?>: <div style="display: inline-block;" class="novalidate"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Mitglied::renderEditaufgabe_assigned_deletecascadeAction(null, [], '');
?> &nbsp;	<?php if (\TablesRouter\Mitglied::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitgliedNullAssigned%26colinsert=value_aufgabe_assigned%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Mitglied::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=mitgliedNullAssigned%26colinsert=value_aufgabe_assigned%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=mitgliedNullAssigned", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></div>
				<button type="submit" name="move_aufgabe_assigned" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><?php echo count($items) . '× ' . htmlentities(_('deletemove')); ?></button>&nbsp;&nbsp;
			<?php 
			if (count($items) > 1) {
				// use array of IDs as parameter since deleteAccess calls them with new \FOP\IDList()
				if (\TablesRouter\Aufgabe::deleteAccess(array_map(function ($item) {return $item['ID'];}, $items))) {
					echo '<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="' . htmlentities(\TablesRouter\Aufgabe::deleteConfirmURL((new \FOP\IDList(array_map(function ($item) {return $item['ID'];}, $items)))->toString(), ['from' => \FOP\Util::getBackUrl()])) . '">' . count($items) . '× ' . htmlentities(_('delete')) . '</a>';
				}
			}
			echo '<hr><br>';
		}
	
?></div><?php
										\EasyEditor\FormFeature::pop();
										$features['constraints']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_mitglied_deleteConfirm_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="no" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">cancel</i><?php echo(_('no')); ?></button><?php } ?>
									&nbsp;<?php if ((!$foundProblems)) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="yes" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">delete</i><?php echo(_('yes')); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#wf_mitglied_deleteConfirm_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?><?php echo htmlentities(_('confirmdelete')) . ' (' . $id->count() . '× ' . _('Mitglied') . ')'; ?><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=wf%3Amitglied%3AdeleteConfirm&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=wf%3Amitglied%3AdeleteConfirm&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_mitglied_deleteConfirm')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_mitglied_deleteConfirm input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
							<div class="content" id="~spacer"><?php if (!isset($_GET['popup'])) { ?><div style="padding-bottom: 10cm;"></div><?php } ?>
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    // --- BLOCK: main-6 ---
    }
    
  }

  public static function viewAction($id = null ) { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: access ---
    if(!(!\FOP\User::getIsGuest())) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		

		
	}
	
    // --- BLOCK: fetch ---
    
	\FOP\I18n::ensureIsLoaded();
	$row = self::view($id);

    // --- BLOCK: main ---
    
		// Main block
	
    // --- BLOCK: main-1 ---
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (!isset($_POST['ok'])) {
			\FOP\Database::beginTransaction();
    // --- BLOCK: main-2:save-clone-prepare ---
    
		$data = self::view($id);
	
    // --- BLOCK: main-2:save-main ---
    /* view */
    // --- BLOCK: main-3 ---
    
			\FOP\Database::commitTransaction();
			
		}
		
		if (isset($_POST['ok'])) {
			
			
			if (isset($_POST['fop-from']) && $_POST['fop-from']) {
				// Redirect zu fop-from
				header('Location: ' . (isset($id) && is_string($id) ? preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']) : $_POST['fop-from']));
			} else {
				if ($to = (isset($_GET['popup']) ? \FOP\Util::getCurrentBaseurl().'jscloser.php?action=popup' : \FOP\Session::getPayload('dv-mitglied')['from'] ?? null)) {
					header('Location: ' . $to);
					die();
				}
				if (!\TablesRouter\Mitglied::indexAccess()) {
					if (!\FOPRouter\Index::indexAccess()) {
						header('Location: ' . \FOPRouter\Index::indexURL2(['popup' => $_GET['popup'] ?? null]));
						die();
					}
					header('Location: ' . \FOPRouter\Index::indexURL2(['popup' => $_GET['popup'] ?? null]));
					die();
				}
				header('Location: ' . \TablesRouter\Mitglied::indexURL2(['popup' => $_GET['popup'] ?? null]));
			}
			die();
	
		}
		die(json_encode($_POST));
	} else {
    // --- BLOCK: main-4:load-main ---
    
		$data = self::view($id); // TODO: klären, wer die Funktion bereitstellt (momentan crud/view.fop)
	
    // --- BLOCK: main-5 ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo htmlentities(str_replace('%s', \FOP\Database::query('SELECT CONCAT('.qi('mitglied').'.'.qi('vorname').', \' \', '.qi('mitglied').'.'.qi('name').') AS description FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() ?: '', _('%s'))); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<?php
	if ($dv = \FOP\Session::getPayload('dv-mitglied')) { ?>
	<?php if (isset($dv['prev'])) {?><a href="<?php echo htmlentities(str_replace('XXX', urlencode($id), $dv['prev'])); ?>" class="mdl-button mdl-js-button mdl-button--icon">
		<i class="material-icons">keyboard_arrow_left</i>
	</a><?php } ?>
	<a href="<?php echo htmlentities($dv['from']); ?>" class="mdl-button mdl-js-button mdl-button--icon">
		<i class="material-icons">view_list</i>
	</a>
	<?php if (isset($dv['next'])) {?><a href="<?php echo htmlentities(str_replace('XXX', urlencode($id), $dv['next'])); ?>" class="mdl-button mdl-js-button mdl-button--icon">
		<i class="material-icons">keyboard_arrow_right</i>
	</a><?php } ?><?php } ?><span class="mdl-layout-title"><?php echo htmlentities(str_replace('%s', \FOP\Database::query('SELECT CONCAT('.qi('mitglied').'.'.qi('vorname').', \' \', '.qi('mitglied').'.'.qi('name').') AS description FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() ?: '', _('%s'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<?php
	if ($dv = \FOP\Session::getPayload('dv-mitglied')) { ?>
	<?php if (isset($dv['prev'])) {?><a href="<?php echo htmlentities(str_replace('XXX', urlencode($id), $dv['prev'])); ?>" class="mdl-button mdl-js-button mdl-button--icon">
		<i class="material-icons">keyboard_arrow_left</i>
	</a><?php } ?>
	<a href="<?php echo htmlentities($dv['from']); ?>" class="mdl-button mdl-js-button mdl-button--icon">
		<i class="material-icons">view_list</i>
	</a>
	<?php if (isset($dv['next'])) {?><a href="<?php echo htmlentities(str_replace('XXX', urlencode($id), $dv['next'])); ?>" class="mdl-button mdl-js-button mdl-button--icon">
		<i class="material-icons">keyboard_arrow_right</i>
	</a><?php } ?><?php } ?><span class="mdl-layout-title"><?php echo htmlentities(str_replace('%s', \FOP\Database::query('SELECT CONCAT('.qi('mitglied').'.'.qi('vorname').', \' \', '.qi('mitglied').'.'.qi('name').') AS description FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() ?: '', _('%s'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::viewURL2(['popup' => $_GET['popup'] ?? null, 'id' => $id]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-wf_mitglied_view"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_mitglied_view" ng-init="form = <?php echo htmlentities(json_encode(['sepa' => $data['sepa']]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 if (isset($_GET['from'])) echo '<input type="hidden" name="fop-from" value="' . htmlentities($_GET['from']) . '">';
								 ?>
								<div id='fop-upbar'></div>
								<?php \DataView\MitgliedBuchung_mitglied::renderScript($id); ?><?php \DataView\SammlungMitglied_mitglied::renderScript($id); ?><?php \DataView\Ansprechpartner_mitglied::renderScript($id); ?><?php \DataView\CampaignTarget_target::renderScript($id); ?><?php \DataView\Doc_to_mitglied::renderScript($id); ?><?php \DataView\GruppeItem_item::renderScript($id); ?><?php \DataView\MitgliedPassnummer_mitglied::renderScript($id); ?><?php \DataView\MitgliedDynamicMonthyear_dynamic_parent::renderScript($id); ?>
									<?php
									$features = [];
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
									$feature = [
										'id' => 'mitgliedBuchung_mitglied_table',
										'title' => _('Beitragszahlungen'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
									$feature = [
										'id' => 'sammlungMitglied_mitglied_table',
										'title' => _('Geldsammlungen'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
									$feature = [
										'id' => 'ansprechpartner_mitglied_table',
										'title' => _('Kontaktpersonen'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
									$feature = [
										'id' => 'gruppeItem_item_table',
										'title' => _('Gruppen'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
									$feature = [
										'id' => 'mitgliedPassnummer_mitglied_table',
										'title' => _('Passnummern'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
									$feature = [
										'id' => 'mitgliedDynamicMonthyear_dynamic_parent_table',
										'title' => _('Verlauf'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if ((true) && ((\FOP\User::getCampaign()) && (\FOP\User::getCampaign())) && (true)) {
									$feature = [
										'id' => 'campaignTarget_target_table',
										'title' => _('Rundmails / Aktionen'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if ((true) && ((\FOP\User::getDokument())) && (true)) {
									$feature = [
										'id' => 'doc_to_mitglied_table',
										'title' => _('Dokumente'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true)) {
									$feature = [
										'id' => 'Mail_Notifications',
										'title' => _('Mail-Notifications'),
										'order' => '200-Mail-Notifications', // 200-Mail-Notifications (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true)) {
									$feature = [
										'id' => 'Stammdaten',
										'title' => _('Stammdaten'),
										'order' => '120', // 120 (100) / 200-Stammdaten (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || false || false || true || true || true || true || true || true || true)) {
									$feature = [
										'id' => 'Kontaktdaten',
										'title' => _('Kontaktdaten'),
										'order' => '120', // 120 (100) / 200-Kontaktdaten (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || false || false || ((\FOP\User::getSuperadmin())) || false || true || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. '0' .'||'. '0' .'||'. (((\FOP\User::getSuperadmin())) ? 'true' : '0')
											 .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0'
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true || true)) {
									$feature = [
										'id' => 'Verein',
										'title' => _('Verein'),
										'order' => '130', // 130 (100) / 200-Verein (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())))) {
									$feature = [
										'id' => 'Berechtigung',
										'title' => _('Berechtigung'),
										'order' => '150', // 150 (100) / 200-Berechtigung (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || true)) {
									$feature = [
										'id' => 'Buchhaltung',
										'title' => _('Buchhaltung'),
										'order' => '140', // 140 (100) / 200-Buchhaltung (80) / 200-Buchhaltung (10-50)
										'mode' => 'tab', // tab (100) / region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getBuchhaltung())) ? '(form[\'sepa\'])' : '0')
											 .'||'. (((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'wf:mitglied:view\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['mitgliedBuchung_mitglied_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="mitgliedBuchung_mitglied-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadmitgliedBuchung_mitglied()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\MitgliedBuchung_mitglied::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['mitgliedBuchung_mitglied_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['sammlungMitglied_mitglied_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="sammlungMitglied_mitglied-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadsammlungMitglied_mitglied()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\SammlungMitglied_mitglied::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['sammlungMitglied_mitglied_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['ansprechpartner_mitglied_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="ansprechpartner_mitglied-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadansprechpartner_mitglied()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\Ansprechpartner_mitglied::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['ansprechpartner_mitglied_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['gruppeItem_item_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="gruppeItem_item-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadgruppeItem_item()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\GruppeItem_item::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['gruppeItem_item_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['mitgliedPassnummer_mitglied_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="mitgliedPassnummer_mitglied-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadmitgliedPassnummer_mitglied()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\MitgliedPassnummer_mitglied::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['mitgliedPassnummer_mitglied_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if ((true) && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['mitgliedDynamicMonthyear_dynamic_parent_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="mitgliedDynamicMonthyear_dynamic_parent-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadmitgliedDynamicMonthyear_dynamic_parent()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\MitgliedDynamicMonthyear_dynamic_parent::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['mitgliedDynamicMonthyear_dynamic_parent_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if ((true) && ((\FOP\User::getCampaign()) && (\FOP\User::getCampaign())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['campaignTarget_target_table']);
										?>
	<?php if (((\FOP\User::getCampaign()) && (\FOP\User::getCampaign())) && (!\FOP\User::getIsGuest())) { ?>
	<div id="campaignTarget_target-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadcampaignTarget_target()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\CampaignTarget_target::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['campaignTarget_target_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if ((true) && ((\FOP\User::getDokument())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['doc_to_mitglied_table']);
										?>
	<?php if (((\FOP\User::getDokument())) && (!\FOP\User::getIsGuest())) { ?>
	<div id="doc_to_mitglied-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloaddoc_to_mitglied()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\Doc_to_mitglied::renderTabTableAction($id);
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['doc_to_mitglied_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_mitglied_view_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'>
		<?php if (true && $data['operation::view'] == 1 && $data['operation::edit'] == 1 && (!\FOP\User::getIsGuest()) && ((\FOP\User::getGruppe()))) { ?><a title="<?php echo(_('editbtn')); ?>" class="detailbtn mdl-button mdl-js-button mdl-button--raised mdl-button--colored" href="<?php echo htmlentities(\TablesRouter\Mitglied::editURL2(['id' => $data['ID'], 'popup' => $_GET['popup'] ?? null])); ?>"><i class='material-icons'>mode_edit</i> <?php echo(_('editbtn')); ?></a><?php } ?>&nbsp;<?php if (true) { ?><button onclick="$(this).closest('form').find('.mdl-textfield__error:visible').hide();
		$('[required]').removeAttr('required');
	" type="submit" name="ok" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">check</i><?php echo(_('ok')); ?></button><?php } ?>
									&nbsp;
		<?php if ($data['operation::view'] == 1 && $data['operation::edit'] == 1 && $data['operation::view'] == 1 && $data['operation::edit'] == 1 && (!\FOP\User::getIsGuest()) && ((\FOP\User::getGruppe()))) { ?><a title="<?php echo(sprintf(_('%s setzen'), _('Austrittsdatum'))); ?>" class="detailbtn mdl-button mdl-js-button mdl-button--raised mdl-button--colored" href="<?php echo htmlentities(\TablesRouter\Mitglied::lifecycleEndURL2(['id' => $data['ID'], 'popup' => $_GET['popup'] ?? null])); ?>"><i class='material-icons'>stop</i> <?php echo(sprintf(_('%s setzen'), _('Austrittsdatum'))); ?></a><?php } ?>&nbsp;
		<?php if ($data['operation::delete'] == 1 && $data['operation::delete'] == 1 && ((\FOP\User::getGruppe()))) { ?><a title="<?php echo(_('deletebtn')); ?>" class="detailbtn mdl-button mdl-js-button mdl-button--raised mdl-button--colored" href="<?php echo htmlentities(\TablesRouter\Mitglied::deleteConfirmURL2(['id' => $data['ID'], 'popup' => $_GET['popup'] ?? null, 'from' => $_GET['from'] ?? \FOP\Session::getPayload('dv-mitglied')['from'] ?? null])); ?>"><i class='material-icons'>delete</i> <?php echo(_('deletebtn')); ?></a><?php } ?></div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#wf_mitglied_view_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Mail_Notifications']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedMitglied_gebtagMails" id="column_reminderMitgliedMitglied-gebtagMails">
		<!-- Feld "Geburtstage": reminderMitgliedMitglied-gebtagMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedMitglied-gebtagMails"><?php echo(_('Geburtstage')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderMitgliedMitglied-gebtagMails'])); ?>
		<br></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedForderungenMails" id="column_reminderMitgliedForderungenMails">
		<!-- Feld "Offene Beiträge": reminderMitgliedForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedForderungenMails"><?php echo(_('Offene Beiträge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderMitgliedForderungenMails'])); ?>
		<br></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderFop_fints_buchungForderungenMails" id="column_reminderFop_fints_buchungForderungenMails">
		<!-- Feld "unbehandelte Zahlungseingänge": reminderFop_fints_buchungForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderFop_fints_buchungForderungenMails"><?php echo(_('unbehandelte Zahlungseingänge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderFop_fints_buchungForderungenMails'])); ?>
		<br></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeAssignedMails" id="column_reminderAufgabeAssignedMails">
		<!-- Feld "Mir zugewiesen": reminderAufgabeAssignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeAssignedMails"><?php echo(_('Mir zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderAufgabeAssignedMails'])); ?>
		<br></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeNot_assignedMails" id="column_reminderAufgabeNot_assignedMails">
		<!-- Feld "Nicht zugewiesen": reminderAufgabeNot_assignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeNot_assignedMails"><?php echo(_('Nicht zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderAufgabeNot_assignedMails'])); ?>
		<br></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Mail_Notifications']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Stammdaten']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_name" id="column_name">
		<!-- Feld "Name": name -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="name"><?php echo(_('Name')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['name']); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_vorname" id="column_vorname">
		<!-- Feld "Vorname": vorname -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="vorname"><?php echo(_('Vorname')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['vorname']); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_geschlecht" id="column_geschlecht">
		<!-- Feld "Geschlecht": geschlecht -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="geschlecht"><?php echo(_('Geschlecht')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php echo htmlentities(\Types\Geschlechtstyp::toString($data['geschlecht'])); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_geburtsdatum" id="column_geburtsdatum">
		<!-- Feld "Geburtsdatum": geburtsdatum -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="geburtsdatum"><?php echo(_('Geburtsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities(($data['geburtsdatum']) ? strftime(_('dateformat_php2'), intval($data['geburtsdatum'])) : ''); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_verstorben" id="column_verstorben">
		<!-- Feld "Verstorben am": verstorben -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="verstorben"><?php echo(_('Verstorben am')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities(($data['verstorben']) ? strftime(_('dateformat_php2'), intval($data['verstorben'])) : ''); ?>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Stammdaten']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || false || false || true || true || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Kontaktdaten']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_land" id="column_land">
		<!-- Feld "Land": land -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="land"><?php echo(_('Land')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['land']); ?>
	</div>
	</div><div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_plz_ort" id="column_plz_ort">
		<!-- Feld "Postleitzahl": plz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="plz"><?php echo(_('Postleitzahl')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['plz']); ?>
	</div>
		<!-- Feld "Ort": ort -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="ort"><?php echo(_('Ort')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['ort']); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_strasse" id="column_strasse">
		<!-- Feld "Straße und Hausnummer": strasse -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="strasse"><?php echo(_('Straße und Hausnummer')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['strasse']); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_email" id="column_email">
		<!-- Feld "E-Mail": email -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="email"><?php echo(_('E-Mail')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<span class='overflow-text'><a onclick="event.stopPropagation();<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>event.preventDefault(); window.open_over(document.baseURI + 'Tables/Fop_mail_host_box_draft/create?to=' + encodeURIComponent(this.href.substr(7)) + '&popup&from=' + encodeURIComponent(document.baseURI + 'jscloser.php?action=popup&close')); <?php } ?>
" href="<?php echo ('mailto:' . htmlentities(($data['email']))); ?>"><?php echo htmlentities($data['email']); ?></a></span>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_email2" id="column_email2">
		<!-- Feld "E-Mail Alternative": email2 -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="email2"><?php echo(_('E-Mail Alternative')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<span class='overflow-text'><a onclick="event.stopPropagation();<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>event.preventDefault(); window.open_over(document.baseURI + 'Tables/Fop_mail_host_box_draft/create?to=' + encodeURIComponent(this.href.substr(7)) + '&popup&from=' + encodeURIComponent(document.baseURI + 'jscloser.php?action=popup&close')); <?php } ?>
" href="<?php echo ('mailto:' . htmlentities(($data['email2']))); ?>"><?php echo htmlentities($data['email2']); ?></a></span>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_telefon" id="column_telefon">
		<!-- Feld "Telefon": telefon -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="telefon"><?php echo(_('Telefon')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<a target='tel' href="tel:<?php echo htmlentities(($data['telefon'])); ?>" onclick="event.stopPropagation(); "><?php echo htmlentities(\FOP\Sanitizers::no_phone($data['telefon'])); ?></a>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_mobil" id="column_mobil">
		<!-- Feld "Mobil": mobil -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="mobil"><?php echo(_('Mobil')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<a target='tel' href="tel:<?php echo htmlentities(($data['mobil'])); ?>" onclick="event.stopPropagation(); "><?php echo htmlentities(\FOP\Sanitizers::no_phone($data['mobil'])); ?></a>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_password" id="column_password">
		<!-- Feld "Passwort": password -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="password"><?php echo(_('Passwort')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities('*****'); ?>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Kontaktdaten']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || false || false || ((\FOP\User::getSuperadmin())) || false || true || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_datenschutz" id="column_datenschutz">
		<!-- Feld "Datenschutz akzeptiert": datenschutz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="datenschutz"><?php echo(_('Datenschutz akzeptiert')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['datenschutz'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php if (((\FOP\User::getSuperadmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_superadmin" id="column_superadmin">
		<!-- Feld "Super-Admin": superadmin -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="superadmin"><?php echo(_('Super-Admin')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['superadmin'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Verein']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_mnr" id="column_mnr">
		<!-- Feld "Mitgliedsnummer": mnr -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="mnr"><?php echo(_('Mitgliedsnummer')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['mnr']); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_eintritt" id="column_eintritt">
		<!-- Feld "Eintrittsdatum": eintritt -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="eintritt"><?php echo(_('Eintrittsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities(($data['eintritt']) ? strftime(_('dateformat_php2'), intval($data['eintritt'])) : ''); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_austrittsdatum" id="column_austrittsdatum">
		<!-- Feld "Austrittsdatum": austrittsdatum -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="austrittsdatum"><?php echo(_('Austrittsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities(($data['austrittsdatum']) ? strftime(_('dateformat_php2'), intval($data['austrittsdatum'])) : ''); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_austrittsgrund" id="column_austrittsgrund">
		<!-- Feld "Austritts-Grund": austrittsgrund -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="austrittsgrund"><?php echo(_('Austritts-Grund')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['austrittsgrund']); ?>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_notiz" id="column_notiz">
		<!-- Feld "Notiz": notiz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="notiz"><?php echo(_('Notiz')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<span><?php echo nl2br(htmlentities($data['notiz'])); ?></span>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_tarif" id="column_tarif">
		<!-- Feld "Mitgliedsbeitrag": tarif -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="tarif"><?php echo(_('Mitgliedsbeitrag')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php
	
	$sql = 'SELECT '.qi('ID').' AS '.qi('ID').', '.qi('tarif').'.'.qi('name').' AS description, (('.\FOP\Database::quote(\FOP\User::getBuchhaltung()).')) AS '.qi('canView').' FROM '.qi('tarif').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($data['tarif']);
	$tarif_result = \FOP\Database::query($sql);
	if ($tarif_row = $tarif_result->fetch(\PDO::FETCH_ASSOC)) {
		if ($tarif_row['canView']) echo "<a onclick=\"event.preventDefault(); open_url(this.href, false);\" href=\"" . \TablesRouter\Tarif::viewURL($data['tarif'], ['from' => \FOP\Util::getBackURL()]) . "\" class=\"tbl-link\" data-tbl=\"tarif\" data-id=\"".htmlentities($tarif_row['ID'])."\">";echo htmlentities($tarif_row['description']);if ($tarif_row['canView']) echo "</a>";
	} else {
		echo htmlentities(_('beitragsfrei') ?: '-');
	}
	
?>

	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Verein']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())))) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Berechtigung']);
										?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canAdmin" id="column_canAdmin">
		<!-- Feld "Admin": canAdmin -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canAdmin"><?php echo(_('Admin')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canAdmin'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canMitglied" id="column_canMitglied">
		<!-- Feld "Mitgliederverwaltung": canMitglied -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canMitglied"><?php echo(_('Mitgliederverwaltung')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canMitglied'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canGruppe" id="column_canGruppe">
		<!-- Feld "Verwaltung der eigenen Gruppe": canGruppe -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canGruppe"><?php echo(_('Verwaltung der eigenen Gruppe')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canGruppe'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canCampaign" id="column_canCampaign">
		<!-- Feld "Rundmails und Aktionen": canCampaign -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canCampaign"><?php echo(_('Rundmails und Aktionen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canCampaign'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canSammlung" id="column_canSammlung">
		<!-- Feld "Geldsammlungen": canSammlung -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canSammlung"><?php echo(_('Geldsammlungen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canSammlung'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canBuchhaltung" id="column_canBuchhaltung">
		<!-- Feld "Buchhaltung": canBuchhaltung -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canBuchhaltung"><?php echo(_('Buchhaltung')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canBuchhaltung'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canProtokoll" id="column_canProtokoll">
		<!-- Feld "Protokoll": canProtokoll -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canProtokoll"><?php echo(_('Protokoll')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canProtokoll'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canDokument" id="column_canDokument">
		<!-- Feld "Dokumente": canDokument -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canDokument"><?php echo(_('Dokumente')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['canDokument'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['Berechtigung']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Buchhaltung']);
										?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_iban" id="column_iban">
		<!-- Feld "IBAN": iban -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="iban"><?php echo(_('IBAN')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['iban']); ?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_bic" id="column_bic">
		<!-- Feld "BIC": bic -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="bic"><?php echo(_('BIC')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities($data['bic']); ?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_forderungen" id="column_forderungen">
		<!-- Feld "Guthaben Beiträge": forderungen -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="forderungen"><?php echo(_('Guthaben Beiträge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<span style="white-space: nowrap; width: 100%; display: inline-block; "><?php echo htmlentities(\Types\Euro::print($data['forderungen'])); ?><?php echo '&nbsp;' .  htmlentities('€'); ?>
	</span>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_sepa" id="column_sepa">
		<!-- Feld "SEPA-Lastschrift": sepa -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="sepa"><?php echo(_('SEPA-Lastschrift')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php if($data['sepa'] == 1){ ?>✓<?php }else{ ?>✗<?php }?>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_sepaDate" id="column_sepaDate" ng-show='form[&apos;sepa&apos;]'>
		<!-- Feld "Datum SEPA-Lastschrift": sepaDate -->
	<div ng-show='form[&apos;sepa&apos;]'	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="sepaDate"><?php echo(_('Datum SEPA-Lastschrift')); ?>: </label>
	</div>
	<div ng-show='form[&apos;sepa&apos;]'	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
	<?php echo htmlentities(($data['sepaDate']) ? strftime(_('dateformat_php2'), intval($data['sepaDate'])) : ''); ?>
	</div>
	</div><?php } ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_tarif" id="column_tarif">
		<!-- Feld "Mitgliedsbeitrag": tarif -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="tarif"><?php echo(_('Mitgliedsbeitrag')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<?php
	
	$sql = 'SELECT '.qi('ID').' AS '.qi('ID').', '.qi('tarif').'.'.qi('name').' AS description, (('.\FOP\Database::quote(\FOP\User::getBuchhaltung()).')) AS '.qi('canView').' FROM '.qi('tarif').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($data['tarif']);
	$tarif_result = \FOP\Database::query($sql);
	if ($tarif_row = $tarif_result->fetch(\PDO::FETCH_ASSOC)) {
		if ($tarif_row['canView']) echo "<a onclick=\"event.preventDefault(); open_url(this.href, false);\" href=\"" . \TablesRouter\Tarif::viewURL($data['tarif'], ['from' => \FOP\Util::getBackURL()]) . "\" class=\"tbl-link\" data-tbl=\"tarif\" data-id=\"".htmlentities($tarif_row['ID'])."\">";echo htmlentities($tarif_row['description']);if ($tarif_row['canView']) echo "</a>";
	} else {
		echo htmlentities(_('beitragsfrei') ?: '-');
	}
	
?>

	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Buchhaltung']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=wf%3Amitglied%3Aview&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=wf%3Amitglied%3Aview&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_mitglied_view')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_mitglied_view input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
							<div class="content" id="focus-supersearch">
		<script type='text/javascript'>
			$(function () {
				var focusfield = $('#supersearch');
				if (focusfield.length) {
					focusfield[0].focus();
					focusfield[0].select();
				}
			});
		</script>
	
							</div>
							<div class="content" id="~spacer"><?php if (!isset($_GET['popup'])) { ?><div style="padding-bottom: 10cm;"></div><?php } ?>
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    // --- BLOCK: main-6 ---
    }
    
  }

  public static function editNotificationSettingsAction($id = null ) { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: access ---
    if(!(((\FOP\User::getIsLoggedIn())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		

		
	}
	
    // --- BLOCK: main ---
    
		// Main block
	
    // --- BLOCK: main-1 ---
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (true) {
			\FOP\Database::beginTransaction();
    // --- BLOCK: main-2:save-clone-prepare ---
    
		$data = self::view($id, false, true);
	
    // --- BLOCK: main-2:save-main ---
    
		$data_edit = [];
		$data_edit['reminderMitgliedMitglied-gebtagMails'] = $_POST['reminderMitgliedMitglied-gebtagMails'];
		$data_edit['reminderMitgliedForderungenMails'] = $_POST['reminderMitgliedForderungenMails'];
		$data_edit['reminderFop_fints_buchungForderungenMails'] = $_POST['reminderFop_fints_buchungForderungenMails'];
		$data_edit['reminderAufgabeAssignedMails'] = $_POST['reminderAufgabeAssignedMails'];
		$data_edit['reminderAufgabeNot_assignedMails'] = $_POST['reminderAufgabeNot_assignedMails'];
		self::edit($id, $data_edit, false, true);
		if (isset($data_edit['ID'])) {
			$id = $data_edit['ID'];
		}
	
    // --- BLOCK: main-3 ---
    
			\FOP\Database::commitTransaction();
			
		}
		
		if (isset($_POST['Tables:Mitglied:editNotificationSettings:id'])) {
			
			if (isset($_POST['fop-from']) && $_POST['fop-from']) {
				// Redirect zu fop-from
				header('Location: ' . preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']));
			} else {
				header('Location: ' . \TablesRouter\Mitglied::editNotificationSettingsURL2(['id' => $id, 'popup' => $_GET['popup'] ?? null]));
			}
			die();
	
		}
		die(json_encode($_POST));
	} else {
    // --- BLOCK: main-4:load-main ---
    
		$data = self::view($id, false, true); // TODO: klären, wer die Funktion bereitstellt (momentan crud/view.fop)
	
    // --- BLOCK: main-5 ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('Benachrichtigungseinstellungen')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('Benachrichtigungseinstellungen')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('Benachrichtigungseinstellungen')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::editNotificationSettingsURL2(['popup' => $_GET['popup'] ?? null, 'id' => $id]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-wf_mitglied_editNotificationSettings"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_mitglied_editNotificationSettings" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 if (isset($_GET['from'])) echo '<input type="hidden" name="fop-from" value="' . htmlentities($_GET['from']) . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || false || false || false || false || false || false)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0'
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true)) {
									$feature = [
										'id' => 'Mail_Notifications',
										'title' => _('Mail-Notifications'),
										'order' => '200-Mail-Notifications', // 200-Mail-Notifications (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'wf:mitglied:editNotificationSettings\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_mitglied_editNotificationSettings_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if ((true)&&(true)&&(true)&&(true)&&(true)) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="Tables:Mitglied:editNotificationSettings:id" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">save</i><?php echo(_('Speichern')); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#wf_mitglied_editNotificationSettings_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || false || false || false || false || false || false)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Mail_Notifications']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedMitglied_gebtagMails" id="column_reminderMitgliedMitglied-gebtagMails">
		<!-- Feld "Geburtstage": reminderMitgliedMitglied-gebtagMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedMitglied-gebtagMails"><?php echo(_('Geburtstage')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderMitgliedMitglied-gebtagMails' id='reminderMitgliedMitglied-gebtagMails'><option value='never'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedForderungenMails" id="column_reminderMitgliedForderungenMails">
		<!-- Feld "Offene Beiträge": reminderMitgliedForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedForderungenMails"><?php echo(_('Offene Beiträge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderMitgliedForderungenMails' id='reminderMitgliedForderungenMails'><option value='never'<?php if ($data['reminderMitgliedForderungenMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderMitgliedForderungenMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderMitgliedForderungenMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderMitgliedForderungenMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderMitgliedForderungenMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderMitgliedForderungenMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderFop_fints_buchungForderungenMails" id="column_reminderFop_fints_buchungForderungenMails">
		<!-- Feld "unbehandelte Zahlungseingänge": reminderFop_fints_buchungForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderFop_fints_buchungForderungenMails"><?php echo(_('unbehandelte Zahlungseingänge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderFop_fints_buchungForderungenMails' id='reminderFop_fints_buchungForderungenMails'><option value='never'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeAssignedMails" id="column_reminderAufgabeAssignedMails">
		<!-- Feld "Mir zugewiesen": reminderAufgabeAssignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeAssignedMails"><?php echo(_('Mir zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderAufgabeAssignedMails' id='reminderAufgabeAssignedMails'><option value='never'<?php if ($data['reminderAufgabeAssignedMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderAufgabeAssignedMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderAufgabeAssignedMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderAufgabeAssignedMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderAufgabeAssignedMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderAufgabeAssignedMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeNot_assignedMails" id="column_reminderAufgabeNot_assignedMails">
		<!-- Feld "Nicht zugewiesen": reminderAufgabeNot_assignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeNot_assignedMails"><?php echo(_('Nicht zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderAufgabeNot_assignedMails' id='reminderAufgabeNot_assignedMails'><option value='never'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Mail_Notifications']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-wf_mitglied_editNotificationSettings').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-wf_mitglied_editNotificationSettings').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-wf_mitglied_editNotificationSettings').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=wf%3Amitglied%3AeditNotificationSettings&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=wf%3Amitglied%3AeditNotificationSettings&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_mitglied_editNotificationSettings')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_mitglied_editNotificationSettings input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
							<div class="content" id="~spacer"><?php if (!isset($_GET['popup'])) { ?><div style="padding-bottom: 10cm;"></div><?php } ?>
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    // --- BLOCK: main-6 ---
    }
    
  }

  public static function notificationMail($id, $subject, $html) { 
    
    
    // --- BLOCK: main ---
    
		 $mail = \Mailer\Mails::getMailer();
		 // Recipients, ReplyTo
		 if (!((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT ('.qi('Kmw0UThg').'.'.qi('email').') FROM '.qi('mitglied').' '.qi('Kmw0UThg').' WHERE '.qi('Kmw0UThg').'.'.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn())))) return false; // exit when recipient dosent exist
		 $mail->AddAddress((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT ('.qi('Kmw0UThg').'.'.qi('email').') FROM '.qi('mitglied').' '.qi('Kmw0UThg').' WHERE '.qi('Kmw0UThg').'.'.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn())), (\FOP\Util::FalseToNull(\FOP\Database::query('SELECT ('.qi('Kmw0UThg').'.'.qi('email').') FROM '.qi('mitglied').' '.qi('Kmw0UThg').' WHERE '.qi('Kmw0UThg').'.'.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn())));
		 $mail->Subject = $subject;

		 // Body mit HTML, text oder beides
		 $mail->msgHTML($html);

		 

		 

		 // Attachments

		 return $mail->send();
	
    
  }

  public static function changepwAction($login_error = "" ) { 
    
    
    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: access ---
    if(!(((\FOP\User::getIsLoggedIn())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    
		$row = ['oldpw' => '', 'newpw' => ''];
	
    // --- BLOCK: main-pw ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('changepw')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('changepw')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('changepw')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::changepwacceptURL2(['popup' => $_GET['popup'] ?? null]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-changepw"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormChangepw" ng-init="form = <?php echo htmlentities(json_encode(['oldpw' => $row['oldpw'], 'newpw' => $row['newpw']]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 ?>
								<div id='fop-upbar'></div>
								<?php if (isset($login_error)) if ($login_error != "") echo '<span class="errhinweis">' . htmlspecialchars($login_error) . '</span><br/><br/>'; ?>
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'changepw\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='changepw_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="fop_default" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">send</i><?php echo(_('changepw')); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#changepw_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_oldpw" id="column_oldpw">
		<!-- Feld "oldpw": oldpw -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="oldpw"><?php echo(_('oldpw')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input ng-model='form[&apos;oldpw&apos;]' class="mdl-textfield__input" type="password" name="oldpw"  id="oldpw" value="<?php echo htmlentities($row['oldpw']); ?>"/><label class="mdl-textfield__label" for="oldpw"><?php echo(_('password')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_newpw" id="column_newpw">
		<!-- Feld "newpw": newpw -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="newpw"><?php echo(_('newpw')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div ng-controller='dummy' ng-init='form[&apos;newpw&apos;] = <?php echo htmlentities(json_encode(empty($row['newpw']) ? '' : '&&'.($row['newpw']))); ?>'><div class="mdl-textfield mdl-js-textfield"><input ng-model='form[&apos;newpw&apos;]' class="mdl-textfield__input" type="password" name="newpw" /><label class="mdl-textfield__label" for="newpw"><?php echo(_('password')); ?></label><span class="mdl-textfield__error" style="{{(!((form[&apos;oldpw&apos;]) != (form[&apos;newpw&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;oldpw&apos;]) != (form[&apos;newpw&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;oldpw&apos;]) != (form[&apos;newpw&apos;]))'><?php echo(_('changepw:notsame')); ?></div></span></div>
<br><div class="mdl-textfield mdl-js-textfield" compare-password='form[&apos;newpw&apos;]'><input class="mdl-textfield__input" type="password"  /><label class="mdl-textfield__label" for="newpw"><?php echo(_('password repeat')); ?></label><span class="mdl-textfield__error"><?php echo _('passwords must match'); ?></span></div></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-changepw').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-changepw').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-changepw').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=changepw&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=changepw&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-changepw')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-changepw input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    
  }

  public static function changepwacceptAction() { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: access ---
    if(!(((\FOP\User::getIsLoggedIn())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		$_POST['newpw'] = \FOP\Sanitizers::password_filter($_POST['newpw']);

		
	}
	
    // --- BLOCK: access+~newpw:changepw:notsame ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (!(($_POST['oldpw']) != ($_POST['newpw']))) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: main ---
    
		$oldpw = $_POST['oldpw'];
		$newpw = $_POST['newpw'];

		$result = \FOP\Database::query('SELECT '.qi('password').' AS pw  FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\User::getID());
		if ($row = $result->fetch(\PDO::FETCH_ASSOC)) {
			// Falls NICHT: (Accout mit OAuth registriert oder Passwort stimmt)
			if (!((!$row['pw'] || password_verify($_POST['oldpw'], $row['pw'])))) {
				$login_error = _('wrongcredentials');
				header('Location: ' . \TablesRouter\Mitglied::changepwURL2(['login_error' => $login_error]));
				die();
			}

			\FOP\Database::query('UPDATE '.qi('mitglied').'
				SET '.qi('password').' = ' . \FOP\Database::quote($newpw) . '
				
				WHERE '.qi('ID').' = ' . \FOP\User::getID());
			
			header('Location: ' . ($_GET['from'] ?? \FOPRouter\Index::indexURL()).'#snack:' . _('changedpw'));
		} else {
			$login_error = _('usernotfound');
			header('Location: ' . \TablesRouter\Mitglied::changepwURL2(['login_error' => $login_error]));
			die();
		}
	
    
  }

  public static function lifecycleEndAction($id = null ) { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: _split-IDs ---
    
		/* do not stress the idlist budget */
		$max_items = intdiv(ini_get('max_input_vars') - 30 /* Reserve für feste Spalten */, 3);
		$id = new \FOP\IDList($id);
		$rest = $id->splice($max_items);
		if ($rest) {
			$_GET['from'] = \TablesRouter\Mitglied::lifecycleEndURL2(['id' => $rest, 'from' => $_GET['from'] ?? null]);
		}
	
    // --- BLOCK: access ---
    if(!((!\FOP\User::getIsGuest()) && ((\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		$_POST['austrittsdatum'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['austrittsdatum']);

		
	}
	
    // --- BLOCK: access-itemlist-mitglied-edit ---
    
		// ID-Liste neu aufbauen und nur die übrig lassen, die auch erlaubt sind
		$id_ = new \FOP\IDList($id);
		$id = new \FOP\IDList();
		foreach (\FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('mitglied').' WHERE ((CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END)) AND ' . $id_->toSQL(qi('ID')))->fetchAll(\PDO::FETCH_COLUMN) AS $id_sub) {
			$id->push($id_sub);
		}
	
    // --- BLOCK: access-itemlist-mitglied-view ---
    
		// ID-Liste neu aufbauen und nur die übrig lassen, die auch erlaubt sind
		$id_ = new \FOP\IDList($id);
		$id = new \FOP\IDList();
		foreach (\FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('mitglied').' WHERE ((CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END)) AND ' . $id_->toSQL(qi('ID')))->fetchAll(\PDO::FETCH_COLUMN) AS $id_sub) {
			$id->push($id_sub);
		}
	
    // --- BLOCK: main ---
    
		// Main block
	
    // --- BLOCK: main-1 ---
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (true) {
			\FOP\Database::beginTransaction();
    // --- BLOCK: main-2:save-main ---
    /* Multi */ $result = new \FOP\IDList();
    // --- BLOCK: main-2:save-main-list-fop_list ---
    
		// List Save
		if (isset($_POST['fop_list_ID'])) foreach ($_POST['fop_list_ID'] AS $i => $subid) {
			// Subdaten extrahieren
			if (!$subid && $_POST['fop_list'][$i] != '0') {
				// es wird ein Create
				$subdata = \Tables\Mitglied::getDefaults();
				\Tables\Mitglied::sanitizeDefaults($subdata, false);
			} else {
				// es ist ein Edit
				$subdata = [];
			}
			
				$subdata['ID'] = $_POST['fop_list_ID'][$i];
				$subdata['austrittsdatum'] = $_POST['austrittsdatum'];
			if ($subid) {
				// existierendes Element
				if ($_POST['fop_list'][$i] == '0') {
					// zur Löschung markiert
					// achtet selbst auf Permissions
					\Tables\Mitglied::delete($subid);
				} else {
					// achtet selbst auf Permissions
					\Tables\Mitglied::edit($subid, $subdata);
					
					
				}
			} else if ($_POST['fop_list'][$i] != '0') {
				// noch keine ID: erstellen
				if (((\FOP\User::getGruppe()))) {
					// TODO: TIAR-Create prüfen
					try {
						$subid = \Tables\Mitglied::create($subdata);
						
						
					} catch (\FOP\AccessDeniedException $e) {
						// ignore duplicate
						if ($e->getMessage() != 'duplicateinsert') {
							throw $e;
						}
					}
				}
			}
		}
	
    // --- BLOCK: main-3 ---
    
			\FOP\Database::commitTransaction();
			
		}
		
		if (isset($_POST['Tables:Mitglied:index'])) {
			
			
			if (isset($_POST['fop-from']) && $_POST['fop-from']) {
				// Redirect zu fop-from
				header('Location: ' . (isset($id) && is_string($id) ? preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']) : $_POST['fop-from']));
			} else {
				header('Location: ' . \TablesRouter\Mitglied::indexURL2(['popup' => $_GET['popup'] ?? null, 'filter_mitglied_ID' => $result->toString()]));
			}
			die();
	
		}
		die(json_encode($_POST));
	} else {
    // --- BLOCK: main-4:load-main ---
    
		$data = \Tables\Mitglied::getDefaults();
	
    // --- BLOCK: main-4:load-main-default-austrittsdatum ---
    $data['austrittsdatum'] = time();
	
    // --- BLOCK: main-4:load-main-list-fop_list ---
    
		$fop_list = [];
		array_push($fop_list, ...\Tables\Mitglied::loadLifecycleEndFop_listItems($id));
	
    // --- BLOCK: main-4:load-~sanitize ---
    
		\Tables\Mitglied::sanitizeDefaults($data, true);
	
    // --- BLOCK: main-5 ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(sprintf(_('%s setzen'), _('Austrittsdatum'))); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(sprintf(_('%s setzen'), _('Austrittsdatum'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(sprintf(_('%s setzen'), _('Austrittsdatum'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="0-rest">
		<?php
		if (isset($rest)) {
			echo sprintf(_('Formular auf %d Einträge beschränkt, %d verbleiben'), $id->count(), $rest->count());
		}
		?>
	
							</div>
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::lifecycleEndURL2(['popup' => $_GET['popup'] ?? null, 'id' => $id]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-wf_mitglied_lifecycleEnd"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_mitglied_lifecycleEnd" ng-init="form = <?php echo htmlentities(json_encode(['austrittsdatum' => $data['austrittsdatum'], 'verstorben' => $data['verstorben']]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 if (isset($_GET['from'])) echo '<input type="hidden" name="fop-from" value="' . htmlentities($_GET['from']) . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || false || true || false)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. '0'
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true)) {
									$feature = [
										'id' => 'fop_list',
										'title' => _(''),
										'order' => 'z-fop_list', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'wf:mitglied:lifecycleEnd\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_mitglied_lifecycleEnd_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="Tables:Mitglied:index" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">save</i><?php echo(_('Speichern')); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#wf_mitglied_lifecycleEnd_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || false || true || false)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_austrittsdatum" id="column_austrittsdatum">
		<!-- Feld "Austrittsdatum": austrittsdatum -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="austrittsdatum"><?php echo(_('Austrittsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' ts-model='form[&apos;austrittsdatum&apos;]' class="mdl-textfield__input picker_date" id="austrittsdatum" type="text" name="austrittsdatum" value="<?php echo ($data['austrittsdatum']) ? strftime(_('dateformat_php2'), intval($data['austrittsdatum'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['fop_list']);
										?><span id='fop_list' class='mdl-cell mdl-cell--12-col mdl-grid' >
	
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card">
	<div class="mdl-cell mdl-cell--12-col" style="align-items: start; overflow: auto; max-height: calc(100vh - 300px); align-items: start;">
		<table class='mdl-data-table mdl-js-data-table mdl-shadow--2dp table-dense table-editable'>
			<thead>
				<tr >
					<th class='mdl-data-table__cell--non-numeric'>-</th>
					
						<?php if (true || true) { ?>
							<th class='mdl-data-table__cell--non-numeric'><?php echo(_('Name')); ?></th>
						<?php } ?>
						<?php if (true || true) { ?>
							<th class='mdl-data-table__cell--non-numeric'><?php echo(_('Vorname')); ?></th>
						<?php } ?>
				</tr>
			</thead>
			<tbody>
				<?php
				foreach ($fop_list AS $row) {
					self::lifecycleEndListFop_listAction($row, $data);
				}
				if (false) { ?>
				<tr class='wfl-create'>
					<td colspan='42' class='mdl-data-table__cell--non-numeric'>
					  
				<button type='button' class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='var tr = $(this).closest(".wfl-create"); $.get("Tables/Mitglied/lifecycleEndListFop_list?_&id=<?php echo htmlentities(\FOP\Util::urlencode($id)); ?>", function (html) { var h = $(html).insertBefore(tr); upgradeDOM(h); h.find("input:not([type=hidden]),textarea").first().focus(); }); event.stopPropagation();'><i class="material-icons">add</i> <?php echo(sprintf(_('add %s'), _('Mitglied'))); ?></button>
					  
					</td>
				</tr>
				<?php } ?>
			</tbody>
		</table>
	</div>
	</div>
	</span><?php
										\EasyEditor\FormFeature::pop();
										$features['fop_list']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-wf_mitglied_lifecycleEnd').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-wf_mitglied_lifecycleEnd').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-wf_mitglied_lifecycleEnd').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=wf%3Amitglied%3AlifecycleEnd&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=wf%3Amitglied%3AlifecycleEnd&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_mitglied_lifecycleEnd')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_mitglied_lifecycleEnd input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
							<div class="content" id="~spacer"><?php if (!isset($_GET['popup'])) { ?><div style="padding-bottom: 10cm;"></div><?php } ?>
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    // --- BLOCK: main-6 ---
    }
    
  }

  public static function createAction() { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: access ---
    if(!(((\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) \Types\TarifNull::validate($_POST['tarif']);
		if (((\FOP\User::getBuchhaltung())) && (!isset($_POST['cancel']))) \FOP\Validators::iban_checker($_POST['iban']);

		if (((false))) if (isset($_POST['mitgliedPassnummer_mitglied_mitglied'])) foreach ($_POST['mitgliedPassnummer_mitglied_mitglied'] AS $i => $val)
			if ($_POST['mitgliedPassnummer_mitglied'][$i] != '0') \Types\Mitglied::validate($val);
		if (((false))) if (isset($_POST['ansprechpartner_mitglied_mitglied'])) foreach ($_POST['ansprechpartner_mitglied_mitglied'] AS $i => $val)
			if ($_POST['ansprechpartner_mitglied'][$i] != '0') \Types\Mitglied::validate($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_campaign'])) foreach ($_POST['matrix_campaignTarget_target_campaign_campaign'] AS $i => $val)
			if (isset($_POST['matrix_campaignTarget_target_campaign__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_campaignTarget_target_campaign'][$i])])) \Types\Campaign::validate($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_campaignTarget_target_campaign_target'])) foreach ($_POST['matrix_campaignTarget_target_campaign_target'] AS $i => $val)
			if (isset($_POST['matrix_campaignTarget_target_campaign__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_campaignTarget_target_campaign'][$i])])) \Types\Mitglied::validate($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_state'])) foreach ($_POST['matrix_campaignTarget_target_campaign_state'] AS $i => $val)
			if (isset($_POST['matrix_campaignTarget_target_campaign__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_campaignTarget_target_campaign'][$i])])) \Types\CampaignState::validate($val);
		if (isset($_POST['matrix_gruppeItem_item_list_list'])) foreach ($_POST['matrix_gruppeItem_item_list_list'] AS $i => $val)
			if (isset($_POST['matrix_gruppeItem_item_list__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_gruppeItem_item_list'][$i])])) \Types\Gruppe::validate($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_gruppeItem_item_list_item'])) foreach ($_POST['matrix_gruppeItem_item_list_item'] AS $i => $val)
			if (isset($_POST['matrix_gruppeItem_item_list__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_gruppeItem_item_list'][$i])])) \Types\Mitglied::validate($val);
		/* Sanitizer */

		if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) $_POST['tarif'] = \FOP\Sanitizers::null_filter($_POST['tarif']);
		$_POST['dynamic:time'] = \FOP\Sanitizers::convert_month_years_to_unixtime($_POST['dynamic:time']);
		if (((\FOP\User::getBuchhaltung()))) $_POST['sepaDate'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['sepaDate']);
		$_POST['geburtsdatum'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['geburtsdatum']);
		$_POST['eintritt'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['eintritt']);
		$_POST['email'] = \FOP\Sanitizers::no_text($_POST['email']);
		$_POST['email2'] = \FOP\Sanitizers::no_text($_POST['email2']);
		$_POST['telefon'] = \FOP\Sanitizers::no_phone($_POST['telefon']);
		$_POST['mobil'] = \FOP\Sanitizers::no_phone($_POST['mobil']);
		$_POST['austrittsdatum'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['austrittsdatum']);
		$_POST['verstorben'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['verstorben']);
		if (((\FOP\User::getBuchhaltung())) && (!isset($_POST['cancel']))) $_POST['iban'] = \FOP\Sanitizers::iban_filter($_POST['iban']);
		if (((\FOP\User::getBuchhaltung())) && (!isset($_POST['cancel']))) $_POST['iban'] = \FOP\Sanitizers::no_text($_POST['iban']);
		if (((\FOP\User::getBuchhaltung())) && (!isset($_POST['cancel']))) $_POST['iban'] = mb_strtoupper($_POST['iban']);
		if (((\FOP\User::getBuchhaltung()))) $_POST['bic'] = mb_strtoupper($_POST['bic']);
		$_POST['password'] = \FOP\Sanitizers::password_filter($_POST['password']);

		if (((false))) if (isset($_POST['mitgliedPassnummer_mitglied_mitglied'])) foreach ($_POST['mitgliedPassnummer_mitglied_mitglied'] AS $idx => $val) $_POST['mitgliedPassnummer_mitglied_mitglied'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (((false))) if (isset($_POST['ansprechpartner_mitglied_mitglied'])) foreach ($_POST['ansprechpartner_mitglied_mitglied'] AS $idx => $val) $_POST['ansprechpartner_mitglied_mitglied'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (isset($_POST['ansprechpartner_mitglied_tel'])) foreach ($_POST['ansprechpartner_mitglied_tel'] AS $idx => $val) $_POST['ansprechpartner_mitglied_tel'][$idx] = \FOP\Sanitizers::no_phone($val);
		if (isset($_POST['ansprechpartner_mitglied_tel2'])) foreach ($_POST['ansprechpartner_mitglied_tel2'] AS $idx => $val) $_POST['ansprechpartner_mitglied_tel2'][$idx] = \FOP\Sanitizers::no_phone($val);
		if (isset($_POST['ansprechpartner_mitglied_email'])) foreach ($_POST['ansprechpartner_mitglied_email'] AS $idx => $val) $_POST['ansprechpartner_mitglied_email'][$idx] = \FOP\Sanitizers::no_text($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_campaign'])) foreach ($_POST['matrix_campaignTarget_target_campaign_campaign'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_campaign'][$idx] = \FOP\Sanitizers::null_filter($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_campaignTarget_target_campaign_target'])) foreach ($_POST['matrix_campaignTarget_target_campaign_target'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_target'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_state'])) foreach ($_POST['matrix_campaignTarget_target_campaign_state'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_state'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (((false))) if (isset($_POST['matrix_campaignTarget_target_campaign_creation'])) foreach ($_POST['matrix_campaignTarget_target_campaign_creation'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_creation'][$idx] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($val);
		if (((false))) if (isset($_POST['matrix_campaignTarget_target_campaign_lastUpdate'])) foreach ($_POST['matrix_campaignTarget_target_campaign_lastUpdate'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_lastUpdate'][$idx] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($val);
		if (isset($_POST['matrix_gruppeItem_item_list_eintritt'])) foreach ($_POST['matrix_gruppeItem_item_list_eintritt'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_eintritt'][$idx] = \FOP\Sanitizers::convert_date_to_unix_timestamp($val);
		if (isset($_POST['matrix_gruppeItem_item_list_austritt'])) foreach ($_POST['matrix_gruppeItem_item_list_austritt'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_austritt'][$idx] = \FOP\Sanitizers::convert_date_to_unix_timestamp($val);
		if (isset($_POST['matrix_gruppeItem_item_list_list'])) foreach ($_POST['matrix_gruppeItem_item_list_list'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_list'][$idx] = \FOP\Sanitizers::null_filter($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_gruppeItem_item_list_item'])) foreach ($_POST['matrix_gruppeItem_item_list_item'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_item'][$idx] = \FOP\Sanitizers::null_filter($val);
	}
	
    // --- BLOCK: access+~email:mitglied:email:unique ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (($data ?? null) && isset($data['ID'])) $_POST['ID'] = $data['ID'];
			if (!isset($_POST['cancel']) && !(true)) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: access+~mnr:mitglied:mnr:unique ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (($data ?? null) && isset($data['ID'])) $_POST['ID'] = $data['ID'];
			if (!isset($_POST['cancel']) && !(true)) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: access+~sepaDate:51bdc9f76035953b2a0deccba44090e01d75208640e7c9ec3be57aeb827f5409 ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (((\FOP\User::getBuchhaltung())) && ((\FOP\User::getBuchhaltung())) && !isset($_POST['cancel']) && !((! ($_POST['sepa'])) || ($_POST['sepaDate']))) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: access+~superadmin:daac3e86417ef043c7163840382304ef511239ca9ff295892317efac4f057b04 ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (((\FOP\User::getSuperadmin())) && !isset($_POST['cancel']) && !((\FOP\User::getSuperadmin()) ? (true) : (! ($_POST['superadmin'])))) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: main ---
    
		// Main block
	
    // --- BLOCK: main-1 ---
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (!isset($_POST['cancel'])) {
			\FOP\Database::beginTransaction();
    // --- BLOCK: main-2:save-main ---
    
		$defaults = \Tables\Mitglied::getDefaults();
		$defaults['tarif'] = $_POST['tarif'];
		$defaults['dynamic:time'] = $_POST['dynamic:time'];
		$defaults['name'] = $_POST['name'];
		$defaults['vorname'] = $_POST['vorname'];
		$defaults['geschlecht'] = $_POST['geschlecht'];
		$defaults['datenschutz'] = $_POST['datenschutz'];
		$defaults['geburtsdatum'] = $_POST['geburtsdatum'];
		$defaults['land'] = $_POST['land'];
		$defaults['plz'] = $_POST['plz'];
		$defaults['ort'] = $_POST['ort'];
		$defaults['strasse'] = $_POST['strasse'];
		$defaults['eintritt'] = $_POST['eintritt'];
		$defaults['email'] = $_POST['email'];
		$defaults['email2'] = $_POST['email2'];
		$defaults['telefon'] = $_POST['telefon'];
		$defaults['mobil'] = $_POST['mobil'];
		$defaults['mnr'] = $_POST['mnr'];
		$defaults['austrittsdatum'] = $_POST['austrittsdatum'];
		$defaults['austrittsgrund'] = $_POST['austrittsgrund'];
		$defaults['verstorben'] = $_POST['verstorben'];
		$defaults['notiz'] = $_POST['notiz'];
		$defaults['password'] = $_POST['password'];
		$defaults['reminderMitgliedMitglied-gebtagMails'] = $_POST['reminderMitgliedMitglied-gebtagMails'];
		$defaults['reminderMitgliedForderungenMails'] = $_POST['reminderMitgliedForderungenMails'];
		$defaults['reminderFop_fints_buchungForderungenMails'] = $_POST['reminderFop_fints_buchungForderungenMails'];
		$defaults['reminderAufgabeAssignedMails'] = $_POST['reminderAufgabeAssignedMails'];
		$defaults['reminderAufgabeNot_assignedMails'] = $_POST['reminderAufgabeNot_assignedMails'];
		if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) $defaults['tarif'] = $_POST['tarif'];
		if (((\FOP\User::getBuchhaltung()))) $defaults['sepa'] = $_POST['sepa'];
		if (((\FOP\User::getBuchhaltung()))) $defaults['sepaDate'] = $_POST['sepaDate'];
		if (((\FOP\User::getSuperadmin()))) $defaults['superadmin'] = $_POST['superadmin'];
		if (((\FOP\User::getBuchhaltung())) && (!isset($_POST['cancel']))) $defaults['iban'] = $_POST['iban'];
		if (((\FOP\User::getBuchhaltung()))) $defaults['bic'] = $_POST['bic'];
		if (((\FOP\User::getAdmin()))) $defaults['canAdmin'] = $_POST['canAdmin'];
		if (((\FOP\User::getAdmin()))) $defaults['canMitglied'] = $_POST['canMitglied'];
		if (((\FOP\User::getAdmin()))) $defaults['canGruppe'] = $_POST['canGruppe'];
		if (((\FOP\User::getAdmin()))) $defaults['canCampaign'] = $_POST['canCampaign'];
		if (((\FOP\User::getAdmin()))) $defaults['canSammlung'] = $_POST['canSammlung'];
		if (((\FOP\User::getAdmin()))) $defaults['canBuchhaltung'] = $_POST['canBuchhaltung'];
		if (((\FOP\User::getAdmin()))) $defaults['canProtokoll'] = $_POST['canProtokoll'];
		if (((\FOP\User::getAdmin()))) $defaults['canDokument'] = $_POST['canDokument'];
		// TableItemAccess für PHP auswerten
		if (!(((\FOP\User::getMitglied()) ? (true) : (! ((($defaults['ID']) != (\FOP\User::getID())) && (! ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = ' . \FOP\Database::quote($defaults['ID']) . ' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)))')->fetchColumn()))))))) && (\FOP\User::getGruppe()) && ((\FOP\User::getSuperadmin()) ? (true) : (! ($defaults['superadmin']))))) throw new \FOP\AccessDeniedException('accessdenied');
		$id = \Tables\Mitglied::create($defaults);
	
    // --- BLOCK: main-2:save-main-list-ansprechpartner_mitglied ---
    
		// List Save
		if (isset($_POST['ansprechpartner_mitglied_ID'])) foreach ($_POST['ansprechpartner_mitglied_ID'] AS $i => $subid) {
			// Subdaten extrahieren
			if (!$subid && $_POST['ansprechpartner_mitglied'][$i] != '0') {
				// es wird ein Create
				$subdata = \Tables\Ansprechpartner::getDefaults();
				\Tables\Ansprechpartner::sanitizeDefaults($subdata, false);
			} else {
				// es ist ein Edit
				$subdata = [];
			}
			
			$subdata['mitglied'] = $id;
				$subdata['vorname'] = $_POST['ansprechpartner_mitglied_vorname'][$i];
				$subdata['name'] = $_POST['ansprechpartner_mitglied_name'][$i];
				$subdata['stellung'] = $_POST['ansprechpartner_mitglied_stellung'][$i];
				$subdata['tel'] = $_POST['ansprechpartner_mitglied_tel'][$i];
				$subdata['tel2'] = $_POST['ansprechpartner_mitglied_tel2'][$i];
				$subdata['email'] = $_POST['ansprechpartner_mitglied_email'][$i];
				$subdata['ID'] = $_POST['ansprechpartner_mitglied_ID'][$i];
			if ($subid) {
				// existierendes Element
				if ($_POST['ansprechpartner_mitglied'][$i] == '0') {
					// zur Löschung markiert
					// achtet selbst auf Permissions
					\Tables\Ansprechpartner::delete($subid);
				} else {
					// achtet selbst auf Permissions
					\Tables\Ansprechpartner::edit($subid, $subdata);
					
					
				}
			} else if ($_POST['ansprechpartner_mitglied'][$i] != '0') {
				// noch keine ID: erstellen
				if (((\FOP\User::getGruppe()))) {
					// TODO: TIAR-Create prüfen
					try {
						$subid = \Tables\Ansprechpartner::create($subdata);
						
						
					} catch (\FOP\AccessDeniedException $e) {
						// ignore duplicate
						if ($e->getMessage() != 'duplicateinsert') {
							throw $e;
						}
					}
				}
			}
		}
	
    // --- BLOCK: main-2:save-main-list-mitgliedPassnummer_mitglied ---
    
		// List Save
		if (isset($_POST['mitgliedPassnummer_mitglied_ID'])) foreach ($_POST['mitgliedPassnummer_mitglied_ID'] AS $i => $subid) {
			// Subdaten extrahieren
			if (!$subid && $_POST['mitgliedPassnummer_mitglied'][$i] != '0') {
				// es wird ein Create
				$subdata = \Tables\MitgliedPassnummer::getDefaults();
				\Tables\MitgliedPassnummer::sanitizeDefaults($subdata, false);
			} else {
				// es ist ein Edit
				$subdata = [];
			}
			
			$subdata['mitglied'] = $id;
				$subdata['pnr'] = $_POST['mitgliedPassnummer_mitglied_pnr'][$i];
				$subdata['verband'] = $_POST['mitgliedPassnummer_mitglied_verband'][$i];
				$subdata['ID'] = $_POST['mitgliedPassnummer_mitglied_ID'][$i];
			if ($subid) {
				// existierendes Element
				if ($_POST['mitgliedPassnummer_mitglied'][$i] == '0') {
					// zur Löschung markiert
					// achtet selbst auf Permissions
					\Tables\MitgliedPassnummer::delete($subid);
				} else {
					// achtet selbst auf Permissions
					\Tables\MitgliedPassnummer::edit($subid, $subdata);
					
					
				}
			} else if ($_POST['mitgliedPassnummer_mitglied'][$i] != '0') {
				// noch keine ID: erstellen
				if (((\FOP\User::getGruppe()))) {
					// TODO: TIAR-Create prüfen
					try {
						$subid = \Tables\MitgliedPassnummer::create($subdata);
						
						
					} catch (\FOP\AccessDeniedException $e) {
						// ignore duplicate
						if ($e->getMessage() != 'duplicateinsert') {
							throw $e;
						}
					}
				}
			}
		}
	
    // --- BLOCK: main-2:save-main-matrix-matrix_campaignTarget_target_campaign ---
    if (((\FOP\User::getCampaign()) && (\FOP\User::getCampaign()))) {
	if (isset($_POST['matrix_campaignTarget_target_campaign'])) foreach ($_POST['matrix_campaignTarget_target_campaign'] AS $i => $subid) {
		$parent = $defaults;
		$deps = [];
		
		if (\FOP\Database::query('SELECT mode > 0 FROM '.qi('campaign').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($subid))->fetchColumn() != '1') continue;
		if (!isset($_POST['matrix_campaignTarget_target_campaign__' . preg_replace('/[^a-zA-Z_0-9]/', '', $subid)])) {
			// nicht angetickt: evtl. löschen
			if ($_POST['matrix_campaignTarget_target_campaign_ID'][$i]) {
				\Tables\CampaignTarget::delete($_POST['matrix_campaignTarget_target_campaign_ID'][$i]);
			}
		} else {
			// angetickt: Erstellen oder bearbeiten
			$subdata = [];
			$subdata['target'] = $id;
			$subdata['campaign'] = $_POST['matrix_campaignTarget_target_campaign_campaign'][$i];
			$subdata['state'] = $_POST['matrix_campaignTarget_target_campaign_state'][$i];
			$subdata['note'] = $_POST['matrix_campaignTarget_target_campaign_note'][$i];
			$subdata['creation'] = $_POST['matrix_campaignTarget_target_campaign_creation'][$i];
			$subdata['lastUpdate'] = $_POST['matrix_campaignTarget_target_campaign_lastUpdate'][$i];
			if ($_POST['matrix_campaignTarget_target_campaign_ID'][$i]) {
				\Tables\CampaignTarget::edit($_POST['matrix_campaignTarget_target_campaign_ID'][$i], $subdata);
			} else {
				\Tables\CampaignTarget::create($subdata);
			}
		}
	}
	}
    // --- BLOCK: main-2:save-main-matrix-matrix_gruppeItem_item_list ---
    if (((\FOP\User::getGruppe()))) {
	if (isset($_POST['matrix_gruppeItem_item_list'])) foreach ($_POST['matrix_gruppeItem_item_list'] AS $i => $subid) {
		$parent = $defaults;
		$deps = [];
		
		
		if (!isset($_POST['matrix_gruppeItem_item_list__' . preg_replace('/[^a-zA-Z_0-9]/', '', $subid)])) {
			// nicht angetickt: evtl. löschen
			if ($_POST['matrix_gruppeItem_item_list_ID'][$i]) {
				\Tables\GruppeItem::delete($_POST['matrix_gruppeItem_item_list_ID'][$i]);
			}
		} else {
			// angetickt: Erstellen oder bearbeiten
			$subdata = [];
			$subdata['item'] = $id;
			$subdata['list'] = $_POST['matrix_gruppeItem_item_list_list'][$i];
			$subdata['eintritt'] = $_POST['matrix_gruppeItem_item_list_eintritt'][$i];
			$subdata['austritt'] = $_POST['matrix_gruppeItem_item_list_austritt'][$i];
			$subdata['note'] = $_POST['matrix_gruppeItem_item_list_note'][$i];
			if ($_POST['matrix_gruppeItem_item_list_ID'][$i]) {
				\Tables\GruppeItem::edit($_POST['matrix_gruppeItem_item_list_ID'][$i], $subdata);
			} else {
				\Tables\GruppeItem::create($subdata);
			}
		}
	}
	}
    // --- BLOCK: main-2:save-~send_pw ---
    
		if ($_POST['_send_pw'] == 1) {
			\FOP\User::sendPassword($id);
		}
	
    // --- BLOCK: main-3 ---
    
			\FOP\Database::commitTransaction();
			
		}
		
		if (isset($_POST['cancel'])) {
			
			
			if (isset($_POST['fop-from']) && $_POST['fop-from']) {
				// Redirect zu fop-from
				header('Location: ' . (isset($id) && is_string($id) ? preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']) : $_POST['fop-from']));
			} else {
				header('Location: ' . \TablesRouter\Mitglied::indexURL2(['popup' => $_GET['popup'] ?? null]));
			}
			die();
	
		}
		if (isset($_POST['save'])) {
			
			if (isset($_POST['fop-from']) && $_POST['fop-from'] && strrpos($_POST['fop-from'], 'insert_param') !== false) {
				// Redirect zu fop-from
				header('Location: ' . preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']));
			} else {
				if (!\TablesRouter\Mitglied::viewAccess($id)) {
					if (!\TablesRouter\Mitglied::indexAccess()) {
						header('Location: ' . \FOPRouter\Index::indexURL2(['popup' => $_GET['popup'] ?? null, 'from' => $_POST['fop-from'] ?? null]));
						die();
					}
					header('Location: ' . \TablesRouter\Mitglied::indexURL2(['popup' => $_GET['popup'] ?? null, 'from' => $_POST['fop-from'] ?? null]));
					die();
				}
				header('Location: ' . \TablesRouter\Mitglied::viewURL2(['id' => $id, 'popup' => $_GET['popup'] ?? null, 'from' => $_POST['fop-from'] ?? null]));
			}
			die();
	
		}
		die(json_encode($_POST));
	} else {
    // --- BLOCK: main-4:load-main ---
    
		$data = \Tables\Mitglied::getDefaults();
	
    // --- BLOCK: main-4:load-main-list-ansprechpartner_mitglied ---
    
		$ansprechpartner_mitglied = [];
		
	
    // --- BLOCK: main-4:load-main-list-mitgliedPassnummer_mitglied ---
    
		$mitgliedPassnummer_mitglied = [];
		
	
    // --- BLOCK: main-4:load-main-matrix-matrix_campaignTarget_target_campaign ---
    
		
		$matrix_campaignTarget_target_campaign = [];
	
    // --- BLOCK: main-4:load-main-matrix-matrix_gruppeItem_item_list ---
    
		
		$matrix_gruppeItem_item_list = [];
	
    // --- BLOCK: main-4:load-~sanitize ---
    
		\Tables\Mitglied::sanitizeDefaults($data, true);
	
    // --- BLOCK: main-5 ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(sprintf(_('create %s'), _('Mitglied'))); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(sprintf(_('create %s'), _('Mitglied'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(sprintf(_('create %s'), _('Mitglied'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::createURL2(['popup' => $_GET['popup'] ?? null]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-wf_mitglied_create"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_mitglied_create" ng-init="form = <?php echo htmlentities(json_encode(['_send_pw' => $data['_send_pw'], 'austrittsdatum' => $data['austrittsdatum'], 'austrittsgrund' => $data['austrittsgrund'], 'email' => $data['email'], 'ID' => $data['ID'], 'mnr' => $data['mnr'], 'sepaDate' => $data['sepaDate'], 'verstorben' => $data['verstorben'], 'sepa' => $data['sepa'], 'superadmin' => $data['superadmin'], 'datenschutz' => $data['datenschutz']]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 if (isset($_GET['from'])) echo '<input type="hidden" name="fop-from" value="' . htmlentities($_GET['from']) . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true)) {
									$feature = [
										'id' => 'Mail_Notifications',
										'title' => _('Mail-Notifications'),
										'order' => '200-Mail-Notifications', // 200-Mail-Notifications (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || false || false || true || true || true || true || true || true || true)) {
									$feature = [
										'id' => 'Kontaktdaten',
										'title' => _('Kontaktdaten'),
										'order' => '120', // 120 (100) / 200-Kontaktdaten (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? '(!form._send_pw)' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) || true || true || true || true || true)) {
									$feature = [
										'id' => 'Verein',
										'title' => _('Verein'),
										'order' => '130', // 130 (100) / 200-Verein (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true)) {
									$feature = [
										'id' => 'Stammdaten',
										'title' => _('Stammdaten'),
										'order' => '120', // 120 (100) / 200-Stammdaten (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())))) {
									$feature = [
										'id' => 'Berechtigung',
										'title' => _('Berechtigung'),
										'order' => '150', // 150 (100) / 200-Berechtigung (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getAdmin())) ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
									$feature = [
										'id' => 'matrix_campaignTarget_target_campaign',
										'title' => _('Empfänger'),
										'order' => 'z-matrix_campaignTarget_target_campaign', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
									$feature = [
										'id' => 'matrix_gruppeItem_item_list',
										'title' => _('Gruppenmitglieder'),
										'order' => 'z-matrix_gruppeItem_item_list', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || (!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])))) {
									$feature = [
										'id' => 'Buchhaltung',
										'title' => _('Buchhaltung'),
										'order' => '140', // 140 (100) / 200-Buchhaltung (80) / 200-Buchhaltung (10-50)
										'mode' => 'tab', // tab (100) / region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getBuchhaltung())) ? '(form[\'sepa\'])' : '0')
											 .'||'. ((!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || false || false || false || false || true || true || false || false || ((\FOP\User::getSuperadmin())) || false || false || false || true || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. (((\FOP\User::getSuperadmin())) ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0'
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
									$feature = [
										'id' => 'mitgliedPassnummer_mitglied',
										'title' => _('Passnummern'),
										'order' => 'z-mitgliedPassnummer_mitglied', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
									$feature = [
										'id' => 'ansprechpartner_mitglied',
										'title' => _('Kontaktpersonen'),
										'order' => 'z-ansprechpartner_mitglied', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'wf:mitglied:create\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_mitglied_create_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="save" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">save</i><?php echo(_('save')); ?></button><?php } ?>
									&nbsp;<?php if (true) { ?><button onclick="$(this).closest('form').find('.mdl-textfield__error:visible').hide();
		$('[required]').removeAttr('required');
	" type="submit" name="cancel" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">cancel</i><?php echo(_('cancel')); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#wf_mitglied_create_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Mail_Notifications']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedMitglied_gebtagMails" id="column_reminderMitgliedMitglied-gebtagMails">
		<!-- Feld "Geburtstage": reminderMitgliedMitglied-gebtagMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedMitglied-gebtagMails"><?php echo(_('Geburtstage')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderMitgliedMitglied-gebtagMails' id='reminderMitgliedMitglied-gebtagMails'><option value='never'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedForderungenMails" id="column_reminderMitgliedForderungenMails">
		<!-- Feld "Offene Beiträge": reminderMitgliedForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedForderungenMails"><?php echo(_('Offene Beiträge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderMitgliedForderungenMails' id='reminderMitgliedForderungenMails'><option value='never'<?php if ($data['reminderMitgliedForderungenMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderMitgliedForderungenMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderMitgliedForderungenMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderMitgliedForderungenMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderMitgliedForderungenMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderMitgliedForderungenMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderFop_fints_buchungForderungenMails" id="column_reminderFop_fints_buchungForderungenMails">
		<!-- Feld "unbehandelte Zahlungseingänge": reminderFop_fints_buchungForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderFop_fints_buchungForderungenMails"><?php echo(_('unbehandelte Zahlungseingänge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderFop_fints_buchungForderungenMails' id='reminderFop_fints_buchungForderungenMails'><option value='never'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeAssignedMails" id="column_reminderAufgabeAssignedMails">
		<!-- Feld "Mir zugewiesen": reminderAufgabeAssignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeAssignedMails"><?php echo(_('Mir zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderAufgabeAssignedMails' id='reminderAufgabeAssignedMails'><option value='never'<?php if ($data['reminderAufgabeAssignedMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderAufgabeAssignedMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderAufgabeAssignedMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderAufgabeAssignedMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderAufgabeAssignedMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderAufgabeAssignedMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeNot_assignedMails" id="column_reminderAufgabeNot_assignedMails">
		<!-- Feld "Nicht zugewiesen": reminderAufgabeNot_assignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeNot_assignedMails"><?php echo(_('Nicht zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderAufgabeNot_assignedMails' id='reminderAufgabeNot_assignedMails'><option value='never'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Mail_Notifications']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || false || false || true || true || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Kontaktdaten']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_land" id="column_land">
		<!-- Feld "Land": land -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="land"><?php echo(_('Land')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="land"  value="<?php echo htmlentities($data['land']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_plz_ort" id="column_plz_ort">
		<!-- Feld "Postleitzahl": plz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="plz"><?php echo(_('Postleitzahl')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="plz"  value="<?php echo htmlentities($data['plz']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
		<!-- Feld "Ort": ort -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="ort"><?php echo(_('Ort')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ort"  value="<?php echo htmlentities($data['ort']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_strasse" id="column_strasse">
		<!-- Feld "Straße und Hausnummer": strasse -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="strasse"><?php echo(_('Straße und Hausnummer')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="strasse"  value="<?php echo htmlentities($data['strasse']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_email" id="column_email">
		<!-- Feld "E-Mail": email -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="email"><?php echo(_('E-Mail')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input ng-model='form[&apos;email&apos;]' class="mdl-textfield__input" type="email" name="email"  id="email" value="<?php echo htmlentities($data['email']); ?>"/><label class="mdl-textfield__label" for="email"><?php echo(_('email')); ?></label>  <span class="mdl-textfield__error" style="{{(!(form[&apos;email::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;email::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;email::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_email2" id="column_email2">
		<!-- Feld "E-Mail Alternative": email2 -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="email2"><?php echo(_('E-Mail Alternative')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="email" name="email2"  id="email2" value="<?php echo htmlentities($data['email2']); ?>"/><label class="mdl-textfield__label" for="email2"><?php echo(_('email')); ?></label>  <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_telefon" id="column_telefon">
		<!-- Feld "Telefon": telefon -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="telefon"><?php echo(_('Telefon')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="telefon" value="<?php echo htmlentities($data['telefon']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_mobil" id="column_mobil">
		<!-- Feld "Mobil": mobil -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="mobil"><?php echo(_('Mobil')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="mobil" value="<?php echo htmlentities($data['mobil']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_password" id="column_password" ng-show='!form._send_pw'>
		<!-- Feld "Passwort": password -->
	<div ng-show='!form._send_pw'	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="password"><?php echo(_('Passwort')); ?>: </label>
	</div>
	<div ng-show='!form._send_pw'	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div ng-controller='dummy' ng-init='pw = <?php echo htmlentities(json_encode(empty($data['password']) ? '' : '&&'.($data['password']))); ?>'><div class="mdl-textfield mdl-js-textfield"><input ng-model='pw' class="mdl-textfield__input" type="password" name="password" /><label class="mdl-textfield__label" for="password"><?php echo(_('password')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
<br><div class="mdl-textfield mdl-js-textfield" compare-password='pw'><input class="mdl-textfield__input" type="password"  /><label class="mdl-textfield__label" for="password"><?php echo(_('password repeat')); ?></label><span class="mdl-textfield__error"><?php echo _('passwords must match'); ?></span></div></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Kontaktdaten']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Verein']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_mnr" id="column_mnr">
		<!-- Feld "Mitgliedsnummer": mnr -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="mnr"><?php echo(_('Mitgliedsnummer')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  ng-model='form[&apos;mnr&apos;]' ng-trim='false' ng-revalidate class="mdl-textfield__input"  type="text" name="mnr"  value="<?php echo htmlentities($data['mnr']); ?>"/><span class="mdl-textfield__error" style="{{(!(form[&apos;mnr::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;mnr::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;mnr::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_eintritt" id="column_eintritt">
		<!-- Feld "Eintrittsdatum": eintritt -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="eintritt"><?php echo(_('Eintrittsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="eintritt" type="text" name="eintritt" value="<?php echo ($data['eintritt']) ? strftime(_('dateformat_php2'), intval($data['eintritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_austrittsdatum" id="column_austrittsdatum">
		<!-- Feld "Austrittsdatum": austrittsdatum -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="austrittsdatum"><?php echo(_('Austrittsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' ts-model='form[&apos;austrittsdatum&apos;]' class="mdl-textfield__input picker_date" id="austrittsdatum" type="text" name="austrittsdatum" value="<?php echo ($data['austrittsdatum']) ? strftime(_('dateformat_php2'), intval($data['austrittsdatum'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_austrittsgrund" id="column_austrittsgrund">
		<!-- Feld "Austritts-Grund": austrittsgrund -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="austrittsgrund"><?php echo(_('Austritts-Grund')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  ng-model='form[&apos;austrittsgrund&apos;]' ng-trim='false' ng-revalidate class="mdl-textfield__input"  type="text" name="austrittsgrund"  value="<?php echo htmlentities($data['austrittsgrund']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_notiz" id="column_notiz">
		<!-- Feld "Notiz": notiz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="notiz"><?php echo(_('Notiz')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div style="width: 100%;" class="mdl-textfield mdl-js-textfield"><textarea onkeydown='if (event.keyCode == 13 && event.ctrlKey) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="mdl-textfield__input" rows="8" cols="80" name="notiz" id="notiz" ><?php echo htmlentities($data['notiz']); ?></textarea><label class="mdl-textfield__label" for="notiz"><?php echo(_('text')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_tarif" id="column_tarif">
		<!-- Feld "Mitgliedsbeitrag": tarif -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="tarif"><?php echo(_('Mitgliedsbeitrag')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Tarif::renderEditform_wf_mitglied_create_tarifAction($data['tarif'], [], '');
?> &nbsp;	<?php if (\TablesRouter\Tarif::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=tarifNull", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div> &nbsp; <a href="#" onclick="event.preventDefault(); document.getElementById('dynamic:time').focus();">🕑</a> 
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['Verein']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Stammdaten']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_name" id="column_name">
		<!-- Feld "Name": name -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="name"><?php echo(_('Name')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  required='required'  type="text" name="name"  value="<?php echo htmlentities($data['name']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_vorname" id="column_vorname">
		<!-- Feld "Vorname": vorname -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="vorname"><?php echo(_('Vorname')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  required='required'  type="text" name="vorname"  value="<?php echo htmlentities($data['vorname']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_geschlecht" id="column_geschlecht">
		<!-- Feld "Geschlecht": geschlecht -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="geschlecht"><?php echo(_('Geschlecht')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div><div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='geschlecht' id='geschlecht'><option value='0'<?php if ($data['geschlecht'] == 0) {echo " selected";}?>><?php echo(_('männlich')); ?></option><option value='1'<?php if ($data['geschlecht'] == 1) {echo " selected";}?>><?php echo(_('weiblich')); ?></option><option value='2'<?php if ($data['geschlecht'] == 2) {echo " selected";}?>><?php echo(_('Individuum')); ?></option></select></div>
		<br><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_geburtsdatum" id="column_geburtsdatum">
		<!-- Feld "Geburtsdatum": geburtsdatum -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="geburtsdatum"><?php echo(_('Geburtsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="geburtsdatum" type="text" name="geburtsdatum" value="<?php echo ($data['geburtsdatum']) ? strftime(_('dateformat_php2'), intval($data['geburtsdatum'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_verstorben" id="column_verstorben">
		<!-- Feld "Verstorben am": verstorben -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="verstorben"><?php echo(_('Verstorben am')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' ts-model='form[&apos;verstorben&apos;]' class="mdl-textfield__input picker_date" id="verstorben" type="text" name="verstorben" value="<?php echo ($data['verstorben']) ? strftime(_('dateformat_php2'), intval($data['verstorben'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Stammdaten']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())) || ((\FOP\User::getAdmin())))) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Berechtigung']);
										?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canAdmin" id="column_canAdmin">
		<!-- Feld "Admin": canAdmin -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canAdmin"><?php echo(_('Admin')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canAdmin" id="canAdmin" value="<?php echo ($data['canAdmin']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canAdmin__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canAdmin']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canMitglied" id="column_canMitglied">
		<!-- Feld "Mitgliederverwaltung": canMitglied -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canMitglied"><?php echo(_('Mitgliederverwaltung')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canMitglied" id="canMitglied" value="<?php echo ($data['canMitglied']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canMitglied__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canMitglied']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canGruppe" id="column_canGruppe">
		<!-- Feld "Verwaltung der eigenen Gruppe": canGruppe -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canGruppe"><?php echo(_('Verwaltung der eigenen Gruppe')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canGruppe" id="canGruppe" value="<?php echo ($data['canGruppe']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canGruppe__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canGruppe']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canCampaign" id="column_canCampaign">
		<!-- Feld "Rundmails und Aktionen": canCampaign -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canCampaign"><?php echo(_('Rundmails und Aktionen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canCampaign" id="canCampaign" value="<?php echo ($data['canCampaign']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canCampaign__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canCampaign']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canSammlung" id="column_canSammlung">
		<!-- Feld "Geldsammlungen": canSammlung -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canSammlung"><?php echo(_('Geldsammlungen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canSammlung" id="canSammlung" value="<?php echo ($data['canSammlung']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canSammlung__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canSammlung']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canBuchhaltung" id="column_canBuchhaltung">
		<!-- Feld "Buchhaltung": canBuchhaltung -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canBuchhaltung"><?php echo(_('Buchhaltung')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canBuchhaltung" id="canBuchhaltung" value="<?php echo ($data['canBuchhaltung']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canBuchhaltung__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canBuchhaltung']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canProtokoll" id="column_canProtokoll">
		<!-- Feld "Protokoll": canProtokoll -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canProtokoll"><?php echo(_('Protokoll')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canProtokoll" id="canProtokoll" value="<?php echo ($data['canProtokoll']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canProtokoll__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canProtokoll']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canDokument" id="column_canDokument">
		<!-- Feld "Dokumente": canDokument -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canDokument"><?php echo(_('Dokumente')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canDokument" id="canDokument" value="<?php echo ($data['canDokument']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canDokument__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canDokument']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['Berechtigung']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['matrix_campaignTarget_target_campaign']);
										?><?php
	if (((\FOP\User::getCampaign()) && (\FOP\User::getCampaign()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card" id='matrix_campaignTarget_target_campaign'  ng-init='form["ID"] = form["ID"] || <?php echo htmlentities(json_encode($id ?? null)); ?>'><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Empfänger')); ?></div>
	<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone" style="overflow: auto; max-height: 90vh; align-items: start;">
		<table class='mdl-data-table mdl-js-data-table mdl-shadow--2dp table-dense table-editable'>
			<thead>
				<tr>
					
					<th class='mdl-data-table__cell--non-numeric'>
						<label ng-click='cmMatrix_campaignTarget_target_campaignAllSelectToggle()' class='mdl-checkbox mdl-js-checkbox mdl-js'>
							<input id='cm-matrix_campaignTarget_target_campaign-allselect' type='checkbox' class='mdl-checkbox__input'>
						</label>
					</th>
					<th class='mdl-data-table__cell--non-numeric'>
						<?php echo(_('Aktion')); ?>
					</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Status')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Notiz')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Erstellung')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('letzte Aktualisierung')); ?>
						</th>
				</tr>
			</thead>
			<tbody class='cm-matrix_campaignTarget_target_campaign'>
			<?php
					// renderAction!
					self::createMatrixMatrix_campaignTarget_target_campaignAction(null, $matrix_campaignTarget_target_campaign);
			?>
			</tbody>
		</table>
	</div>
	</div>
	<?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['matrix_campaignTarget_target_campaign']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['matrix_gruppeItem_item_list']);
										?><?php
	if (((\FOP\User::getGruppe()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card" id='matrix_gruppeItem_item_list'  ng-init='form["ID"] = form["ID"] || <?php echo htmlentities(json_encode($id ?? null)); ?>'><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Gruppenmitglieder')); ?></div>
	<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone" style="overflow: auto; max-height: 90vh; align-items: start;">
		<table class='mdl-data-table mdl-js-data-table mdl-shadow--2dp table-dense table-editable'>
			<thead>
				<tr>
					
					<th class='mdl-data-table__cell--non-numeric'>
						<label ng-click='cmMatrix_gruppeItem_item_listAllSelectToggle()' class='mdl-checkbox mdl-js-checkbox mdl-js'>
							<input id='cm-matrix_gruppeItem_item_list-allselect' type='checkbox' class='mdl-checkbox__input'>
						</label>
					</th>
					<th class='mdl-data-table__cell--non-numeric'>
						<?php echo(_('Gruppe')); ?>
					</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Eintritt in Gruppe')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Austritt aus Gruppe')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Notiz')); ?>
						</th>
				</tr>
			</thead>
			<tbody class='cm-matrix_gruppeItem_item_list'>
			<?php
					// renderAction!
					self::createMatrixMatrix_gruppeItem_item_listAction(null, $matrix_gruppeItem_item_list);
			?>
			</tbody>
		</table>
	</div>
	</div>
	<?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['matrix_gruppeItem_item_list']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || (!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung())) || ((\FOP\User::getBuchhaltung())) || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])))) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Buchhaltung']);
										?><?php if ((!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_iban" id="column_iban">
		<!-- Feld "IBAN": iban -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="iban"><?php echo(_('IBAN')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" style="text-transform: uppercase;" class="mdl-textfield__input"  type="text" name="iban" pattern="[A-Z]{2}[0-9 \-]{12,26}" value="<?php echo htmlentities($data['iban']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_bic" id="column_bic">
		<!-- Feld "BIC": bic -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="bic"><?php echo(_('BIC')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" style="text-transform: uppercase;" class="mdl-textfield__input"  type="text" name="bic" pattern="[A-Za-z]{6,6}[A-Za-z2-9][A-Na-nP-Zp-z0-9]([A-Za-z0-9]{3,3}){0,1}" value="<?php echo htmlentities($data['bic']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_sepa" id="column_sepa">
		<!-- Feld "SEPA-Lastschrift": sepa -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="sepa"><?php echo(_('SEPA-Lastschrift')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="sepa" id="sepa" value="<?php echo ($data['sepa']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;sepa&apos;]' ng-revalidate class="mdl-checkbox__input" id="sepa__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['sepa']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_sepaDate" id="column_sepaDate" ng-show='form[&apos;sepa&apos;]'>
		<!-- Feld "Datum SEPA-Lastschrift": sepaDate -->
	<div ng-show='form[&apos;sepa&apos;]'	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="sepaDate"><?php echo(_('Datum SEPA-Lastschrift')); ?>: </label>
	</div>
	<div ng-show='form[&apos;sepa&apos;]'	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' ts-model='form[&apos;sepaDate&apos;]' class="mdl-textfield__input picker_date" id="sepaDate" type="text" name="sepaDate" value="<?php echo ($data['sepaDate']) ? strftime(_('dateformat_php2'), intval($data['sepaDate'])) : ''; ?>"/><span class="mdl-textfield__error" style="{{(!((! (form[&apos;sepa&apos;])) || (form[&apos;sepaDate&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((! (form[&apos;sepa&apos;])) || (form[&apos;sepaDate&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((! (form[&apos;sepa&apos;])) || (form[&apos;sepaDate&apos;]))'><?php echo(_('wann wurde das Lastschriftmandat erteilt?')); ?></div></span></div>
	</div>
	</div><?php } ?><?php if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_tarif" id="column_tarif">
		<!-- Feld "Mitgliedsbeitrag": tarif -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="tarif"><?php echo(_('Mitgliedsbeitrag')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Tarif::renderEditform_wf_mitglied_create_tarifAction($data['tarif'], [], '');
?> &nbsp;	<?php if (\TablesRouter\Tarif::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=tarifNull", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div> &nbsp; <a href="#" onclick="event.preventDefault(); document.getElementById('dynamic:time').focus();">🕑</a> 
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['Buchhaltung']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || false || false || false || false || true || true || false || false || ((\FOP\User::getSuperadmin())) || false || false || false || true || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column__send_pw" id="column__send_pw">
		<!-- Feld "Passwort neu vergeben und zusenden": _send_pw -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="_send_pw"><?php echo(_('Passwort neu vergeben und zusenden')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="_send_pw" id="_send_pw" value="<?php echo ($data['_send_pw']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;_send_pw&apos;]' ng-revalidate class="mdl-checkbox__input" id="_send_pw__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['_send_pw']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_datenschutz" id="column_datenschutz">
		<!-- Feld "Datenschutz akzeptiert": datenschutz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="datenschutz"><?php echo(_('Datenschutz akzeptiert')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="datenschutz" id="datenschutz" value="<?php echo ($data['datenschutz']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;datenschutz&apos;]' ng-revalidate class="mdl-checkbox__input" id="datenschutz__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['datenschutz']) echo ' checked'; ?>><span class="mdl-textfield__error" style="{{(!((form[&apos;datenschutz&apos;]) == (true))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;datenschutz&apos;]) == (true))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;datenschutz&apos;]) == (true))'><?php echo(_('Bitte akzeptieren Sie die Datenschutzrichtlinien.')); ?></div></span></label>
	</div>
	</div><?php if (((\FOP\User::getSuperadmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_superadmin" id="column_superadmin">
		<!-- Feld "Super-Admin": superadmin -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="superadmin"><?php echo(_('Super-Admin')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="superadmin" id="superadmin" value="<?php echo ($data['superadmin']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;superadmin&apos;]' ng-revalidate class="mdl-checkbox__input" id="superadmin__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['superadmin']) echo ' checked'; ?>><span class="mdl-textfield__error" style="{{(!((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;])))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;])))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;])))'><?php echo(_('accessdenied')); ?></div></span></label>
	</div>
	</div><?php } ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_dynamic_time" id="column_dynamic:time">
		<!-- Feld "validfrom": dynamic:time -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="dynamic:time"><?php echo(_('validfrom')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield fop-monthyear"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" class="mdl-textfield__input picker_monthyear"  required='required'  type="text" name="dynamic:time" value="<?php echo ($data['dynamic:time']) ? date(_('monthyearformat_php'), mktime(1, 1, 1, intval($data['dynamic:time'])%12 + 1, 1, floor(intval($data['dynamic:time'])/12))) : ''; ?>" /><span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span></div>
	<script type="text/javascript">
	$(function () {
        $('.picker_monthyear').datetimepicker({viewMode: 'years', locale: '<?php echo(\FOP\I18n::getShortLocale()); ?>', format: '<?php echo(_('monthyearformat_moment')); ?>'}).on('dp.change', function (e) {e.target.parentElement.MaterialTextfield.checkValidity();})[0].parentElement.MaterialTextfield.checkValidity();
	});
	</script>
	
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['mitgliedPassnummer_mitglied']);
										?><span id='mitgliedPassnummer_mitglied' class='mdl-cell mdl-cell--12-col mdl-grid' >
	
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card">
	
	<div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Passnummern')); ?></div>
	<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone" style="overflow: auto; max-height: calc(100vh - 300px)">
		<table class='mdl-data-table mdl-js-data-table mdl-shadow--2dp table-dense table-editable'>
			<thead>
				<tr  ng-controller='FormGroupWf_mitglied_createMitgliedPassnummer_mitglied'>
					<th class='mdl-data-table__cell--non-numeric'>-</th>
					
						<?php if (true || true) { ?>
							<th class='mdl-data-table__cell--non-numeric'><?php echo(_('Passnummer')); ?></th>
						<?php } ?>
						<?php if (true || true) { ?>
							<th class='mdl-data-table__cell--non-numeric'><?php echo(_('Sportverband')); ?></th>
						<?php } ?>
				</tr>
			</thead>
			<tbody>
				<?php
				foreach ($mitgliedPassnummer_mitglied AS $row) {
					self::createListMitgliedPassnummer_mitgliedAction($row, $data);
				}
				if ((\FOP\User::getGruppe())) { ?>
				<tr class='wfl-create'>
					<td colspan='42' class='mdl-data-table__cell--non-numeric'>
					  
				<button type='button' class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='var tr = $(this).closest(".wfl-create"); $.get("Tables/Mitglied/createListMitgliedPassnummer_mitglied?_&superadmin="+encodeURIComponent($(this).scope().$eval("form.superadmin")) + "&ID="+encodeURIComponent($(this).scope().$eval("form.ID")) + "", function (html) { var h = $(html).insertBefore(tr); upgradeDOM(h); h.find("input:not([type=hidden]),textarea").first().focus(); }); event.stopPropagation();'><i class="material-icons">add</i> <?php echo(sprintf(_('add %s'), _('Passnummer'))); ?></button>
					  
					</td>
				</tr>
				<?php } ?>
			</tbody>
		</table>
	</div>
	</div>
	</span><?php
										\EasyEditor\FormFeature::pop();
										$features['mitgliedPassnummer_mitglied']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getGruppe())) && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['ansprechpartner_mitglied']);
										?><span id='ansprechpartner_mitglied' class='mdl-cell mdl-cell--12-col mdl-grid' >
	
				<?php
				foreach ($ansprechpartner_mitglied AS $row) {
					self::createListAnsprechpartner_mitgliedAction($row, $data);
				}
				if ((\FOP\User::getGruppe())) { ?>
         <div class="mdl-cell mdl-cell--12-col mdl-grid grid-card wfl-create">
             
             <div class="mdl-cell mdl-cell--3-col mdl-cell--2-col-phone fop-form-label"><?php echo(_('Kontaktpersonen')); ?></div>
             <div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					  
			<button type='button' class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='var tr = $(this).closest(".wfl-create"); $.get("Tables/Mitglied/createListAnsprechpartner_mitglied?_&superadmin="+encodeURIComponent($(this).scope().$eval("form.superadmin")) + "&ID="+encodeURIComponent($(this).scope().$eval("form.ID")) + "", function (html) { var h = $(html).insertBefore(tr); upgradeDOM(h); h.find("input:not([type=hidden]),textarea").first().focus(); }); event.stopPropagation();'><i class="material-icons">add</i> <?php echo(sprintf(_('add %s'), _('Kontaktperson'))); ?></button>
					  
             </div>
         </div>
			<?php } ?>
	
	</span><?php
										\EasyEditor\FormFeature::pop();
										$features['ansprechpartner_mitglied']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-wf_mitglied_create').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-wf_mitglied_create').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-wf_mitglied_create').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=wf%3Amitglied%3Acreate&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=wf%3Amitglied%3Acreate&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_mitglied_create')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_mitglied_create input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
							<div class="content" id="~spacer"><?php if (!isset($_GET['popup'])) { ?><div style="padding-bottom: 10cm;"></div><?php } ?>
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    // --- BLOCK: main-6 ---
    }
    
  }

  public static function editAction($id = null ) { 
    
    
    // --- BLOCK: 0_CSRFValidate ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') \FOP\Session::validateCSRFToken(); else \FOP\Session::getCSRFToken();

    // --- BLOCK: 0_CSRF_ensure ---
    
	\FOP\Session::getCSRFToken();
    // --- BLOCK: access ---
    if(!(((\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		$data = self::view($id);
		/* Validatoren */
		
		if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) \Types\TarifNull::validate($_POST['tarif']);
		if (((\FOP\User::getBuchhaltung())) && ($data['iban::canEdit'] == 1) && (!isset($_POST['cancel']))) \FOP\Validators::iban_checker($_POST['iban']);

		if (((false))) if (isset($_POST['mitgliedPassnummer_mitglied_mitglied'])) foreach ($_POST['mitgliedPassnummer_mitglied_mitglied'] AS $i => $val)
			if ($_POST['mitgliedPassnummer_mitglied'][$i] != '0') \Types\Mitglied::validate($val);
		if (((false))) if (isset($_POST['ansprechpartner_mitglied_mitglied'])) foreach ($_POST['ansprechpartner_mitglied_mitglied'] AS $i => $val)
			if ($_POST['ansprechpartner_mitglied'][$i] != '0') \Types\Mitglied::validate($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_campaign'])) foreach ($_POST['matrix_campaignTarget_target_campaign_campaign'] AS $i => $val)
			if (isset($_POST['matrix_campaignTarget_target_campaign__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_campaignTarget_target_campaign'][$i])])) \Types\Campaign::validate($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_campaignTarget_target_campaign_target'])) foreach ($_POST['matrix_campaignTarget_target_campaign_target'] AS $i => $val)
			if (isset($_POST['matrix_campaignTarget_target_campaign__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_campaignTarget_target_campaign'][$i])])) \Types\Mitglied::validate($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_state'])) foreach ($_POST['matrix_campaignTarget_target_campaign_state'] AS $i => $val)
			if (isset($_POST['matrix_campaignTarget_target_campaign__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_campaignTarget_target_campaign'][$i])])) \Types\CampaignState::validate($val);
		if (isset($_POST['matrix_gruppeItem_item_list_list'])) foreach ($_POST['matrix_gruppeItem_item_list_list'] AS $i => $val)
			if (isset($_POST['matrix_gruppeItem_item_list__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_gruppeItem_item_list'][$i])])) \Types\Gruppe::validate($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_gruppeItem_item_list_item'])) foreach ($_POST['matrix_gruppeItem_item_list_item'] AS $i => $val)
			if (isset($_POST['matrix_gruppeItem_item_list__'.preg_replace('/[^a-zA-Z_0-9]/', '', $POST['matrix_gruppeItem_item_list'][$i])])) \Types\Mitglied::validate($val);
		/* Sanitizer */

		if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) $_POST['tarif'] = \FOP\Sanitizers::null_filter($_POST['tarif']);
		$_POST['dynamic:time'] = \FOP\Sanitizers::convert_month_years_to_unixtime($_POST['dynamic:time']);
		if (((\FOP\User::getBuchhaltung())) && ($data['sepaDate::canEdit'] == 1)) $_POST['sepaDate'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['sepaDate']);
		$_POST['geburtsdatum'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['geburtsdatum']);
		$_POST['eintritt'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['eintritt']);
		$_POST['email'] = \FOP\Sanitizers::no_text($_POST['email']);
		$_POST['email2'] = \FOP\Sanitizers::no_text($_POST['email2']);
		$_POST['telefon'] = \FOP\Sanitizers::no_phone($_POST['telefon']);
		$_POST['mobil'] = \FOP\Sanitizers::no_phone($_POST['mobil']);
		$_POST['austrittsdatum'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['austrittsdatum']);
		$_POST['verstorben'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($_POST['verstorben']);
		if (((\FOP\User::getBuchhaltung())) && ($data['iban::canEdit'] == 1) && (!isset($_POST['cancel']))) $_POST['iban'] = \FOP\Sanitizers::iban_filter($_POST['iban']);
		if (((\FOP\User::getBuchhaltung())) && ($data['iban::canEdit'] == 1) && (!isset($_POST['cancel']))) $_POST['iban'] = \FOP\Sanitizers::no_text($_POST['iban']);
		if (((\FOP\User::getBuchhaltung())) && ($data['iban::canEdit'] == 1) && (!isset($_POST['cancel']))) $_POST['iban'] = mb_strtoupper($_POST['iban']);
		if (((\FOP\User::getBuchhaltung())) && ($data['bic::canEdit'] == 1)) $_POST['bic'] = mb_strtoupper($_POST['bic']);
		$_POST['password'] = \FOP\Sanitizers::password_filter($_POST['password']);

		if (((false))) if (isset($_POST['mitgliedPassnummer_mitglied_mitglied'])) foreach ($_POST['mitgliedPassnummer_mitglied_mitglied'] AS $idx => $val) $_POST['mitgliedPassnummer_mitglied_mitglied'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (((false))) if (isset($_POST['ansprechpartner_mitglied_mitglied'])) foreach ($_POST['ansprechpartner_mitglied_mitglied'] AS $idx => $val) $_POST['ansprechpartner_mitglied_mitglied'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (isset($_POST['ansprechpartner_mitglied_tel'])) foreach ($_POST['ansprechpartner_mitglied_tel'] AS $idx => $val) $_POST['ansprechpartner_mitglied_tel'][$idx] = \FOP\Sanitizers::no_phone($val);
		if (isset($_POST['ansprechpartner_mitglied_tel2'])) foreach ($_POST['ansprechpartner_mitglied_tel2'] AS $idx => $val) $_POST['ansprechpartner_mitglied_tel2'][$idx] = \FOP\Sanitizers::no_phone($val);
		if (isset($_POST['ansprechpartner_mitglied_email'])) foreach ($_POST['ansprechpartner_mitglied_email'] AS $idx => $val) $_POST['ansprechpartner_mitglied_email'][$idx] = \FOP\Sanitizers::no_text($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_campaign'])) foreach ($_POST['matrix_campaignTarget_target_campaign_campaign'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_campaign'][$idx] = \FOP\Sanitizers::null_filter($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_campaignTarget_target_campaign_target'])) foreach ($_POST['matrix_campaignTarget_target_campaign_target'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_target'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (isset($_POST['matrix_campaignTarget_target_campaign_state'])) foreach ($_POST['matrix_campaignTarget_target_campaign_state'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_state'][$idx] = \FOP\Sanitizers::null_filter($val);
		if (((false))) if (isset($_POST['matrix_campaignTarget_target_campaign_creation'])) foreach ($_POST['matrix_campaignTarget_target_campaign_creation'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_creation'][$idx] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($val);
		if (((false))) if (isset($_POST['matrix_campaignTarget_target_campaign_lastUpdate'])) foreach ($_POST['matrix_campaignTarget_target_campaign_lastUpdate'] AS $idx => $val) $_POST['matrix_campaignTarget_target_campaign_lastUpdate'][$idx] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($val);
		if (isset($_POST['matrix_gruppeItem_item_list_eintritt'])) foreach ($_POST['matrix_gruppeItem_item_list_eintritt'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_eintritt'][$idx] = \FOP\Sanitizers::convert_date_to_unix_timestamp($val);
		if (isset($_POST['matrix_gruppeItem_item_list_austritt'])) foreach ($_POST['matrix_gruppeItem_item_list_austritt'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_austritt'][$idx] = \FOP\Sanitizers::convert_date_to_unix_timestamp($val);
		if (isset($_POST['matrix_gruppeItem_item_list_list'])) foreach ($_POST['matrix_gruppeItem_item_list_list'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_list'][$idx] = \FOP\Sanitizers::null_filter($val);
		if ((!\FOP\User::getIsGuest())) if (isset($_POST['matrix_gruppeItem_item_list_item'])) foreach ($_POST['matrix_gruppeItem_item_list_item'] AS $idx => $val) $_POST['matrix_gruppeItem_item_list_item'][$idx] = \FOP\Sanitizers::null_filter($val);
	}
	
    // --- BLOCK: access+~email:mitglied:email:unique ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (($data ?? null) && isset($data['ID'])) $_POST['ID'] = $data['ID'];
			if (!isset($_POST['cancel']) && !(true)) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: access+~mnr:mitglied:mnr:unique ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (($data ?? null) && isset($data['ID'])) $_POST['ID'] = $data['ID'];
			if (!isset($_POST['cancel']) && !(true)) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: access+~sepaDate:51bdc9f76035953b2a0deccba44090e01d75208640e7c9ec3be57aeb827f5409 ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (((\FOP\User::getBuchhaltung())) && ((\FOP\User::getBuchhaltung())) && ((\FOP\User::getBuchhaltung())) && ((\FOP\User::getBuchhaltung())) && !isset($_POST['cancel']) && !((! ($_POST['sepa'])) || ($_POST['sepaDate']))) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: access+~superadmin:daac3e86417ef043c7163840382304ef511239ca9ff295892317efac4f057b04 ---
    
		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
			if (((\FOP\User::getSuperadmin())) && ((\FOP\User::getSuperadmin())) && !isset($_POST['cancel']) && !((\FOP\User::getSuperadmin()) ? (true) : (! ($_POST['superadmin'])))) throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: access-item-mitglied-edit ---
    
		if ($id !== null && \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() != 1) {
			throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: main ---
    
		// Main block
	
    // --- BLOCK: main-1 ---
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (!isset($_POST['cancel'])) {
			\FOP\Database::beginTransaction();
    // --- BLOCK: main-2:save-clone-prepare ---
    
		$data = self::view($id);
	
    // --- BLOCK: main-2:save-main ---
    
		$data_edit = [];
		$data_edit['tarif'] = $_POST['tarif'];
		$data_edit['dynamic:time'] = $_POST['dynamic:time'];
		$data_edit['name'] = $_POST['name'];
		$data_edit['vorname'] = $_POST['vorname'];
		$data_edit['geschlecht'] = $_POST['geschlecht'];
		$data_edit['datenschutz'] = $_POST['datenschutz'];
		$data_edit['geburtsdatum'] = $_POST['geburtsdatum'];
		$data_edit['land'] = $_POST['land'];
		$data_edit['plz'] = $_POST['plz'];
		$data_edit['ort'] = $_POST['ort'];
		$data_edit['strasse'] = $_POST['strasse'];
		$data_edit['eintritt'] = $_POST['eintritt'];
		$data_edit['email'] = $_POST['email'];
		$data_edit['email2'] = $_POST['email2'];
		$data_edit['telefon'] = $_POST['telefon'];
		$data_edit['mobil'] = $_POST['mobil'];
		$data_edit['mnr'] = $_POST['mnr'];
		$data_edit['austrittsdatum'] = $_POST['austrittsdatum'];
		$data_edit['austrittsgrund'] = $_POST['austrittsgrund'];
		$data_edit['verstorben'] = $_POST['verstorben'];
		$data_edit['notiz'] = $_POST['notiz'];
		$data_edit['password'] = $_POST['password'];
		$data_edit['reminderMitgliedMitglied-gebtagMails'] = $_POST['reminderMitgliedMitglied-gebtagMails'];
		$data_edit['reminderMitgliedForderungenMails'] = $_POST['reminderMitgliedForderungenMails'];
		$data_edit['reminderFop_fints_buchungForderungenMails'] = $_POST['reminderFop_fints_buchungForderungenMails'];
		$data_edit['reminderAufgabeAssignedMails'] = $_POST['reminderAufgabeAssignedMails'];
		$data_edit['reminderAufgabeNot_assignedMails'] = $_POST['reminderAufgabeNot_assignedMails'];
		if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) $data_edit['tarif'] = $_POST['tarif'];
		if (((\FOP\User::getBuchhaltung())) && ($data['sepa::canEdit'] == 1)) $data_edit['sepa'] = $_POST['sepa'];
		if (((\FOP\User::getBuchhaltung())) && ($data['sepaDate::canEdit'] == 1)) $data_edit['sepaDate'] = $_POST['sepaDate'];
		if (((\FOP\User::getSuperadmin())) && ($data['superadmin::canEdit'] == 1)) $data_edit['superadmin'] = $_POST['superadmin'];
		if (((\FOP\User::getBuchhaltung())) && ($data['iban::canEdit'] == 1) && (!isset($_POST['cancel']))) $data_edit['iban'] = $_POST['iban'];
		if (((\FOP\User::getBuchhaltung())) && ($data['bic::canEdit'] == 1)) $data_edit['bic'] = $_POST['bic'];
		if (((\FOP\User::getAdmin())) && ($data['canAdmin::canEdit'] == 1)) $data_edit['canAdmin'] = $_POST['canAdmin'];
		if (((\FOP\User::getAdmin())) && ($data['canMitglied::canEdit'] == 1)) $data_edit['canMitglied'] = $_POST['canMitglied'];
		if (((\FOP\User::getAdmin())) && ($data['canGruppe::canEdit'] == 1)) $data_edit['canGruppe'] = $_POST['canGruppe'];
		if (((\FOP\User::getAdmin())) && ($data['canCampaign::canEdit'] == 1)) $data_edit['canCampaign'] = $_POST['canCampaign'];
		if (((\FOP\User::getAdmin())) && ($data['canSammlung::canEdit'] == 1)) $data_edit['canSammlung'] = $_POST['canSammlung'];
		if (((\FOP\User::getAdmin())) && ($data['canBuchhaltung::canEdit'] == 1)) $data_edit['canBuchhaltung'] = $_POST['canBuchhaltung'];
		if (((\FOP\User::getAdmin())) && ($data['canProtokoll::canEdit'] == 1)) $data_edit['canProtokoll'] = $_POST['canProtokoll'];
		if (((\FOP\User::getAdmin())) && ($data['canDokument::canEdit'] == 1)) $data_edit['canDokument'] = $_POST['canDokument'];
		self::edit($id, $data_edit);
		if (isset($data_edit['ID'])) {
			$id = $data_edit['ID'];
		}
	
    // --- BLOCK: main-2:save-main-list-ansprechpartner_mitglied ---
    
		// List Save
		if (isset($_POST['ansprechpartner_mitglied_ID'])) foreach ($_POST['ansprechpartner_mitglied_ID'] AS $i => $subid) {
			// Subdaten extrahieren
			if (!$subid && $_POST['ansprechpartner_mitglied'][$i] != '0') {
				// es wird ein Create
				$subdata = \Tables\Ansprechpartner::getDefaults();
				\Tables\Ansprechpartner::sanitizeDefaults($subdata, false);
			} else {
				// es ist ein Edit
				$subdata = [];
			}
			
			$subdata['mitglied'] = $id;
				$subdata['vorname'] = $_POST['ansprechpartner_mitglied_vorname'][$i];
				$subdata['name'] = $_POST['ansprechpartner_mitglied_name'][$i];
				$subdata['stellung'] = $_POST['ansprechpartner_mitglied_stellung'][$i];
				$subdata['tel'] = $_POST['ansprechpartner_mitglied_tel'][$i];
				$subdata['tel2'] = $_POST['ansprechpartner_mitglied_tel2'][$i];
				$subdata['email'] = $_POST['ansprechpartner_mitglied_email'][$i];
				$subdata['ID'] = $_POST['ansprechpartner_mitglied_ID'][$i];
			if ($subid) {
				// existierendes Element
				if ($_POST['ansprechpartner_mitglied'][$i] == '0') {
					// zur Löschung markiert
					// achtet selbst auf Permissions
					\Tables\Ansprechpartner::delete($subid);
				} else {
					// achtet selbst auf Permissions
					\Tables\Ansprechpartner::edit($subid, $subdata);
					
					
				}
			} else if ($_POST['ansprechpartner_mitglied'][$i] != '0') {
				// noch keine ID: erstellen
				if (((\FOP\User::getGruppe()))) {
					// TODO: TIAR-Create prüfen
					try {
						$subid = \Tables\Ansprechpartner::create($subdata);
						
						
					} catch (\FOP\AccessDeniedException $e) {
						// ignore duplicate
						if ($e->getMessage() != 'duplicateinsert') {
							throw $e;
						}
					}
				}
			}
		}
	
    // --- BLOCK: main-2:save-main-list-mitgliedPassnummer_mitglied ---
    
		// List Save
		if (isset($_POST['mitgliedPassnummer_mitglied_ID'])) foreach ($_POST['mitgliedPassnummer_mitglied_ID'] AS $i => $subid) {
			// Subdaten extrahieren
			if (!$subid && $_POST['mitgliedPassnummer_mitglied'][$i] != '0') {
				// es wird ein Create
				$subdata = \Tables\MitgliedPassnummer::getDefaults();
				\Tables\MitgliedPassnummer::sanitizeDefaults($subdata, false);
			} else {
				// es ist ein Edit
				$subdata = [];
			}
			
			$subdata['mitglied'] = $id;
				$subdata['pnr'] = $_POST['mitgliedPassnummer_mitglied_pnr'][$i];
				$subdata['verband'] = $_POST['mitgliedPassnummer_mitglied_verband'][$i];
				$subdata['ID'] = $_POST['mitgliedPassnummer_mitglied_ID'][$i];
			if ($subid) {
				// existierendes Element
				if ($_POST['mitgliedPassnummer_mitglied'][$i] == '0') {
					// zur Löschung markiert
					// achtet selbst auf Permissions
					\Tables\MitgliedPassnummer::delete($subid);
				} else {
					// achtet selbst auf Permissions
					\Tables\MitgliedPassnummer::edit($subid, $subdata);
					
					
				}
			} else if ($_POST['mitgliedPassnummer_mitglied'][$i] != '0') {
				// noch keine ID: erstellen
				if (((\FOP\User::getGruppe()))) {
					// TODO: TIAR-Create prüfen
					try {
						$subid = \Tables\MitgliedPassnummer::create($subdata);
						
						
					} catch (\FOP\AccessDeniedException $e) {
						// ignore duplicate
						if ($e->getMessage() != 'duplicateinsert') {
							throw $e;
						}
					}
				}
			}
		}
	
    // --- BLOCK: main-2:save-main-matrix-matrix_campaignTarget_target_campaign ---
    if (((\FOP\User::getCampaign()) && (\FOP\User::getCampaign()))) {
	if (isset($_POST['matrix_campaignTarget_target_campaign'])) foreach ($_POST['matrix_campaignTarget_target_campaign'] AS $i => $subid) {
		$parent = array_merge($data, $data_edit);
		$deps = [];
		
		if (\FOP\Database::query('SELECT mode > 0 FROM '.qi('campaign').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($subid))->fetchColumn() != '1') continue;
		if (!isset($_POST['matrix_campaignTarget_target_campaign__' . preg_replace('/[^a-zA-Z_0-9]/', '', $subid)])) {
			// nicht angetickt: evtl. löschen
			if ($_POST['matrix_campaignTarget_target_campaign_ID'][$i]) {
				\Tables\CampaignTarget::delete($_POST['matrix_campaignTarget_target_campaign_ID'][$i]);
			}
		} else {
			// angetickt: Erstellen oder bearbeiten
			$subdata = [];
			$subdata['target'] = $id;
			$subdata['campaign'] = $_POST['matrix_campaignTarget_target_campaign_campaign'][$i];
			$subdata['state'] = $_POST['matrix_campaignTarget_target_campaign_state'][$i];
			$subdata['note'] = $_POST['matrix_campaignTarget_target_campaign_note'][$i];
			$subdata['creation'] = $_POST['matrix_campaignTarget_target_campaign_creation'][$i];
			$subdata['lastUpdate'] = $_POST['matrix_campaignTarget_target_campaign_lastUpdate'][$i];
			if ($_POST['matrix_campaignTarget_target_campaign_ID'][$i]) {
				\Tables\CampaignTarget::edit($_POST['matrix_campaignTarget_target_campaign_ID'][$i], $subdata);
			} else {
				\Tables\CampaignTarget::create($subdata);
			}
		}
	}
	}
    // --- BLOCK: main-2:save-main-matrix-matrix_gruppeItem_item_list ---
    if (((\FOP\User::getGruppe()))) {
	if (isset($_POST['matrix_gruppeItem_item_list'])) foreach ($_POST['matrix_gruppeItem_item_list'] AS $i => $subid) {
		$parent = array_merge($data, $data_edit);
		$deps = [];
		
		
		if (!isset($_POST['matrix_gruppeItem_item_list__' . preg_replace('/[^a-zA-Z_0-9]/', '', $subid)])) {
			// nicht angetickt: evtl. löschen
			if ($_POST['matrix_gruppeItem_item_list_ID'][$i]) {
				\Tables\GruppeItem::delete($_POST['matrix_gruppeItem_item_list_ID'][$i]);
			}
		} else {
			// angetickt: Erstellen oder bearbeiten
			$subdata = [];
			$subdata['item'] = $id;
			$subdata['list'] = $_POST['matrix_gruppeItem_item_list_list'][$i];
			$subdata['eintritt'] = $_POST['matrix_gruppeItem_item_list_eintritt'][$i];
			$subdata['austritt'] = $_POST['matrix_gruppeItem_item_list_austritt'][$i];
			$subdata['note'] = $_POST['matrix_gruppeItem_item_list_note'][$i];
			if ($_POST['matrix_gruppeItem_item_list_ID'][$i]) {
				\Tables\GruppeItem::edit($_POST['matrix_gruppeItem_item_list_ID'][$i], $subdata);
			} else {
				\Tables\GruppeItem::create($subdata);
			}
		}
	}
	}
    // --- BLOCK: main-2:save-~send_pw ---
    
		if ($_POST['_send_pw'] == 1) {
			\FOP\User::sendPassword($id);
		}
	
    // --- BLOCK: main-3 ---
    
			\FOP\Database::commitTransaction();
			
		}
		
		if (isset($_POST['cancel'])) {
			
			if (isset($_POST['fop-from']) && $_POST['fop-from']) {
				// Redirect zu fop-from
				header('Location: ' . preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']));
			} else {
				header('Location: ' . \TablesRouter\Mitglied::viewURL2(['id' => $id, 'popup' => $_GET['popup'] ?? null]));
			}
			die();
	
		}
		if (isset($_POST['save'])) {
			
			if (isset($_POST['fop-from']) && $_POST['fop-from']) {
				// Redirect zu fop-from
				header('Location: ' . preg_replace('/&insert_param=(.*)$/', '&$1=' . ($id instanceof \FOP\IDList ? $id->toString() : $id), $_POST['fop-from']));
			} else {
				header('Location: ' . \TablesRouter\Mitglied::viewURL2(['id' => $id, 'popup' => $_GET['popup'] ?? null]));
			}
			die();
	
		}
		die(json_encode($_POST));
	} else {
    // --- BLOCK: main-4:load-main ---
    
		$data = self::view($id); // TODO: klären, wer die Funktion bereitstellt (momentan crud/view.fop)
	
    // --- BLOCK: main-4:load-main-dynamic-monthyear ---
    
		$virginData = \Tables\MitgliedDynamicMonthyear::getDefaults();
		\Tables\MitgliedDynamicMonthyear::sanitizeDefaults($virginData, true);
		$data_dynamic = (\FOP\Database::query('SELECT '.qi('tarif').' FROM '.qi('mitgliedDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = ' . \FOP\Database::quote($id) . ' AND '.qi('dynamic:time').' <= UNIX_TIMESTAMP() ORDER BY '.qi('dynamic:time').' DESC LIMIT 1')->fetch(\PDO::FETCH_ASSOC) ?: []) + $virginData;
		
		$data['tarif'] = \FOP\Sanitizers::null_converter($data_dynamic['tarif']);
		$data['dynamic:time'] = date('y')*12+date('m')-1;
	
    // --- BLOCK: main-4:load-main-list-ansprechpartner_mitglied ---
    
		$ansprechpartner_mitglied = [];
		array_push($ansprechpartner_mitglied, ...\Tables\Mitglied::loadEditAnsprechpartner_mitgliedItems($id ?? null));
	
    // --- BLOCK: main-4:load-main-list-mitgliedPassnummer_mitglied ---
    
		$mitgliedPassnummer_mitglied = [];
		array_push($mitgliedPassnummer_mitglied, ...\Tables\Mitglied::loadEditMitgliedPassnummer_mitgliedItems($id ?? null));
	
    // --- BLOCK: main-4:load-main-matrix-matrix_campaignTarget_target_campaign ---
    
		
		$matrix_campaignTarget_target_campaign = \FOP\Database::query('SELECT /* ID */ '.qi('ID').' AS '.qi('ID').',
									/* _checked */ 1 AS '.qi('_checked').',
									/* campaign */ '.qi('campaign').' AS '.qi('campaign').',
									/* creation */ '.qi('creation').' AS '.qi('creation').',
									/* lastUpdate */ '.qi('lastUpdate').' AS '.qi('lastUpdate').',
									/* note */ '.qi('note').' AS '.qi('note').',
									/* state */ '.qi('state').' AS '.qi('state').',
									/* target */ '.qi('target').' AS '.qi('target').',
									1
								FROM '.qi('campaignTarget').' '.qi('campaignTarget').'
								WHERE ('.qi('target').' = ' . \FOP\Database::quote($data['ID']) . ')
									AND ((SELECT mode > 0 FROM '.qi('campaign').' WHERE '.qi('campaign').'.'.qi('ID').' = '.qi('campaignTarget').'.'.qi('campaign').'))')->fetchAll(\PDO::FETCH_ASSOC);
	
    // --- BLOCK: main-4:load-main-matrix-matrix_gruppeItem_item_list ---
    
		
		$matrix_gruppeItem_item_list = \FOP\Database::query('SELECT /* ID */ '.qi('ID').' AS '.qi('ID').',
									/* _checked */ 1 AS '.qi('_checked').',
									/* austritt */ '.qi('austritt').' AS '.qi('austritt').',
									/* eintritt */ '.qi('eintritt').' AS '.qi('eintritt').',
									/* item */ '.qi('item').' AS '.qi('item').',
									/* list */ '.qi('list').' AS '.qi('list').',
									/* note */ '.qi('note').' AS '.qi('note').',
									1
								FROM '.qi('gruppeItem').' '.qi('gruppeItem').'
								WHERE ('.qi('item').' = ' . \FOP\Database::quote($data['ID']) . ')')->fetchAll(\PDO::FETCH_ASSOC);
	
    // --- BLOCK: main-5 ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo htmlentities(str_replace('%s', \FOP\Database::query('SELECT CONCAT('.qi('mitglied').'.'.qi('vorname').', \' \', '.qi('mitglied').'.'.qi('name').') AS description FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() ?: '', _('edit %s'))); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo htmlentities(str_replace('%s', \FOP\Database::query('SELECT CONCAT('.qi('mitglied').'.'.qi('vorname').', \' \', '.qi('mitglied').'.'.qi('name').') AS description FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() ?: '', _('edit %s'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo htmlentities(str_replace('%s', \FOP\Database::query('SELECT CONCAT('.qi('mitglied').'.'.qi('vorname').', \' \', '.qi('mitglied').'.'.qi('name').') AS description FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() ?: '', _('edit %s'))); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::editURL2(['popup' => $_GET['popup'] ?? null, 'id' => $id]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-wf_mitglied_edit"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_mitglied_edit" ng-init="form = <?php echo htmlentities(json_encode(['_send_pw' => $data['_send_pw'], 'austrittsdatum' => $data['austrittsdatum'], 'austrittsgrund' => $data['austrittsgrund'], 'email' => $data['email'], 'ID' => $data['ID'], 'mnr' => $data['mnr'], 'sepaDate' => $data['sepaDate'], 'verstorben' => $data['verstorben'], 'sepa' => $data['sepa'], 'superadmin' => $data['superadmin'], 'datenschutz' => $data['datenschutz']]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="csrftoken" value="' . htmlentities(\FOP\Session::getCSRFToken()) . '">';
								 if (isset($_GET['from'])) echo '<input type="hidden" name="fop-from" value="' . htmlentities($_GET['from']) . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true)) {
									$feature = [
										'id' => 'Mail_Notifications',
										'title' => _('Mail-Notifications'),
										'order' => '200-Mail-Notifications', // 200-Mail-Notifications (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || false || false || true || true || true || true || true || true || true)) {
									$feature = [
										'id' => 'Kontaktdaten',
										'title' => _('Kontaktdaten'),
										'order' => '120', // 120 (100) / 200-Kontaktdaten (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? '(!form._send_pw)' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) || true || true || true || true || true)) {
									$feature = [
										'id' => 'Verein',
										'title' => _('Verein'),
										'order' => '130', // 130 (100) / 200-Verein (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true || true || true || true || true)) {
									$feature = [
										'id' => 'Stammdaten',
										'title' => _('Stammdaten'),
										'order' => '120', // 120 (100) / 200-Stammdaten (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || ($data['canAdmin::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canMitglied::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canGruppe::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canCampaign::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canSammlung::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canBuchhaltung::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canProtokoll::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canDokument::canEdit'] == 1) && ((\FOP\User::getAdmin())))) {
									$feature = [
										'id' => 'Berechtigung',
										'title' => _('Berechtigung'),
										'order' => '150', // 150 (100) / 200-Berechtigung (10-50)
										'mode' => 'region', // region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (($data['canAdmin::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (($data['canMitglied::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (($data['canGruppe::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (($data['canCampaign::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (($data['canSammlung::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (($data['canBuchhaltung::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (($data['canProtokoll::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											 .'||'. (($data['canDokument::canEdit'] == 1) && ((\FOP\User::getAdmin())) ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true)) {
									$feature = [
										'id' => 'matrix_campaignTarget_target_campaign',
										'title' => _('Empfänger'),
										'order' => 'z-matrix_campaignTarget_target_campaign', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true)) {
									$feature = [
										'id' => 'matrix_gruppeItem_item_list',
										'title' => _('Gruppenmitglieder'),
										'order' => 'z-matrix_gruppeItem_item_list', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || ($data['sepa::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) || ($data['sepaDate::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) || ($data['iban::canEdit'] == 1) && (!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung())) || ($data['bic::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])))) {
									$feature = [
										'id' => 'Buchhaltung',
										'title' => _('Buchhaltung'),
										'order' => '140', // 140 (100) / 200-Buchhaltung (80) / 200-Buchhaltung (10-50)
										'mode' => 'tab', // tab (100) / region (50)
										'position' => 'half', // half (80)
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (($data['sepa::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (($data['sepaDate::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) ? '(form[\'sepa\'])' : '0')
											 .'||'. (($data['iban::canEdit'] == 1) && (!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. (($data['bic::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) ? 'true' : '0')
											 .'||'. ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || false || false || false || false || true || true || false || false || ($data['superadmin::canEdit'] == 1) && ((\FOP\User::getSuperadmin())) || false || false || false || true || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. (($data['superadmin::canEdit'] == 1) && ((\FOP\User::getSuperadmin())) ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. '0' .'||'. (true ? 'true' : '0')
											 .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0' .'||'. '0'
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true)) {
									$feature = [
										'id' => 'mitgliedPassnummer_mitglied',
										'title' => _('Passnummern'),
										'order' => 'z-mitgliedPassnummer_mitglied', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (false || true)) {
									$feature = [
										'id' => 'ansprechpartner_mitglied',
										'title' => _('Kontaktpersonen'),
										'order' => 'z-ansprechpartner_mitglied', // 
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'wf:mitglied:edit\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_mitglied_edit_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="save" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">save</i><?php echo(_('save')); ?></button><?php } ?>
									&nbsp;<?php if (true) { ?><button onclick="$(this).closest('form').find('.mdl-textfield__error:visible').hide();
		$('[required]').removeAttr('required');
	" type="submit" name="cancel" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">cancel</i><?php echo(_('cancel')); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#wf_mitglied_edit_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Mail_Notifications']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedMitglied_gebtagMails" id="column_reminderMitgliedMitglied-gebtagMails">
		<!-- Feld "Geburtstage": reminderMitgliedMitglied-gebtagMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedMitglied-gebtagMails"><?php echo(_('Geburtstage')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderMitgliedMitglied-gebtagMails' id='reminderMitgliedMitglied-gebtagMails'><option value='never'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderMitgliedMitglied-gebtagMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderMitgliedForderungenMails" id="column_reminderMitgliedForderungenMails">
		<!-- Feld "Offene Beiträge": reminderMitgliedForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderMitgliedForderungenMails"><?php echo(_('Offene Beiträge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderMitgliedForderungenMails' id='reminderMitgliedForderungenMails'><option value='never'<?php if ($data['reminderMitgliedForderungenMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderMitgliedForderungenMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderMitgliedForderungenMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderMitgliedForderungenMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderMitgliedForderungenMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderMitgliedForderungenMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderFop_fints_buchungForderungenMails" id="column_reminderFop_fints_buchungForderungenMails">
		<!-- Feld "unbehandelte Zahlungseingänge": reminderFop_fints_buchungForderungenMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderFop_fints_buchungForderungenMails"><?php echo(_('unbehandelte Zahlungseingänge')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderFop_fints_buchungForderungenMails' id='reminderFop_fints_buchungForderungenMails'><option value='never'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderFop_fints_buchungForderungenMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeAssignedMails" id="column_reminderAufgabeAssignedMails">
		<!-- Feld "Mir zugewiesen": reminderAufgabeAssignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeAssignedMails"><?php echo(_('Mir zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderAufgabeAssignedMails' id='reminderAufgabeAssignedMails'><option value='never'<?php if ($data['reminderAufgabeAssignedMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderAufgabeAssignedMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderAufgabeAssignedMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderAufgabeAssignedMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderAufgabeAssignedMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderAufgabeAssignedMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_reminderAufgabeNot_assignedMails" id="column_reminderAufgabeNot_assignedMails">
		<!-- Feld "Nicht zugewiesen": reminderAufgabeNot_assignedMails -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="reminderAufgabeNot_assignedMails"><?php echo(_('Nicht zugewiesen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='reminderAufgabeNot_assignedMails' id='reminderAufgabeNot_assignedMails'><option value='never'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'never') {echo " selected";}?>><?php echo(_('Nie')); ?></option><option value='instant'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'instant') {echo " selected";}?>><?php echo(_('Sofort')); ?></option><option value='hourly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'hourly') {echo " selected";}?>><?php echo(_('Stündliche Zusammenfassung')); ?></option><option value='daily'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'daily') {echo " selected";}?>><?php echo(_('Tägliche Zusammenfassung')); ?></option><option value='weekly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'weekly') {echo " selected";}?>><?php echo(_('Wöchentliche Zusammenfassung')); ?></option><option value='monthly'<?php if ($data['reminderAufgabeNot_assignedMails'] == 'monthly') {echo " selected";}?>><?php echo(_('Monatliche Zusammenfassung')); ?></option></select></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Mail_Notifications']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || false || false || true || true || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Kontaktdaten']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_land" id="column_land">
		<!-- Feld "Land": land -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="land"><?php echo(_('Land')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="land"  value="<?php echo htmlentities($data['land']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_plz_ort" id="column_plz_ort">
		<!-- Feld "Postleitzahl": plz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="plz"><?php echo(_('Postleitzahl')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="plz"  value="<?php echo htmlentities($data['plz']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
		<!-- Feld "Ort": ort -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="ort"><?php echo(_('Ort')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ort"  value="<?php echo htmlentities($data['ort']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_strasse" id="column_strasse">
		<!-- Feld "Straße und Hausnummer": strasse -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="strasse"><?php echo(_('Straße und Hausnummer')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="strasse"  value="<?php echo htmlentities($data['strasse']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_email" id="column_email">
		<!-- Feld "E-Mail": email -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="email"><?php echo(_('E-Mail')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input ng-model='form[&apos;email&apos;]' class="mdl-textfield__input" type="email" name="email"  id="email" value="<?php echo htmlentities($data['email']); ?>"/><label class="mdl-textfield__label" for="email"><?php echo(_('email')); ?></label>  <span class="mdl-textfield__error" style="{{(!(form[&apos;email::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;email::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;email::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_email2" id="column_email2">
		<!-- Feld "E-Mail Alternative": email2 -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="email2"><?php echo(_('E-Mail Alternative')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="email" name="email2"  id="email2" value="<?php echo htmlentities($data['email2']); ?>"/><label class="mdl-textfield__label" for="email2"><?php echo(_('email')); ?></label>  <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_telefon" id="column_telefon">
		<!-- Feld "Telefon": telefon -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="telefon"><?php echo(_('Telefon')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="telefon" value="<?php echo htmlentities($data['telefon']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_mobil" id="column_mobil">
		<!-- Feld "Mobil": mobil -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="mobil"><?php echo(_('Mobil')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="mobil" value="<?php echo htmlentities($data['mobil']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_password" id="column_password" ng-show='!form._send_pw'>
		<!-- Feld "Passwort": password -->
	<div ng-show='!form._send_pw'	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="password"><?php echo(_('Passwort')); ?>: </label>
	</div>
	<div ng-show='!form._send_pw'	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div ng-controller='dummy' ng-init='pw = <?php echo htmlentities(json_encode(empty($data['password']) ? '' : '&&'.($data['password']))); ?>'><div class="mdl-textfield mdl-js-textfield"><input ng-model='pw' class="mdl-textfield__input" type="password" name="password" /><label class="mdl-textfield__label" for="password"><?php echo(_('password')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
<br><div class="mdl-textfield mdl-js-textfield" compare-password='pw'><input class="mdl-textfield__input" type="password"  /><label class="mdl-textfield__label" for="password"><?php echo(_('password repeat')); ?></label><span class="mdl-textfield__error"><?php echo _('passwords must match'); ?></span></div></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Kontaktdaten']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])) || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Verein']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_mnr" id="column_mnr">
		<!-- Feld "Mitgliedsnummer": mnr -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="mnr"><?php echo(_('Mitgliedsnummer')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  ng-model='form[&apos;mnr&apos;]' ng-trim='false' ng-revalidate class="mdl-textfield__input"  type="text" name="mnr"  value="<?php echo htmlentities($data['mnr']); ?>"/><span class="mdl-textfield__error" style="{{(!(form[&apos;mnr::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;mnr::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;mnr::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_eintritt" id="column_eintritt">
		<!-- Feld "Eintrittsdatum": eintritt -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="eintritt"><?php echo(_('Eintrittsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="eintritt" type="text" name="eintritt" value="<?php echo ($data['eintritt']) ? strftime(_('dateformat_php2'), intval($data['eintritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_austrittsdatum" id="column_austrittsdatum">
		<!-- Feld "Austrittsdatum": austrittsdatum -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="austrittsdatum"><?php echo(_('Austrittsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' ts-model='form[&apos;austrittsdatum&apos;]' class="mdl-textfield__input picker_date" id="austrittsdatum" type="text" name="austrittsdatum" value="<?php echo ($data['austrittsdatum']) ? strftime(_('dateformat_php2'), intval($data['austrittsdatum'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_austrittsgrund" id="column_austrittsgrund">
		<!-- Feld "Austritts-Grund": austrittsgrund -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="austrittsgrund"><?php echo(_('Austritts-Grund')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  ng-model='form[&apos;austrittsgrund&apos;]' ng-trim='false' ng-revalidate class="mdl-textfield__input"  type="text" name="austrittsgrund"  value="<?php echo htmlentities($data['austrittsgrund']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_notiz" id="column_notiz">
		<!-- Feld "Notiz": notiz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="notiz"><?php echo(_('Notiz')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div style="width: 100%;" class="mdl-textfield mdl-js-textfield"><textarea onkeydown='if (event.keyCode == 13 && event.ctrlKey) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="mdl-textfield__input" rows="8" cols="80" name="notiz" id="notiz" ><?php echo htmlentities($data['notiz']); ?></textarea><label class="mdl-textfield__label" for="notiz"><?php echo(_('text')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_tarif" id="column_tarif">
		<!-- Feld "Mitgliedsbeitrag": tarif -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="tarif"><?php echo(_('Mitgliedsbeitrag')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Tarif::renderEditform_wf_mitglied_edit_tarifAction($data['tarif'], [], '');
?> &nbsp;	<?php if (\TablesRouter\Tarif::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=tarifNull", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div> &nbsp; <a href="#" onclick="event.preventDefault(); document.getElementById('dynamic:time').focus();">🕑</a> 
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['Verein']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Stammdaten']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_name" id="column_name">
		<!-- Feld "Name": name -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="name"><?php echo(_('Name')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  required='required'  type="text" name="name"  value="<?php echo htmlentities($data['name']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_vorname" id="column_vorname">
		<!-- Feld "Vorname": vorname -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="vorname"><?php echo(_('Vorname')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  required='required'  type="text" name="vorname"  value="<?php echo htmlentities($data['vorname']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_geschlecht" id="column_geschlecht">
		<!-- Feld "Geschlecht": geschlecht -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="geschlecht"><?php echo(_('Geschlecht')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div><div class="mdlext-selectfield mdlext-js-selectfield"><select onkeydown='if (event.keyCode == 13) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="selectdropdown mdlext-selectfield__select" name='geschlecht' id='geschlecht'><option value='0'<?php if ($data['geschlecht'] == 0) {echo " selected";}?>><?php echo(_('männlich')); ?></option><option value='1'<?php if ($data['geschlecht'] == 1) {echo " selected";}?>><?php echo(_('weiblich')); ?></option><option value='2'<?php if ($data['geschlecht'] == 2) {echo " selected";}?>><?php echo(_('Individuum')); ?></option></select></div>
		<br><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_geburtsdatum" id="column_geburtsdatum">
		<!-- Feld "Geburtsdatum": geburtsdatum -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="geburtsdatum"><?php echo(_('Geburtsdatum')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="geburtsdatum" type="text" name="geburtsdatum" value="<?php echo ($data['geburtsdatum']) ? strftime(_('dateformat_php2'), intval($data['geburtsdatum'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_verstorben" id="column_verstorben">
		<!-- Feld "Verstorben am": verstorben -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="verstorben"><?php echo(_('Verstorben am')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' ts-model='form[&apos;verstorben&apos;]' class="mdl-textfield__input picker_date" id="verstorben" type="text" name="verstorben" value="<?php echo ($data['verstorben']) ? strftime(_('dateformat_php2'), intval($data['verstorben'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['Stammdaten']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || ($data['canAdmin::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canMitglied::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canGruppe::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canCampaign::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canSammlung::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canBuchhaltung::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canProtokoll::canEdit'] == 1) && ((\FOP\User::getAdmin())) || ($data['canDokument::canEdit'] == 1) && ((\FOP\User::getAdmin())))) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Berechtigung']);
										?><?php if (($data['canAdmin::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canAdmin" id="column_canAdmin">
		<!-- Feld "Admin": canAdmin -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canAdmin"><?php echo(_('Admin')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canAdmin" id="canAdmin" value="<?php echo ($data['canAdmin']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canAdmin__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canAdmin']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['canMitglied::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canMitglied" id="column_canMitglied">
		<!-- Feld "Mitgliederverwaltung": canMitglied -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canMitglied"><?php echo(_('Mitgliederverwaltung')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canMitglied" id="canMitglied" value="<?php echo ($data['canMitglied']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canMitglied__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canMitglied']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['canGruppe::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canGruppe" id="column_canGruppe">
		<!-- Feld "Verwaltung der eigenen Gruppe": canGruppe -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canGruppe"><?php echo(_('Verwaltung der eigenen Gruppe')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canGruppe" id="canGruppe" value="<?php echo ($data['canGruppe']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canGruppe__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canGruppe']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['canCampaign::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canCampaign" id="column_canCampaign">
		<!-- Feld "Rundmails und Aktionen": canCampaign -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canCampaign"><?php echo(_('Rundmails und Aktionen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canCampaign" id="canCampaign" value="<?php echo ($data['canCampaign']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canCampaign__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canCampaign']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['canSammlung::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canSammlung" id="column_canSammlung">
		<!-- Feld "Geldsammlungen": canSammlung -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canSammlung"><?php echo(_('Geldsammlungen')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canSammlung" id="canSammlung" value="<?php echo ($data['canSammlung']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canSammlung__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canSammlung']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['canBuchhaltung::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canBuchhaltung" id="column_canBuchhaltung">
		<!-- Feld "Buchhaltung": canBuchhaltung -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canBuchhaltung"><?php echo(_('Buchhaltung')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canBuchhaltung" id="canBuchhaltung" value="<?php echo ($data['canBuchhaltung']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canBuchhaltung__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canBuchhaltung']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['canProtokoll::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canProtokoll" id="column_canProtokoll">
		<!-- Feld "Protokoll": canProtokoll -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canProtokoll"><?php echo(_('Protokoll')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canProtokoll" id="canProtokoll" value="<?php echo ($data['canProtokoll']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canProtokoll__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canProtokoll']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['canDokument::canEdit'] == 1) && ((\FOP\User::getAdmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_canDokument" id="column_canDokument">
		<!-- Feld "Dokumente": canDokument -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="canDokument"><?php echo(_('Dokumente')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="canDokument" id="canDokument" value="<?php echo ($data['canDokument']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  class="mdl-checkbox__input" id="canDokument__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['canDokument']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['Berechtigung']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['matrix_campaignTarget_target_campaign']);
										?><?php
	if (((\FOP\User::getCampaign()) && (\FOP\User::getCampaign()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card" id='matrix_campaignTarget_target_campaign'  ng-init='form["ID"] = form["ID"] || <?php echo htmlentities(json_encode($id ?? null)); ?>'><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Empfänger')); ?></div>
	<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone" style="overflow: auto; max-height: 90vh; align-items: start;">
		<table class='mdl-data-table mdl-js-data-table mdl-shadow--2dp table-dense table-editable'>
			<thead>
				<tr>
					
					<th class='mdl-data-table__cell--non-numeric'>
						<label ng-click='cmMatrix_campaignTarget_target_campaignAllSelectToggle()' class='mdl-checkbox mdl-js-checkbox mdl-js'>
							<input id='cm-matrix_campaignTarget_target_campaign-allselect' type='checkbox' class='mdl-checkbox__input'>
						</label>
					</th>
					<th class='mdl-data-table__cell--non-numeric'>
						<?php echo(_('Aktion')); ?>
					</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Status')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Notiz')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Erstellung')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('letzte Aktualisierung')); ?>
						</th>
				</tr>
			</thead>
			<tbody class='cm-matrix_campaignTarget_target_campaign'>
			<?php
					// renderAction!
					self::editMatrixMatrix_campaignTarget_target_campaignAction($id, $matrix_campaignTarget_target_campaign);
			?>
			</tbody>
		</table>
	</div>
	</div>
	<?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['matrix_campaignTarget_target_campaign']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['matrix_gruppeItem_item_list']);
										?><?php
	if (((\FOP\User::getGruppe()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card" id='matrix_gruppeItem_item_list'  ng-init='form["ID"] = form["ID"] || <?php echo htmlentities(json_encode($id ?? null)); ?>'><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Gruppenmitglieder')); ?></div>
	<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone" style="overflow: auto; max-height: 90vh; align-items: start;">
		<table class='mdl-data-table mdl-js-data-table mdl-shadow--2dp table-dense table-editable'>
			<thead>
				<tr>
					
					<th class='mdl-data-table__cell--non-numeric'>
						<label ng-click='cmMatrix_gruppeItem_item_listAllSelectToggle()' class='mdl-checkbox mdl-js-checkbox mdl-js'>
							<input id='cm-matrix_gruppeItem_item_list-allselect' type='checkbox' class='mdl-checkbox__input'>
						</label>
					</th>
					<th class='mdl-data-table__cell--non-numeric'>
						<?php echo(_('Gruppe')); ?>
					</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Eintritt in Gruppe')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Austritt aus Gruppe')); ?>
						</th><th class='mdl-data-table__cell--non-numeric'>
							<?php echo(_('Notiz')); ?>
						</th>
				</tr>
			</thead>
			<tbody class='cm-matrix_gruppeItem_item_list'>
			<?php
					// renderAction!
					self::editMatrixMatrix_gruppeItem_item_listAction($id, $matrix_gruppeItem_item_list);
			?>
			</tbody>
		</table>
	</div>
	</div>
	<?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['matrix_gruppeItem_item_list']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || ($data['sepa::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) || ($data['sepaDate::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) || ($data['iban::canEdit'] == 1) && (!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung())) || ($data['bic::canEdit'] == 1) && ((\FOP\User::getBuchhaltung())) || (!\FOP\User::getIsGuest()) && (!isset($_POST['cancel'])))) {
										ob_start();
										\EasyEditor\FormFeature::push($features['Buchhaltung']);
										?><?php if (($data['iban::canEdit'] == 1) && (!isset($_POST['cancel'])) && ((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_iban" id="column_iban">
		<!-- Feld "IBAN": iban -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="iban"><?php echo(_('IBAN')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" style="text-transform: uppercase;" class="mdl-textfield__input"  type="text" name="iban" pattern="[A-Z]{2}[0-9 \-]{12,26}" value="<?php echo htmlentities($data['iban']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php } ?><?php if (($data['bic::canEdit'] == 1) && ((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_bic" id="column_bic">
		<!-- Feld "BIC": bic -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="bic"><?php echo(_('BIC')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" style="text-transform: uppercase;" class="mdl-textfield__input"  type="text" name="bic" pattern="[A-Za-z]{6,6}[A-Za-z2-9][A-Na-nP-Zp-z0-9]([A-Za-z0-9]{3,3}){0,1}" value="<?php echo htmlentities($data['bic']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php } ?><?php if (($data['sepa::canEdit'] == 1) && ((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_sepa" id="column_sepa">
		<!-- Feld "SEPA-Lastschrift": sepa -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="sepa"><?php echo(_('SEPA-Lastschrift')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="sepa" id="sepa" value="<?php echo ($data['sepa']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;sepa&apos;]' ng-revalidate class="mdl-checkbox__input" id="sepa__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['sepa']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div><?php } ?><?php if (($data['sepaDate::canEdit'] == 1) && ((\FOP\User::getBuchhaltung()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_sepaDate" id="column_sepaDate" ng-show='form[&apos;sepa&apos;]'>
		<!-- Feld "Datum SEPA-Lastschrift": sepaDate -->
	<div ng-show='form[&apos;sepa&apos;]'	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="sepaDate"><?php echo(_('Datum SEPA-Lastschrift')); ?>: </label>
	</div>
	<div ng-show='form[&apos;sepa&apos;]'	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' ts-model='form[&apos;sepaDate&apos;]' class="mdl-textfield__input picker_date" id="sepaDate" type="text" name="sepaDate" value="<?php echo ($data['sepaDate']) ? strftime(_('dateformat_php2'), intval($data['sepaDate'])) : ''; ?>"/><span class="mdl-textfield__error" style="{{(!((! (form[&apos;sepa&apos;])) || (form[&apos;sepaDate&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((! (form[&apos;sepa&apos;])) || (form[&apos;sepaDate&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((! (form[&apos;sepa&apos;])) || (form[&apos;sepaDate&apos;]))'><?php echo(_('wann wurde das Lastschriftmandat erteilt?')); ?></div></span></div>
	</div>
	</div><?php } ?><?php if ((!\FOP\User::getIsGuest()) && (!isset($_POST['cancel']))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_tarif" id="column_tarif">
		<!-- Feld "Mitgliedsbeitrag": tarif -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="tarif"><?php echo(_('Mitgliedsbeitrag')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\Tarif::renderEditform_wf_mitglied_edit_tarifAction($data['tarif'], [], '');
?> &nbsp;	<?php if (\TablesRouter\Tarif::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\Tarif::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=tarifNull%26colinsert=tarif%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=tarifNull", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div> &nbsp; <a href="#" onclick="event.preventDefault(); document.getElementById('dynamic:time').focus();">🕑</a> 
	</div>
	</div><?php } ?><?php
										\EasyEditor\FormFeature::pop();
										$features['Buchhaltung']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || false || false || false || false || true || true || false || false || ($data['superadmin::canEdit'] == 1) && ((\FOP\User::getSuperadmin())) || false || false || false || true || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false || false)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column__send_pw" id="column__send_pw">
		<!-- Feld "Passwort neu vergeben und zusenden": _send_pw -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="_send_pw"><?php echo(_('Passwort neu vergeben und zusenden')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="_send_pw" id="_send_pw" value="<?php echo ($data['_send_pw']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;_send_pw&apos;]' ng-revalidate class="mdl-checkbox__input" id="_send_pw__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['_send_pw']) echo ' checked'; ?>><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></label>
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_datenschutz" id="column_datenschutz">
		<!-- Feld "Datenschutz akzeptiert": datenschutz -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="datenschutz"><?php echo(_('Datenschutz akzeptiert')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="datenschutz" id="datenschutz" value="<?php echo ($data['datenschutz']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;datenschutz&apos;]' ng-revalidate class="mdl-checkbox__input" id="datenschutz__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['datenschutz']) echo ' checked'; ?>><span class="mdl-textfield__error" style="{{(!((form[&apos;datenschutz&apos;]) == (true))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;datenschutz&apos;]) == (true))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;datenschutz&apos;]) == (true))'><?php echo(_('Bitte akzeptieren Sie die Datenschutzrichtlinien.')); ?></div></span></label>
	</div>
	</div><?php if (($data['superadmin::canEdit'] == 1) && ((\FOP\User::getSuperadmin()))) { ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_superadmin" id="column_superadmin">
		<!-- Feld "Super-Admin": superadmin -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="superadmin"><?php echo(_('Super-Admin')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<input type="hidden" name="superadmin" id="superadmin" value="<?php echo ($data['superadmin']) ? '1' : '0'; ?>"/><label class="mdl-checkbox mdl-js-checkbox" style="width: unset;"><input onkeydown="
      if (event.keyCode == 13) {
         event.preventDefault();
         event.stopPropagation();
         tabNext(this);
         return false;
      }
   "  ng-model='form[&apos;superadmin&apos;]' ng-revalidate class="mdl-checkbox__input" id="superadmin__checkbox" type="checkbox" onchange="this.parentElement.previousElementSibling.value = this.checked ? 1 : 0;"<?php if ($data['superadmin']) echo ' checked'; ?>><span class="mdl-textfield__error" style="{{(!((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;])))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;])))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;])))'><?php echo(_('accessdenied')); ?></div></span></label>
	</div>
	</div><?php } ?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_dynamic_time" id="column_dynamic:time">
		<!-- Feld "validfrom": dynamic:time -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="dynamic:time"><?php echo(_('validfrom')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield fop-monthyear"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" class="mdl-textfield__input picker_monthyear"  required='required'  type="text" name="dynamic:time" value="<?php echo ($data['dynamic:time']) ? date(_('monthyearformat_php'), mktime(1, 1, 1, intval($data['dynamic:time'])%12 + 1, 1, floor(intval($data['dynamic:time'])/12))) : ''; ?>" /><span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span></div>
	<script type="text/javascript">
	$(function () {
        $('.picker_monthyear').datetimepicker({viewMode: 'years', locale: '<?php echo(\FOP\I18n::getShortLocale()); ?>', format: '<?php echo(_('monthyearformat_moment')); ?>'}).on('dp.change', function (e) {e.target.parentElement.MaterialTextfield.checkValidity();})[0].parentElement.MaterialTextfield.checkValidity();
	});
	</script>
	
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['mitgliedPassnummer_mitglied']);
										?><span id='mitgliedPassnummer_mitglied' class='mdl-cell mdl-cell--12-col mdl-grid' >
	
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card">
	
	<div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Passnummern')); ?></div>
	<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone" style="overflow: auto; max-height: calc(100vh - 300px)">
		<table class='mdl-data-table mdl-js-data-table mdl-shadow--2dp table-dense table-editable'>
			<thead>
				<tr  ng-controller='FormGroupWf_mitglied_editMitgliedPassnummer_mitglied'>
					<th class='mdl-data-table__cell--non-numeric'>-</th>
					
						<?php if (true || true) { ?>
							<th class='mdl-data-table__cell--non-numeric'><?php echo(_('Passnummer')); ?></th>
						<?php } ?>
						<?php if (true || true) { ?>
							<th class='mdl-data-table__cell--non-numeric'><?php echo(_('Sportverband')); ?></th>
						<?php } ?>
				</tr>
			</thead>
			<tbody>
				<?php
				foreach ($mitgliedPassnummer_mitglied AS $row) {
					self::editListMitgliedPassnummer_mitgliedAction($row, $data);
				}
				if ((\FOP\User::getGruppe())) { ?>
				<tr class='wfl-create'>
					<td colspan='42' class='mdl-data-table__cell--non-numeric'>
					  
				<button type='button' class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='var tr = $(this).closest(".wfl-create"); $.get("Tables/Mitglied/editListMitgliedPassnummer_mitglied?_&id=<?php echo htmlentities(\FOP\Util::urlencode($id)); ?>&superadmin="+encodeURIComponent($(this).scope().$eval("form.superadmin")) + "&ID="+encodeURIComponent($(this).scope().$eval("form.ID")) + "", function (html) { var h = $(html).insertBefore(tr); upgradeDOM(h); h.find("input:not([type=hidden]),textarea").first().focus(); }); event.stopPropagation();'><i class="material-icons">add</i> <?php echo(sprintf(_('add %s'), _('Passnummer'))); ?></button>
					  
					</td>
				</tr>
				<?php } ?>
			</tbody>
		</table>
	</div>
	</div>
	</span><?php
										\EasyEditor\FormFeature::pop();
										$features['mitgliedPassnummer_mitglied']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['ansprechpartner_mitglied']);
										?><span id='ansprechpartner_mitglied' class='mdl-cell mdl-cell--12-col mdl-grid' >
	
				<?php
				foreach ($ansprechpartner_mitglied AS $row) {
					self::editListAnsprechpartner_mitgliedAction($row, $data);
				}
				if ((\FOP\User::getGruppe())) { ?>
         <div class="mdl-cell mdl-cell--12-col mdl-grid grid-card wfl-create">
             
             <div class="mdl-cell mdl-cell--3-col mdl-cell--2-col-phone fop-form-label"><?php echo(_('Kontaktpersonen')); ?></div>
             <div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					  
			<button type='button' class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='var tr = $(this).closest(".wfl-create"); $.get("Tables/Mitglied/editListAnsprechpartner_mitglied?_&id=<?php echo htmlentities(\FOP\Util::urlencode($id)); ?>&superadmin="+encodeURIComponent($(this).scope().$eval("form.superadmin")) + "&ID="+encodeURIComponent($(this).scope().$eval("form.ID")) + "", function (html) { var h = $(html).insertBefore(tr); upgradeDOM(h); h.find("input:not([type=hidden]),textarea").first().focus(); }); event.stopPropagation();'><i class="material-icons">add</i> <?php echo(sprintf(_('add %s'), _('Kontaktperson'))); ?></button>
					  
             </div>
         </div>
			<?php } ?>
	
	</span><?php
										\EasyEditor\FormFeature::pop();
										$features['ansprechpartner_mitglied']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-wf_mitglied_edit').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-wf_mitglied_edit').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-wf_mitglied_edit').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=wf%3Amitglied%3Aedit&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=wf%3Amitglied%3Aedit&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_mitglied_edit')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_mitglied_edit input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
							<div class="content" id="~spacer"><?php if (!isset($_GET['popup'])) { ?><div style="padding-bottom: 10cm;"></div><?php } ?>
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    // --- BLOCK: main-6 ---
    }
    
  }

  public static function loadLifecycleEndFop_listItems($id) { 
    
    
    // --- BLOCK: main ---
    
		/* TODO: SQL Query bauen mit SQLQuery-Fakten */
		$items =
		\FOP\Database::query('SELECT '.qi('mitglied').'.'.qi('ID').' AS '.qi('ID').', '.qi('mitglied').'.'.qi('sepa').', '.qi('mitglied').'.'.qi('sepaDate').', '.qi('mitglied').'.'.qi('superadmin').', '.qi('mitglied').'.'.qi('name').', '.qi('mitglied').'.'.qi('vorname').', '.qi('mitglied').'.'.qi('geschlecht').', '.qi('mitglied').'.'.qi('datenschutz').', '.qi('mitglied').'.'.qi('geburtsdatum').', '.qi('mitglied').'.'.qi('land').', '.qi('mitglied').'.'.qi('plz').', '.qi('mitglied').'.'.qi('ort').', '.qi('mitglied').'.'.qi('strasse').', '.qi('mitglied').'.'.qi('eintritt').', '.qi('mitglied').'.'.qi('email').', '.qi('mitglied').'.'.qi('email2').', '.qi('mitglied').'.'.qi('telefon').', '.qi('mitglied').'.'.qi('mobil').', '.qi('mitglied').'.'.qi('mnr').', '.qi('mitglied').'.'.qi('austrittsdatum').', '.qi('mitglied').'.'.qi('austrittsgrund').', '.qi('mitglied').'.'.qi('verstorben').', '.qi('mitglied').'.'.qi('notiz').', '.qi('mitglied').'.'.qi('iban').', '.qi('mitglied').'.'.qi('bic').', '.qi('mitglied').'.'.qi('password').', '.qi('mitglied').'.'.qi('canAdmin').', '.qi('mitglied').'.'.qi('canMitglied').', '.qi('mitglied').'.'.qi('canGruppe').', '.qi('mitglied').'.'.qi('canCampaign').', '.qi('mitglied').'.'.qi('canSammlung').', '.qi('mitglied').'.'.qi('canBuchhaltung').', '.qi('mitglied').'.'.qi('canProtokoll').', '.qi('mitglied').'.'.qi('canDokument').', '.qi('mitglied').'.'.qi('reminderMitgliedMitglied-gebtagMails').', '.qi('mitglied').'.'.qi('reminderMitgliedForderungenMails').', '.qi('mitglied').'.'.qi('reminderFop_fints_buchungForderungenMails').', '.qi('mitglied').'.'.qi('reminderAufgabeAssignedMails').', '.qi('mitglied').'.'.qi('reminderAufgabeNot_assignedMails').', (SELECT SUM('.qi('rhU469mT').'.'.qi('betrag').') FROM '.qi('mitgliedBuchung').' '.qi('rhU469mT').' WHERE '.qi('rhU469mT').'.'.qi('mitglied').' = '.qi('mitglied').'.'.qi('ID').' LIMIT 1) AS '.qi('forderungen').', (SELECT ('.qi('tvyml1ds').'.'.qi('tarif').') FROM '.qi('mitgliedDynamicMonthyear').' '.qi('tvyml1ds').' WHERE '.qi('tvyml1ds').'.'.qi('dynamic:parent').' = '.qi('mitglied').'.'.qi('ID').' AND (('.qi('tvyml1ds').'.'.qi('dynamic:time').') <= (' . \FOP\Database::sessionVarSQL('time') . ')) ORDER BY '.qi('tvyml1ds').'.'.qi('dynamic:time').' DESC LIMIT 1) AS '.qi('tarif').', YEAR(FROM_UNIXTIME(' . \FOP\Database::sessionVarSQL('time') . '))*12+MONTH(FROM_UNIXTIME(' . \FOP\Database::sessionVarSQL('time') . '))-1 AS '.qi('dynamic:time').', (SELECT '.qi('tarif').' FROM '.qi('mitgliedDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = '.qi('mitglied').'.'.qi('ID').' AND '.qi('dynamic:time').' < YEAR(FROM_UNIXTIME(' . \FOP\Database::sessionVarSQL('time') . '))*12+MONTH(FROM_UNIXTIME(' . \FOP\Database::sessionVarSQL('time') . '))-1 ORDER BY '.qi('dynamic:time').' DESC LIMIT 1) AS '.qi('tarif').',
			((CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END)) AS '.qi('canDelete').'
			FROM '.qi('mitglied').' 
			WHERE ((CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END)) AND (' . (new \FOP\IDList($id))->toSQL(qi('mitglied').'.'.qi('ID')) . ') ORDER BY '.qi('mitglied').'.'.qi('name').' , '.qi('mitglied').'.'.qi('vorname').' ')->fetchAll(\PDO::FETCH_ASSOC);

		foreach($items as &$item) {
		}
		return $items;
	
    
  }

  public static function loadCreateMitgliedPassnummer_mitgliedItems($id) { 
    
    
    // --- BLOCK: main ---
    
		/* TODO: SQL Query bauen mit SQLQuery-Fakten */
		$items =
		\FOP\Database::query('SELECT \'\' AS '.qi('ID').', '.qi('mitgliedPassnummer').'.'.qi('mitglied').', '.qi('mitgliedPassnummer').'.'.qi('pnr').', '.qi('mitgliedPassnummer').'.'.qi('verband').',
			((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('P9RkamXm').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('P9RkamXm').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('P9RkamXm').' WHERE '.qi('P9RkamXm').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('SdEHdSTJ').' WHERE '.qi('SdEHdSTJ').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('LGufoudi').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('LGufoudi').' WHERE '.qi('LGufoudi').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE))) AS '.qi('canDelete').'
			FROM '.qi('mitgliedPassnummer').' 
			WHERE ((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('rP3Q23p8').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('rP3Q23p8').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('rP3Q23p8').' WHERE '.qi('rP3Q23p8').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('8ZjAYNj2').' WHERE '.qi('8ZjAYNj2').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('5o81KDy1').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('5o81KDy1').' WHERE '.qi('5o81KDy1').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE))) AND '.qi('mitgliedPassnummer').'.'.qi('mitglied').' = ' . \FOP\Database::quote($id) . '')->fetchAll(\PDO::FETCH_ASSOC);

		foreach($items as &$item) {
		}
		return $items;
	
    
  }

  public static function loadCreateAnsprechpartner_mitgliedItems($id) { 
    
    
    // --- BLOCK: main ---
    
		/* TODO: SQL Query bauen mit SQLQuery-Fakten */
		$items =
		\FOP\Database::query('SELECT \'\' AS '.qi('ID').', '.qi('ansprechpartner').'.'.qi('mitglied').', '.qi('ansprechpartner').'.'.qi('vorname').', '.qi('ansprechpartner').'.'.qi('name').', '.qi('ansprechpartner').'.'.qi('stellung').', '.qi('ansprechpartner').'.'.qi('tel').', '.qi('ansprechpartner').'.'.qi('tel2').', '.qi('ansprechpartner').'.'.qi('email').',
			((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('H67218v9').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('H67218v9').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('H67218v9').' WHERE '.qi('H67218v9').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('RIGXOrgL').' WHERE '.qi('RIGXOrgL').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('cZ5SfN8d').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('cZ5SfN8d').' WHERE '.qi('cZ5SfN8d').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE))) AS '.qi('canDelete').'
			FROM '.qi('ansprechpartner').' 
			WHERE ((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('YOIkqjys').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('YOIkqjys').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('YOIkqjys').' WHERE '.qi('YOIkqjys').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('kNgaTDJo').' WHERE '.qi('kNgaTDJo').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('trKroP0m').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('trKroP0m').' WHERE '.qi('trKroP0m').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE))) AND '.qi('ansprechpartner').'.'.qi('mitglied').' = ' . \FOP\Database::quote($id) . '')->fetchAll(\PDO::FETCH_ASSOC);

		foreach($items as &$item) {
		}
		return $items;
	
    
  }

  public static function loadEditMitgliedPassnummer_mitgliedItems($id) { 
    
    
    // --- BLOCK: main ---
    
		/* TODO: SQL Query bauen mit SQLQuery-Fakten */
		$items =
		\FOP\Database::query('SELECT '.qi('mitgliedPassnummer').'.'.qi('ID').' AS '.qi('ID').', '.qi('mitgliedPassnummer').'.'.qi('mitglied').', '.qi('mitgliedPassnummer').'.'.qi('pnr').', '.qi('mitgliedPassnummer').'.'.qi('verband').',
			((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('P9RkamXm').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('P9RkamXm').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('P9RkamXm').' WHERE '.qi('P9RkamXm').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('SdEHdSTJ').' WHERE '.qi('SdEHdSTJ').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('LGufoudi').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('LGufoudi').' WHERE '.qi('LGufoudi').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE))) AS '.qi('canDelete').'
			FROM '.qi('mitgliedPassnummer').' 
			WHERE ((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('rP3Q23p8').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('rP3Q23p8').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('rP3Q23p8').' WHERE '.qi('rP3Q23p8').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('8ZjAYNj2').' WHERE '.qi('8ZjAYNj2').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('5o81KDy1').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('5o81KDy1').' WHERE '.qi('5o81KDy1').'.'.qi('ID').' = '.qi('mitgliedPassnummer').'.'.qi('mitglied').' LIMIT 1), FALSE))) AND '.qi('mitgliedPassnummer').'.'.qi('mitglied').' = ' . \FOP\Database::quote($id) . '')->fetchAll(\PDO::FETCH_ASSOC);

		foreach($items as &$item) {
		}
		return $items;
	
    
  }

  public static function loadEditAnsprechpartner_mitgliedItems($id) { 
    
    
    // --- BLOCK: main ---
    
		/* TODO: SQL Query bauen mit SQLQuery-Fakten */
		$items =
		\FOP\Database::query('SELECT '.qi('ansprechpartner').'.'.qi('ID').' AS '.qi('ID').', '.qi('ansprechpartner').'.'.qi('mitglied').', '.qi('ansprechpartner').'.'.qi('vorname').', '.qi('ansprechpartner').'.'.qi('name').', '.qi('ansprechpartner').'.'.qi('stellung').', '.qi('ansprechpartner').'.'.qi('tel').', '.qi('ansprechpartner').'.'.qi('tel2').', '.qi('ansprechpartner').'.'.qi('email').',
			((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('H67218v9').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('H67218v9').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('H67218v9').' WHERE '.qi('H67218v9').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('RIGXOrgL').' WHERE '.qi('RIGXOrgL').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('cZ5SfN8d').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('cZ5SfN8d').' WHERE '.qi('cZ5SfN8d').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE))) AS '.qi('canDelete').'
			FROM '.qi('ansprechpartner').' 
			WHERE ((COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('YOIkqjys').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('YOIkqjys').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' '.qi('YOIkqjys').' WHERE '.qi('YOIkqjys').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND (COALESCE((SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' '.qi('kNgaTDJo').' WHERE '.qi('kNgaTDJo').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE)) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (COALESCE((SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('trKroP0m').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' '.qi('trKroP0m').' WHERE '.qi('trKroP0m').'.'.qi('ID').' = '.qi('ansprechpartner').'.'.qi('mitglied').' LIMIT 1), FALSE))) AND '.qi('ansprechpartner').'.'.qi('mitglied').' = ' . \FOP\Database::quote($id) . '')->fetchAll(\PDO::FETCH_ASSOC);

		foreach($items as &$item) {
		}
		return $items;
	
    
  }

  public static function fetchB66f96f88699c8b4179d79f2d26504870dd9bb08b414f3b57f09ec0093248f5d_fetchconstr_formarray_wf_mitglied_create_ansprechpartner_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB66f96f88699c8b4179d79f2d26504870dd9bb08b414f3b57f09ec0093248f5d_fetchconstr_formarray_wf_mitglied_edit_ansprechpartner_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch323ecd8885146a279378a39cd7ff54bc5f5837cbe99da0e2785f6f4a2568bb44_fetchconstr_formarray_wf_mitglied_create_ansprechpartner_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch323ecd8885146a279378a39cd7ff54bc5f5837cbe99da0e2785f6f4a2568bb44_fetchconstr_formarray_wf_mitglied_edit_ansprechpartner_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch88cf9919f703ad0057b87736d14ecb31e9db0fb50c4f6cde55baaa36bb5af625_fetchconstr_formarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch88cf9919f703ad0057b87736d14ecb31e9db0fb50c4f6cde55baaa36bb5af625_fetchconstr_formarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch5f3359c11668deac25a4d45137caa29a416637e0de1e06884fad3ad8c538cfe8_fetchconstr_formarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch5f3359c11668deac25a4d45137caa29a416637e0de1e06884fad3ad8c538cfe8_fetchconstr_formarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchE769306a2b4fbb0689e923b14fbc78fe3dca5f6993212644bf24313bc2a4c66a_fetchconstr_formarray_wf_mitglied_create_mitgliedPassnummer_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchE769306a2b4fbb0689e923b14fbc78fe3dca5f6993212644bf24313bc2a4c66a_fetchconstr_formarray_wf_mitglied_edit_mitgliedPassnummer_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3e6af08e75cc408645a91847036faecdae7fa1b38dfea79d65b02adbaca271d4_fetchconstr_formarray_wf_mitglied_create_mitgliedPassnummer_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3e6af08e75cc408645a91847036faecdae7fa1b38dfea79d65b02adbaca271d4_fetchconstr_formarray_wf_mitglied_edit_mitgliedPassnummer_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch7393e28ddbc08ce73592b4a6deb835f93503bca0281d731dd72ac3e3ffc8bc67_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch7393e28ddbc08ce73592b4a6deb835f93503bca0281d731dd72ac3e3ffc8bc67_fetchconstr_form_wf_mitgliedBuchung_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch7393e28ddbc08ce73592b4a6deb835f93503bca0281d731dd72ac3e3ffc8bc67_fetchconstr_form_wf_mitgliedBuchung_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch32095a3349d17e5f1601976fdf62789461bb0a81a95933dc539c85551d7fb9ce_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch32095a3349d17e5f1601976fdf62789461bb0a81a95933dc539c85551d7fb9ce_fetchconstr_form_wf_mitgliedBuchung_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch32095a3349d17e5f1601976fdf62789461bb0a81a95933dc539c85551d7fb9ce_fetchconstr_form_wf_mitgliedBuchung_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB66f96f88699c8b4179d79f2d26504870dd9bb08b414f3b57f09ec0093248f5d_fetchformarray_wf_mitglied_create_ansprechpartner_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB66f96f88699c8b4179d79f2d26504870dd9bb08b414f3b57f09ec0093248f5d_fetchformarray_wf_mitglied_edit_ansprechpartner_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB66f96f88699c8b4179d79f2d26504870dd9bb08b414f3b57f09ec0093248f5d_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB66f96f88699c8b4179d79f2d26504870dd9bb08b414f3b57f09ec0093248f5d_fetchconstr_form_wf_ansprechpartner_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB66f96f88699c8b4179d79f2d26504870dd9bb08b414f3b57f09ec0093248f5d_fetchconstr_form_wf_ansprechpartner_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch323ecd8885146a279378a39cd7ff54bc5f5837cbe99da0e2785f6f4a2568bb44_fetchformarray_wf_mitglied_create_ansprechpartner_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch323ecd8885146a279378a39cd7ff54bc5f5837cbe99da0e2785f6f4a2568bb44_fetchformarray_wf_mitglied_edit_ansprechpartner_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch323ecd8885146a279378a39cd7ff54bc5f5837cbe99da0e2785f6f4a2568bb44_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch323ecd8885146a279378a39cd7ff54bc5f5837cbe99da0e2785f6f4a2568bb44_fetchconstr_form_wf_ansprechpartner_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch323ecd8885146a279378a39cd7ff54bc5f5837cbe99da0e2785f6f4a2568bb44_fetchconstr_form_wf_ansprechpartner_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch88cf9919f703ad0057b87736d14ecb31e9db0fb50c4f6cde55baaa36bb5af625_fetchformarray_wf_mitglied_create_matrix_campaignTarget_target_campaignAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch88cf9919f703ad0057b87736d14ecb31e9db0fb50c4f6cde55baaa36bb5af625_fetchformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaignAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch88cf9919f703ad0057b87736d14ecb31e9db0fb50c4f6cde55baaa36bb5af625_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch88cf9919f703ad0057b87736d14ecb31e9db0fb50c4f6cde55baaa36bb5af625_fetchconstr_form_wf_campaignTarget_create_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch88cf9919f703ad0057b87736d14ecb31e9db0fb50c4f6cde55baaa36bb5af625_fetchconstr_form_wf_campaignTarget_edit_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch5f3359c11668deac25a4d45137caa29a416637e0de1e06884fad3ad8c538cfe8_fetchformarray_wf_mitglied_create_matrix_campaignTarget_target_campaignAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch5f3359c11668deac25a4d45137caa29a416637e0de1e06884fad3ad8c538cfe8_fetchformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaignAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch5f3359c11668deac25a4d45137caa29a416637e0de1e06884fad3ad8c538cfe8_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch5f3359c11668deac25a4d45137caa29a416637e0de1e06884fad3ad8c538cfe8_fetchconstr_form_wf_campaignTarget_create_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch5f3359c11668deac25a4d45137caa29a416637e0de1e06884fad3ad8c538cfe8_fetchconstr_form_wf_campaignTarget_edit_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchE769306a2b4fbb0689e923b14fbc78fe3dca5f6993212644bf24313bc2a4c66a_fetchformarray_wf_mitglied_create_mitgliedPassnummer_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchE769306a2b4fbb0689e923b14fbc78fe3dca5f6993212644bf24313bc2a4c66a_fetchformarray_wf_mitglied_edit_mitgliedPassnummer_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchE769306a2b4fbb0689e923b14fbc78fe3dca5f6993212644bf24313bc2a4c66a_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchE769306a2b4fbb0689e923b14fbc78fe3dca5f6993212644bf24313bc2a4c66a_fetchconstr_form_wf_mitgliedPassnummer_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchE769306a2b4fbb0689e923b14fbc78fe3dca5f6993212644bf24313bc2a4c66a_fetchconstr_form_wf_mitgliedPassnummer_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3e6af08e75cc408645a91847036faecdae7fa1b38dfea79d65b02adbaca271d4_fetchformarray_wf_mitglied_create_mitgliedPassnummer_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3e6af08e75cc408645a91847036faecdae7fa1b38dfea79d65b02adbaca271d4_fetchformarray_wf_mitglied_edit_mitgliedPassnummer_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3e6af08e75cc408645a91847036faecdae7fa1b38dfea79d65b02adbaca271d4_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3e6af08e75cc408645a91847036faecdae7fa1b38dfea79d65b02adbaca271d4_fetchconstr_form_wf_mitgliedPassnummer_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3e6af08e75cc408645a91847036faecdae7fa1b38dfea79d65b02adbaca271d4_fetchconstr_form_wf_mitgliedPassnummer_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT ('.\FOP\Database::quote(\FOP\User::getGruppe()).') FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch33682e8723b3cd8b498e3a6159829621f77b9e56d893e1f1f25004c6bbbc3df9_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch33682e8723b3cd8b498e3a6159829621f77b9e56d893e1f1f25004c6bbbc3df9_fetchconstr_form_wf_doc_create_to_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch33682e8723b3cd8b498e3a6159829621f77b9e56d893e1f1f25004c6bbbc3df9_fetchconstr_form_wf_doc_edit_to_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch865172ed5768c242d6b45e5ff377351532fd3bc8c82279a12d976c55f56fff3b_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch865172ed5768c242d6b45e5ff377351532fd3bc8c82279a12d976c55f56fff3b_fetchconstr_form_wf_doc_create_to_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch865172ed5768c242d6b45e5ff377351532fd3bc8c82279a12d976c55f56fff3b_fetchconstr_form_wf_doc_edit_to_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3d54e9f0036357317fab3cb33650bfd7ff0cd5d651774554bdd1f31a4c00dae2_fetchconstr_formarray_wf_mitglied_create_ansprechpartner_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3d54e9f0036357317fab3cb33650bfd7ff0cd5d651774554bdd1f31a4c00dae2_fetchconstr_formarray_wf_mitglied_edit_ansprechpartner_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch4f39b0d23932e247f462535fea9ee95e28937e996247ab473e49af31193b1405_fetchconstr_formarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch4f39b0d23932e247f462535fea9ee95e28937e996247ab473e49af31193b1405_fetchconstr_formarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB71bf46989f12939bd76a709489df6abc1b1bda456765fad8896b4a3cb6cdeb8_fetchconstr_formarray_wf_mitglied_create_mitgliedPassnummer_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB71bf46989f12939bd76a709489df6abc1b1bda456765fad8896b4a3cb6cdeb8_fetchconstr_formarray_wf_mitglied_edit_mitgliedPassnummer_mitglied_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch084ae7f3b5cc88f7adac5eaee995b9710c63a5c48dfb1b41d60d4132870cdf70_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch084ae7f3b5cc88f7adac5eaee995b9710c63a5c48dfb1b41d60d4132870cdf70_fetchconstr_form_wf_mitgliedBuchung_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch084ae7f3b5cc88f7adac5eaee995b9710c63a5c48dfb1b41d60d4132870cdf70_fetchconstr_form_wf_mitgliedBuchung_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3d54e9f0036357317fab3cb33650bfd7ff0cd5d651774554bdd1f31a4c00dae2_fetchformarray_wf_mitglied_create_ansprechpartner_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3d54e9f0036357317fab3cb33650bfd7ff0cd5d651774554bdd1f31a4c00dae2_fetchformarray_wf_mitglied_edit_ansprechpartner_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3d54e9f0036357317fab3cb33650bfd7ff0cd5d651774554bdd1f31a4c00dae2_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3d54e9f0036357317fab3cb33650bfd7ff0cd5d651774554bdd1f31a4c00dae2_fetchconstr_form_wf_ansprechpartner_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch3d54e9f0036357317fab3cb33650bfd7ff0cd5d651774554bdd1f31a4c00dae2_fetchconstr_form_wf_ansprechpartner_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch4f39b0d23932e247f462535fea9ee95e28937e996247ab473e49af31193b1405_fetchformarray_wf_mitglied_create_matrix_campaignTarget_target_campaignAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch4f39b0d23932e247f462535fea9ee95e28937e996247ab473e49af31193b1405_fetchformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaignAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch4f39b0d23932e247f462535fea9ee95e28937e996247ab473e49af31193b1405_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch4f39b0d23932e247f462535fea9ee95e28937e996247ab473e49af31193b1405_fetchconstr_form_wf_campaignTarget_create_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetch4f39b0d23932e247f462535fea9ee95e28937e996247ab473e49af31193b1405_fetchconstr_form_wf_campaignTarget_edit_targetAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB71bf46989f12939bd76a709489df6abc1b1bda456765fad8896b4a3cb6cdeb8_fetchformarray_wf_mitglied_create_mitgliedPassnummer_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB71bf46989f12939bd76a709489df6abc1b1bda456765fad8896b4a3cb6cdeb8_fetchformarray_wf_mitglied_edit_mitgliedPassnummer_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB71bf46989f12939bd76a709489df6abc1b1bda456765fad8896b4a3cb6cdeb8_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB71bf46989f12939bd76a709489df6abc1b1bda456765fad8896b4a3cb6cdeb8_fetchconstr_form_wf_mitgliedPassnummer_create_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchB71bf46989f12939bd76a709489df6abc1b1bda456765fad8896b4a3cb6cdeb8_fetchconstr_form_wf_mitgliedPassnummer_edit_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchF71986f7b3a9dafab8aaa15c1a3c801bb7f4afc6ecdd7755e359372112ead8e0_fetchformAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchF71986f7b3a9dafab8aaa15c1a3c801bb7f4afc6ecdd7755e359372112ead8e0_fetchconstr_form_wf_doc_create_to_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function fetchF71986f7b3a9dafab8aaa15c1a3c801bb7f4afc6ecdd7755e359372112ead8e0_fetchconstr_form_wf_doc_edit_to_mitgliedAction($id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	  header('Content-Type: application/json');
		// TODO: Komplexere Expressions brauchen ein Typsystem
		$value = \FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE (TRUE) AND '.qi('ID').' = ' . \FOP\Database::quote($id) . '')->fetchColumn();
		return $value === false ? null : $value;
	
    
  }

  public static function delete($id, $disregardPermissions = false ) { 
    
    
    // --- BLOCK: main ---
    
			$sql = 'SELECT ' . ($disregardPermissions ? 1 : '(CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END)') . ' FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id);
			if (\FOP\Database::query($sql)->fetchColumn() != 1) {
				return false;
			}
			
			$sql = 'DELETE FROM  '.qi('mitglied').'  WHERE '.qi('ID').' = ' . \FOP\Database::quote($id);
			$result = \FOP\Database::query($sql);
			
			return true;
	
    
  }

  public static function suggestionsAction($refcol = '' , $prefix = '' ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		$result = [];
		$result[_('Mitglied')] = [];
		$result[_('Mitglied')][_('Begrüßung')] = '<span class="placeholder" data-field="' . htmlentities($refcol . 'property:salutation') . '">' . $prefix . 'Sehr geehrter Herr soundso,</span>';
		if ((\FOP\User::getBuchhaltung())) $result[_('Mitglied')][_('Guthaben Beiträge')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'forderungen').'">' . $prefix . htmlentities(_('Guthaben Beiträge')).'</span>';
		if ((\FOP\User::getBuchhaltung())) $result[_('Mitglied')][_('SEPA-Lastschrift')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'sepa').'">' . $prefix . htmlentities(_('SEPA-Lastschrift')).'</span>';
		if ((\FOP\User::getBuchhaltung())) $result[_('Mitglied')][_('Datum SEPA-Lastschrift')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'sepaDate').'">' . $prefix . htmlentities(_('Datum SEPA-Lastschrift')).'</span>';
		if ((\FOP\User::getSuperadmin())) $result[_('Mitglied')][_('Super-Admin')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'superadmin').'">' . $prefix . htmlentities(_('Super-Admin')).'</span>';
		$result[_('Mitglied')][_('Name')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'name').'">' . $prefix . htmlentities(_('Name')).'</span>';
		$result[_('Mitglied')][_('Vorname')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'vorname').'">' . $prefix . htmlentities(_('Vorname')).'</span>';
		$result[_('Mitglied')][_('Geschlecht')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'geschlecht').'">' . $prefix . htmlentities(_('Geschlecht')).'</span>';
		$result[_('Mitglied')][_('Datenschutz akzeptiert')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'datenschutz').'">' . $prefix . htmlentities(_('Datenschutz akzeptiert')).'</span>';
		$result[_('Mitglied')][_('Geburtsdatum')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'geburtsdatum').'">' . $prefix . htmlentities(_('Geburtsdatum')).'</span>';
		$result[_('Mitglied')][_('Land')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'land').'">' . $prefix . htmlentities(_('Land')).'</span>';
		$result[_('Mitglied')][_('Postleitzahl')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'plz').'">' . $prefix . htmlentities(_('Postleitzahl')).'</span>';
		$result[_('Mitglied')][_('Ort')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'ort').'">' . $prefix . htmlentities(_('Ort')).'</span>';
		$result[_('Mitglied')][_('Straße und Hausnummer')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'strasse').'">' . $prefix . htmlentities(_('Straße und Hausnummer')).'</span>';
		$result[_('Mitglied')][_('Eintrittsdatum')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'eintritt').'">' . $prefix . htmlentities(_('Eintrittsdatum')).'</span>';
		$result[_('Mitglied')][_('E-Mail')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'email').'">' . $prefix . htmlentities(_('E-Mail')).'</span>';
		$result[_('Mitglied')][_('E-Mail Alternative')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'email2').'">' . $prefix . htmlentities(_('E-Mail Alternative')).'</span>';
		$result[_('Mitglied')][_('Telefon')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'telefon').'">' . $prefix . htmlentities(_('Telefon')).'</span>';
		$result[_('Mitglied')][_('Mobil')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'mobil').'">' . $prefix . htmlentities(_('Mobil')).'</span>';
		$result[_('Mitglied')][_('Mitgliedsnummer')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'mnr').'">' . $prefix . htmlentities(_('Mitgliedsnummer')).'</span>';
		$result[_('Mitglied')][_('Austrittsdatum')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'austrittsdatum').'">' . $prefix . htmlentities(_('Austrittsdatum')).'</span>';
		$result[_('Mitglied')][_('Austritts-Grund')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'austrittsgrund').'">' . $prefix . htmlentities(_('Austritts-Grund')).'</span>';
		$result[_('Mitglied')][_('Verstorben am')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'verstorben').'">' . $prefix . htmlentities(_('Verstorben am')).'</span>';
		$result[_('Mitglied')][_('Notiz')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'notiz').'">' . $prefix . htmlentities(_('Notiz')).'</span>';
		if ((\FOP\User::getBuchhaltung())) $result[_('Mitglied')][_('IBAN')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'iban').'">' . $prefix . htmlentities(_('IBAN')).'</span>';
		if ((\FOP\User::getBuchhaltung())) $result[_('Mitglied')][_('BIC')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'bic').'">' . $prefix . htmlentities(_('BIC')).'</span>';
		$result[_('Mitglied')][_('Passwort')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'password').'">' . $prefix . htmlentities(_('Passwort')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Admin')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canAdmin').'">' . $prefix . htmlentities(_('Admin')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Mitgliederverwaltung')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canMitglied').'">' . $prefix . htmlentities(_('Mitgliederverwaltung')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Verwaltung der eigenen Gruppe')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canGruppe').'">' . $prefix . htmlentities(_('Verwaltung der eigenen Gruppe')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Rundmails und Aktionen')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canCampaign').'">' . $prefix . htmlentities(_('Rundmails und Aktionen')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Geldsammlungen')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canSammlung').'">' . $prefix . htmlentities(_('Geldsammlungen')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Buchhaltung')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canBuchhaltung').'">' . $prefix . htmlentities(_('Buchhaltung')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Protokoll')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canProtokoll').'">' . $prefix . htmlentities(_('Protokoll')).'</span>';
		if ((\FOP\User::getAdmin())) $result[_('Mitglied')][_('Dokumente')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'canDokument').'">' . $prefix . htmlentities(_('Dokumente')).'</span>';
		$result[_('Mitglied')][_('Mitgliedsbeitrag')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'tarif').'">' . $prefix . htmlentities(_('Mitgliedsbeitrag')).'</span>';
		$result[_('Mitglied')][_('Geburtstage')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'reminderMitgliedMitglied-gebtagMails').'">' . $prefix . htmlentities(_('Geburtstage')).'</span>';
		$result[_('Mitglied')][_('Offene Beiträge')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'reminderMitgliedForderungenMails').'">' . $prefix . htmlentities(_('Offene Beiträge')).'</span>';
		$result[_('Mitglied')][_('unbehandelte Zahlungseingänge')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'reminderFop_fints_buchungForderungenMails').'">' . $prefix . htmlentities(_('unbehandelte Zahlungseingänge')).'</span>';
		$result[_('Mitglied')][_('Mir zugewiesen')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'reminderAufgabeAssignedMails').'">' . $prefix . htmlentities(_('Mir zugewiesen')).'</span>';
		$result[_('Mitglied')][_('Nicht zugewiesen')] = '<span class="placeholder" data-field="'.htmlentities($refcol . 'reminderAufgabeNot_assignedMails').'">' . $prefix . htmlentities(_('Nicht zugewiesen')).'</span>';
	
    // --- BLOCK: ~return ---
    
		$result['Interaktion 1'] = '<span class="placeholder" data-field="interaction1">Interaktion 1</span>';
		$result['Interaktion 2'] = '<span class="placeholder" data-field="interaction2">Interaktion 2</span>';
	
    // --- BLOCK: ~return ---
    
		return $result;
	
    
  }

  public static function applyTemplate($id, $html) { 
    
    
    // --- BLOCK: main ---
    
		$data = \Tables\Mitglied::view($id, false, true);
		$variables = \Tables\Mitglied::view($id, true, true);
		$variables['forderungen'] = htmlentities($variables['forderungen']);
		$variables['sepa'] = htmlentities($variables['sepa']);
		$variables['sepaDate'] = htmlentities($variables['sepaDate']);
		$variables['superadmin'] = htmlentities($variables['superadmin']);
		$variables['name'] = htmlentities($variables['name']);
		$variables['vorname'] = htmlentities($variables['vorname']);
		$variables['geschlecht'] = htmlentities($variables['geschlecht']);
		$variables['datenschutz'] = htmlentities($variables['datenschutz']);
		$variables['geburtsdatum'] = htmlentities($variables['geburtsdatum']);
		$variables['land'] = htmlentities($variables['land']);
		$variables['plz'] = htmlentities($variables['plz']);
		$variables['ort'] = htmlentities($variables['ort']);
		$variables['strasse'] = htmlentities($variables['strasse']);
		$variables['eintritt'] = htmlentities($variables['eintritt']);
		$variables['email'] = htmlentities($variables['email']);
		$variables['email2'] = htmlentities($variables['email2']);
		$variables['telefon'] = htmlentities($variables['telefon']);
		$variables['mobil'] = htmlentities($variables['mobil']);
		$variables['mnr'] = htmlentities($variables['mnr']);
		$variables['austrittsdatum'] = htmlentities($variables['austrittsdatum']);
		$variables['austrittsgrund'] = htmlentities($variables['austrittsgrund']);
		$variables['verstorben'] = htmlentities($variables['verstorben']);
		$variables['notiz'] = htmlentities($variables['notiz']);
		$variables['iban'] = htmlentities($variables['iban']);
		$variables['bic'] = htmlentities($variables['bic']);
		$variables['password'] = htmlentities($variables['password']);
		$variables['canAdmin'] = htmlentities($variables['canAdmin']);
		$variables['canMitglied'] = htmlentities($variables['canMitglied']);
		$variables['canGruppe'] = htmlentities($variables['canGruppe']);
		$variables['canCampaign'] = htmlentities($variables['canCampaign']);
		$variables['canSammlung'] = htmlentities($variables['canSammlung']);
		$variables['canBuchhaltung'] = htmlentities($variables['canBuchhaltung']);
		$variables['canProtokoll'] = htmlentities($variables['canProtokoll']);
		$variables['canDokument'] = htmlentities($variables['canDokument']);
		$variables['tarif'] = htmlentities($variables['tarif']);
		$variables['reminderMitgliedMitglied-gebtagMails'] = htmlentities($variables['reminderMitgliedMitglied-gebtagMails']);
		$variables['reminderMitgliedForderungenMails'] = htmlentities($variables['reminderMitgliedForderungenMails']);
		$variables['reminderFop_fints_buchungForderungenMails'] = htmlentities($variables['reminderFop_fints_buchungForderungenMails']);
		$variables['reminderAufgabeAssignedMails'] = htmlentities($variables['reminderAufgabeAssignedMails']);
		$variables['reminderAufgabeNot_assignedMails'] = htmlentities($variables['reminderAufgabeNot_assignedMails']);
		$variables['property:salutation'] = htmlentities($variables['property:salutation']);
		return \FOP\Util::SanitizeUserHtml($html, false, $variables);
	
    
  }

  public static function createListMitgliedPassnummer_mitgliedAction($row = null , $parent = null , $superadmin = null , $ID = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: before-prepare-parent ---
    
		if (!isset($parent)) $parent = [];
	
    // --- BLOCK: before-prepare-parent-ID ---
    
		if (isset($ID)) $parent['ID'] = $ID;
    // --- BLOCK: before-prepare-parent-superadmin ---
    
		if (isset($superadmin)) $parent['superadmin'] = $superadmin;
    // --- BLOCK: before-prepare-row ---
    
		if (!is_array($row)) {
			$parentrow = [];
			$row = \Tables\MitgliedPassnummer::getDefaults();
			$row['ID'] = '';
			$row['canDelete'] = true;
			
			$parentrow['ID'] = $ID;
			$parentrow['superadmin'] = $superadmin;\Tables\MitgliedPassnummer::sanitizeDefaults($row, true, 'mitglied', $parentrow);
		} else {
						
			$row['canDelete'] = $row['canDelete'] ?? false;
		}
		
		
    // --- BLOCK: main ---
    
		?>
		<tr class='wfl-item' ng-controller='FormGroupWf_mitglied_createMitgliedPassnummer_mitglied' ng-init='item = <?php
				echo htmlentities(json_encode(['mitglied' => null, '0Sju7gXS' => null, 'jVTTiriC' => null, 'NMfpLDuB' => null]));
			?>;
			form[&apos;mitgliedPassnummer_mitglied&apos;] = (form[&apos;mitgliedPassnummer_mitglied&apos;] || []); form[&apos;mitgliedPassnummer_mitglied&apos;].push(item);'>
					<td class='mdl-data-table__cell--non-numeric'>
						<div>
							<?php if ($row['canDelete']) { ?>
							<div class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='$(this).closest("tr").fadeOut().find("input[name=&apos;mitgliedPassnummer_mitglied[]&apos;]").val("0");'>
								<i class="material-icons">remove</i>
							</div>
							<?php } ?>
							<input type='hidden' name='mitgliedPassnummer_mitglied[]' value='1'>
							<input type='hidden' name='mitgliedPassnummer_mitglied_ID[]' value='<?php echo htmlentities($row['ID']); ?>'>
						</div>
					</td><?php
        // Unterscheidung Create/Edit
        if ($row['ID'] ? true : true) {
        	?><!-- Spalte "Passnummer": pnr
			--><td class='mdl-data-table__cell--non-numeric'><span><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="mitgliedPassnummer_mitglied_pnr[]"  value="<?php echo htmlentities($row['pnr']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span>
			</td><?php } else if (/* Create aber nicht edit: leere Zelle
			*/true || true) { ?><td>&nbsp;</td><?php } ?><?php
        // Unterscheidung Create/Edit
        if ($row['ID'] ? true : true) {
        	?><!-- Spalte "Sportverband": verband
			--><td class='mdl-data-table__cell--non-numeric'><span><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="mitgliedPassnummer_mitglied_verband[]"  value="<?php echo htmlentities($row['verband']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span>
			</td><?php } else if (/* Create aber nicht edit: leere Zelle
			*/true || true) { ?><td>&nbsp;</td><?php } ?></tr><?php
	
    
  }

  public static function createListAnsprechpartner_mitgliedAction($row = null , $parent = null , $superadmin = null , $ID = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: before-prepare-parent ---
    
		if (!isset($parent)) $parent = [];
	
    // --- BLOCK: before-prepare-parent-ID ---
    
		if (isset($ID)) $parent['ID'] = $ID;
    // --- BLOCK: before-prepare-parent-superadmin ---
    
		if (isset($superadmin)) $parent['superadmin'] = $superadmin;
    // --- BLOCK: before-prepare-row ---
    
		if (!is_array($row)) {
			$parentrow = [];
			$row = \Tables\Ansprechpartner::getDefaults();
			$row['ID'] = '';
			$row['canDelete'] = true;
			
			$parentrow['ID'] = $ID;
			$parentrow['superadmin'] = $superadmin;\Tables\Ansprechpartner::sanitizeDefaults($row, true, 'mitglied', $parentrow);
		} else {
			
			$row['tel'] = \FOP\Sanitizers::a_phone($row['tel']);
			$row['tel2'] = \FOP\Sanitizers::a_phone($row['tel2']);
			$row['email'] = \FOP\Sanitizers::a_text($row['email']);			
			$row['canDelete'] = $row['canDelete'] ?? false;
		}
		
		
    // --- BLOCK: main ---
    
		?>
		<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card wfl-item" ng-controller='FormGroupWf_mitglied_createAnsprechpartner_mitglied' ng-init='item = <?php
				echo htmlentities(json_encode(['mitglied' => null, 'KRTKa3PB' => null, '7mTqtpk9' => null, 'gKmZLtRS' => null]));
			?>;
			form[&apos;ansprechpartner_mitglied&apos;] = (form[&apos;ansprechpartner_mitglied&apos;] || []); form[&apos;ansprechpartner_mitglied&apos;].push(item);'>
				<div class="mdl-cell mdl-cell--12-col mdl-cell--4-col-phone" style="align-items: start; flex-direction: column;">
					<h4><?php echo(_('Kontaktperson')); ?></h4>
				</div>
			
			<div class="mdl-cell mdl-cell--12-col mdl-cell--4-col-phone">
			<div class="mdl-grid grid-card" style="width: 100%;">
			<input type='hidden' name='ansprechpartner_mitglied[]' value='1'>
			<input type='hidden' name='ansprechpartner_mitglied_ID[]' value='<?php echo htmlentities($row['ID']); ?>'>
		<!-- Spalte vorname
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Vorname')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ansprechpartner_mitglied_vorname[]"  value="<?php echo htmlentities($row['vorname']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte name
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Nachname')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ansprechpartner_mitglied_name[]"  value="<?php echo htmlentities($row['name']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte stellung
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Beziehung zum Mitglied')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ansprechpartner_mitglied_stellung[]"  value="<?php echo htmlentities($row['stellung']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
					<div id="infostellung" class="cardforminfo icon material-icons">info1</div>
					<div class="mdl-tooltip" for="infostellung"><?php echo(_('Mutter, Vater, Betreuer')); ?></div>
					
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte tel
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Telefon')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="ansprechpartner_mitglied_tel[]" value="<?php echo htmlentities($row['tel']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte tel2
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Telefon 2')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="ansprechpartner_mitglied_tel2[]" value="<?php echo htmlentities($row['tel2']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte email
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('E-Mail')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="email" name="ansprechpartner_mitglied_email[]"  id="ansprechpartner_mitglied_email[]" value="<?php echo htmlentities($row['email']); ?>"/><label class="mdl-textfield__label" for="ansprechpartner_mitglied_email[]"><?php echo(_('email')); ?></label>  <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?>
			<?php if ($row['canDelete']) { ?><!-- Delete Button -->
			<div class="mdl-cell mdl-cell--12-col mdl-cell--4-col-phone" style="align-items: start; flex-direction: column;">
				<div class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='var item = $(this).closest("div.mdl-cell.wfl-item"); item.fadeOut(); item.find("input[name=&apos;ansprechpartner_mitglied[]&apos;]").val("0"); item.find("[required]").removeAttr("required");var s = $(this).scope(); var a = s.$eval(&apos;form[\&apos;ansprechpartner_mitglied\&apos;]&apos;); var i = a.indexOf(s.item); if (i != -1) {a.splice(i, 1); s.$apply();}'>
				<i class="material-icons">remove</i>
				<?php echo(_('delete')); ?>
				</div>
			</div>
			<?php } ?>
		</div></div></div><?php
	
    
  }

  public static function editListMitgliedPassnummer_mitgliedAction($row = null , $parent = null , $superadmin = null , $ID = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: before-prepare-parent ---
    
		if (!isset($parent)) $parent = [];
	
    // --- BLOCK: before-prepare-parent-ID ---
    
		if (isset($ID)) $parent['ID'] = $ID;
    // --- BLOCK: before-prepare-parent-superadmin ---
    
		if (isset($superadmin)) $parent['superadmin'] = $superadmin;
    // --- BLOCK: before-prepare-row ---
    
		if (!is_array($row)) {
			$parentrow = [];
			$row = \Tables\MitgliedPassnummer::getDefaults();
			$row['ID'] = '';
			$row['canDelete'] = true;
			
			$parentrow['ID'] = $ID;
			$parentrow['superadmin'] = $superadmin;\Tables\MitgliedPassnummer::sanitizeDefaults($row, true, 'mitglied', $parentrow);
		} else {
						
			$row['canDelete'] = $row['canDelete'] ?? false;
		}
		
		
    // --- BLOCK: main ---
    
		?>
		<tr class='wfl-item' ng-controller='FormGroupWf_mitglied_editMitgliedPassnummer_mitglied' ng-init='item = <?php
				echo htmlentities(json_encode(['mitglied' => null, '0Sju7gXS' => null, 'jVTTiriC' => null, 'NMfpLDuB' => null]));
			?>;
			form[&apos;mitgliedPassnummer_mitglied&apos;] = (form[&apos;mitgliedPassnummer_mitglied&apos;] || []); form[&apos;mitgliedPassnummer_mitglied&apos;].push(item);'>
					<td class='mdl-data-table__cell--non-numeric'>
						<div>
							<?php if ($row['canDelete']) { ?>
							<div class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='$(this).closest("tr").fadeOut().find("input[name=&apos;mitgliedPassnummer_mitglied[]&apos;]").val("0");'>
								<i class="material-icons">remove</i>
							</div>
							<?php } ?>
							<input type='hidden' name='mitgliedPassnummer_mitglied[]' value='1'>
							<input type='hidden' name='mitgliedPassnummer_mitglied_ID[]' value='<?php echo htmlentities($row['ID']); ?>'>
						</div>
					</td><?php
        // Unterscheidung Create/Edit
        if ($row['ID'] ? true : true) {
        	?><!-- Spalte "Passnummer": pnr
			--><td class='mdl-data-table__cell--non-numeric'><span><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="mitgliedPassnummer_mitglied_pnr[]"  value="<?php echo htmlentities($row['pnr']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span>
			</td><?php } else if (/* Create aber nicht edit: leere Zelle
			*/true || true) { ?><td>&nbsp;</td><?php } ?><?php
        // Unterscheidung Create/Edit
        if ($row['ID'] ? true : true) {
        	?><!-- Spalte "Sportverband": verband
			--><td class='mdl-data-table__cell--non-numeric'><span><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="mitgliedPassnummer_mitglied_verband[]"  value="<?php echo htmlentities($row['verband']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span>
			</td><?php } else if (/* Create aber nicht edit: leere Zelle
			*/true || true) { ?><td>&nbsp;</td><?php } ?></tr><?php
	
    
  }

  public static function editListAnsprechpartner_mitgliedAction($row = null , $parent = null , $superadmin = null , $ID = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: before-prepare-parent ---
    
		if (!isset($parent)) $parent = [];
	
    // --- BLOCK: before-prepare-parent-ID ---
    
		if (isset($ID)) $parent['ID'] = $ID;
    // --- BLOCK: before-prepare-parent-superadmin ---
    
		if (isset($superadmin)) $parent['superadmin'] = $superadmin;
    // --- BLOCK: before-prepare-row ---
    
		if (!is_array($row)) {
			$parentrow = [];
			$row = \Tables\Ansprechpartner::getDefaults();
			$row['ID'] = '';
			$row['canDelete'] = true;
			
			$parentrow['ID'] = $ID;
			$parentrow['superadmin'] = $superadmin;\Tables\Ansprechpartner::sanitizeDefaults($row, true, 'mitglied', $parentrow);
		} else {
			
			$row['tel'] = \FOP\Sanitizers::a_phone($row['tel']);
			$row['tel2'] = \FOP\Sanitizers::a_phone($row['tel2']);
			$row['email'] = \FOP\Sanitizers::a_text($row['email']);			
			$row['canDelete'] = $row['canDelete'] ?? false;
		}
		
		
    // --- BLOCK: main ---
    
		?>
		<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card wfl-item" ng-controller='FormGroupWf_mitglied_editAnsprechpartner_mitglied' ng-init='item = <?php
				echo htmlentities(json_encode(['mitglied' => null, 'KRTKa3PB' => null, '7mTqtpk9' => null, 'gKmZLtRS' => null]));
			?>;
			form[&apos;ansprechpartner_mitglied&apos;] = (form[&apos;ansprechpartner_mitglied&apos;] || []); form[&apos;ansprechpartner_mitglied&apos;].push(item);'>
				<div class="mdl-cell mdl-cell--12-col mdl-cell--4-col-phone" style="align-items: start; flex-direction: column;">
					<h4><?php echo(_('Kontaktperson')); ?></h4>
				</div>
			
			<div class="mdl-cell mdl-cell--12-col mdl-cell--4-col-phone">
			<div class="mdl-grid grid-card" style="width: 100%;">
			<input type='hidden' name='ansprechpartner_mitglied[]' value='1'>
			<input type='hidden' name='ansprechpartner_mitglied_ID[]' value='<?php echo htmlentities($row['ID']); ?>'>
		<!-- Spalte vorname
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Vorname')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ansprechpartner_mitglied_vorname[]"  value="<?php echo htmlentities($row['vorname']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte name
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Nachname')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ansprechpartner_mitglied_name[]"  value="<?php echo htmlentities($row['name']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte stellung
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Beziehung zum Mitglied')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="ansprechpartner_mitglied_stellung[]"  value="<?php echo htmlentities($row['stellung']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
					<div id="infostellung" class="cardforminfo icon material-icons">info1</div>
					<div class="mdl-tooltip" for="infostellung"><?php echo(_('Mutter, Vater, Betreuer')); ?></div>
					
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte tel
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Telefon')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="ansprechpartner_mitglied_tel[]" value="<?php echo htmlentities($row['tel']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte tel2
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('Telefon 2')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="text"  name="ansprechpartner_mitglied_tel2[]" value="<?php echo htmlentities($row['tel2']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?><!-- Spalte email
			--><?php
			if ($row['ID'] ? true : true) {
				?><?php // Unterscheidung Create/Edit
			if ($row['ID'] ? true : true) {
				?><div class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label"><?php echo(_('E-Mail')); ?></div>
				<div class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone">
					<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="email" name="ansprechpartner_mitglied_email[]"  id="ansprechpartner_mitglied_email[]" value="<?php echo htmlentities($row['email']); ?>"/><label class="mdl-textfield__label" for="ansprechpartner_mitglied_email[]"><?php echo(_('email')); ?></label>  <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
				</div>
			<?php } else { // kein Access: leere Zelle
				?><div class="mdl-cell mdl-cell--6-col"></div><?php
			} ?><?php
			}?>
			<?php if ($row['canDelete']) { ?><!-- Delete Button -->
			<div class="mdl-cell mdl-cell--12-col mdl-cell--4-col-phone" style="align-items: start; flex-direction: column;">
				<div class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='var item = $(this).closest("div.mdl-cell.wfl-item"); item.fadeOut(); item.find("input[name=&apos;ansprechpartner_mitglied[]&apos;]").val("0"); item.find("[required]").removeAttr("required");var s = $(this).scope(); var a = s.$eval(&apos;form[\&apos;ansprechpartner_mitglied\&apos;]&apos;); var i = a.indexOf(s.item); if (i != -1) {a.splice(i, 1); s.$apply();}'>
				<i class="material-icons">remove</i>
				<?php echo(_('delete')); ?>
				</div>
			</div>
			<?php } ?>
		</div></div></div><?php
	
    
  }

  public static function lifecycleEndListFop_listAction($row = null , $parent = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: before-prepare-parent ---
    
		if (!isset($parent)) $parent = [];
	
    // --- BLOCK: before-prepare-row ---
    
		if (!is_array($row)) {
			$parentrow = [];
			$row = \Tables\Mitglied::getDefaults();
			$row['ID'] = '';
			$row['canDelete'] = true;
			
		  	$row['dynamic:time'] = date('y')*12+date('m')-1;\Tables\Mitglied::sanitizeDefaults($row, true, 'mitglied', $parentrow);
		} else {
			
			$row['tarif'] = \FOP\Sanitizers::null_converter($row['tarif']);			
			$row['canDelete'] = false;
		}
		
		
    // --- BLOCK: main ---
    
		?>
		<tr class='wfl-item'>
					<td class='mdl-data-table__cell--non-numeric'>
						<div>
							<?php if ($row['canDelete']) { ?>
							<div class='mdl-button mdl-js-button mdl-button--colored mdl-button--raised' onclick='$(this).closest("tr").fadeOut().find("input[name=&apos;fop_list[]&apos;]").val("0");'>
								<i class="material-icons">remove</i>
							</div>
							<?php } ?>
							<input type='hidden' name='fop_list[]' value='1'>
							<input type='hidden' name='fop_list_ID[]' value='<?php echo htmlentities($row['ID']); ?>'>
						</div>
					</td><?php
        // Unterscheidung Create/Edit
        if ($row['ID'] ? true : true) {
        	?><!-- Spalte "Name": name
			--><td class='mdl-data-table__cell--non-numeric'><span><span class='overflow-text' title="<?php echo htmlentities($row['name']); ?>"><?php echo htmlentities($row['name']); ?></span></span>
			</td><?php } else if (/* Create aber nicht edit: leere Zelle
			*/true || true) { ?><td>&nbsp;</td><?php } ?><?php
        // Unterscheidung Create/Edit
        if ($row['ID'] ? true : true) {
        	?><!-- Spalte "Vorname": vorname
			--><td class='mdl-data-table__cell--non-numeric'><span><span class='overflow-text' title="<?php echo htmlentities($row['vorname']); ?>"><?php echo htmlentities($row['vorname']); ?></span></span>
			</td><?php } else if (/* Create aber nicht edit: leere Zelle
			*/true || true) { ?><td>&nbsp;</td><?php } ?></tr><?php
	
    
  }

  public static function createMatrixMatrix_campaignTarget_target_campaignAction($id, $values) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getCampaign()) && (\FOP\User::getCampaign())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    
		if (isset($_POST['values'])) {
			$values = $_POST['values'];
		}
		if (is_string($values)) {
			$values = json_decode($values, true);
			array_walk($values, function (&$item) {
				$item['state'] = \FOP\Sanitizers::null_filter($item['state']);
				$item['creation'] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($item['creation']);
				$item['lastUpdate'] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($item['lastUpdate']);
			});
		}
		// Aufbau: 1. options suchen
		if (isset($id) && $id != 'null') $parent = \Tables\Mitglied::view($id, false, true);
		$deps = [];
		$options = \FOP\Database::query('SELECT /* _checked */ mode = 2 AS '.qi('_checked').',
									/* campaign */ '.qi('options').'.'.qi('ID').' AS '.qi('campaign').',
									/* campaign::canView */ '.qi('ref:campaign').'.'.qi('campaign:canView').' AS '.qi('campaign::canView').',
									/* campaign::description */ '.qi('ref:campaign').'.'.qi('campaign:description').' AS '.qi('campaign::description').',
									1
								FROM '.qi('campaign').' '.qi('options').'
								LEFT JOIN (SELECT '.qi('ID').' AS '.qi('campaign:ID').', '.qi('campaign').'.'.qi('name').' AS '.qi('campaign:description').', (('.\FOP\Database::quote(\FOP\User::getCampaign()).')) AS '.qi('campaign:canView').' FROM '.qi('campaign').') '.qi('ref:campaign').' ON '.qi('ref:campaign').'.'.qi('campaign:ID').' = '.qi('options').'.'.qi('ID').'
								WHERE ((mode > 0))')->fetchAll(\PDO::FETCH_ASSOC);
		// 2. values resanitizen und umschaufeln in ein asso-Array, aus dem man herausstreichen kann
		$ticks = [];
		foreach ($values AS $value) {
			$value['ID'] = ''; // Klon-Formular: CM-Einträge neu anlegen
			$value['state'] = \FOP\Sanitizers::null_converter($value['state']);
			$value['creation'] = intval($value['creation']);
			$value['lastUpdate'] = intval($value['lastUpdate']);
			$ticks[$value['campaign']] = $value;
		}
		// 3. options rendern (dabei ggf. Werte verarbeiten, wenn values dabei ist)
		$i = 0;
		foreach ($options AS $option) {
			

			if (isset($ticks[$option['campaign']])) {
				// getickt -> merge option + customvalues
				$value = $option + $ticks[$option['campaign']];
				unset($ticks[$option['campaign']]);
			} else {
				// ungetickt
				$value = \Tables\CampaignTarget::getDefaults();
				if (isset($parent)) $value['target'] = $parent['ID'];
				$value = array_merge($value, $option); // add option dimensions with descriptions
				$value['ID'] = '';
				if ($option['_checked'] != 0) {
					$value['_checked'] = true;
				}
				\Tables\CampaignTarget::sanitizeDefaults($value, true);
			}
			?><tr ng-controller='FormGroupWf_mitglied_createMatrix_campaignTarget_target_campaign'
				ng-init="item=<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'campaign' => $value['campaign'],
					'target' => $value['target'],
					'ID' => $value['ID']])); ?>;
				matrixRegisterMatrix_campaignTarget_target_campaign(<?php echo htmlentities(json_encode($option['campaign'])); ?>, item)">
				<td class='mdl-data-table__cell--non-numeric' >
					<input type='hidden' name='matrix_campaignTarget_target_campaign[]' value="<?php echo htmlentities(($value['campaign'] ?? '')); ?>">
					<input type='hidden' name='matrix_campaignTarget_target_campaign_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					
					<label class='mdl-checkbox mdl-js-checkbox'>
						<input type='checkbox' name="matrix_campaignTarget_target_campaign__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $option['campaign'])); ?>" class='mdl-checkbox__input matrix_checkbox' ng-model='item.checked'<?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					</label>
				</td>
				<td class='mdl-data-table__cell--non-numeric'>
					<input type='hidden' name='matrix_campaignTarget_target_campaign_campaign[]' class='fop-dimension' value="<?php echo htmlentities($value['campaign'] ?? ''); ?>">
					<?php
	
	call_user_func(function () use ($value) {
	$id = $value['campaign'];
	$val = $value['campaign::description'];
	$canView = $value['campaign::canView'];
	if ($val !== null) {
		if ($canView) echo "<a tabindex=\"-1\" class=\"mdl-button mdl-button-small tbl-link\" data-tbl=\"campaign\" data-id=\"".htmlentities($id)."\" onclick=\"event.stopPropagation(); event.preventDefault(); open_url(this.href, true);\" href=\"" . \TablesRouter\Campaign::viewURL($id, ['from' => \FOP\Util::getBackURL()]) . "\">(…)</a>";echo htmlentities($val);
	} else {
		echo htmlentities(_('') ?: '-');
	}
	});
	
?>

				</td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\CampaignState::renderEditformarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_stateAction($value['state'], [], '');
?> &nbsp;	<?php if (\TablesRouter\CampaignState::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=campaignState", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div style="width: 100%;" class="mdl-textfield mdl-js-textfield"><textarea onkeydown='if (event.keyCode == 13 && event.ctrlKey) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="mdl-textfield__input" rows="8" cols="80" name="matrix_campaignTarget_target_campaign_note[]" id="matrix_campaignTarget_target_campaign_note[]" ><?php echo htmlentities($value['note']); ?></textarea><label class="mdl-textfield__label" for="matrix_campaignTarget_target_campaign_note[]"><?php echo(_('text')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_creation[]" type="text" name="matrix_campaignTarget_target_campaign_creation[]" value="<?php echo ($value['creation']) ? strftime(_('datetimeformat_php2'), intval($value['creation'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_lastUpdate[]" type="text" name="matrix_campaignTarget_target_campaign_lastUpdate[]" value="<?php echo ($value['lastUpdate']) ? strftime(_('datetimeformat_php2'), intval($value['lastUpdate'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td>
			</tr><?php

			$i++;
		}
		// 4. nicht verwendete values hidden rausrendern
		foreach ($ticks AS $value) {
			$value['_checked'] = true;
			?><tr ng-controller='FormGroupWf_mitglied_createMatrix_campaignTarget_target_campaign' style='display: none;' ng-init="item =<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'campaign' => $value['campaign'],
					'target' => $value['target'],
					'ID' => $value['ID']])); ?>;
				"><td>
					<input type='hidden' name='matrix_campaignTarget_target_campaign[]' value="<?php echo htmlentities(($value['campaign'] ?? '')); ?>">
					<input type='hidden' name='matrix_campaignTarget_target_campaign_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					<input type='checkbox' name='matrix_campaignTarget_target_campaign__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $value['campaign'])); ?>' class='matrix_checkbox' <?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					<input type='hidden' name='matrix_campaignTarget_target_campaign_campaign[]' value="<?php echo htmlentities($value['campaign'] ?? ''); ?>">
				</td>
				
					<td class='mdl-data-table__cell--non-numeric'><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\CampaignState::renderEditformarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_stateAction($value['state'], [], '');
?> &nbsp;	<?php if (\TablesRouter\CampaignState::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=campaignState", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></td>
					<td class='mdl-data-table__cell--non-numeric'><div style="width: 100%;" class="mdl-textfield mdl-js-textfield"><textarea onkeydown='if (event.keyCode == 13 && event.ctrlKey) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="mdl-textfield__input" rows="8" cols="80" name="matrix_campaignTarget_target_campaign_note[]" id="matrix_campaignTarget_target_campaign_note[]" ><?php echo htmlentities($value['note']); ?></textarea><label class="mdl-textfield__label" for="matrix_campaignTarget_target_campaign_note[]"><?php echo(_('text')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_creation[]" type="text" name="matrix_campaignTarget_target_campaign_creation[]" value="<?php echo ($value['creation']) ? strftime(_('datetimeformat_php2'), intval($value['creation'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_lastUpdate[]" type="text" name="matrix_campaignTarget_target_campaign_lastUpdate[]" value="<?php echo ($value['lastUpdate']) ? strftime(_('datetimeformat_php2'), intval($value['lastUpdate'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
			</tr><?php
		}
	
    
  }

  public static function editMatrixMatrix_campaignTarget_target_campaignAction($id, $values) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getCampaign()) && (\FOP\User::getCampaign())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    
		if (isset($_POST['values'])) {
			$values = $_POST['values'];
		}
		if (is_string($values)) {
			$values = json_decode($values, true);
			array_walk($values, function (&$item) {
				$item['state'] = \FOP\Sanitizers::null_filter($item['state']);
				$item['creation'] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($item['creation']);
				$item['lastUpdate'] = \FOP\Sanitizers::convert_datetime_to_unix_timestamp($item['lastUpdate']);
			});
		}
		// Aufbau: 1. options suchen
		if (isset($id) && $id != 'null') $parent = \Tables\Mitglied::view($id, false, true);
		$deps = [];
		$options = \FOP\Database::query('SELECT /* _checked */ mode = 2 AS '.qi('_checked').',
									/* campaign */ '.qi('options').'.'.qi('ID').' AS '.qi('campaign').',
									/* campaign::canView */ '.qi('ref:campaign').'.'.qi('campaign:canView').' AS '.qi('campaign::canView').',
									/* campaign::description */ '.qi('ref:campaign').'.'.qi('campaign:description').' AS '.qi('campaign::description').',
									1
								FROM '.qi('campaign').' '.qi('options').'
								LEFT JOIN (SELECT '.qi('ID').' AS '.qi('campaign:ID').', '.qi('campaign').'.'.qi('name').' AS '.qi('campaign:description').', (('.\FOP\Database::quote(\FOP\User::getCampaign()).')) AS '.qi('campaign:canView').' FROM '.qi('campaign').') '.qi('ref:campaign').' ON '.qi('ref:campaign').'.'.qi('campaign:ID').' = '.qi('options').'.'.qi('ID').'
								WHERE ((mode > 0))')->fetchAll(\PDO::FETCH_ASSOC);
		// 2. values resanitizen und umschaufeln in ein asso-Array, aus dem man herausstreichen kann
		$ticks = [];
		foreach ($values AS $value) {
			
			$value['state'] = \FOP\Sanitizers::null_converter($value['state']);
			$value['creation'] = intval($value['creation']);
			$value['lastUpdate'] = intval($value['lastUpdate']);
			$ticks[$value['campaign']] = $value;
		}
		// 3. options rendern (dabei ggf. Werte verarbeiten, wenn values dabei ist)
		$i = 0;
		foreach ($options AS $option) {
			

			if (isset($ticks[$option['campaign']])) {
				// getickt -> merge option + customvalues
				$value = $option + $ticks[$option['campaign']];
				unset($ticks[$option['campaign']]);
			} else {
				// ungetickt
				$value = \Tables\CampaignTarget::getDefaults();
				if (isset($parent)) $value['target'] = $parent['ID'];
				$value = array_merge($value, $option); // add option dimensions with descriptions
				$value['ID'] = '';
				if ($option['_checked'] != 0) {
					$value['_checked'] = true;
				}
				\Tables\CampaignTarget::sanitizeDefaults($value, true);
			}
			?><tr ng-controller='FormGroupWf_mitglied_editMatrix_campaignTarget_target_campaign'
				ng-init="item=<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'campaign' => $value['campaign'],
					'target' => $value['target'],
					'ID' => $value['ID']])); ?>;
				matrixRegisterMatrix_campaignTarget_target_campaign(<?php echo htmlentities(json_encode($option['campaign'])); ?>, item)">
				<td class='mdl-data-table__cell--non-numeric' >
					<input type='hidden' name='matrix_campaignTarget_target_campaign[]' value="<?php echo htmlentities(($value['campaign'] ?? '')); ?>">
					<input type='hidden' name='matrix_campaignTarget_target_campaign_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					
					<label class='mdl-checkbox mdl-js-checkbox'>
						<input type='checkbox' name="matrix_campaignTarget_target_campaign__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $option['campaign'])); ?>" class='mdl-checkbox__input matrix_checkbox' ng-model='item.checked'<?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					</label>
				</td>
				<td class='mdl-data-table__cell--non-numeric'>
					<input type='hidden' name='matrix_campaignTarget_target_campaign_campaign[]' class='fop-dimension' value="<?php echo htmlentities($value['campaign'] ?? ''); ?>">
					<?php
	
	call_user_func(function () use ($value) {
	$id = $value['campaign'];
	$val = $value['campaign::description'];
	$canView = $value['campaign::canView'];
	if ($val !== null) {
		if ($canView) echo "<a tabindex=\"-1\" class=\"mdl-button mdl-button-small tbl-link\" data-tbl=\"campaign\" data-id=\"".htmlentities($id)."\" onclick=\"event.stopPropagation(); event.preventDefault(); open_url(this.href, true);\" href=\"" . \TablesRouter\Campaign::viewURL($id, ['from' => \FOP\Util::getBackURL()]) . "\">(…)</a>";echo htmlentities($val);
	} else {
		echo htmlentities(_('') ?: '-');
	}
	});
	
?>

				</td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\CampaignState::renderEditformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_stateAction($value['state'], [], '');
?> &nbsp;	<?php if (\TablesRouter\CampaignState::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=campaignState", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div style="width: 100%;" class="mdl-textfield mdl-js-textfield"><textarea onkeydown='if (event.keyCode == 13 && event.ctrlKey) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="mdl-textfield__input" rows="8" cols="80" name="matrix_campaignTarget_target_campaign_note[]" id="matrix_campaignTarget_target_campaign_note[]" ><?php echo htmlentities($value['note']); ?></textarea><label class="mdl-textfield__label" for="matrix_campaignTarget_target_campaign_note[]"><?php echo(_('text')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_creation[]" type="text" name="matrix_campaignTarget_target_campaign_creation[]" value="<?php echo ($value['creation']) ? strftime(_('datetimeformat_php2'), intval($value['creation'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_lastUpdate[]" type="text" name="matrix_campaignTarget_target_campaign_lastUpdate[]" value="<?php echo ($value['lastUpdate']) ? strftime(_('datetimeformat_php2'), intval($value['lastUpdate'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td>
			</tr><?php

			$i++;
		}
		// 4. nicht verwendete values hidden rausrendern
		foreach ($ticks AS $value) {
			$value['_checked'] = true;
			?><tr ng-controller='FormGroupWf_mitglied_editMatrix_campaignTarget_target_campaign' style='display: none;' ng-init="item =<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'campaign' => $value['campaign'],
					'target' => $value['target'],
					'ID' => $value['ID']])); ?>;
				"><td>
					<input type='hidden' name='matrix_campaignTarget_target_campaign[]' value="<?php echo htmlentities(($value['campaign'] ?? '')); ?>">
					<input type='hidden' name='matrix_campaignTarget_target_campaign_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					<input type='checkbox' name='matrix_campaignTarget_target_campaign__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $value['campaign'])); ?>' class='matrix_checkbox' <?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					<input type='hidden' name='matrix_campaignTarget_target_campaign_campaign[]' value="<?php echo htmlentities($value['campaign'] ?? ''); ?>">
				</td>
				
					<td class='mdl-data-table__cell--non-numeric'><div style='display: flex; flex-direction: row; align-items: center; width: 100%;'><?php
	\Tables\CampaignState::renderEditformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_stateAction($value['state'], [], '');
?> &nbsp;	<?php if (\TablesRouter\CampaignState::createAccess()) { ?>  <a tabindex='-1' class='unimportant button' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::createURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26close%26insert_param=colvalue", "_blank", "width=739, height=395"); return false;'><i class="material-icons">add</i></a> <?php } ?> &nbsp;	<a tabindex='-1' class='unimportant button fop-ddt-search' href="#" onclick='var p = $(this).parent(), id = "x"+Math.round(1000000*Math.random()); p.attr("id", id); window.open_over(<?php
		echo json_encode(\TablesRouter\CampaignState::indexURL2([
			'popup' => true]
		)); ?> + "&from=<?php echo urlencode(\FOP\Util::getCurrentBaseurl()); ?>jscloser.php?action=popup%26type=campaignState%26colinsert=matrix_campaignTarget_target_campaign_state[]%26el=" + encodeURIComponent(id) + "%26insert_param=colvalue&select=campaignState", "_blank", "width=739, height=395"); return false;'><i class="material-icons">search</i></a>
	</div></td>
					<td class='mdl-data-table__cell--non-numeric'><div style="width: 100%;" class="mdl-textfield mdl-js-textfield"><textarea onkeydown='if (event.keyCode == 13 && event.ctrlKey) { event.preventDefault(); event.stopPropagation(); tabNext(this); return false; }' class="mdl-textfield__input" rows="8" cols="80" name="matrix_campaignTarget_target_campaign_note[]" id="matrix_campaignTarget_target_campaign_note[]" ><?php echo htmlentities($value['note']); ?></textarea><label class="mdl-textfield__label" for="matrix_campaignTarget_target_campaign_note[]"><?php echo(_('text')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_creation[]" type="text" name="matrix_campaignTarget_target_campaign_creation[]" value="<?php echo ($value['creation']) ? strftime(_('datetimeformat_php2'), intval($value['creation'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('datetimeformat_moment')); ?>' class="mdl-textfield__input picker_datetime" id="matrix_campaignTarget_target_campaign_lastUpdate[]" type="text" name="matrix_campaignTarget_target_campaign_lastUpdate[]" value="<?php echo ($value['lastUpdate']) ? strftime(_('datetimeformat_php2'), intval($value['lastUpdate'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
			</tr><?php
		}
	
    
  }

  public static function createMatrixMatrix_gruppeItem_item_listAction($id, $values) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    
		if (isset($_POST['values'])) {
			$values = $_POST['values'];
		}
		if (is_string($values)) {
			$values = json_decode($values, true);
			array_walk($values, function (&$item) {
				$item['eintritt'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($item['eintritt']);
				$item['austritt'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($item['austritt']);
			});
		}
		// Aufbau: 1. options suchen
		if (isset($id) && $id != 'null') $parent = \Tables\Mitglied::view($id, false, true);
		$deps = [];
		$options = \FOP\Database::query('SELECT /* list */ '.qi('options').'.'.qi('ID').' AS '.qi('list').',
									/* list::canView */ '.qi('ref:list').'.'.qi('list:canView').' AS '.qi('list::canView').',
									/* list::description */ '.qi('ref:list').'.'.qi('list:description').' AS '.qi('list::description').',
									1
								FROM '.qi('gruppe').' '.qi('options').'
								LEFT JOIN (SELECT '.qi('ID').' AS '.qi('list:ID').', '.qi('gruppe').'.'.qi('name').' AS '.qi('list:description').', ((CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('hX7wRx63').' WHERE '.qi('hX7wRx63').'.'.qi('list').' = '.qi('gruppe').'.'.qi('ID').' AND (('.qi('hX7wRx63').'.'.qi('item').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1))) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('yvRIjwTv').' WHERE '.qi('yvRIjwTv').'.'.qi('gruppe').' = '.qi('gruppe').'.'.qi('ID').' AND (('.qi('yvRIjwTv').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1))) AND (NOT ('.qi('gruppe').'.'.qi('public').'))) END)) AS '.qi('list:canView').' FROM '.qi('gruppe').') '.qi('ref:list').' ON '.qi('ref:list').'.'.qi('list:ID').' = '.qi('options').'.'.qi('ID').'')->fetchAll(\PDO::FETCH_ASSOC);
		// 2. values resanitizen und umschaufeln in ein asso-Array, aus dem man herausstreichen kann
		$ticks = [];
		foreach ($values AS $value) {
			$value['ID'] = ''; // Klon-Formular: CM-Einträge neu anlegen
			$value['eintritt'] = intval($value['eintritt']);
			$value['austritt'] = intval($value['austritt']);
			$ticks[$value['list']] = $value;
		}
		// 3. options rendern (dabei ggf. Werte verarbeiten, wenn values dabei ist)
		$i = 0;
		foreach ($options AS $option) {
			

			if (isset($ticks[$option['list']])) {
				// getickt -> merge option + customvalues
				$value = $option + $ticks[$option['list']];
				unset($ticks[$option['list']]);
			} else {
				// ungetickt
				$value = \Tables\GruppeItem::getDefaults();
				if (isset($parent)) $value['item'] = $parent['ID'];
				$value = array_merge($value, $option); // add option dimensions with descriptions
				$value['ID'] = '';
				\Tables\GruppeItem::sanitizeDefaults($value, true);
			}
			?><tr ng-controller='FormGroupWf_mitglied_createMatrix_gruppeItem_item_list'
				ng-init="item=<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'list' => $value['list'],
					'item' => $value['item'],
					'ID' => $value['ID']])); ?>;
				matrixRegisterMatrix_gruppeItem_item_list(<?php echo htmlentities(json_encode($option['list'])); ?>, item)">
				<td class='mdl-data-table__cell--non-numeric' >
					<input type='hidden' name='matrix_gruppeItem_item_list[]' value="<?php echo htmlentities(($value['list'] ?? '')); ?>">
					<input type='hidden' name='matrix_gruppeItem_item_list_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					
					<label class='mdl-checkbox mdl-js-checkbox'>
						<input type='checkbox' name="matrix_gruppeItem_item_list__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $option['list'])); ?>" class='mdl-checkbox__input matrix_checkbox' ng-model='item.checked'<?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					</label>
				</td>
				<td class='mdl-data-table__cell--non-numeric'>
					<input type='hidden' name='matrix_gruppeItem_item_list_list[]' class='fop-dimension' value="<?php echo htmlentities($value['list'] ?? ''); ?>">
					<?php
	
	call_user_func(function () use ($value) {
	$id = $value['list'];
	$val = $value['list::description'];
	$canView = $value['list::canView'];
	if ($val !== null) {
		if ($canView) echo "<a tabindex=\"-1\" class=\"mdl-button mdl-button-small tbl-link\" data-tbl=\"gruppe\" data-id=\"".htmlentities($id)."\" onclick=\"event.stopPropagation(); event.preventDefault(); open_url(this.href, true);\" href=\"" . \TablesRouter\Gruppe::viewURL($id, ['from' => \FOP\Util::getBackURL()]) . "\">(…)</a>";echo htmlentities($val);
	} else {
		echo htmlentities(_('') ?: '-');
	}
	});
	
?>

				</td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_eintritt[]" type="text" name="matrix_gruppeItem_item_list_eintritt[]" value="<?php echo ($value['eintritt']) ? strftime(_('dateformat_php2'), intval($value['eintritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_austritt[]" type="text" name="matrix_gruppeItem_item_list_austritt[]" value="<?php echo ($value['austritt']) ? strftime(_('dateformat_php2'), intval($value['austritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="matrix_gruppeItem_item_list_note[]"  value="<?php echo htmlentities($value['note']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td>
			</tr><?php

			$i++;
		}
		// 4. nicht verwendete values hidden rausrendern
		foreach ($ticks AS $value) {
			$value['_checked'] = true;
			?><tr ng-controller='FormGroupWf_mitglied_createMatrix_gruppeItem_item_list' style='display: none;' ng-init="item =<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'list' => $value['list'],
					'item' => $value['item'],
					'ID' => $value['ID']])); ?>;
				"><td>
					<input type='hidden' name='matrix_gruppeItem_item_list[]' value="<?php echo htmlentities(($value['list'] ?? '')); ?>">
					<input type='hidden' name='matrix_gruppeItem_item_list_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					<input type='checkbox' name='matrix_gruppeItem_item_list__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $value['list'])); ?>' class='matrix_checkbox' <?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					<input type='hidden' name='matrix_gruppeItem_item_list_list[]' value="<?php echo htmlentities($value['list'] ?? ''); ?>">
				</td>
				
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_eintritt[]" type="text" name="matrix_gruppeItem_item_list_eintritt[]" value="<?php echo ($value['eintritt']) ? strftime(_('dateformat_php2'), intval($value['eintritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_austritt[]" type="text" name="matrix_gruppeItem_item_list_austritt[]" value="<?php echo ($value['austritt']) ? strftime(_('dateformat_php2'), intval($value['austritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="matrix_gruppeItem_item_list_note[]"  value="<?php echo htmlentities($value['note']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
			</tr><?php
		}
	
    
  }

  public static function editMatrixMatrix_gruppeItem_item_listAction($id, $values) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    
		if (isset($_POST['values'])) {
			$values = $_POST['values'];
		}
		if (is_string($values)) {
			$values = json_decode($values, true);
			array_walk($values, function (&$item) {
				$item['eintritt'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($item['eintritt']);
				$item['austritt'] = \FOP\Sanitizers::convert_date_to_unix_timestamp($item['austritt']);
			});
		}
		// Aufbau: 1. options suchen
		if (isset($id) && $id != 'null') $parent = \Tables\Mitglied::view($id, false, true);
		$deps = [];
		$options = \FOP\Database::query('SELECT /* list */ '.qi('options').'.'.qi('ID').' AS '.qi('list').',
									/* list::canView */ '.qi('ref:list').'.'.qi('list:canView').' AS '.qi('list::canView').',
									/* list::description */ '.qi('ref:list').'.'.qi('list:description').' AS '.qi('list::description').',
									1
								FROM '.qi('gruppe').' '.qi('options').'
								LEFT JOIN (SELECT '.qi('ID').' AS '.qi('list:ID').', '.qi('gruppe').'.'.qi('name').' AS '.qi('list:description').', ((CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('hX7wRx63').' WHERE '.qi('hX7wRx63').'.'.qi('list').' = '.qi('gruppe').'.'.qi('ID').' AND (('.qi('hX7wRx63').'.'.qi('item').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1))) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('yvRIjwTv').' WHERE '.qi('yvRIjwTv').'.'.qi('gruppe').' = '.qi('gruppe').'.'.qi('ID').' AND (('.qi('yvRIjwTv').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1))) AND (NOT ('.qi('gruppe').'.'.qi('public').'))) END)) AS '.qi('list:canView').' FROM '.qi('gruppe').') '.qi('ref:list').' ON '.qi('ref:list').'.'.qi('list:ID').' = '.qi('options').'.'.qi('ID').'')->fetchAll(\PDO::FETCH_ASSOC);
		// 2. values resanitizen und umschaufeln in ein asso-Array, aus dem man herausstreichen kann
		$ticks = [];
		foreach ($values AS $value) {
			
			$value['eintritt'] = intval($value['eintritt']);
			$value['austritt'] = intval($value['austritt']);
			$ticks[$value['list']] = $value;
		}
		// 3. options rendern (dabei ggf. Werte verarbeiten, wenn values dabei ist)
		$i = 0;
		foreach ($options AS $option) {
			

			if (isset($ticks[$option['list']])) {
				// getickt -> merge option + customvalues
				$value = $option + $ticks[$option['list']];
				unset($ticks[$option['list']]);
			} else {
				// ungetickt
				$value = \Tables\GruppeItem::getDefaults();
				if (isset($parent)) $value['item'] = $parent['ID'];
				$value = array_merge($value, $option); // add option dimensions with descriptions
				$value['ID'] = '';
				\Tables\GruppeItem::sanitizeDefaults($value, true);
			}
			?><tr ng-controller='FormGroupWf_mitglied_editMatrix_gruppeItem_item_list'
				ng-init="item=<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'list' => $value['list'],
					'item' => $value['item'],
					'ID' => $value['ID']])); ?>;
				matrixRegisterMatrix_gruppeItem_item_list(<?php echo htmlentities(json_encode($option['list'])); ?>, item)">
				<td class='mdl-data-table__cell--non-numeric' >
					<input type='hidden' name='matrix_gruppeItem_item_list[]' value="<?php echo htmlentities(($value['list'] ?? '')); ?>">
					<input type='hidden' name='matrix_gruppeItem_item_list_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					
					<label class='mdl-checkbox mdl-js-checkbox'>
						<input type='checkbox' name="matrix_gruppeItem_item_list__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $option['list'])); ?>" class='mdl-checkbox__input matrix_checkbox' ng-model='item.checked'<?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					</label>
				</td>
				<td class='mdl-data-table__cell--non-numeric'>
					<input type='hidden' name='matrix_gruppeItem_item_list_list[]' class='fop-dimension' value="<?php echo htmlentities($value['list'] ?? ''); ?>">
					<?php
	
	call_user_func(function () use ($value) {
	$id = $value['list'];
	$val = $value['list::description'];
	$canView = $value['list::canView'];
	if ($val !== null) {
		if ($canView) echo "<a tabindex=\"-1\" class=\"mdl-button mdl-button-small tbl-link\" data-tbl=\"gruppe\" data-id=\"".htmlentities($id)."\" onclick=\"event.stopPropagation(); event.preventDefault(); open_url(this.href, true);\" href=\"" . \TablesRouter\Gruppe::viewURL($id, ['from' => \FOP\Util::getBackURL()]) . "\">(…)</a>";echo htmlentities($val);
	} else {
		echo htmlentities(_('') ?: '-');
	}
	});
	
?>

				</td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_eintritt[]" type="text" name="matrix_gruppeItem_item_list_eintritt[]" value="<?php echo ($value['eintritt']) ? strftime(_('dateformat_php2'), intval($value['eintritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_austritt[]" type="text" name="matrix_gruppeItem_item_list_austritt[]" value="<?php echo ($value['austritt']) ? strftime(_('dateformat_php2'), intval($value['austritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td><td class='mdl-data-table__cell--non-numeric'><span ng-show="item.checked"><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="matrix_gruppeItem_item_list_note[]"  value="<?php echo htmlentities($value['note']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></span></td>
			</tr><?php

			$i++;
		}
		// 4. nicht verwendete values hidden rausrendern
		foreach ($ticks AS $value) {
			$value['_checked'] = true;
			?><tr ng-controller='FormGroupWf_mitglied_editMatrix_gruppeItem_item_list' style='display: none;' ng-init="item =<?php echo htmlentities(json_encode(['checked' => $value['_checked'] ? true : false,
					'list' => $value['list'],
					'item' => $value['item'],
					'ID' => $value['ID']])); ?>;
				"><td>
					<input type='hidden' name='matrix_gruppeItem_item_list[]' value="<?php echo htmlentities(($value['list'] ?? '')); ?>">
					<input type='hidden' name='matrix_gruppeItem_item_list_ID[]' value="<?php echo htmlentities($value['ID']); ?>">
					<input type='checkbox' name='matrix_gruppeItem_item_list__<?php echo htmlentities(preg_replace('/[^a-zA-Z_0-9]/', '', $value['list'])); ?>' class='matrix_checkbox' <?php if (isset($value['_checked'])) { echo ' checked'; } ?>>
					<input type='hidden' name='matrix_gruppeItem_item_list_list[]' value="<?php echo htmlentities($value['list'] ?? ''); ?>">
				</td>
				
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_eintritt[]" type="text" name="matrix_gruppeItem_item_list_eintritt[]" value="<?php echo ($value['eintritt']) ? strftime(_('dateformat_php2'), intval($value['eintritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	" ts-locale='<?php echo (\FOP\I18n::getShortLocale()); ?>' ts-format='<?php echo (_('dateformat_moment')); ?>' class="mdl-textfield__input picker_date" id="matrix_gruppeItem_item_list_austritt[]" type="text" name="matrix_gruppeItem_item_list_austritt[]" value="<?php echo ($value['austritt']) ? strftime(_('dateformat_php2'), intval($value['austritt'])) : ''; ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
					<td class='mdl-data-table__cell--non-numeric'><div class="mdl-textfield mdl-js-textfield"><input onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			tabNext(this);
			return false;
		}
	"  class="mdl-textfield__input"  type="text" name="matrix_gruppeItem_item_list_note[]"  value="<?php echo htmlentities($value['note']); ?>"/><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div></td>
			</tr><?php
		}
	
    
  }

  public static function mnrUniqueAction($value, $id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		if (!((\FOP\User::getGruppe()))) {
			// wir dürfen es nicht wissen - also prophilaktisch erlauben (sonst gibt es Probleme bei verbotenen Spalten, die eh nicht geprüft werden sollen)
			return true;
		}
		if ($id == 'null') $id = 0;
		$count = \FOP\Database::query('SELECT COUNT(*) FROM '.qi('mitglied').' WHERE '.qi('mnr').' = ' . \FOP\Database::quote($value) . ' AND '.qi('ID').' <> ' . \FOP\Database::quote($id))->fetchColumn();
		return !$count;
	
    
  }

  public static function emailUniqueAction($value, $id) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		if (!((\FOP\User::getGruppe()))) {
			// wir dürfen es nicht wissen - also prophilaktisch erlauben (sonst gibt es Probleme bei verbotenen Spalten, die eh nicht geprüft werden sollen)
			return true;
		}
		if ($id == 'null') $id = 0;
		$count = \FOP\Database::query('SELECT COUNT(*) FROM '.qi('mitglied').' WHERE '.qi('email').' = ' . \FOP\Database::quote($value) . ' AND '.qi('ID').' <> ' . \FOP\Database::quote($id))->fetchColumn();
		return !$count;
	
    
  }

  public static function create($data, $disregardPermissions = false , $updateOnDuplicate = false ) { 
    
    
    // --- BLOCK: main ---
    
				$sql = 'INSERT INTO '.qi('mitglied').'(';
				
		if(!$data['mnr'] || \FOP\Database::query('SELECT COUNT(*) FROM '.qi('mitglied').' WHERE '.qi('mnr').' = ' . \FOP\Database::quote($data['mnr']))->fetchColumn() >= 1) {
			  // TODO: Format nach DSL compilt #1114
			  $data['mnr'] = \Tables\Mitglied::getNextMnr('%', 5, 1);
		}
		
	
				$set = [];
				
					if ($disregardPermissions || (((\FOP\User::getBuchhaltung())))) {
					
					$set[qi('sepa')] = \FOP\Database::quote($data['sepa']);
					} else {
						$set[qi('sepa')] = \FOP\Database::quote((FALSE));
					}
				
					if ($disregardPermissions || (((\FOP\User::getBuchhaltung())))) {
					
					$set[qi('sepaDate')] = \FOP\Database::quote($data['sepaDate']);
					} else {
						$set[qi('sepaDate')] = \FOP\Database::quote(\FOP\Sanitizers::convert_date_to_unix_timestamp(null));
					}
				
					if ($disregardPermissions || (((\FOP\User::getSuperadmin())))) {
					
					$set[qi('superadmin')] = \FOP\Database::quote($data['superadmin']);
					} else {
						$set[qi('superadmin')] = \FOP\Database::quote((FALSE));
					}
				
					
					$set[qi('name')] = \FOP\Database::quote($data['name']);
					
				
					
					$set[qi('vorname')] = \FOP\Database::quote($data['vorname']);
					
				
					
					$set[qi('geschlecht')] = \FOP\Database::quote($data['geschlecht']);
					
				
					
					$set[qi('datenschutz')] = \FOP\Database::quote($data['datenschutz']);
					
				
					
					$set[qi('geburtsdatum')] = \FOP\Database::quote($data['geburtsdatum']);
					
				
					
					$set[qi('land')] = \FOP\Database::quote($data['land']);
					
				
					
					$set[qi('plz')] = \FOP\Database::quote($data['plz']);
					
				
					
					$set[qi('ort')] = \FOP\Database::quote($data['ort']);
					
				
					
					$set[qi('strasse')] = \FOP\Database::quote($data['strasse']);
					
				
					
					$set[qi('eintritt')] = \FOP\Database::quote($data['eintritt']);
					
				
					
					$set[qi('email')] = \FOP\Database::quote($data['email']);
					
				
					
					$set[qi('email2')] = \FOP\Database::quote($data['email2']);
					
				
					
					$set[qi('telefon')] = \FOP\Database::quote($data['telefon']);
					
				
					
					$set[qi('mobil')] = \FOP\Database::quote($data['mobil']);
					
				
					
					$set[qi('mnr')] = \FOP\Database::quote($data['mnr']);
					
				
					
					$set[qi('austrittsdatum')] = \FOP\Database::quote($data['austrittsdatum']);
					
				
					
					$set[qi('austrittsgrund')] = \FOP\Database::quote($data['austrittsgrund']);
					
				
					
					$set[qi('verstorben')] = \FOP\Database::quote($data['verstorben']);
					
				
					
					$set[qi('notiz')] = \FOP\Database::quote($data['notiz']);
					
				
					if ($disregardPermissions || (((\FOP\User::getBuchhaltung())))) {
					
					$set[qi('iban')] = \FOP\Database::quote($data['iban']);
					} else {
						$set[qi('iban')] = \FOP\Database::quote(\FOP\Sanitizers::iban_filter(''));
					}
				
					if ($disregardPermissions || (((\FOP\User::getBuchhaltung())))) {
					
					$set[qi('bic')] = \FOP\Database::quote($data['bic']);
					} else {
						$set[qi('bic')] = \FOP\Database::quote(mb_strtoupper(''));
					}
				
					
					$set[qi('password')] = \FOP\Database::quote($data['password']);
					
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canAdmin')] = \FOP\Database::quote($data['canAdmin']);
					} else {
						$set[qi('canAdmin')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('ese9NFlN').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('ese9NFlN').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('ese9NFlN').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canMitglied')] = \FOP\Database::quote($data['canMitglied']);
					} else {
						$set[qi('canMitglied')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('uuv2NW5Q').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('uuv2NW5Q').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('uuv2NW5Q').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canGruppe')] = \FOP\Database::quote($data['canGruppe']);
					} else {
						$set[qi('canGruppe')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('mNzzceqT').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('mNzzceqT').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('mNzzceqT').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canCampaign')] = \FOP\Database::quote($data['canCampaign']);
					} else {
						$set[qi('canCampaign')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('eBtyAUdS').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('eBtyAUdS').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('eBtyAUdS').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canSammlung')] = \FOP\Database::quote($data['canSammlung']);
					} else {
						$set[qi('canSammlung')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('dlkeYgFw').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('dlkeYgFw').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('dlkeYgFw').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canBuchhaltung')] = \FOP\Database::quote($data['canBuchhaltung']);
					} else {
						$set[qi('canBuchhaltung')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('xRLiYYuU').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('xRLiYYuU').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('xRLiYYuU').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canProtokoll')] = \FOP\Database::quote($data['canProtokoll']);
					} else {
						$set[qi('canProtokoll')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('m7WmX8d8').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('m7WmX8d8').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('m7WmX8d8').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					if ($disregardPermissions || (((\FOP\User::getAdmin())))) {
					
					$set[qi('canDokument')] = \FOP\Database::quote($data['canDokument']);
					} else {
						$set[qi('canDokument')] = \FOP\Database::quote(((((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('zH9A0PFX').' WHERE TRUE')->fetchColumn()))) !== null && ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('zH9A0PFX').' WHERE TRUE')->fetchColumn()))) !== '0' ? ((\FOP\Util::FalseToNull(\FOP\Database::query('SELECT COUNT(1) FROM '.qi('mitglied').' '.qi('zH9A0PFX').' WHERE TRUE')->fetchColumn()))) : (0)) == (0)));
					}
				
					
					$set[qi('reminderMitgliedMitglied-gebtagMails')] = \FOP\Database::quote($data['reminderMitgliedMitglied-gebtagMails']);
					
				
					
					$set[qi('reminderMitgliedForderungenMails')] = \FOP\Database::quote($data['reminderMitgliedForderungenMails']);
					
				
					
					$set[qi('reminderFop_fints_buchungForderungenMails')] = \FOP\Database::quote($data['reminderFop_fints_buchungForderungenMails']);
					
				
					
					$set[qi('reminderAufgabeAssignedMails')] = \FOP\Database::quote($data['reminderAufgabeAssignedMails']);
					
				
					
					$set[qi('reminderAufgabeNot_assignedMails')] = \FOP\Database::quote($data['reminderAufgabeNot_assignedMails']);
					
				
				$id = 0;

				$sql = $sql . implode(', ', array_keys($set)) . ') VALUES (' . implode(', ', array_values($set)) . ')';
				if ($updateOnDuplicate){
					// TODO: Postgres ON CONFLICT(...) DO UPDATE SET ...
					$set2 = [];
					foreach ($set AS $k => $v) {
						array_push($set2, "$k = $v");
					}
					if (\FOP\Database::getDriver() == 'mysql') {
						$sql .= ' ON DUPLICATE KEY UPDATE ' . implode(', ', $set2);
					} else {
						$sql .= ' ON CONFLICT ('.qi('mnr').') DO UPDATE SET ' . implode(', ', $set2);
					}
				}

				try {
					\FOP\Database::query($sql);
					$id = \FOP\Database::getLastInsertId();
				} catch (\PDOException $e) {
					if ($e->errorInfo[1] == 1062) {
						throw new \FOP\AccessDeniedException('duplicateinsert');
					}
                    throw $e; // weiterwerfen
				}
				$data['fop-id'] = $id; // für Hooks
				
	if (isset($data['dynamic:time'])) {
		$data['dynamic:parent'] = $id;
		
			$data['tarifChanged'] = true;
		
		$dynamic_id = \Tables\MitgliedDynamicMonthyear::create($data);
	}
				return $id;

    
  }

  public static function view($id, $snippet = false , $ignoreAccess = false ) { 
    
    
    // --- BLOCK: main ---
    
		$sql = 'SELECT /* ID */ '.qi('ID').' AS '.qi('ID').',
									/* ID */ '.qi('mitglied').'.'.qi('ID').' AS '.qi('ID').',
									/* austrittsdatum */ '.qi('mitglied').'.'.qi('austrittsdatum').' AS '.qi('austrittsdatum').',
									/* austrittsgrund */ '.qi('mitglied').'.'.qi('austrittsgrund').' AS '.qi('austrittsgrund').',
									/* bic */ '.qi('mitglied').'.'.qi('bic').' AS '.qi('bic').',
									/* bic::canEdit */ ('.\FOP\Database::quote(\FOP\User::getBuchhaltung()).') AS '.qi('bic::canEdit').',
									/* canAdmin */ '.qi('mitglied').'.'.qi('canAdmin').' AS '.qi('canAdmin').',
									/* canAdmin::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canAdmin::canEdit').',
									/* canBuchhaltung */ '.qi('mitglied').'.'.qi('canBuchhaltung').' AS '.qi('canBuchhaltung').',
									/* canBuchhaltung::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canBuchhaltung::canEdit').',
									/* canCampaign */ '.qi('mitglied').'.'.qi('canCampaign').' AS '.qi('canCampaign').',
									/* canCampaign::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canCampaign::canEdit').',
									/* canDokument */ '.qi('mitglied').'.'.qi('canDokument').' AS '.qi('canDokument').',
									/* canDokument::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canDokument::canEdit').',
									/* canGruppe */ '.qi('mitglied').'.'.qi('canGruppe').' AS '.qi('canGruppe').',
									/* canGruppe::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canGruppe::canEdit').',
									/* canMitglied */ '.qi('mitglied').'.'.qi('canMitglied').' AS '.qi('canMitglied').',
									/* canMitglied::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canMitglied::canEdit').',
									/* canProtokoll */ '.qi('mitglied').'.'.qi('canProtokoll').' AS '.qi('canProtokoll').',
									/* canProtokoll::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canProtokoll::canEdit').',
									/* canSammlung */ '.qi('mitglied').'.'.qi('canSammlung').' AS '.qi('canSammlung').',
									/* canSammlung::canEdit */ ('.\FOP\Database::quote(\FOP\User::getAdmin()).') AS '.qi('canSammlung::canEdit').',
									/* datenschutz */ '.qi('mitglied').'.'.qi('datenschutz').' AS '.qi('datenschutz').',
									/* eintritt */ '.qi('mitglied').'.'.qi('eintritt').' AS '.qi('eintritt').',
									/* email */ '.qi('mitglied').'.'.qi('email').' AS '.qi('email').',
									/* email2 */ '.qi('mitglied').'.'.qi('email2').' AS '.qi('email2').',
									/* fop_favorites */ '.qi('mitglied').'.'.qi('fop_favorites').' AS '.qi('fop_favorites').',
									/* forderungen */ (SELECT SUM('.qi('rhU469mT').'.'.qi('betrag').') FROM '.qi('mitgliedBuchung').' '.qi('rhU469mT').' WHERE '.qi('rhU469mT').'.'.qi('mitglied').' = '.qi('mitglied').'.'.qi('ID').' LIMIT 1) AS '.qi('forderungen').',
									/* geburtsdatum */ '.qi('mitglied').'.'.qi('geburtsdatum').' AS '.qi('geburtsdatum').',
									/* geschlecht */ '.qi('mitglied').'.'.qi('geschlecht').' AS '.qi('geschlecht').',
									/* iban */ '.qi('mitglied').'.'.qi('iban').' AS '.qi('iban').',
									/* iban::canEdit */ ('.\FOP\Database::quote(\FOP\User::getBuchhaltung()).') AS '.qi('iban::canEdit').',
									/* land */ '.qi('mitglied').'.'.qi('land').' AS '.qi('land').',
									/* mnr */ '.qi('mitglied').'.'.qi('mnr').' AS '.qi('mnr').',
									/* mobil */ '.qi('mitglied').'.'.qi('mobil').' AS '.qi('mobil').',
									/* name */ '.qi('mitglied').'.'.qi('name').' AS '.qi('name').',
									/* notiz */ '.qi('mitglied').'.'.qi('notiz').' AS '.qi('notiz').',
									/* operation::1WAAkasU */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AS '.qi('operation::1WAAkasU').',
									/* operation::02c0b43ead22418f3d9ea400e2fa7f63e6376c9a98f4b3e74f9b2b9a3d285502 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::02c0b43ead22418f3d9ea400e2fa7f63e6376c9a98f4b3e74f9b2b9a3d285502').',
									/* operation::2a29124105f32c9d564abb8dc811fd076169bd1a608e1269d6683456eb97f374 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::2a29124105f32c9d564abb8dc811fd076169bd1a608e1269d6683456eb97f374').',
									/* operation::2b57632bfd6886109859996c8bf8d48427c5507c3b2c7805853512aaaf559156 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::2b57632bfd6886109859996c8bf8d48427c5507c3b2c7805853512aaaf559156').',
									/* operation::03e82f68b440a9f0da149e3eec506bff3f02491cc5062f7eeb2472d03703472f */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::03e82f68b440a9f0da149e3eec506bff3f02491cc5062f7eeb2472d03703472f').',
									/* operation::3bdea05a9091fde81219c95001e4af9313bf13e9c462887c9df6802f55de1c05 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::3bdea05a9091fde81219c95001e4af9313bf13e9c462887c9df6802f55de1c05').',
									/* operation::04fe1ec8e235cde37a5a9866c7ddedbb9fad99380a65be1554a9823c058e1fbd */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::04fe1ec8e235cde37a5a9866c7ddedbb9fad99380a65be1554a9823c058e1fbd').',
									/* operation::4c43396cd0f9ac80815c6039f6042bea2559504fec9524eda88b19b7601d57ad */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::4c43396cd0f9ac80815c6039f6042bea2559504fec9524eda88b19b7601d57ad').',
									/* operation::6b0cde9a2067c38af939224c86b0fb613e6a825a1b7d2ecf93d8e406d18f2488 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::6b0cde9a2067c38af939224c86b0fb613e6a825a1b7d2ecf93d8e406d18f2488').',
									/* operation::07bcf506555fb816417836612bedd796a872065bba9a8f23840da2153046f92b */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::07bcf506555fb816417836612bedd796a872065bba9a8f23840da2153046f92b').',
									/* operation::8bf80e4c6873da2abd32440909f6ba9510311791624b30f85debfd794bd36b48 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::8bf80e4c6873da2abd32440909f6ba9510311791624b30f85debfd794bd36b48').',
									/* operation::8e2b9bbb438642e40e69c07228f3c7796aa1cf07523a61d852877ad1f9e50056 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::8e2b9bbb438642e40e69c07228f3c7796aa1cf07523a61d852877ad1f9e50056').',
									/* operation::8fe84fa5f17d902eb0d8e68c8426f71dc9f58b1cd50747ebaa20f6f915d9de75 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::8fe84fa5f17d902eb0d8e68c8426f71dc9f58b1cd50747ebaa20f6f915d9de75').',
									/* operation::8oS4CA4y */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) AS '.qi('operation::8oS4CA4y').',
									/* operation::9dab5326cadbd2dd37bf6b3645c0f8df1e03c67e35c696e8224514b511886671 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::9dab5326cadbd2dd37bf6b3645c0f8df1e03c67e35c696e8224514b511886671').',
									/* operation::9f33e2c16c6eeb1a01a6a5b169ceee6481bf4ef3273fe0ad098f1e1dccb1493c */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::9f33e2c16c6eeb1a01a6a5b169ceee6481bf4ef3273fe0ad098f1e1dccb1493c').',
									/* operation::31b6950bd71930cd7719d3e71cccf6ddbf127cd1f2da8d91e4208d6807d4dd67 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::31b6950bd71930cd7719d3e71cccf6ddbf127cd1f2da8d91e4208d6807d4dd67').',
									/* operation::42dfa054f53a8dc5f15e9f7b8c2fee6620a94ffa9a7da7b144d50c77ad0a2158 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::42dfa054f53a8dc5f15e9f7b8c2fee6620a94ffa9a7da7b144d50c77ad0a2158').',
									/* operation::51bf515f5b56b5b667829470e51cf0abf57b68acd927b4a9369cd53f8e1cf97c */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::51bf515f5b56b5b667829470e51cf0abf57b68acd927b4a9369cd53f8e1cf97c').',
									/* operation::52c734b9bf1f2e72cdbf8d8e4d203fb6be46c1d5bb09524bd662ce4bfe219871 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::52c734b9bf1f2e72cdbf8d8e4d203fb6be46c1d5bb09524bd662ce4bfe219871').',
									/* operation::059ccb47f40b24c45d09e88ece29a717c38c53cdd6bbd308d35ca3d6d7e6fbff */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::059ccb47f40b24c45d09e88ece29a717c38c53cdd6bbd308d35ca3d6d7e6fbff').',
									/* operation::62db987005c84afa05d4e60a19eddbc05c70f0b14a79a39869eb0f6bb72116b1 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::62db987005c84afa05d4e60a19eddbc05c70f0b14a79a39869eb0f6bb72116b1').',
									/* operation::66e348f9938f1dff0cde235c85dff7c2ab436eeb003b37f79a812d4ccdb683be */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::66e348f9938f1dff0cde235c85dff7c2ab436eeb003b37f79a812d4ccdb683be').',
									/* operation::67e9f725ec4a6f135f76042f5f1eaa32b789d75ae0289218864f16d148c506a0 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::67e9f725ec4a6f135f76042f5f1eaa32b789d75ae0289218864f16d148c506a0').',
									/* operation::80b16ab9cc059ddecc533d3e0e617bcc21290674c245dffb10d7edde0c258328 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::80b16ab9cc059ddecc533d3e0e617bcc21290674c245dffb10d7edde0c258328').',
									/* operation::89b4a456e8cfffec8fa65ef60c93792f3185024ec40a42fb4ad7265bc2929a0c */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::89b4a456e8cfffec8fa65ef60c93792f3185024ec40a42fb4ad7265bc2929a0c').',
									/* operation::157b6c83f57aba598dd5d1897eae7ec49bd8d00c54f9031253a3c605f18a95c4 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::157b6c83f57aba598dd5d1897eae7ec49bd8d00c54f9031253a3c605f18a95c4').',
									/* operation::416df539433f669f8810e6f6bc344c3b6aaf9b5081bc42ec0c057ddfdfff1855 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::416df539433f669f8810e6f6bc344c3b6aaf9b5081bc42ec0c057ddfdfff1855').',
									/* operation::803fa8da37d0b2d8523d3c02d27eb771b1ca5520382a98ec19f3f05e0aa9a506 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::803fa8da37d0b2d8523d3c02d27eb771b1ca5520382a98ec19f3f05e0aa9a506').',
									/* operation::898b895c45aa4d56f28f5d25983326c9e79f413707b1a7155be0c73bfd83a008 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::898b895c45aa4d56f28f5d25983326c9e79f413707b1a7155be0c73bfd83a008').',
									/* operation::1488d33dc849cb3f7adce2029ac1e57d857add915a3588bd73b0a15673348dea */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::1488d33dc849cb3f7adce2029ac1e57d857add915a3588bd73b0a15673348dea').',
									/* operation::2644f33555f2b2904b8f60d9ab217121a0733b19271cb336c2385527606d7a81 */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::2644f33555f2b2904b8f60d9ab217121a0733b19271cb336c2385527606d7a81').',
									/* operation::3360dbb864cc4a294a9ec2692d270f1d4e14bfd22588108902d4d3c668c398a8 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::3360dbb864cc4a294a9ec2692d270f1d4e14bfd22588108902d4d3c668c398a8').',
									/* operation::76200c630cc17e886287a909feb8905edae1c0e739cb6f929f14b4378a489012 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::76200c630cc17e886287a909feb8905edae1c0e739cb6f929f14b4378a489012').',
									/* operation::2254433c7cafb478df0c5143397d66343a2255be4462781a093fabd4f1169dab */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::2254433c7cafb478df0c5143397d66343a2255be4462781a093fabd4f1169dab').',
									/* operation::4245433963b94e42fe263d8a1930e69bfbc5004c51f62b487e8c36a7f67de65b */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::4245433963b94e42fe263d8a1930e69bfbc5004c51f62b487e8c36a7f67de65b').',
									/* operation::33622561575f96ee1a5af44522429b727692af04c60f0eeed06db618cd91e86f */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::33622561575f96ee1a5af44522429b727692af04c60f0eeed06db618cd91e86f').',
									/* operation::E71HKnkg */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) AS '.qi('operation::E71HKnkg').',
									/* operation::a6ee0177bb206a1fb53fb6e8f992d8cecacf99dcd79d511c788ecc36a5572dd3 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::a6ee0177bb206a1fb53fb6e8f992d8cecacf99dcd79d511c788ecc36a5572dd3').',
									/* operation::a063c166ec6fe67264d5838f4ae28d9000279c10704b0b564eb7bb6ca523edc3 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::a063c166ec6fe67264d5838f4ae28d9000279c10704b0b564eb7bb6ca523edc3').',
									/* operation::a35083dfd44fd5d689ab623e07fb63e3b52ad651601be2f9aaa4d23be9ab810a */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::a35083dfd44fd5d689ab623e07fb63e3b52ad651601be2f9aaa4d23be9ab810a').',
									/* operation::aeb39a6d45bb7e82654703d55a0d09f2dfb28be4645a42b63e732388940481d9 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::aeb39a6d45bb7e82654703d55a0d09f2dfb28be4645a42b63e732388940481d9').',
									/* operation::aknxOsQe */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AS '.qi('operation::aknxOsQe').',
									/* operation::b03e779952403f61356b7f1b4bc571994e5b205b6a9d240d3cffa7dcdb2d1e65 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::b03e779952403f61356b7f1b4bc571994e5b205b6a9d240d3cffa7dcdb2d1e65').',
									/* operation::b23f2bcb60f744e3bc726cdb01d13d73ee7b523d274d232f7a3d4e72d2f0dce7 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::b23f2bcb60f744e3bc726cdb01d13d73ee7b523d274d232f7a3d4e72d2f0dce7').',
									/* operation::bd03fdb3db8ab1cd32382734929c0cd808cfa618dfa20d273abda23ea35513b4 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::bd03fdb3db8ab1cd32382734929c0cd808cfa618dfa20d273abda23ea35513b4').',
									/* operation::bf5b70a66d1efe2bcf50d0b902544c544509c1ec747aaae7be408649287de236 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::bf5b70a66d1efe2bcf50d0b902544c544509c1ec747aaae7be408649287de236').',
									/* operation::c3b0f4943b4c44cac6173b8c74cca886f1bc134666fa470b2c91ac6a822101b8 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::c3b0f4943b4c44cac6173b8c74cca886f1bc134666fa470b2c91ac6a822101b8').',
									/* operation::c3e8cbec9269e0047c06e404422debe2a884f40ce97f3ea70404e1ec4709506b */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::c3e8cbec9269e0047c06e404422debe2a884f40ce97f3ea70404e1ec4709506b').',
									/* operation::c49a471ef93d465bc27480d02581e3c23e1498a8b66b9429797fcb08a18fbabb */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::c49a471ef93d465bc27480d02581e3c23e1498a8b66b9429797fcb08a18fbabb').',
									/* operation::c0236d211a4e66ce89f4ce05e416e1670c69e5884e7436b54bcffdee1c507cfd */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::c0236d211a4e66ce89f4ce05e416e1670c69e5884e7436b54bcffdee1c507cfd').',
									/* operation::cf779ed9165ca301c46e4284bc3a34f10789f027bb4579ae5142488c9f1105a4 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::cf779ed9165ca301c46e4284bc3a34f10789f027bb4579ae5142488c9f1105a4').',
									/* operation::create */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) AS '.qi('operation::create').',
									/* operation::dac21a21d029d767160541828571586ded80f4e0d58b3cabeae47955545ec959 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::dac21a21d029d767160541828571586ded80f4e0d58b3cabeae47955545ec959').',
									/* operation::dbb74edc2335cd97ad43f19e11eee87f93243544a4055c265b6c0b7d18b66fbb */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::dbb74edc2335cd97ad43f19e11eee87f93243544a4055c265b6c0b7d18b66fbb').',
									/* operation::ddb84f1c75dd2ab00f3a67628be54f224d9b6e4d1be1bf3cde21639c1cb0cbaa */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::ddb84f1c75dd2ab00f3a67628be54f224d9b6e4d1be1bf3cde21639c1cb0cbaa').',
									/* operation::ded54537f0c80a1e87645a5d6ef427193a6d2d498b3732ed698562639e579702 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END AS '.qi('operation::ded54537f0c80a1e87645a5d6ef427193a6d2d498b3732ed698562639e579702').',
									/* operation::delete */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) AS '.qi('operation::delete').',
									/* operation::e866a0187efe374ada04f6f5595dba9fba6929ce3c87669f02f445d2a05380b8 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::e866a0187efe374ada04f6f5595dba9fba6929ce3c87669f02f445d2a05380b8').',
									/* operation::e2067debc5ef2db2c8fe820802f3b8434dc5b9b99ca74235ffdc650aee76c069 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::e2067debc5ef2db2c8fe820802f3b8434dc5b9b99ca74235ffdc650aee76c069').',
									/* operation::e42771909fc7f1b541febb4639fbe94eb2d1f4cfb1ce9069fc13779caa8f53c0 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::e42771909fc7f1b541febb4639fbe94eb2d1f4cfb1ce9069fc13779caa8f53c0').',
									/* operation::edit */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) AS '.qi('operation::edit').',
									/* operation::f97cfc07fe38fb37ab53e8a372a613f2008578541ed4839d4dd0cd330d246631 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::f97cfc07fe38fb37ab53e8a372a613f2008578541ed4839d4dd0cd330d246631').',
									/* operation::f749ad6f1bae97dcf0d06df22906582e04725fb867f23433243baf631cd255d3 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::f749ad6f1bae97dcf0d06df22906582e04725fb867f23433243baf631cd255d3').',
									/* operation::f75907aaa1c65bab516e95636351dafc4867a42c983fe3e55917483836903642 */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END AS '.qi('operation::f75907aaa1c65bab516e95636351dafc4867a42c983fe3e55917483836903642').',
									/* operation::fa7c8c890c23ff18ce436c6a1a88ca11ee5249b981f6382069e4e866ec9168df */ CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END AS '.qi('operation::fa7c8c890c23ff18ce436c6a1a88ca11ee5249b981f6382069e4e866ec9168df').',
									/* operation::ff615a734d71d65458e9fab8e416d8ae353042865fdc251cd799a53fe808f3cf */ '.\FOP\Database::quote(\FOP\User::getGruppe()).' AS '.qi('operation::ff615a734d71d65458e9fab8e416d8ae353042865fdc251cd799a53fe808f3cf').',
									/* operation::index */ ' . (!\FOP\User::getIsGuest() ? 1 : 0) . ' AS '.qi('operation::index').',
									/* operation::mDdHq6xV */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) AS '.qi('operation::mDdHq6xV').',
									/* operation::select */ '.(\FOP\User::getIsGuest() ? 'false' : 'true').' AS '.qi('operation::select').',
									/* operation::t0aG1aFV */ ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AS '.qi('operation::t0aG1aFV').',
									/* operation::view */ (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) AS '.qi('operation::view').',
									/* ort */ '.qi('mitglied').'.'.qi('ort').' AS '.qi('ort').',
									/* password */ '.qi('mitglied').'.'.qi('password').' AS '.qi('password').',
									/* plz */ '.qi('mitglied').'.'.qi('plz').' AS '.qi('plz').',
									/* property:salutation */ CONCAT(\'Hallo \', '.qi('mitglied').'.'.qi('vorname').') AS '.qi('property:salutation').',
									/* recovery_token */ '.qi('mitglied').'.'.qi('recovery_token').' AS '.qi('recovery_token').',
									/* reminderAufgabeAssignedMails */ '.qi('mitglied').'.'.qi('reminderAufgabeAssignedMails').' AS '.qi('reminderAufgabeAssignedMails').',
									/* reminderAufgabeNot_assignedMails */ '.qi('mitglied').'.'.qi('reminderAufgabeNot_assignedMails').' AS '.qi('reminderAufgabeNot_assignedMails').',
									/* reminderFop_fints_buchungForderungenMails */ '.qi('mitglied').'.'.qi('reminderFop_fints_buchungForderungenMails').' AS '.qi('reminderFop_fints_buchungForderungenMails').',
									/* reminderMitgliedForderungenMails */ '.qi('mitglied').'.'.qi('reminderMitgliedForderungenMails').' AS '.qi('reminderMitgliedForderungenMails').',
									/* reminderMitgliedMitglied-gebtagMails */ '.qi('mitglied').'.'.qi('reminderMitgliedMitglied-gebtagMails').' AS '.qi('reminderMitgliedMitglied-gebtagMails').',
									/* sepa */ '.qi('mitglied').'.'.qi('sepa').' AS '.qi('sepa').',
									/* sepa::canEdit */ ('.\FOP\Database::quote(\FOP\User::getBuchhaltung()).') AS '.qi('sepa::canEdit').',
									/* sepaDate */ '.qi('mitglied').'.'.qi('sepaDate').' AS '.qi('sepaDate').',
									/* sepaDate::canEdit */ ('.\FOP\Database::quote(\FOP\User::getBuchhaltung()).') AS '.qi('sepaDate::canEdit').',
									/* sepaDate::canView */ '.qi('mitglied').'.'.qi('sepa').' AS '.qi('sepaDate::canView').',
									/* strasse */ '.qi('mitglied').'.'.qi('strasse').' AS '.qi('strasse').',
									/* superadmin */ '.qi('mitglied').'.'.qi('superadmin').' AS '.qi('superadmin').',
									/* superadmin::canEdit */ ('.\FOP\Database::quote(\FOP\User::getSuperadmin()).') AS '.qi('superadmin::canEdit').',
									/* tarif */ (SELECT ('.qi('tvyml1ds').'.'.qi('tarif').') FROM '.qi('mitgliedDynamicMonthyear').' '.qi('tvyml1ds').' WHERE '.qi('tvyml1ds').'.'.qi('dynamic:parent').' = '.qi('mitglied').'.'.qi('ID').' AND (('.qi('tvyml1ds').'.'.qi('dynamic:time').') <= (' . \FOP\Database::sessionVarSQL('time') . ')) ORDER BY '.qi('tvyml1ds').'.'.qi('dynamic:time').' DESC LIMIT 1) AS '.qi('tarif').',
									/* tarif::canView */ '.qi('ref:tarif').'.'.qi('tarif:canView').' AS '.qi('tarif::canView').',
									/* tarif::description */ '.qi('ref:tarif').'.'.qi('tarif:description').' AS '.qi('tarif::description').',
									/* telefon */ '.qi('mitglied').'.'.qi('telefon').' AS '.qi('telefon').',
									/* verstorben */ '.qi('mitglied').'.'.qi('verstorben').' AS '.qi('verstorben').',
									/* vorname */ '.qi('mitglied').'.'.qi('vorname').' AS '.qi('vorname').',
									1
								FROM '.qi('mitglied').' '.qi('mitglied').'
								LEFT JOIN (SELECT '.qi('ID').' AS '.qi('tarif:ID').', '.qi('tarif').'.'.qi('name').' AS '.qi('tarif:description').', (('.\FOP\Database::quote(\FOP\User::getBuchhaltung()).')) AS '.qi('tarif:canView').' FROM '.qi('tarif').') '.qi('ref:tarif').' ON '.qi('ref:tarif').'.'.qi('tarif:ID').' = (SELECT ('.qi('tvyml1ds').'.'.qi('tarif').') FROM '.qi('mitgliedDynamicMonthyear').' '.qi('tvyml1ds').' WHERE '.qi('tvyml1ds').'.'.qi('dynamic:parent').' = '.qi('mitglied').'.'.qi('ID').' AND (('.qi('tvyml1ds').'.'.qi('dynamic:time').') <= (' . \FOP\Database::sessionVarSQL('time') . ')) ORDER BY '.qi('tvyml1ds').'.'.qi('dynamic:time').' DESC LIMIT 1)
								WHERE ('.qi('ID').' = ' . \FOP\Database::quote($id) . ')';
		$result = \FOP\Database::query($sql);
		if (!$row = $result->fetch(\PDO::FETCH_ASSOC)) {
			throw new \FOP\AccessDeniedException('notfoundread');
		} else if (!$ignoreAccess && !$row['operation::view']) {
			throw new \FOP\AccessDeniedException('accessdeniedread');
		}
		
		$row['forderungen'] = \Types\Euro::unpack($row['forderungen']);
		$row['sepa'] = \FOP\Util::BoolSanitizer($row['sepa']);
		$row['sepaDate'] = intval($row['sepaDate']);
		$row['superadmin'] = \FOP\Util::BoolSanitizer($row['superadmin']);
		$row['geschlecht'] = \FOP\Util::IntStringNull($row['geschlecht']);
		$row['datenschutz'] = \FOP\Util::BoolSanitizer($row['datenschutz']);
		$row['geburtsdatum'] = intval($row['geburtsdatum']);
		$row['eintritt'] = intval($row['eintritt']);
		$row['email'] = \FOP\Sanitizers::a_text($row['email']);
		$row['email2'] = \FOP\Sanitizers::a_text($row['email2']);
		$row['telefon'] = \FOP\Sanitizers::a_phone($row['telefon']);
		$row['mobil'] = \FOP\Sanitizers::a_phone($row['mobil']);
		$row['austrittsdatum'] = intval($row['austrittsdatum']);
		$row['verstorben'] = intval($row['verstorben']);
		$row['iban'] = \FOP\Sanitizers::a_text($row['iban']);
		$row['canAdmin'] = \FOP\Util::BoolSanitizer($row['canAdmin']);
		$row['canMitglied'] = \FOP\Util::BoolSanitizer($row['canMitglied']);
		$row['canGruppe'] = \FOP\Util::BoolSanitizer($row['canGruppe']);
		$row['canCampaign'] = \FOP\Util::BoolSanitizer($row['canCampaign']);
		$row['canSammlung'] = \FOP\Util::BoolSanitizer($row['canSammlung']);
		$row['canBuchhaltung'] = \FOP\Util::BoolSanitizer($row['canBuchhaltung']);
		$row['canProtokoll'] = \FOP\Util::BoolSanitizer($row['canProtokoll']);
		$row['canDokument'] = \FOP\Util::BoolSanitizer($row['canDokument']);
		$row['tarif'] = \FOP\Sanitizers::null_converter($row['tarif']);
		

		if($snippet){
			$row['forderungen'] = (\Types\Euro::print($row['forderungen']) .  ' €'
	);
			$row['sepa'] = ($row['sepa']);
			$row['sepaDate'] = (($row['sepaDate']) ? strftime(_('dateformat_php2'), intval($row['sepaDate'])) : '');
			$row['superadmin'] = ($row['superadmin']);
			$row['name'] = ($row['name']);
			$row['vorname'] = ($row['vorname']);
			$row['geschlecht'] = (\Types\Geschlechtstyp::toString($row['geschlecht']));
			$row['datenschutz'] = ($row['datenschutz']);
			$row['geburtsdatum'] = (($row['geburtsdatum']) ? strftime(_('dateformat_php2'), intval($row['geburtsdatum'])) : '');
			$row['land'] = ($row['land']);
			$row['plz'] = ($row['plz']);
			$row['ort'] = ($row['ort']);
			$row['strasse'] = ($row['strasse']);
			$row['eintritt'] = (($row['eintritt']) ? strftime(_('dateformat_php2'), intval($row['eintritt'])) : '');
			$row['email'] = ($row['email']);
			$row['email2'] = ($row['email2']);
			$row['telefon'] = ($row['telefon']);
			$row['mobil'] = ($row['mobil']);
			$row['mnr'] = ($row['mnr']);
			$row['austrittsdatum'] = (($row['austrittsdatum']) ? strftime(_('dateformat_php2'), intval($row['austrittsdatum'])) : '');
			$row['austrittsgrund'] = ($row['austrittsgrund']);
			$row['verstorben'] = (($row['verstorben']) ? strftime(_('dateformat_php2'), intval($row['verstorben'])) : '');
			$row['notiz'] = ($row['notiz']);
			$row['iban'] = ($row['iban']);
			$row['bic'] = ($row['bic']);
			$row['password'] = ('*****');
			$row['canAdmin'] = ($row['canAdmin']);
			$row['canMitglied'] = ($row['canMitglied']);
			$row['canGruppe'] = ($row['canGruppe']);
			$row['canCampaign'] = ($row['canCampaign']);
			$row['canSammlung'] = ($row['canSammlung']);
			$row['canBuchhaltung'] = ($row['canBuchhaltung']);
			$row['canProtokoll'] = ($row['canProtokoll']);
			$row['canDokument'] = ($row['canDokument']);
			$row['tarif'] = (
  \FOP\Database::query('SELECT '.qi('tarif').'.'.qi('name').' AS description FROM '.qi('tarif').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($row['tarif']))->fetchColumn() ?: _('beitragsfrei')
);
			$row['reminderMitgliedMitglied-gebtagMails'] = (\Types\Fop_notification_frequency::toString($row['reminderMitgliedMitglied-gebtagMails']));
			$row['reminderMitgliedForderungenMails'] = (\Types\Fop_notification_frequency::toString($row['reminderMitgliedForderungenMails']));
			$row['reminderFop_fints_buchungForderungenMails'] = (\Types\Fop_notification_frequency::toString($row['reminderFop_fints_buchungForderungenMails']));
			$row['reminderAufgabeAssignedMails'] = (\Types\Fop_notification_frequency::toString($row['reminderAufgabeAssignedMails']));
			$row['reminderAufgabeNot_assignedMails'] = (\Types\Fop_notification_frequency::toString($row['reminderAufgabeNot_assignedMails']));
			
		}


		return $row;

    
  }

  public static function searchOptionsmitgliedBuchung_mitglied_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionssammlungMitglied_mitglied_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsgruppeVerantwortlich_mitglied_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsmitgliedPassnummer_mitglied_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsansprechpartner_mitglied_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsprotokoll_leiter_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsprotokoll_creator_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionscampaignTarget_target_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsbrief_recipient_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsfop_mail_host_box_share_fopuser_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsaufgabe_creator_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsaufgabeEvent_creator_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsgruppeItem_item_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_sammlung_create_matrix_sammlungMitglied_sammlung_mitglied_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_sammlung_edit_matrix_sammlungMitglied_sammlung_mitglied_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_targetAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_targetAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_create_matrix_gruppeItem_item_list_itemAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_edit_matrix_gruppeItem_item_list_itemAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_gruppe_create_gruppeVerantwortlich_gruppe_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_create_mitgliedPassnummer_mitglied_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_create_ansprechpartner_mitglied_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_fop_mail_host_box_create_fop_mail_host_box_share_mailbox_fopuserAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_gruppe_create_gruppeItem_list_itemAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_gruppe_edit_gruppeVerantwortlich_gruppe_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_edit_mitgliedPassnummer_mitglied_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_mitglied_edit_ansprechpartner_mitglied_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_fop_mail_host_box_edit_fop_mail_host_box_share_mailbox_fopuserAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsformarray_wf_gruppe_edit_gruppeItem_list_itemAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_mitglied_assignIban_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_brief_copy_recipientAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_mitgliedBuchung_create_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_sammlungMitglied_create_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_gruppeVerantwortlich_create_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_mitgliedPassnummer_create_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_ansprechpartner_create_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_protokoll_create_leiterAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_protokoll_create_creatorAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_campaignTarget_create_targetAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_brief_create_recipientAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_fop_mail_host_box_share_create_fopuserAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_aufgabeEvent_create_creatorAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_aufgabe_create_creatorAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_gruppeItem_create_itemAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_mitgliedBuchung_edit_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_sammlungMitglied_edit_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_gruppeVerantwortlich_edit_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_mitgliedPassnummer_edit_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_ansprechpartner_edit_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_protokoll_edit_leiterAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_protokoll_edit_creatorAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_campaignTarget_edit_targetAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_brief_edit_recipientAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_fop_mail_host_box_share_edit_fopuserAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_aufgabeEvent_edit_creatorAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_aufgabe_edit_creatorAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_gruppeItem_edit_itemAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsimport_mitglied_Import_sub_ansprechpartner_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsimport_mitglied_Import_sub_mitgliedPassnummer_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionssammlung_owner_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNull::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_sammlung_create_ownerAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNull::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_sammlung_edit_ownerAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNull::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsdoc_to_mitglied_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullDMS::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_doc_create_to_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullDMS::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_doc_edit_to_mitgliedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullDMS::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsaufgabe_assigned_deletecascadeAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_aufgabe_assign_assignedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_aufgabe_create_assignedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function searchOptionsform_wf_aufgabe_edit_assignedAction($value, $str, $deps) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value, $str); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	return $items;
	
    
  }

  public static function getNextMnr($pattern, $digits, $start, $context = null ) { 
    
    
    // --- BLOCK: main ---
    
		 // context-Parameter, der unsichtbar mit ausgewertet wird
		 

		 // Anleitung: pattern = String mit einem %-Zeichen, wo die Nummer hinsoll; digits = Anzahl Stellen mindestens (mehr Ziffern können vorkommen)
		 $placeholderpos = mb_strpos($pattern, '%');
		 if ($placeholderpos === false) return '';
		 $sqlpattern = str_replace('%', '%' . str_repeat("_", $digits), $pattern);
		 $nextnum = \FOP\Database::query('SELECT MAX(CAST(REGEXP_REPLACE(SUBSTR('.qi('mnr').', '.($placeholderpos + 1).'), \'^(\d+).*\', \'\1\') AS UNSIGNED) + 1) FROM '.qi('mitglied').' WHERE '.qi('mnr').' LIKE ' . \FOP\Database::quote($sqlpattern) . (/* psql: filter out non-integers (they are raising an error instead of resulting in NULL) */\FOP\Database::getDriver() == 'pgsql' ? ' AND SUBSTR('.qi('kdnr').', '.($placeholderpos + 1).', LENGTH('.qi('kdnr').') - '.($placeholderpos).') ~ E\'^\\\\d+$\'' : ''))->fetchColumn() ?? $start;
		 $vorgangsnummer = str_replace('%', str_pad($nextnum, $digits, '0', STR_PAD_LEFT), $pattern);
		 return $vorgangsnummer;
	
    
  }

  public static function sanitizeDefaults(&$data, $sanitizeForForms, $refcol = null , $parentdata = null ) { 
    
    
    // --- BLOCK: main ---
    
		$virginData = self::getDefaults();
		// column: bic
		
		// column: canAdmin
		
		// column: canBuchhaltung
		
		// column: canCampaign
		
		// column: canDokument
		
		// column: canGruppe
		
		// column: canMitglied
		
		// column: canProtokoll
		
		// column: canSammlung
		
		// column: datenschutz
		
		// column: eintritt
		
		// column: email
		
		// column: email2
		
		// column: geburtsdatum
		
		// column: geschlecht
		
		// column: iban
		
		// column: land
		
		// column: mnr
		
		// column: mobil
		
		// column: name
		
		// column: notiz
		
		// column: ort
		
		// column: password
		
		// column: plz
		
		// column: reminderAufgabeAssignedMails
		
		// column: reminderAufgabeNot_assignedMails
		
		// column: reminderFop_fints_buchungForderungenMails
		
		// column: reminderMitgliedForderungenMails
		
		// column: reminderMitgliedMitglied-gebtagMails
		
		// column: sepa
		
		// column: sepaDate
		
		// column: strasse
		
		// column: superadmin
		
		// column: tarif
			if (!$data['tarif']) {
				$data['tarif'] = $sanitizeForForms ? '0' : null;
			}
		
		// column: telefon
		
		// column: verstorben
		
		// column: austrittsdatum
			// set DefaultDynamic value
			if ($data['austrittsdatum'] == $virginData['austrittsdatum']) {
				$data['austrittsdatum'] = $data['verstorben'];
			}
			
		
		// column: austrittsgrund
			// set DefaultDynamic value
			if ($data['austrittsgrund'] == $virginData['austrittsgrund']) {
				$data['austrittsgrund'] = (($data['verstorben']) === null || ($data['verstorben']) === '0') ? ('') : ('verstorben');
			}
			
		
		// column: vorname
		
		if ($sanitizeForForms) {
			
			$data['sepa'] = \FOP\Util::BoolSanitizer($data['sepa']);
			$data['sepaDate'] = intval($data['sepaDate']);
			$data['superadmin'] = \FOP\Util::BoolSanitizer($data['superadmin']);
			$data['geschlecht'] = \FOP\Util::IntStringNull($data['geschlecht']);
			$data['datenschutz'] = \FOP\Util::BoolSanitizer($data['datenschutz']);
			$data['geburtsdatum'] = intval($data['geburtsdatum']);
			$data['eintritt'] = intval($data['eintritt']);
			$data['email'] = \FOP\Sanitizers::a_text($data['email']);
			$data['email2'] = \FOP\Sanitizers::a_text($data['email2']);
			$data['telefon'] = \FOP\Sanitizers::a_phone($data['telefon']);
			$data['mobil'] = \FOP\Sanitizers::a_phone($data['mobil']);
			$data['austrittsdatum'] = intval($data['austrittsdatum']);
			$data['verstorben'] = intval($data['verstorben']);
			$data['iban'] = \FOP\Sanitizers::a_text($data['iban']);
			$data['canAdmin'] = \FOP\Util::BoolSanitizer($data['canAdmin']);
			$data['canMitglied'] = \FOP\Util::BoolSanitizer($data['canMitglied']);
			$data['canGruppe'] = \FOP\Util::BoolSanitizer($data['canGruppe']);
			$data['canCampaign'] = \FOP\Util::BoolSanitizer($data['canCampaign']);
			$data['canSammlung'] = \FOP\Util::BoolSanitizer($data['canSammlung']);
			$data['canBuchhaltung'] = \FOP\Util::BoolSanitizer($data['canBuchhaltung']);
			$data['canProtokoll'] = \FOP\Util::BoolSanitizer($data['canProtokoll']);
			$data['canDokument'] = \FOP\Util::BoolSanitizer($data['canDokument']);
		}
	
    
  }

  public static function edit($id, $data, $ignoreUniqueConstraints = false , $disregardPermissions = false ) { 
    
    
    // --- BLOCK: main ---
    
				
				$set = [];
				
					if ($disregardPermissions || ((\FOP\User::getBuchhaltung())))
					
					if (array_key_exists('sepa', $data)) {
						array_push($set, qi('sepa').' = ' . \FOP\Database::quote($data['sepa']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getBuchhaltung())))
					
					if (array_key_exists('sepaDate', $data)) {
						array_push($set, qi('sepaDate').' = ' . \FOP\Database::quote($data['sepaDate']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getSuperadmin())))
					
					if (array_key_exists('superadmin', $data)) {
						array_push($set, qi('superadmin').' = ' . \FOP\Database::quote($data['superadmin']));
					}
				
					
					if (array_key_exists('name', $data)) {
						array_push($set, qi('name').' = ' . \FOP\Database::quote($data['name']));
					}
				
					
					if (array_key_exists('vorname', $data)) {
						array_push($set, qi('vorname').' = ' . \FOP\Database::quote($data['vorname']));
					}
				
					
					if (array_key_exists('geschlecht', $data)) {
						array_push($set, qi('geschlecht').' = ' . \FOP\Database::quote($data['geschlecht']));
					}
				
					
					if (array_key_exists('datenschutz', $data)) {
						array_push($set, qi('datenschutz').' = ' . \FOP\Database::quote($data['datenschutz']));
					}
				
					
					if (array_key_exists('geburtsdatum', $data)) {
						array_push($set, qi('geburtsdatum').' = ' . \FOP\Database::quote($data['geburtsdatum']));
					}
				
					
					if (array_key_exists('land', $data)) {
						array_push($set, qi('land').' = ' . \FOP\Database::quote($data['land']));
					}
				
					
					if (array_key_exists('plz', $data)) {
						array_push($set, qi('plz').' = ' . \FOP\Database::quote($data['plz']));
					}
				
					
					if (array_key_exists('ort', $data)) {
						array_push($set, qi('ort').' = ' . \FOP\Database::quote($data['ort']));
					}
				
					
					if (array_key_exists('strasse', $data)) {
						array_push($set, qi('strasse').' = ' . \FOP\Database::quote($data['strasse']));
					}
				
					
					if (array_key_exists('eintritt', $data)) {
						array_push($set, qi('eintritt').' = ' . \FOP\Database::quote($data['eintritt']));
					}
				
					
					if (array_key_exists('email', $data)) {
						array_push($set, qi('email').' = ' . \FOP\Database::quote($data['email']));
					}
				
					
					if (array_key_exists('email2', $data)) {
						array_push($set, qi('email2').' = ' . \FOP\Database::quote($data['email2']));
					}
				
					
					if (array_key_exists('telefon', $data)) {
						array_push($set, qi('telefon').' = ' . \FOP\Database::quote($data['telefon']));
					}
				
					
					if (array_key_exists('mobil', $data)) {
						array_push($set, qi('mobil').' = ' . \FOP\Database::quote($data['mobil']));
					}
				
					
					if (array_key_exists('mnr', $data)) {
						array_push($set, qi('mnr').' = ' . \FOP\Database::quote($data['mnr']));
					}
				
					
					if (array_key_exists('austrittsdatum', $data)) {
						array_push($set, qi('austrittsdatum').' = ' . \FOP\Database::quote($data['austrittsdatum']));
					}
				
					
					if (array_key_exists('austrittsgrund', $data)) {
						array_push($set, qi('austrittsgrund').' = ' . \FOP\Database::quote($data['austrittsgrund']));
					}
				
					
					if (array_key_exists('verstorben', $data)) {
						array_push($set, qi('verstorben').' = ' . \FOP\Database::quote($data['verstorben']));
					}
				
					
					if (array_key_exists('notiz', $data)) {
						array_push($set, qi('notiz').' = ' . \FOP\Database::quote($data['notiz']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getBuchhaltung())))
					
					if (array_key_exists('iban', $data)) {
						array_push($set, qi('iban').' = ' . \FOP\Database::quote($data['iban']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getBuchhaltung())))
					
					if (array_key_exists('bic', $data)) {
						array_push($set, qi('bic').' = ' . \FOP\Database::quote($data['bic']));
					}
				
					
					if (array_key_exists('password', $data)) {
						array_push($set, qi('password').' = ' . \FOP\Database::quote($data['password']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canAdmin', $data)) {
						array_push($set, qi('canAdmin').' = ' . \FOP\Database::quote($data['canAdmin']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canMitglied', $data)) {
						array_push($set, qi('canMitglied').' = ' . \FOP\Database::quote($data['canMitglied']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canGruppe', $data)) {
						array_push($set, qi('canGruppe').' = ' . \FOP\Database::quote($data['canGruppe']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canCampaign', $data)) {
						array_push($set, qi('canCampaign').' = ' . \FOP\Database::quote($data['canCampaign']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canSammlung', $data)) {
						array_push($set, qi('canSammlung').' = ' . \FOP\Database::quote($data['canSammlung']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canBuchhaltung', $data)) {
						array_push($set, qi('canBuchhaltung').' = ' . \FOP\Database::quote($data['canBuchhaltung']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canProtokoll', $data)) {
						array_push($set, qi('canProtokoll').' = ' . \FOP\Database::quote($data['canProtokoll']));
					}
				
					if ($disregardPermissions || ((\FOP\User::getAdmin())))
					
					if (array_key_exists('canDokument', $data)) {
						array_push($set, qi('canDokument').' = ' . \FOP\Database::quote($data['canDokument']));
					}
				
					
					if (array_key_exists('reminderMitgliedMitglied-gebtagMails', $data)) {
						array_push($set, qi('reminderMitgliedMitglied-gebtagMails').' = ' . \FOP\Database::quote($data['reminderMitgliedMitglied-gebtagMails']));
					}
				
					
					if (array_key_exists('reminderMitgliedForderungenMails', $data)) {
						array_push($set, qi('reminderMitgliedForderungenMails').' = ' . \FOP\Database::quote($data['reminderMitgliedForderungenMails']));
					}
				
					
					if (array_key_exists('reminderFop_fints_buchungForderungenMails', $data)) {
						array_push($set, qi('reminderFop_fints_buchungForderungenMails').' = ' . \FOP\Database::quote($data['reminderFop_fints_buchungForderungenMails']));
					}
				
					
					if (array_key_exists('reminderAufgabeAssignedMails', $data)) {
						array_push($set, qi('reminderAufgabeAssignedMails').' = ' . \FOP\Database::quote($data['reminderAufgabeAssignedMails']));
					}
				
					
					if (array_key_exists('reminderAufgabeNot_assignedMails', $data)) {
						array_push($set, qi('reminderAufgabeNot_assignedMails').' = ' . \FOP\Database::quote($data['reminderAufgabeNot_assignedMails']));
					}
				;
				
				if (count($set)) {
					try {
						\FOP\Database::query('UPDATE '.qi('mitglied').' SET ' . implode(', ', $set) . ' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id));
						if (isset($data['ID'])) {
							$id = $data['ID'];
						}
					} catch (\PDOException $e) {
						if ($e->errorInfo[1] == 1062) {
							if ($ignoreUniqueConstraints) {
								return false;
							}
							throw new \FOP\AccessDeniedException('duplicateupdate');
						}
						throw $e; // weiterwerfen
					}
				}
				$data['fop-id'] = $id; // für Hooks
				
	if (isset($data['dynamic:time'])) {
		$new_item = ['dynamic:parent' => $id, 'dynamic:time' => $data['dynamic:time']];
		\FOP\Database::query('DELETE FROM '.qi('mitgliedDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = ' . \FOP\Database::quote($id) . ' AND '.qi('dynamic:time').' = ' . \FOP\Database::quote($data['dynamic:time']));
		// check, der prüft, ob sich in den Spalten-Werten überhaupt etwas ändert
		$previous_item = \FOP\Database::query('SELECT * FROM '.qi('mitgliedDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = ' . \FOP\Database::quote($id) . ' AND '.qi('dynamic:time').' < ' . \FOP\Database::quote($data['dynamic:time']) . ' ORDER BY '.qi('dynamic:time').' DESC LIMIT 1')->fetch(\PDO::FETCH_ASSOC);
		$next_items = \FOP\Database::query('SELECT * FROM '.qi('mitgliedDynamicMonthyear').' WHERE '.qi('dynamic:parent').' = ' . \FOP\Database::quote($id) . ' AND '.qi('dynamic:time').' > ' . \FOP\Database::quote($data['dynamic:time']) . ' ORDER BY '.qi('dynamic:time'))->fetchAll(\PDO::FETCH_ASSOC);
		$hasChanged = false;
		$changedColumns = []; /* Alle Spalten, die in Zukunft geändert wurden */
		$dynamicColumns = ['tarif'];
		
		/* Ohne vorherigen Item muss alles als geändert markiert werden */
		if (!$previous_item || (array_key_exists('tarif', $data) && ($previous_item['tarif'] != $data['tarif']))) {
			$hasChanged = true;
			$new_item['tarif'] = $data['tarif'];
			$new_item['tarifChanged'] = true;
		} else {
			$new_item['tarif'] = $previous_item['tarif'];
			$new_item['tarifChanged'] = false;
		}
		

		$columnCount = count($dynamicColumns);
		foreach($next_items AS $next) {
			$itemChanged = false;
			$changedDynamicColumns = 0;
			foreach($dynamicColumns AS $column) {
				if(!array_key_exists($column, $changedColumns)) { /* Wenn bisher nichts geändert wurde */
					if($next[$column] == $new_item[$column] || !$next[$column.'Changed']) {
						$itemChanged = true;
						$next[$column] = $new_item[$column];
						$next[$column.'Changed'] = false;
					} else {
						$changedColumns[$column] = $new_item[$column];
					}
				}
				if(!$next[$column.'Changed']) $changedDynamicColumns++;
			}

			if($itemChanged) {
				if($changedDynamicColumns == $columnCount) { /* Alles übernommen */
					\Tables\MitgliedDynamicMonthyear::delete($next['ID']);
				} else {
					\Tables\MitgliedDynamicMonthyear::edit($next['ID'], $next);
				}
			}
		}

		if ($hasChanged) {
			$dynamic_id = \Tables\MitgliedDynamicMonthyear::create($new_item);
		}
	}
				return true;

    
  }

  public static function renderEditmitgliedBuchung_mitglied_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_mitgliedBuchung_mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsmitgliedBuchung_mitglied_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditsammlungMitglied_mitglied_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_sammlungMitglied_mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionssammlungMitglied_mitglied_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditgruppeVerantwortlich_mitglied_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_gruppeVerantwortlich_mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsgruppeVerantwortlich_mitglied_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditmitgliedPassnummer_mitglied_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_mitgliedPassnummer_mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsmitgliedPassnummer_mitglied_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditansprechpartner_mitglied_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_ansprechpartner_mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsansprechpartner_mitglied_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditprotokoll_leiter_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_protokoll_leiter" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsprotokoll_leiter_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditprotokoll_creator_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_protokoll_creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsprotokoll_creator_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditcampaignTarget_target_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_campaignTarget_target" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionscampaignTarget_target_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditbrief_recipient_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_brief_recipient" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsbrief_recipient_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditfop_mail_host_box_share_fopuser_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_fop_mail_host_box_share_fopuser" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsfop_mail_host_box_share_fopuser_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditaufgabe_creator_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_aufgabe_creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsaufgabe_creator_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditaufgabeEvent_creator_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_aufgabeEvent_creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsaufgabeEvent_creator_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditgruppeItem_item_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_gruppeItem_item" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsgruppeItem_item_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_sammlung_create_matrix_sammlungMitglied_sammlung_mitglied_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="matrix_sammlungMitglied_sammlung_mitglied_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_sammlung_create_matrix_sammlungMitglied_sammlung_mitglied_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_sammlung_edit_matrix_sammlungMitglied_sammlung_mitglied_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="matrix_sammlungMitglied_sammlung_mitglied_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_sammlung_edit_matrix_sammlungMitglied_sammlung_mitglied_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_targetAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;target&apos;]' class="selectdropdown mdlext-selectfield__select" name="matrix_campaignTarget_target_campaign_target[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;target&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_create_matrix_campaignTarget_target_campaign_target?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(item[&apos;campaign:target::isUnique&apos;])||!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))||!(((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === null || ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === &apos;0&apos; ? (false) : ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))))||!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(item[&apos;campaign:target::isUnique&apos;])&&(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))&&(((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === null || ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === &apos;0&apos; ? (false) : ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))))&&(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!(item[&apos;campaign:target::isUnique&apos;])'><?php echo(_('Bereits vorhanden')); ?></div><div ng-show='!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === null || ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === &apos;0&apos; ? (false) : ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_targetAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;target&apos;]' class="selectdropdown mdlext-selectfield__select" name="matrix_campaignTarget_target_campaign_target[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;target&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_edit_matrix_campaignTarget_target_campaign_target?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(item[&apos;campaign:target::isUnique&apos;])||!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))||!(((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === null || ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === &apos;0&apos; ? (false) : ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))))||!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(item[&apos;campaign:target::isUnique&apos;])&&(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))&&(((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === null || ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === &apos;0&apos; ? (false) : ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))))&&(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!(item[&apos;campaign:target::isUnique&apos;])'><?php echo(_('Bereits vorhanden')); ?></div><div ng-show='!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === null || ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))) === &apos;0&apos; ? (false) : ((globals[&apos;user:gruppe&apos;]) ? (true) : (! ((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_create_matrix_gruppeItem_item_list_itemAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;item&apos;]' class="selectdropdown mdlext-selectfield__select" name="matrix_gruppeItem_item_list_item[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;item&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_create_matrix_gruppeItem_item_list_item?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(item[&apos;list:item::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(item[&apos;list:item::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(item[&apos;list:item::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_edit_matrix_gruppeItem_item_list_itemAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;item&apos;]' class="selectdropdown mdlext-selectfield__select" name="matrix_gruppeItem_item_list_item[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;item&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_edit_matrix_gruppeItem_item_list_item?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(item[&apos;list:item::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(item[&apos;list:item::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(item[&apos;list:item::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_gruppe_create_gruppeVerantwortlich_gruppe_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="gruppeVerantwortlich_gruppe_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_gruppe_create_gruppeVerantwortlich_gruppe_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_create_mitgliedPassnummer_mitglied_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitgliedPassnummer_mitglied_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_create_mitgliedPassnummer_mitglied_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))||!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))||!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))&&(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))&&(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_create_ansprechpartner_mitglied_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="ansprechpartner_mitglied_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_create_ansprechpartner_mitglied_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))||!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))||!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))&&(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))&&(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_fop_mail_host_box_create_fop_mail_host_box_share_mailbox_fopuserAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="fop_mail_host_box_share_mailbox_fopuser[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_fop_mail_host_box_create_fop_mail_host_box_share_mailbox_fopuser?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_gruppe_create_gruppeItem_list_itemAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;item&apos;]' class="selectdropdown mdlext-selectfield__select" name="gruppeItem_list_item[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;item&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_gruppe_create_gruppeItem_list_item?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(item[&apos;list:item::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(item[&apos;list:item::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(item[&apos;list:item::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_gruppe_edit_gruppeVerantwortlich_gruppe_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="gruppeVerantwortlich_gruppe_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_gruppe_edit_gruppeVerantwortlich_gruppe_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_edit_mitgliedPassnummer_mitglied_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitgliedPassnummer_mitglied_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_edit_mitgliedPassnummer_mitglied_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))||!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))||!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))&&(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))&&(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_mitglied_edit_ansprechpartner_mitglied_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="ansprechpartner_mitglied_mitglied[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_mitglied_edit_ansprechpartner_mitglied_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))||!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))||!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))&&(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))&&(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((globals[&apos;user:gruppe&apos;]) === null || (globals[&apos;user:gruppe&apos;]) === &apos;0&apos; ? (false) : (globals[&apos;user:gruppe&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === null || ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))) === &apos;0&apos; ? (false) : ((globals[&apos;user:superadmin&apos;]) ? (true) : (! (form[&apos;superadmin&apos;]))))'><?php echo(_('accessdenied')); ?></div><div ng-show='!(((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === null || ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))) === &apos;0&apos; ? (false) : ((globals[&apos;user:mitglied&apos;]) ? (true) : (! (((form[&apos;ID&apos;]) != (globals[&apos;user:ID&apos;])) &amp;&amp; (! (form[&apos;7sncgH3z&apos;]))))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_fop_mail_host_box_edit_fop_mail_host_box_share_mailbox_fopuserAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="fop_mail_host_box_share_mailbox_fopuser[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_fop_mail_host_box_edit_fop_mail_host_box_share_mailbox_fopuser?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditformarray_wf_gruppe_edit_gruppeItem_list_itemAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='item[&apos;item&apos;]' class="selectdropdown mdlext-selectfield__select" name="gruppeItem_list_item[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='item[&apos;item&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsformarray_wf_gruppe_edit_gruppeItem_list_item?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(item[&apos;list:item::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(item[&apos;list:item::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(item[&apos;list:item::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_mitglied_assignIban_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_mitglied_assignIban_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_brief_copy_recipientAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="recipient" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_brief_copy_recipient?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_mitgliedBuchung_create_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_mitgliedBuchung_create_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;ThzxkNJg&apos;]) === null || (form[&apos;ThzxkNJg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;ThzxkNJg&apos;]))||!((form[&apos;Z3kysnKg&apos;]) === null || (form[&apos;Z3kysnKg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;Z3kysnKg&apos;]))||!((form[&apos;akGyuC03&apos;]) === null || (form[&apos;akGyuC03&apos;]) === &apos;0&apos; ? (false) : (form[&apos;akGyuC03&apos;]))||!((globals[&apos;user:buchhaltung&apos;]) ? (true) : (! ((form[&apos;mitglied&apos;]) != (globals[&apos;user:ID&apos;]))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;ThzxkNJg&apos;]) === null || (form[&apos;ThzxkNJg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;ThzxkNJg&apos;]))&&((form[&apos;Z3kysnKg&apos;]) === null || (form[&apos;Z3kysnKg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;Z3kysnKg&apos;]))&&((form[&apos;akGyuC03&apos;]) === null || (form[&apos;akGyuC03&apos;]) === &apos;0&apos; ? (false) : (form[&apos;akGyuC03&apos;]))&&((globals[&apos;user:buchhaltung&apos;]) ? (true) : (! ((form[&apos;mitglied&apos;]) != (globals[&apos;user:ID&apos;]))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;ThzxkNJg&apos;]) === null || (form[&apos;ThzxkNJg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;ThzxkNJg&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;Z3kysnKg&apos;]) === null || (form[&apos;Z3kysnKg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;Z3kysnKg&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;akGyuC03&apos;]) === null || (form[&apos;akGyuC03&apos;]) === &apos;0&apos; ? (false) : (form[&apos;akGyuC03&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((globals[&apos;user:buchhaltung&apos;]) ? (true) : (! ((form[&apos;mitglied&apos;]) != (globals[&apos;user:ID&apos;]))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_sammlungMitglied_create_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_sammlungMitglied_create_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_gruppeVerantwortlich_create_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_gruppeVerantwortlich_create_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_mitgliedPassnummer_create_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_mitgliedPassnummer_create_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;0Sju7gXS&apos;]) === null || (form[&apos;0Sju7gXS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;0Sju7gXS&apos;]))||!((form[&apos;jVTTiriC&apos;]) === null || (form[&apos;jVTTiriC&apos;]) === &apos;0&apos; ? (false) : (form[&apos;jVTTiriC&apos;]))||!((form[&apos;NMfpLDuB&apos;]) === null || (form[&apos;NMfpLDuB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;NMfpLDuB&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;0Sju7gXS&apos;]) === null || (form[&apos;0Sju7gXS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;0Sju7gXS&apos;]))&&((form[&apos;jVTTiriC&apos;]) === null || (form[&apos;jVTTiriC&apos;]) === &apos;0&apos; ? (false) : (form[&apos;jVTTiriC&apos;]))&&((form[&apos;NMfpLDuB&apos;]) === null || (form[&apos;NMfpLDuB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;NMfpLDuB&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;0Sju7gXS&apos;]) === null || (form[&apos;0Sju7gXS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;0Sju7gXS&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;jVTTiriC&apos;]) === null || (form[&apos;jVTTiriC&apos;]) === &apos;0&apos; ? (false) : (form[&apos;jVTTiriC&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;NMfpLDuB&apos;]) === null || (form[&apos;NMfpLDuB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;NMfpLDuB&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_ansprechpartner_create_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_ansprechpartner_create_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;KRTKa3PB&apos;]) === null || (form[&apos;KRTKa3PB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;KRTKa3PB&apos;]))||!((form[&apos;7mTqtpk9&apos;]) === null || (form[&apos;7mTqtpk9&apos;]) === &apos;0&apos; ? (false) : (form[&apos;7mTqtpk9&apos;]))||!((form[&apos;gKmZLtRS&apos;]) === null || (form[&apos;gKmZLtRS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gKmZLtRS&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;KRTKa3PB&apos;]) === null || (form[&apos;KRTKa3PB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;KRTKa3PB&apos;]))&&((form[&apos;7mTqtpk9&apos;]) === null || (form[&apos;7mTqtpk9&apos;]) === &apos;0&apos; ? (false) : (form[&apos;7mTqtpk9&apos;]))&&((form[&apos;gKmZLtRS&apos;]) === null || (form[&apos;gKmZLtRS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gKmZLtRS&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;KRTKa3PB&apos;]) === null || (form[&apos;KRTKa3PB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;KRTKa3PB&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;7mTqtpk9&apos;]) === null || (form[&apos;7mTqtpk9&apos;]) === &apos;0&apos; ? (false) : (form[&apos;7mTqtpk9&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;gKmZLtRS&apos;]) === null || (form[&apos;gKmZLtRS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gKmZLtRS&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_protokoll_create_leiterAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="leiter" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_protokoll_create_leiter?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_protokoll_create_creatorAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_protokoll_create_creator?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_campaignTarget_create_targetAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;target&apos;]' class="selectdropdown mdlext-selectfield__select" name="target" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;target&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_campaignTarget_create_target?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(form[&apos;campaign:target::isUnique&apos;])||!((form[&apos;gamUdXIr&apos;]) === null || (form[&apos;gamUdXIr&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gamUdXIr&apos;]))||!((form[&apos;PW9rw6As&apos;]) === null || (form[&apos;PW9rw6As&apos;]) === &apos;0&apos; ? (false) : (form[&apos;PW9rw6As&apos;]))||!((form[&apos;CoxcrW6l&apos;]) === null || (form[&apos;CoxcrW6l&apos;]) === &apos;0&apos; ? (false) : (form[&apos;CoxcrW6l&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;campaign:target::isUnique&apos;])&&((form[&apos;gamUdXIr&apos;]) === null || (form[&apos;gamUdXIr&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gamUdXIr&apos;]))&&((form[&apos;PW9rw6As&apos;]) === null || (form[&apos;PW9rw6As&apos;]) === &apos;0&apos; ? (false) : (form[&apos;PW9rw6As&apos;]))&&((form[&apos;CoxcrW6l&apos;]) === null || (form[&apos;CoxcrW6l&apos;]) === &apos;0&apos; ? (false) : (form[&apos;CoxcrW6l&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;campaign:target::isUnique&apos;])'><?php echo(_('Bereits vorhanden')); ?></div><div ng-show='!((form[&apos;gamUdXIr&apos;]) === null || (form[&apos;gamUdXIr&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gamUdXIr&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;PW9rw6As&apos;]) === null || (form[&apos;PW9rw6As&apos;]) === &apos;0&apos; ? (false) : (form[&apos;PW9rw6As&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;CoxcrW6l&apos;]) === null || (form[&apos;CoxcrW6l&apos;]) === &apos;0&apos; ? (false) : (form[&apos;CoxcrW6l&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_brief_create_recipientAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="recipient" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_brief_create_recipient?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_fop_mail_host_box_share_create_fopuserAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="fopuser" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_fop_mail_host_box_share_create_fopuser?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_aufgabeEvent_create_creatorAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_aufgabeEvent_create_creator?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_aufgabe_create_creatorAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_aufgabe_create_creator?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_gruppeItem_create_itemAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;item&apos;]' class="selectdropdown mdlext-selectfield__select" name="item" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;item&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_gruppeItem_create_item?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(form[&apos;list:item::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;list:item::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;list:item::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_mitgliedBuchung_edit_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_mitgliedBuchung_edit_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;ThzxkNJg&apos;]) === null || (form[&apos;ThzxkNJg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;ThzxkNJg&apos;]))||!((form[&apos;Z3kysnKg&apos;]) === null || (form[&apos;Z3kysnKg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;Z3kysnKg&apos;]))||!((form[&apos;akGyuC03&apos;]) === null || (form[&apos;akGyuC03&apos;]) === &apos;0&apos; ? (false) : (form[&apos;akGyuC03&apos;]))||!((globals[&apos;user:buchhaltung&apos;]) ? (true) : (! ((form[&apos;mitglied&apos;]) != (globals[&apos;user:ID&apos;]))))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;ThzxkNJg&apos;]) === null || (form[&apos;ThzxkNJg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;ThzxkNJg&apos;]))&&((form[&apos;Z3kysnKg&apos;]) === null || (form[&apos;Z3kysnKg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;Z3kysnKg&apos;]))&&((form[&apos;akGyuC03&apos;]) === null || (form[&apos;akGyuC03&apos;]) === &apos;0&apos; ? (false) : (form[&apos;akGyuC03&apos;]))&&((globals[&apos;user:buchhaltung&apos;]) ? (true) : (! ((form[&apos;mitglied&apos;]) != (globals[&apos;user:ID&apos;]))))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;ThzxkNJg&apos;]) === null || (form[&apos;ThzxkNJg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;ThzxkNJg&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;Z3kysnKg&apos;]) === null || (form[&apos;Z3kysnKg&apos;]) === &apos;0&apos; ? (false) : (form[&apos;Z3kysnKg&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;akGyuC03&apos;]) === null || (form[&apos;akGyuC03&apos;]) === &apos;0&apos; ? (false) : (form[&apos;akGyuC03&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((globals[&apos;user:buchhaltung&apos;]) ? (true) : (! ((form[&apos;mitglied&apos;]) != (globals[&apos;user:ID&apos;]))))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_sammlungMitglied_edit_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_sammlungMitglied_edit_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_gruppeVerantwortlich_edit_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_gruppeVerantwortlich_edit_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_mitgliedPassnummer_edit_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_mitgliedPassnummer_edit_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;0Sju7gXS&apos;]) === null || (form[&apos;0Sju7gXS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;0Sju7gXS&apos;]))||!((form[&apos;jVTTiriC&apos;]) === null || (form[&apos;jVTTiriC&apos;]) === &apos;0&apos; ? (false) : (form[&apos;jVTTiriC&apos;]))||!((form[&apos;NMfpLDuB&apos;]) === null || (form[&apos;NMfpLDuB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;NMfpLDuB&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;0Sju7gXS&apos;]) === null || (form[&apos;0Sju7gXS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;0Sju7gXS&apos;]))&&((form[&apos;jVTTiriC&apos;]) === null || (form[&apos;jVTTiriC&apos;]) === &apos;0&apos; ? (false) : (form[&apos;jVTTiriC&apos;]))&&((form[&apos;NMfpLDuB&apos;]) === null || (form[&apos;NMfpLDuB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;NMfpLDuB&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;0Sju7gXS&apos;]) === null || (form[&apos;0Sju7gXS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;0Sju7gXS&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;jVTTiriC&apos;]) === null || (form[&apos;jVTTiriC&apos;]) === &apos;0&apos; ? (false) : (form[&apos;jVTTiriC&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;NMfpLDuB&apos;]) === null || (form[&apos;NMfpLDuB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;NMfpLDuB&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_ansprechpartner_edit_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;mitglied&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_ansprechpartner_edit_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;KRTKa3PB&apos;]) === null || (form[&apos;KRTKa3PB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;KRTKa3PB&apos;]))||!((form[&apos;7mTqtpk9&apos;]) === null || (form[&apos;7mTqtpk9&apos;]) === &apos;0&apos; ? (false) : (form[&apos;7mTqtpk9&apos;]))||!((form[&apos;gKmZLtRS&apos;]) === null || (form[&apos;gKmZLtRS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gKmZLtRS&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;KRTKa3PB&apos;]) === null || (form[&apos;KRTKa3PB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;KRTKa3PB&apos;]))&&((form[&apos;7mTqtpk9&apos;]) === null || (form[&apos;7mTqtpk9&apos;]) === &apos;0&apos; ? (false) : (form[&apos;7mTqtpk9&apos;]))&&((form[&apos;gKmZLtRS&apos;]) === null || (form[&apos;gKmZLtRS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gKmZLtRS&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;KRTKa3PB&apos;]) === null || (form[&apos;KRTKa3PB&apos;]) === &apos;0&apos; ? (false) : (form[&apos;KRTKa3PB&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;7mTqtpk9&apos;]) === null || (form[&apos;7mTqtpk9&apos;]) === &apos;0&apos; ? (false) : (form[&apos;7mTqtpk9&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;gKmZLtRS&apos;]) === null || (form[&apos;gKmZLtRS&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gKmZLtRS&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_protokoll_edit_leiterAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="leiter" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_protokoll_edit_leiter?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_protokoll_edit_creatorAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_protokoll_edit_creator?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_campaignTarget_edit_targetAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;target&apos;]' class="selectdropdown mdlext-selectfield__select" name="target" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;target&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_campaignTarget_edit_target?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(form[&apos;campaign:target::isUnique&apos;])||!((form[&apos;gamUdXIr&apos;]) === null || (form[&apos;gamUdXIr&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gamUdXIr&apos;]))||!((form[&apos;PW9rw6As&apos;]) === null || (form[&apos;PW9rw6As&apos;]) === &apos;0&apos; ? (false) : (form[&apos;PW9rw6As&apos;]))||!((form[&apos;CoxcrW6l&apos;]) === null || (form[&apos;CoxcrW6l&apos;]) === &apos;0&apos; ? (false) : (form[&apos;CoxcrW6l&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;campaign:target::isUnique&apos;])&&((form[&apos;gamUdXIr&apos;]) === null || (form[&apos;gamUdXIr&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gamUdXIr&apos;]))&&((form[&apos;PW9rw6As&apos;]) === null || (form[&apos;PW9rw6As&apos;]) === &apos;0&apos; ? (false) : (form[&apos;PW9rw6As&apos;]))&&((form[&apos;CoxcrW6l&apos;]) === null || (form[&apos;CoxcrW6l&apos;]) === &apos;0&apos; ? (false) : (form[&apos;CoxcrW6l&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;campaign:target::isUnique&apos;])'><?php echo(_('Bereits vorhanden')); ?></div><div ng-show='!((form[&apos;gamUdXIr&apos;]) === null || (form[&apos;gamUdXIr&apos;]) === &apos;0&apos; ? (false) : (form[&apos;gamUdXIr&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;PW9rw6As&apos;]) === null || (form[&apos;PW9rw6As&apos;]) === &apos;0&apos; ? (false) : (form[&apos;PW9rw6As&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;CoxcrW6l&apos;]) === null || (form[&apos;CoxcrW6l&apos;]) === &apos;0&apos; ? (false) : (form[&apos;CoxcrW6l&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_brief_edit_recipientAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="recipient" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_brief_edit_recipient?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('requiredinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_fop_mail_host_box_share_edit_fopuserAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="fopuser" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_fop_mail_host_box_share_edit_fopuser?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_aufgabeEvent_edit_creatorAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_aufgabeEvent_edit_creator?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_aufgabe_edit_creatorAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="creator" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_aufgabe_edit_creator?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_gruppeItem_edit_itemAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;item&apos;]' class="selectdropdown mdlext-selectfield__select" name="item" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;item&apos;]' fop-type='Mitglied' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_gruppeItem_edit_item?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!(form[&apos;list:item::isUnique&apos;])) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="(form[&apos;list:item::isUnique&apos;])"><?php echo(_('invalidinput')) ?></div><div ng-show='!(form[&apos;list:item::isUnique&apos;])'><?php echo(_('Dieser Wert ist schon vorhanden')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditimport_mitglied_Import_sub_ansprechpartner_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="default[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsimport_mitglied_Import_sub_ansprechpartner_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditimport_mitglied_Import_sub_mitgliedPassnummer_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\Mitglied::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="default[]" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsimport_mitglied_Import_sub_mitgliedPassnummer_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	<?php
		if (count($items) == 0) {
			?><span class="mdl-textfield__error fop-form-error" style="visibility: visible;"><?php echo(_('no_dropdown_values')) ?></span><?php
		}
	?>
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditsammlung_owner_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNull::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_sammlung_owner" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionssammlung_owner_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_sammlung_create_ownerAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNull::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="owner" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_sammlung_create_owner?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_sammlung_edit_ownerAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNull::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="owner" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_sammlung_edit_owner?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditdoc_to_mitglied_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullDMS::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_doc_to-mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsdoc_to_mitglied_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_doc_create_to_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullDMS::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;to-mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="to-mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;to-mitglied&apos;]' fop-type='MitgliedNullDMS' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_doc_create_to_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;Lz3GkDZU&apos;]) === null || (form[&apos;Lz3GkDZU&apos;]) === &apos;0&apos; ? (true) : (form[&apos;Lz3GkDZU&apos;]))||!((form[&apos;NZmTwx0z&apos;]) === null || (form[&apos;NZmTwx0z&apos;]) === &apos;0&apos; ? (true) : (form[&apos;NZmTwx0z&apos;]))||!((form[&apos;kXMUqzLH&apos;]) === null || (form[&apos;kXMUqzLH&apos;]) === &apos;0&apos; ? (true) : (form[&apos;kXMUqzLH&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;Lz3GkDZU&apos;]) === null || (form[&apos;Lz3GkDZU&apos;]) === &apos;0&apos; ? (true) : (form[&apos;Lz3GkDZU&apos;]))&&((form[&apos;NZmTwx0z&apos;]) === null || (form[&apos;NZmTwx0z&apos;]) === &apos;0&apos; ? (true) : (form[&apos;NZmTwx0z&apos;]))&&((form[&apos;kXMUqzLH&apos;]) === null || (form[&apos;kXMUqzLH&apos;]) === &apos;0&apos; ? (true) : (form[&apos;kXMUqzLH&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;Lz3GkDZU&apos;]) === null || (form[&apos;Lz3GkDZU&apos;]) === &apos;0&apos; ? (true) : (form[&apos;Lz3GkDZU&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;NZmTwx0z&apos;]) === null || (form[&apos;NZmTwx0z&apos;]) === &apos;0&apos; ? (true) : (form[&apos;NZmTwx0z&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;kXMUqzLH&apos;]) === null || (form[&apos;kXMUqzLH&apos;]) === &apos;0&apos; ? (true) : (form[&apos;kXMUqzLH&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_doc_edit_to_mitgliedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullDMS::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' xng-model='form[&apos;to-mitglied&apos;]' class="selectdropdown mdlext-selectfield__select" name="to-mitglied" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input ng-trigger-change='form[&apos;to-mitglied&apos;]' fop-type='MitgliedNullDMS' class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_doc_edit_to_mitglied?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error" style="{{(!((form[&apos;Lz3GkDZU&apos;]) === null || (form[&apos;Lz3GkDZU&apos;]) === &apos;0&apos; ? (true) : (form[&apos;Lz3GkDZU&apos;]))||!((form[&apos;NZmTwx0z&apos;]) === null || (form[&apos;NZmTwx0z&apos;]) === &apos;0&apos; ? (true) : (form[&apos;NZmTwx0z&apos;]))||!((form[&apos;kXMUqzLH&apos;]) === null || (form[&apos;kXMUqzLH&apos;]) === &apos;0&apos; ? (true) : (form[&apos;kXMUqzLH&apos;]))) ? 'visibility: visible; position: relative;' : ''}}"><div ng-show="((form[&apos;Lz3GkDZU&apos;]) === null || (form[&apos;Lz3GkDZU&apos;]) === &apos;0&apos; ? (true) : (form[&apos;Lz3GkDZU&apos;]))&&((form[&apos;NZmTwx0z&apos;]) === null || (form[&apos;NZmTwx0z&apos;]) === &apos;0&apos; ? (true) : (form[&apos;NZmTwx0z&apos;]))&&((form[&apos;kXMUqzLH&apos;]) === null || (form[&apos;kXMUqzLH&apos;]) === &apos;0&apos; ? (true) : (form[&apos;kXMUqzLH&apos;]))"><?php echo(_('invalidinput')) ?></div><div ng-show='!((form[&apos;Lz3GkDZU&apos;]) === null || (form[&apos;Lz3GkDZU&apos;]) === &apos;0&apos; ? (true) : (form[&apos;Lz3GkDZU&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;NZmTwx0z&apos;]) === null || (form[&apos;NZmTwx0z&apos;]) === &apos;0&apos; ? (true) : (form[&apos;NZmTwx0z&apos;]))'><?php echo(_('accessdenied')); ?></div><div ng-show='!((form[&apos;kXMUqzLH&apos;]) === null || (form[&apos;kXMUqzLH&apos;]) === &apos;0&apos; ? (true) : (form[&apos;kXMUqzLH&apos;]))'><?php echo(_('accessdenied')); ?></div></span>
</div>

<?php

    
  }

  public static function renderEditaufgabe_assigned_deletecascadeAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="value_aufgabe_assigned" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsaufgabe_assigned_deletecascade?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_aufgabe_assign_assignedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="assigned" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_aufgabe_assign_assigned?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_aufgabe_create_assignedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="assigned" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_aufgabe_create_assigned?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function renderEditform_wf_aufgabe_edit_assignedAction($value, $deps, $condition, $fop_field_name = null ) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
	if (is_string($deps)) $deps = json_decode($deps, true);
	$items = \Types\MitgliedNullAssigned::getItems($deps, $value); // Annahme: getItems prüft je Item die Zugriffsregeln und gibt notfalls [] zurück
	?>
<div class="mdlext-selectfield mdlext-js-selectfield" style="max-width:  300px;">
	<select tabindex='-1' class="selectdropdown mdlext-selectfield__select" name="assigned" data-default="<?php echo htmlentities($value ?: 0); ?>" style="color: rgba(0,0,0,0);" onchange="
		var val = this.value;
		if (val == '_more') {
			$(this.parentNode.parentNode).find('.fop-ddt-search').click();
			return;
		}
		this.nextElementSibling.value = this.options[this.selectedIndex].text;
		this.nextElementSibling.focus();
		this.nextElementSibling.select();
		$(this.parentElement).find('.fop-remove-after-change').remove();
		this.value = val;

		var model = this.getAttribute('xng-model');
		if (model) {
			$(this).scope().$eval(model + '=' + JSON.stringify(this.value));
			$(this).scope().$apply();
		}
	">
		<?php $text = ''; ?><?php
			$isLong = count($items) && $items[count($items) - 1]['ID'] == '_more';
			foreach ($items AS $item) if (!$condition || $item[$condition]) {
				?><option value="<?php echo htmlentities($item['ID'])?>" <?php
					if ($item['ID'] == $value) {
						// Wert ist gewählt
						echo "selected";
						$text = $item['description'];
						if (isset($item['forbidden'])) {
							$isForbidden = true;
							echo ' class="fop-remove-after-change"';
						}
					}?>><?php echo htmlentities($item['description']); ?></option>
		<?php
			}
		?>
	</select>
	<input class="mdl-textfield__input" value="<?php echo htmlentities($text); ?>" style="position: absolute; top: 20px; left: 4px; width: calc(100% - 32px);" type="text" data-lastsearch="" onkeydown="
		if (event.keyCode == 13) {
			event.preventDefault();
			event.stopPropagation();
			// ENTER: erstbestes passendes Element zuweisen
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				if (this.parentNode.firstElementChild.options[x].text.includes(this.value)) { // Text (z.B. EAN) kommt darin vor:
					this.parentNode.firstElementChild.selectedIndex = x;
					this.value = this.parentNode.firstElementChild.options[x].text;
					var model = this.parentNode.firstElementChild.getAttribute('xng-model');
					if (model) {
						$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
						$(this).scope().$apply();
					}
					$(this.parentElement).find('.fop-remove-after-change').remove();
					tabNext(this);
					return false;
				}
			}
			return false;
		}
		if (!this.list) {
			var list = document.createElement('datalist');
			for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
				var option = document.createElement('option');
				option.value = this.parentNode.firstElementChild.options[x].text;
				list.appendChild(option);
			}
			this.parentNode.appendChild(list);
			list.id = 'datalist' + String(Math.random()).substr(2);
			this.setAttribute('list', list.id);
			this.setAttribute('onkeydown', this.getAttribute('onchange'));
			this.list = list;
		}
	" oninput="
		for (var x = 0; x < this.parentNode.firstElementChild.options.length; x++) {
			if (this.value == this.parentNode.firstElementChild.options[x].text) {
				var model = this.parentNode.firstElementChild.getAttribute('xng-model');
				if (model) {
					$(this).scope().$eval(model + '=' + JSON.stringify(this.parentNode.firstElementChild.options[x].value));
					$(this).scope().$apply();
				}
				this.parentNode.firstElementChild.selectedIndex = x;
				$(this.parentElement).find('.fop-remove-after-change').remove();
			}
		}
		<?php if ($isLong) { ?>
			// Ajax+SQL mit LIKE-Query LIMIT
			var self = this;
			function updateSuggestions() {
				var value = self.value; // save in variable to keep stable during ajax
				if (value == self.getAttribute('data-lastsearch') || value == self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].text) {
					$(self).removeClass('busy');
					$(self).removeClass('busy-dirty');
					return;
				}
				$(self).addClass('busy');
				$.get('Tables/Mitglied/searchOptionsform_wf_aufgabe_edit_assigned?value=' + encodeURIComponent(self.parentNode.firstElementChild.options[self.parentNode.firstElementChild.selectedIndex].value) + '&deps=' + <?php echo htmlentities(json_encode(urlencode(json_encode($deps)))); ?> + '&str=' + encodeURIComponent(value)).then(function (result) {
					self.setAttribute('data-lastsearch', value);
					// Options eintragen
					$(self.parentNode.firstElementChild).empty();
					if (self.list) {
						$(self.list).empty();
					} else {
						var list = document.createElement('datalist');
						self.parentNode.appendChild(list);
						list.id = 'datalist' + String(Math.random()).substr(2);
						self.setAttribute('list', list.id);
						self.list = list;
					}
					for (var i = 0; i < result.length; i++) {
						var option = document.createElement('option');
						option.value = result[i].ID;
						option.text = result[i].description;
						self.parentNode.firstElementChild.appendChild(option);
						if (option.textContent == value) {
							option.selected = i;
							$(self.parentElement).find('.fop-remove-after-change').remove();
						}

						var option = document.createElement('option');
						option.value = result[i].description;
						self.list.appendChild(option);
					}
					/* reset busy flag */
					$(self).removeClass('busy');
					if ($(self).hasClass('busy-dirty')) {
						$(self).removeClass('busy-dirty');
						updateSuggestions(); //
					}
				});
			};
			if ($(self).hasClass('busy')) {
				// busy: busy->dirty
				$(self).addClass('busy-dirty');
				$(self).removeClass('busy');
				// mark as busy-dirty; updateSuggestions will trigger itself again
			} else if ($(self).hasClass('busy-dirty')) {
				// already dirty - we can save one reload cycle
			} else {
				// no request pending yet
				updateSuggestions();
			}
		<?php } ?>
	" onclick="this.focus(); if (this.value == <?php echo (_('pSelect'));?>) this.select();">
	
	<?php if (isset($isForbidden) && $isForbidden) {
			?><span class="mdl-textfield__error fop-form-error fop-remove-after-change" style="visibility: visible;"><?php echo(_('invalid')) ?></span><?php
	} ?>
	 <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span>
</div>

<?php

    
  }

  public static function printAction($id, $attachTo = null ) { 
    
    
    // --- BLOCK: access ---
    if(!((!\FOP\User::getIsGuest()))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access-item-mitglied-view ---
    
		if (\FOP\Database::query('SELECT (CASE WHEN '.\FOP\Database::quote(\FOP\User::getGruppe()).' THEN TRUE ELSE NOT (('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) END) AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END) FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn() != 1) {
			throw new \FOP\AccessDeniedException();
		}
	
    // --- BLOCK: main-1 ---
    

		$data = self::view($id);
		if (!$data) {
			throw new \FOP\AccessDeniedException('notfoundread');
		}
		$title = \FOP\Database::query('SELECT CONCAT('.qi('mitglied').'.'.qi('vorname').', \' \', '.qi('mitglied').'.'.qi('name').') AS description FROM '.qi('mitglied').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($id))->fetchColumn();

    // --- BLOCK: main-1-getImage ---
    
	$getImage = function ($file) {
		return htmlentities(\FOP\Files::getPDFURL($file));
	};
    // --- BLOCK: main-2 ---
    


	$mpdfconf = [
		'tempDir' => sys_get_temp_dir() . '/mpdf',
		'setAutoTopMargin' => 'stretch',
		'setAutoBottomMargin' => 'stretch'];

	ini_set('memory_limit', '-1');
	ini_set('pcre.backtrack_limit', '10000000');
	$mpdf = new \Mpdf\Mpdf($mpdfconf);
	$mpdf->use_kwt = true;
		
	$flush = function ($mode = null) use ($mpdf) {
		$html = mb_convert_encoding(ob_get_contents(), 'UTF-8', 'UTF-8');
		if($html) {
			switch ($mode) {
				case 'body': $mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HTML_BODY); break;
				case 'start': $mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HTML_BODY, true, false); break;
				case 'middle': $mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HTML_BODY, false, false); break;
				case 'end': $mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HTML_BODY, false, true); break;
				case 'style': $mpdf->WriteHTML($html, \Mpdf\HTMLParserMode::HEADER_CSS); break;
				case 'footer': $mpdf->DefHTMLFooterByName('footer', $html); break;
				case 'header': $mpdf->DefHTMLHeaderByName('header', $html); break;
				case 'headerFirst': $mpdf->DefHTMLHeaderByName('headerFirst', $html); break;
				default: $mpdf->WriteHTML($html);
			}
		}
		ob_clean();
	};
	
	ob_start();
	
    // --- BLOCK: main-2-style ---
    
	?>
	body, html, div, p, table { font-family: sans-serif; }
	
	/* pdf styles */
	
	
		table, th, td {
			border: none;
			border-collapse: collapse;
		}
			p, li {
			font-size: 10px;
		}
			.descCol {
			text-align: left;
		}
			td, th {
			padding-bottom: 10px;
		}
	
<?php $flush('style'); 
    // --- BLOCK: main-3-footer ---
    ?>
	<h3>Impressum</h3>
	<?php $flush('footer'); 
    // --- BLOCK: main-3-header ---
    ?>
	<h1>Mitgliedsübersicht</h1>
	<?php $flush('header'); 
    // --- BLOCK: main-4 ---
    ?>
		<?php $mpdf->SetTitle($title); ?>
		<table width='100%'>
			<thead>
			</thead>

			<tbody>
					
						
						<tr class='col-name'>
							<th class='descCol' width='35%'><?php echo(_('Name')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['name']); ?>"><?php echo htmlentities($data['name']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-vorname'>
							<th class='descCol' width='35%'><?php echo(_('Vorname')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['vorname']); ?>"><?php echo htmlentities($data['vorname']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-mnr'>
							<th class='descCol' width='35%'><?php echo(_('Mitgliedsnummer')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['mnr']); ?>"><?php echo htmlentities($data['mnr']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-geschlecht'>
							<th class='descCol' width='35%'><?php echo(_('Geschlecht')); ?>:</th>
							<td colspan='3'><?php echo htmlentities(\Types\Geschlechtstyp::toString($data['geschlecht'])); ?></td>
							
						</tr>
						
					
						
						<tr class='col-geburtsdatum'>
							<th class='descCol' width='35%'><?php echo(_('Geburtsdatum')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities(($data['geburtsdatum']) ? strftime(_('dateformat_php2'), intval($data['geburtsdatum'])) : ''); ?>"><?php echo htmlentities(($data['geburtsdatum']) ? strftime(_('dateformat_php2'), intval($data['geburtsdatum'])) : ''); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-verstorben'>
							<th class='descCol' width='35%'><?php echo(_('Verstorben am')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities(($data['verstorben']) ? strftime(_('dateformat_php2'), intval($data['verstorben'])) : ''); ?>"><?php echo htmlentities(($data['verstorben']) ? strftime(_('dateformat_php2'), intval($data['verstorben'])) : ''); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-land'>
							<th class='descCol' width='35%'><?php echo(_('Land')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['land']); ?>"><?php echo htmlentities($data['land']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-plz'>
							<th class='descCol' width='35%'><?php echo(_('Postleitzahl')); ?>:</th>
							<td><span class='overflow-text' title="<?php echo htmlentities($data['plz']); ?>"><?php echo htmlentities($data['plz']); ?></span></td>
							
								<th class='descCol' width='35%'><?php echo(_('Ort')); ?>:</th>
								<td><span class='overflow-text' title="<?php echo htmlentities($data['ort']); ?>"><?php echo htmlentities($data['ort']); ?></span></td>
							
						</tr>
						
					
						
					
						
						<tr class='col-strasse'>
							<th class='descCol' width='35%'><?php echo(_('Straße und Hausnummer')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['strasse']); ?>"><?php echo htmlentities($data['strasse']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-email'>
							<th class='descCol' width='35%'><?php echo(_('E-Mail')); ?>:</th>
							<td colspan='3'><?php echo htmlentities($data['email']); ?></td>
							
						</tr>
						
					
						
						<tr class='col-email2'>
							<th class='descCol' width='35%'><?php echo(_('E-Mail Alternative')); ?>:</th>
							<td colspan='3'><?php echo htmlentities($data['email2']); ?></td>
							
						</tr>
						
					
						
						<tr class='col-telefon'>
							<th class='descCol' width='35%'><?php echo(_('Telefon')); ?>:</th>
							<td colspan='3'><?php echo htmlentities(\FOP\Sanitizers::no_phone($data['telefon'])); ?></td>
							
						</tr>
						
					
						
						<tr class='col-mobil'>
							<th class='descCol' width='35%'><?php echo(_('Mobil')); ?>:</th>
							<td colspan='3'><?php echo htmlentities(\FOP\Sanitizers::no_phone($data['mobil'])); ?></td>
							
						</tr>
						
					
						
						<tr class='col-eintritt'>
							<th class='descCol' width='35%'><?php echo(_('Eintrittsdatum')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities(($data['eintritt']) ? strftime(_('dateformat_php2'), intval($data['eintritt'])) : ''); ?>"><?php echo htmlentities(($data['eintritt']) ? strftime(_('dateformat_php2'), intval($data['eintritt'])) : ''); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-austrittsdatum'>
							<th class='descCol' width='35%'><?php echo(_('Austrittsdatum')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities(($data['austrittsdatum']) ? strftime(_('dateformat_php2'), intval($data['austrittsdatum'])) : ''); ?>"><?php echo htmlentities(($data['austrittsdatum']) ? strftime(_('dateformat_php2'), intval($data['austrittsdatum'])) : ''); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-austrittsgrund'>
							<th class='descCol' width='35%'><?php echo(_('Austritts-Grund')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['austrittsgrund']); ?>"><?php echo htmlentities($data['austrittsgrund']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-notiz'>
							<th class='descCol' width='35%'><?php echo(_('Notiz')); ?>:</th>
							<td colspan='3'><span><?php echo nl2br(htmlentities($data['notiz'])); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-iban'>
							<th class='descCol' width='35%'><?php echo(_('IBAN')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['iban']); ?>"><?php echo htmlentities($data['iban']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-bic'>
							<th class='descCol' width='35%'><?php echo(_('BIC')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities($data['bic']); ?>"><?php echo htmlentities($data['bic']); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-password'>
							<th class='descCol' width='35%'><?php echo(_('Passwort')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities('*****'); ?>"><?php echo htmlentities('*****'); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-forderungen'>
							<th class='descCol' width='35%'><?php echo(_('Guthaben Beiträge')); ?>:</th>
							<td colspan='3'><span style="white-space: nowrap; width: 100%; display: inline-block; text-align: right;"><?php echo htmlentities(\Types\Euro::print($data['forderungen'])); ?><?php echo '&nbsp;' .  htmlentities('€'); ?>
	</span></td>
							
						</tr>
						
					
						
						<tr class='col-datenschutz'>
							<th class='descCol' width='35%'><?php echo(_('Datenschutz akzeptiert')); ?>:</th>
							<td colspan='3'><?php if ($data['datenschutz'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-sepa'>
							<th class='descCol' width='35%'><?php echo(_('SEPA-Lastschrift')); ?>:</th>
							<td colspan='3'><?php if ($data['sepa'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-sepaDate'>
							<th class='descCol' width='35%'><?php echo(_('Datum SEPA-Lastschrift')); ?>:</th>
							<td colspan='3'><span class='overflow-text' title="<?php echo htmlentities(($data['sepaDate']) ? strftime(_('dateformat_php2'), intval($data['sepaDate'])) : ''); ?>"><?php echo htmlentities(($data['sepaDate']) ? strftime(_('dateformat_php2'), intval($data['sepaDate'])) : ''); ?></span></td>
							
						</tr>
						
					
						
						<tr class='col-superadmin'>
							<th class='descCol' width='35%'><?php echo(_('Super-Admin')); ?>:</th>
							<td colspan='3'><?php if ($data['superadmin'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canAdmin'>
							<th class='descCol' width='35%'><?php echo(_('Admin')); ?>:</th>
							<td colspan='3'><?php if ($data['canAdmin'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canMitglied'>
							<th class='descCol' width='35%'><?php echo(_('Mitgliederverwaltung')); ?>:</th>
							<td colspan='3'><?php if ($data['canMitglied'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canGruppe'>
							<th class='descCol' width='35%'><?php echo(_('Verwaltung der eigenen Gruppe')); ?>:</th>
							<td colspan='3'><?php if ($data['canGruppe'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canCampaign'>
							<th class='descCol' width='35%'><?php echo(_('Rundmails und Aktionen')); ?>:</th>
							<td colspan='3'><?php if ($data['canCampaign'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canSammlung'>
							<th class='descCol' width='35%'><?php echo(_('Geldsammlungen')); ?>:</th>
							<td colspan='3'><?php if ($data['canSammlung'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canBuchhaltung'>
							<th class='descCol' width='35%'><?php echo(_('Buchhaltung')); ?>:</th>
							<td colspan='3'><?php if ($data['canBuchhaltung'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canProtokoll'>
							<th class='descCol' width='35%'><?php echo(_('Protokoll')); ?>:</th>
							<td colspan='3'><?php if ($data['canProtokoll'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-canDokument'>
							<th class='descCol' width='35%'><?php echo(_('Dokumente')); ?>:</th>
							<td colspan='3'><?php if ($data['canDokument'] == 1) { echo '<span style="font-family: dejavusans">✓</span>'; } else { } ?></td>
							
						</tr>
						
					
						
						<tr class='col-tarif'>
							<th class='descCol' width='35%'><?php echo(_('Mitgliedsbeitrag')); ?>:</th>
							<td colspan='3'>
  <?php echo htmlentities(\FOP\Database::query('SELECT '.qi('tarif').'.'.qi('name').' AS description FROM '.qi('tarif').' WHERE '.qi('ID').' = ' . \FOP\Database::quote($data['tarif']))->fetchColumn() ?: _('beitragsfrei')); ?>
</td>
							
						</tr>
						
					
						
						<tr class='col-reminderMitgliedMitglied_gebtagMails'>
							<th class='descCol' width='35%'><?php echo(_('Geburtstage')); ?>:</th>
							<td colspan='3'><div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderMitgliedMitglied-gebtagMails'])); ?>
		<br></div></td>
							
						</tr>
						
					
						
						<tr class='col-reminderMitgliedForderungenMails'>
							<th class='descCol' width='35%'><?php echo(_('Offene Beiträge')); ?>:</th>
							<td colspan='3'><div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderMitgliedForderungenMails'])); ?>
		<br></div></td>
							
						</tr>
						
					
						
						<tr class='col-reminderFop_fints_buchungForderungenMails'>
							<th class='descCol' width='35%'><?php echo(_('unbehandelte Zahlungseingänge')); ?>:</th>
							<td colspan='3'><div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderFop_fints_buchungForderungenMails'])); ?>
		<br></div></td>
							
						</tr>
						
					
						
						<tr class='col-reminderAufgabeAssignedMails'>
							<th class='descCol' width='35%'><?php echo(_('Mir zugewiesen')); ?>:</th>
							<td colspan='3'><div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderAufgabeAssignedMails'])); ?>
		<br></div></td>
							
						</tr>
						
					
						
						<tr class='col-reminderAufgabeNot_assignedMails'>
							<th class='descCol' width='35%'><?php echo(_('Nicht zugewiesen')); ?>:</th>
							<td colspan='3'><div><?php echo htmlentities(\Types\Fop_notification_frequency::toString($data['reminderAufgabeNot_assignedMails'])); ?>
		<br></div></td>
							
						</tr>
						
					
			</tbody>
		</table>

	<?php $flush('body');
	
    // --- BLOCK: main-100 ---
    
	$filename = $title . ".pdf";
	$filename = preg_replace('/[~"#%&\*:<>\?\/\\\{|\}]/', '_', $filename); // sanitize
    // --- BLOCK: main-120 ---
    
	ob_end_clean();
	if (!$attachTo) {
		$mpdf->Output($filename, \Mpdf\Output\Destination::INLINE);
	} else if ($attachTo instanceof \PHPMailer\PHPMailer\PHPMailer) {
		$attachTo->AddStringAttachment($mpdf->Output('', \Mpdf\Output\Destination::STRING_RETURN), $filename);
	} else if ($attachTo instanceof \Mpdf\Mpdf) {
		
	$tmp = tempnam(sys_get_temp_dir(), 'fop-pdf');
	$mpdf->Output($tmp, \Mpdf\Output\Destination::FILE);
	$pagecount = $attachTo->SetSourceFile($tmp);
	for ($i = 1; $i <= $pagecount; $i++) {
		$tplId = $attachTo->importPage($i);
		$attachTo->AddPage();
		$attachTo->UseTemplate($tplId);
	}
	unlink($tmp);
	} else if ($attachTo instanceof \ZipArchive) {
		$attachTo->addFromString($filename, $mpdf->Output('', \Mpdf\Output\Destination::STRING_RETURN));
	} else if ($attachTo === 'string') {
		return \Mpdf\Output\Destination::STRING_RETURN;
	} else if ($attachTo === 'file') {
		
		$tmp = tempnam(sys_get_temp_dir(), 'fop-pdf');
		$mpdf->Output($tmp, \Mpdf\Output\Destination::FILE);
		return \FOP\Files::uploadFromFile($tmp, $filename);
	} else {
		throw new \FOP\AccessDeniedException('unknown attachment object');
	}
	
    
  }

  public static function deleteAction($id) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access-itemlist-mitglied-delete ---
    
		// ID-Liste neu aufbauen und nur die übrig lassen, die auch erlaubt sind
		$id_ = new \FOP\IDList($id);
		$id = new \FOP\IDList();
		foreach (\FOP\Database::query('SELECT '.qi('ID').' FROM '.qi('mitglied').' WHERE ((CASE WHEN '.\FOP\Database::quote(\FOP\User::getMitglied()).' THEN TRUE ELSE NOT ((('.qi('mitglied').'.'.qi('ID').') <> ('.\FOP\Database::sessionVarSQL('user').')) AND (NOT (EXISTS (SELECT (TRUE) FROM '.qi('gruppeItem').' '.qi('7sncgH3z').' WHERE '.qi('7sncgH3z').'.'.qi('item').' = '.qi('mitglied').'.'.qi('ID').' AND (EXISTS (SELECT (TRUE) FROM '.qi('gruppeVerantwortlich').' '.qi('eHueOsQC').' WHERE '.qi('eHueOsQC').'.'.qi('gruppe').' = '.qi('7sncgH3z').'.'.qi('list').' AND (('.qi('eHueOsQC').'.'.qi('mitglied').') = ('.\FOP\Database::sessionVarSQL('user').')) LIMIT 1)) LIMIT 1)))) END) AND ('.\FOP\Database::quote(\FOP\User::getGruppe()).') AND (CASE WHEN '.\FOP\Database::quote(\FOP\User::getSuperadmin()).' THEN TRUE ELSE NOT ('.qi('mitglied').'.'.qi('superadmin').') END)) AND ' . $id_->toSQL(qi('ID')))->fetchAll(\PDO::FETCH_COLUMN) AS $id_sub) {
			$id->push($id_sub);
		}
	
    // --- BLOCK: main ---
    
		\FOP\Database::beginTransaction();
		$ids = new \FOP\IDList($id);
		foreach ($ids->all() AS $id) {
			try {
				$success = self::delete($id);
			} catch (\PDOException $e) {
				if (\FOP\Database::getDriver() == 'mysql' && $e->errorInfo[1] == 1451 /* mysql error code */ || \FOP\Database::getDriver() == 'pgsql' && $e->getCode() == 23503/* psql error code */) {
					// fail due to foreign key constraints (the GUI before should already handle this)
					\FOP\Database::rollbackTransaction();
					if (isset($_GET['ajax'])) {
						header('HTTP/1.0 403 Forbidden');
						die(\TablesRouter\Mitglied::deleteConfirmURL($ids->toString(), ['from' => $_GET['from'] ?? null])); // open delete confirm window when something went wrong
					}
					// TODO: I18n
					header('Location: ' . \TablesRouter\Mitglied::deleteConfirmURL($ids->toString(), ['from' => $_GET['from'] ?? null]) . '#snack:Eine Löschung ist noch nicht möglich'); // open delete confirm window when something went wrong
					die();
				}
				throw $e; // sonst: weiterwerfen
			}
			if (!$success) {
				// fail due to permission
				\FOP\Database::rollbackTransaction();
				if (isset($_GET['ajax'])) {
					header('HTTP/1.0 403 Forbidden');
					die(_('deletiondenied'));
				}
				throw new \FOP\AccessDeniedException('deletiondenied');
			}

			$addition = '#snack:' . _('delete successful');
		}
		\FOP\Database::commitTransaction();

		if (isset($_GET['ajax'])) die('');
		header("Location: " . (isset($_GET['from']) ? $_GET['from'] : \TablesRouter\Mitglied::indexURL()) . $addition);
		die();
	
    
  }

  public static function indexAction() { 
    
    
    // --- BLOCK: access ---
    if(!((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest()))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('Mitglieder')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('Mitglieder')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('Mitglieder')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<div
								 
								id="cardform-mitglied"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormMitglied" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 ?>
								<div id='fop-upbar'></div>
								<?php \DataView\AggMitgliedGeschlecht::renderScript(); ?><?php \DataView\Mitglied::renderScript(); ?>
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'main_geschlecht_table',
										'title' => _('Statistik: Geschlecht'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (true)) {
									$feature = [
										'id' => 'main_table',
										'title' => _('table'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (52) / area (51) / tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'mitglied\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main_geschlecht_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="aggMitgliedGeschlecht-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadaggMitgliedGeschlecht()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\AggMitgliedGeschlecht::renderTabTableAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['main_geschlecht_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest()) && (!\FOP\User::getIsGuest())) { ?>
	<div id="mitglied-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadmitglied()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\Mitglied::renderTabTableAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['main_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-mitglied').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-mitglied').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-mitglied').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=mitglied&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=mitglied&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-mitglied')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-mitglied input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</div>
							

							</div>
							<div class="content" id="focus-supersearch">
		<script type='text/javascript'>
			$(function () {
				var focusfield = $('#supersearch');
				
				if (focusfield.length) {
					focusfield[0].focus();
					focusfield[0].select();
				}
			});
		</script>
	
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    
  }

  public static function payoutAction() { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getBuchhaltung()) && (\FOP\User::getGruppe())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    ?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('SEPA-Lastschrift')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('SEPA-Lastschrift')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('SEPA-Lastschrift')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="focus-supersearch">
		<script type='text/javascript'>
			$(function () {
				var focusfield = $('#supersearch');
				
				if (focusfield.length) {
					focusfield[0].focus();
					focusfield[0].select();
				}
			});
		</script>
	
							</div>
							<div class="content" id="main">
								

								<div
								 
								id="cardform-payout"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormPayout" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 ?>
								<div id='fop-upbar'></div>
								<?php \DataView\Fop_fints_file::renderScript(); ?><?php \DataView\Payout::renderScript(); ?>
									<?php
									$features = [];
									if (true && (true)) {
									$feature = [
										'id' => 'main_sepa',
										'title' => _('sepa-collect'),
										'order' => '500-sepa', // 500-sepa (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 1, // 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (true)) {
									$feature = [
										'id' => 'main_table',
										'title' => _('table'),
										'order' => '500-100', // 500-100 (50)
										'mode' => 'tab', // tab (100) / tab (52) / area (51) / tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && (true)) {
									$feature = [
										'id' => 'main_sepa_file_table',
										'title' => _('SEPA-Dateien'),
										'order' => '500-~-100', // 500-~-100 (50)
										'mode' => 'tab', // tab (50)
										'position' => 'full', // 
										'collapsed' => 0, // 0 (51) / 1 (50)
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'payout\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main_sepa']);
										?>
	<?php if (true) { ?>
	<div id="payout-sepa" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadpayout()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\Payout::renderTabSepaAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['main_sepa']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main_table']);
										?>
	<?php if (true) { ?>
	<div id="payout-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadpayout()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\Payout::renderTabTableAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['main_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main_sepa_file_table']);
										?>
	<?php if (((\FOP\User::getBuchhaltung())) && (!\FOP\User::getIsGuest())) { ?>
	<div id="fop_fints_file-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadfop_fints_file()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\Fop_fints_file::renderTabTableAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['main_sepa_file_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-payout').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-payout').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-payout').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=payout&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=payout&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-payout')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-payout input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</div>
							

							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
    
  }

  public static function acc_recoveryFormAction() { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getIsGuest())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		$_POST['email'] = \FOP\Sanitizers::no_text($_POST['email']);

		
	}
	
    // --- BLOCK: main ---
    
			if(isset($_POST['form_sent'])) {
				$sql = 'SELECT '.qi('email').' FROM '.qi('mitglied').' WHERE '.qi('email').' = ' . \FOP\Database::quote($_POST['email']);
				if($result = \FOP\Database::query($sql)->rowCount() == 1) {
					
					// Generate Token
					$hash = hash('sha256', time() . rand() . rand() . rand() . rand() . rand() . rand() . rand() . rand() . rand());
					
					// Insert token into table where e-mail = ?
					$sql = 'UPDATE '.qi('mitglied').' SET recovery_token = ? WHERE '.qi('email').' = ?';
					$stmt = \FOP\Database::prepare($sql);
					$stmt->bindParam(1, $hash);
					$stmt->bindParam(2, $_POST['email']);
					$stmt->execute();

					// Send E-Mail with Link

					$mailer = \Mailer\Mails::getMailer();
					
					$mailer->addAddress($_POST['email'], 'Customer');
					$mailer->Subject= _('forgot_emailSubject');

					ob_start();
					echo(_('forgot_emailBodyBefore') . "\n\n");
					echo \TablesRouter\Mitglied::updateAcc_RecoveryURL2(['token' => $hash]);
					echo("\n\n" . _('forgot_emailBodyAfter'));
					
					
					$mailer->Body= ob_get_contents();
					ob_end_clean();

					if (!$mailer->send()) throw new \FOP\AccessDeniedException();
				} else {
					throw new \FOP\AccessDeniedException(_('forgot_emailNotValid'));
				}
			?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('forgot_FormSuccessTitle')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_FormSuccessTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_FormSuccessTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
		<h4><i class="material-icons" style="font-size: 26px;" >check_circle</i> <?php echo (_('forgot_emailSent')); ?></h4>
		<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="<?php echo htmlentities(\FOPRouter\Login::loginURL()); ?>"><?php echo(_('forgot_login_btnDesc')); ?></a>
	
							</div>
							<div class="content" id="focus-supersearch">
		<script type='text/javascript'>
			$(function () {
				var focusfield = $('#supersearch');
				
				if (focusfield.length) {
					focusfield[0].focus();
					focusfield[0].select();
				}
			});
		</script>
	
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
			} else {
				$row = \Tables\Mitglied::getDefaults();
				\Tables\Mitglied::sanitizeDefaults($row, true);
				?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('forgot_FormTitle')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_FormTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_FormTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::acc_recoveryFormURL2(['popup' => $_GET['popup'] ?? null]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-recovery_form"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormRecovery_form" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="form_sent" value="' . htmlentities('yes') . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getIsGuest())) && (false || true)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'recovery_form\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='recovery_form_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="fop_default" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">send</i><?php echo(sprintf(_('Reset %s'), _('Passwort'))); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#recovery_form_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getIsGuest())) && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_email" id="column_email">
		<!-- Feld "E-Mail": email -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="email"><?php echo(_('E-Mail')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div class="mdl-textfield mdl-js-textfield"><input class="mdl-textfield__input" type="email" name="email"  id="email" value="<?php echo htmlentities($row['email']); ?>"/><label class="mdl-textfield__label" for="email"><?php echo(_('email')); ?></label>  <span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-recovery_form').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-recovery_form').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-recovery_form').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=recovery_form&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=recovery_form&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-recovery_form')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-recovery_form input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
			}
	
    
  }

  public static function updateAcc_RecoveryAction($token = '' ) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getIsGuest())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		$_POST['password'] = \FOP\Sanitizers::password_filter($_POST['password']);

		
	}
	
    // --- BLOCK: main ---
    
		if (isset($_POST['password']) && isset($_POST['token'])) {
			$password = $_POST['password'];
			$sql = 'UPDATE '.qi('mitglied').' SET '.qi('password').' = ?, recovery_token = \'\' WHERE recovery_token = ?';
			$stmt = \FOP\Database::prepare($sql);
			$stmt->bindParam(1, $password);
			$stmt->bindParam(2, $_POST['token']);
			$result = $stmt->execute();
			if ($result === false) {
				throw new \FOP\AccessDeniedException(_('forgot_error'));
			} else {
				?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('forgot_ResetSuccessTitle')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_ResetSuccessTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_ResetSuccessTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
		<h4><i class="material-icons" style="font-size: 26px;" >check_circle</i> <?php echo (_('forgot_resetSuccess')); ?></h4>
		<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="<?php echo htmlentities(\FOPRouter\Login::loginURL()); ?>"><?php echo(_('forgot_login_btnDesc')); ?></a>
	
							</div>
							<div class="content" id="focus-supersearch">
		<script type='text/javascript'>
			$(function () {
				var focusfield = $('#supersearch');
				
				if (focusfield.length) {
					focusfield[0].focus();
					focusfield[0].select();
				}
			});
		</script>
	
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
			}
			\FOP\Login::reportLoginSuccess(); // IP-Sperre aufheben, damit er sich wieder einloggen kann
		} else {
			if (isset($_GET['token']) && $_GET['token'] != '') {	
				// Check if row exist
				$sql = 'SELECT '.qi('email').' FROM '.qi('mitglied').' WHERE recovery_token = ' . \FOP\Database::quote($_GET['token']);
				if ($result = \FOP\Database::query($sql)->rowCount() == 1) {
					$row = array(); 
					$row['password'] = '';
					?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('forgot_Form2Title')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript" src="js/form.js"></script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_Form2Title')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_Form2Title')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
								

								<form
									
									action="<?php echo \TablesRouter\Mitglied::updateAcc_RecoveryURL2(['popup' => $_GET['popup'] ?? null]); ?>"
									method="post"
									enctype="multipart/form-data" ng-submit='submit($event)'
									onsubmit="
										if (window.running_uploads) {
											event.preventDefault();
											alert('<?php echo htmlentities(json_encode(_('fileUploadStillActive')));?>');
										}
									"
								 
								id="cardform-recovery_form2"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormRecovery_form2" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 echo '<input type="hidden" name="token" value="' . htmlentities($token) . '">';
								 echo '<input type="hidden" name="form_sent" value="' . htmlentities('yes') . '">';
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getIsGuest())) && (false || true)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									/* load order from database
										schema: fop_form_feature(user, form, subid, key, value)
										key = (order, mode, position, collapsed)
									*/
									$upbar_collapsed = false;
									// default values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', (SELECT '.qi('value').' FROM fop_form_feature b WHERE a.subid = b.subid AND a.'.qi('key').' = b.'.qi('key').' AND '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY '.qi('value').' ORDER BY COUNT(*) DESC LIMIT 1) AS '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).' GROUP BY subid, '.qi('key'))->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										}
									}
									// form specific special values
									foreach (\FOP\Database::query('SELECT subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE form = \'recovery_form2\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
										if (isset($features[$setting['subid']])) {
											$features[$setting['subid']][$setting['key']] = $setting['value'];
										} else if ($setting['subid'] == 'upbar' && $setting['key'] == 'collapsed') {
											$upbar_collapsed = (bool) $setting['value'];
										}
									}

									/* fill in the content of the features */
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='recovery_form2_buttons' class='mdl-cell mdl-cell--12-col' style='flex-wrap: wrap;'><?php if (true) { ?><button onclick="
		var errors = $(this).closest('form').find('.fop-form-error:visible, .is-invalid').filter((i, x) => $(x).parents('.novalidate').length ? false : true);
		if (errors.length) {
			event.preventDefault();
			alert(errors.closest('.fop-form-content').prev('.fop-form-label').text() + ' Es sind noch Fehler im Formular bei Feld');
			return;
		} /* TODO: i18n */
		
	" type="submit" name="fop_default" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">send</i><?php echo(sprintf(_('Choose new %s'), _('Passwort'))); ?></button><?php } ?>
									</div><script type='text/javascript'>
		// copy all buttons to #fop-upbar
		$(function () {
    var btn = document.getElementById("fop-bar-mainbutton");
    var upbar = $('#fop-upbar');
    var upbar_buttons = document.getElementById("fop-bar-container");

    // Check if the elements already exist
    if (!btn || !upbar_buttons) {
        if (!btn) {
            btn = $('<div id="fop-bar-mainbutton" class="mdl-button fop-button-half fop-button-margin mdl-button--raised"><i class="material-icons">keyboard_arrow_right</i></div>')
                .click(function () {
                    if (btn.find('i').text() == 'keyboard_arrow_right') {
                        upbar_buttons.fadeOut(400);
                        btn.find('i').text('keyboard_arrow_left');
                    } else {
                        upbar_buttons.fadeIn(400);
                        btn.find('i').text('keyboard_arrow_right');
                    }
                });
            upbar.append(btn);
        }

        if (!upbar_buttons) {
            upbar_buttons = $('<div id="fop-bar-container" style="max-width: 290px"></div>'); //dependant on the mdl-buttons width, caps of upbar buttons at exactly 4 buttons
            upbar.append(upbar_buttons);
        }

        var buttons = $('#recovery_form2_buttons').find('.mdl-button');
        buttons.each(function (i, v) {
            var button = $(v);
            var newbutton = $('<div></div>');
            newbutton.attr('class', button.attr('class'));
            newbutton.attr('title', button.attr('title'));
            newbutton.append(button.find('.material-icons').clone(false));
            newbutton.click(function () {
                button[0].click();
            });
            upbar_buttons.append(newbutton);
        });
    }
});

	</script><?php
										\EasyEditor\FormFeature::pop();
										$features['buttons']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getIsGuest())) && (false || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_password" id="column_password">
		<!-- Feld "Passwort": password -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="password"><?php echo(_('Passwort')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		<div ng-controller='dummy' ng-init='pw = <?php echo htmlentities(json_encode(empty($row['password']) ? '' : '&&'.($row['password']))); ?>'><div class="mdl-textfield mdl-js-textfield"><input ng-model='pw' class="mdl-textfield__input" type="password" name="password" /><label class="mdl-textfield__label" for="password"><?php echo(_('password')); ?></label><span class="mdl-textfield__error"><div><?php echo(_('invalidinput')) ?></div></span></div>
<br><div class="mdl-textfield mdl-js-textfield" compare-password='pw'><input class="mdl-textfield__input" type="password"  /><label class="mdl-textfield__label" for="password"><?php echo(_('password repeat')); ?></label><span class="mdl-textfield__error"><?php echo _('passwords must match'); ?></span></div></div>
	</div>
	</div><?php
										\EasyEditor\FormFeature::pop();
										$features['main']['html'] = ob_get_contents();
										ob_end_clean();
									}
									

									uasort($features, function ($a, $b) {
										return strnatcmp($a['order'], $b['order']);
									});
									foreach ($features AS $feature) {
										\EasyEditor\FormFeature::render($feature);
									}
									?><script type='text/javascript'>
										$(function(){
											// bei Änderungen: prüfen, ob Form geändert wurde
											var formData = $('#cardform-recovery_form2').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-recovery_form2').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-recovery_form2').on('submit', function () {
												document.body.onbeforeunload = undefined;
											});
											<?php if ($upbar_collapsed) {
												?>$('#fop-bar-mainbutton').click();<?php
											} ?>
											$('#fop-bar-mainbutton').click(function () {
												setTimeout(function () {
													setCFF('upbar', 'collapsed', $('#fop-bar-container').is(':visible') ? 0 : 1);
												}, 440); /* perfect timing for fadeOut */
											});
										});
										
										function setCFF(id, key, value) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFF?form=recovery_form2&subid=' + encodeURIComponent(id) + '&key=' + encodeURIComponent(key) + '&value=' + encodeURIComponent(value)).then(function () {
												if (key == 'reset') {
													location.reload();
												}
											});
											<?php } /* EditAccess */ ?>
										}
										function setCFFOrder(fids) {
											<?php if(!\FOP\User::getIsGuest()) { ?>
											$.get('FOP/Index/setCFFOrder?form=recovery_form2&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-recovery_form2')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-recovery_form2 input[type!="hidden"],textarea,select[tabindex!="-1"]').not('.fop-disabled *').filter(':visible:first').focus().select();
											}
										});

										$(window).keydown(function(event) {
											 if (event.ctrlKey && String.fromCharCode(event.which).toLowerCase() == 's') {
												 event.preventDefault();
												 $('button[type=submit]').click();
												 return false;
											 }
										});

										
										$(document).on('keyup',function(evt) {
										   if (evt.keyCode == 27) {
												if (window.parent) {
													window.close(); // iframe:close
												} else {
													window.history.back();
												}
											}
												});
										
									</script>

							</form>
							

							</div>
							<div class="content" id="focus-supersearch">
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
					
				} else {
					?><?php
			header('Content-Type: text/html; charset=UTF-8');
			header('X-XSS-Protection: 1; mode=block');
			header('Strict-Transport-Security: max-age=63072000');
			header('X-Content-Type-Options: nosniff');
			header("Content-Security-Policy: default-src *  data: blob: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';");


		?><!DOCTYPE html><html><head><title><?php echo(_('forgot_ResetFailureTitle')); ?></title><base href='<?php echo \FOP\Util::getCurrentBaseurl(); ?>'><meta name="google" content="notranslate"><meta http-equiv="Content-Language" content="<?php echo htmlentities(\FOP\I18n::getLocale()); ?>"><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="style_dependencies.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><link rel="stylesheet" type="text/css" href="style.css?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"><script type="text/javascript" src="js/script_dependencies.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="mobile-web-app-capable" content="yes"><link rel="manifest" href="manifest.webmanifest"><script type="text/javascript">moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');</script><script type="text/javascript">window.globals = <?php
	echo json_encode(['user:superadmin' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSuperadmin(), 'user:mitglied' => /* TODO: resanitizer später mal */(integer) \FOP\User::getMitglied(), 'user:gruppe' => /* TODO: resanitizer später mal */(integer) \FOP\User::getGruppe(), 'user:campaign' => /* TODO: resanitizer später mal */(integer) \FOP\User::getCampaign(), 'user:sammlung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getSammlung(), 'user:protokoll' => /* TODO: resanitizer später mal */(integer) \FOP\User::getProtokoll(), 'user:ID' => /* TODO: resanitizer später mal */(integer) \FOP\User::getID(), 'user:buchhaltung' => /* TODO: resanitizer später mal */(integer) \FOP\User::getBuchhaltung()]);
?>;</script><script type="text/javascript" src="angular/<?php echo(\FOP\I18n::getShortLocale()); ?>/js/alltypes.js?v=<?php echo(\FOP\Util::getVersionAppendix()); ?>"></script><script type="text/javascript" src="angular/angular-i18n/angular-locale_<?php echo \FOP\I18n::getAngularLocale(); ?>.js"></script><script type="text/javascript" src="js/date-filter.js"></script><script type="text/javascript" src="js/dropdown.js"></script><script type="text/javascript" src="js/numeric.js"></script><script type="text/javascript" src="js/getparam.js"></script><script type="text/javascript" src="js/tables.js"></script>
		<script type="text/javascript" src="js/parsehash.js"></script><script type="text/javascript">
		window.query = <?php echo json_encode($_GET, JSON_FORCE_OBJECT); ?>;
		window.baseurl = <?php echo json_encode(\FOP\Util::getCurrentBaseurl()); ?>;

		window.i18n_weiter = <?php echo json_encode(_('Weiter'));?>;
		//Filter I18n:
		window.i18n_quartal = <?php echo json_encode(_('Quarter'));?>;
		window.i18n_alle = <?php echo json_encode(_('All'));?>;
		window.i18n_leere = <?php echo json_encode(_('Empty'));?>;
		window.i18n_tag = <?php echo json_encode(_('Tag'));?>;
		window.i18n_woche = <?php echo json_encode(_('Woche'));?>;
		window.i18n_zeitraum = <?php echo json_encode(_('Period'));?>;
		window.i18n_monat = <?php echo json_encode(_('Monat'));?>;
		window.i18n_jahr = <?php echo json_encode(_('Jahr'));?>;
		window.i18n_von = <?php echo json_encode(_('filters_from'));?>;
		window.i18n_bis = <?php echo json_encode(_('filters_to'));?>;
		window.i18n_tabButton = <?php echo json_encode(_('open_in_new_tab'));?>;
		window.i18n_closeButton = <?php echo json_encode(_('close'));?>;
		</script></head><script type="text/javascript">const fopPushPublicKey = '<?php echo(addslashes(\FOP\Configuration::getFOPPushPublicKey())); ?>';
        const fopUserID = <?php echo(intval(\FOP\User::getID())); ?>;
        var fopPushDisabled = false;
    </script><script type="text/javascript" src="js/serviceworkersetup.js"></script><body ng-app='app'>
		<div class='mdl-js-snackbar mdl-snackbar' id='snackbar'>
			<div class='mdl-snackbar__text'></div>
			<button class='mdl-snackbar__action' type='button'></button>
		</div>
		<script>
			var snackbar = document.querySelector('#snackbar');
			componentHandler.upgradeElement(snackbar, 'MaterialSnackbar');
			$(function () {
				setTimeout(function () {
					$('.fop-layout').scrollTop(0);
				}, 0);
			});
		</script>

		<?php if (isset($_GET['popup'])) { ?>
		<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_ResetFailureTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      	</header>
			<style>
				.content {
					margin-top: 0px !important;
				}
			</style>
			<div id='content' class='popup' >
		<?php } else { ?>
			<div class="fop-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
			<header class="fop-header mdl-layout__header mdl-layout__header mdl-layout__header--scroll">
				<div class="mdl-layout__header-row">
					<span class="mdl-layout-title"><?php echo(_('forgot_ResetFailureTitle')); ?></span><div class="mdl-layout-spacer"></div><span class="noprint mdl-layout-title mdl-layout--large-screen-only"><div class="mdl-textfield mdl-js-textfield"><input id="supersearch" accesskey="f" class="mdl-textfield__input" type="text" onkeydown="if (event.keyCode == 13 && this.value) window.location.href = 'FOP/Index/searchURL?q=' + encodeURIComponent(this.value) + '&from=<?php echo htmlentities(urlencode(\FOP\Util::getBackUrl())); ?>';" value="<?php echo htmlentities($_GET['q'] ?? ''); ?>" style="border-bottom: 1px solid white;"/><label class="mdl-textfield__label" style="color: inherit"><?php echo(_('search')); ?> - <?php
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
			// MAC: Control+ davor
			echo 'Control + ';
		}
		if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
			// Firefox
			if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
				// MAC: Control + Alt + key
				echo 'Alt + F';
			} else {
				echo 'Alt + Shift + F';
			}
		} else {
			// Internet Explorer, Chrome, Safari, Opera
			echo 'Alt + F';
		}
	?></label></div></span><i onclick='addFav(null)' class='material-icons fop-favorites' id='favorites_button'>star_border</i>
				</div>
      		</header>


				<?php  \EasyEditor\Navigation::render(); ?>
      
				<main class="mdl-layout__content" id="content">
					<div class="fop-content">
						<?php } ?>
						
							<div class="content" id="1">
		<h4><i class="material-icons" style="font-size: 26px;" >check_circle</i> <?php echo (_('forgot_resetFailure')); ?></h4>
		<a class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" href="<?php echo htmlentities(\FOPRouter\Login::loginURL()); ?>"><?php echo(_('forgot_login_btnDesc')); ?></a>
	
							</div>
							<div class="content" id="focus-supersearch">
		<script type='text/javascript'>
			$(function () {
				var focusfield = $('#supersearch');
				
				if (focusfield.length) {
					focusfield[0].focus();
					focusfield[0].select();
				}
			});
		</script>
	
							</div>
						<?php if (!isset($_GET['popup'])) { ?>
					</div>
				</main>
				
			</div>
		<?php } else { ?></div><?php } ?>
<?php if (!isset($_GET['popup'])) { ?><div class='fop-seal'></div><?php } ?></body></html><?php
				}
			} else {
				throw new \FOP\AccessDeniedException(_('forgot_error'));
			}
		}

    
  }


  
  

  
  
}



