<?php

namespace FOP;

class Index {
  
  

  
  

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

		
		/* Sanitizer */

		

		
	}
	
    // --- BLOCK: main ---
    
		if ($_SERVER['REQUEST_METHOD'] == 'POST') {
			// passtru stream.php
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, 'https://launix.de/ai-stream.php');
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
			curl_setopt($ch, CURLOPT_POSTREDIR, true);
			//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
			//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($ch, CURLOPT_POSTFIELDS, 'query='.urlencode($_POST['query']));

			$headers = array();
			$headers[] = 'Content-Type: application/x-www-form-urlencoded';
			$headers[] = 'Authorization: Bearer ' . \FOP\AI::getToken();
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

			curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) use (&$rest) {
				echo $data;
				@ob_flush();
				flush();
				return strlen($data);;
			});

			$result = curl_exec($ch);
			die();
		}
		$data = [];
		$data['pre'] = \FOP\AI::getPrecontext() . "\n". ($_GET['pre'] ?? '');
		$data['command'] = $_GET['command'] ?? 'Schreibe eine E-Mail, stelle unsere Firma vor';
		$data['result'] = '';
	
    // --- 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(_('AI')); ?></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(_('AI')); ?></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(_('AI')); ?></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">
							</div>
							<div class="content" id="main">
								

								<form
									
									action="<?php echo \FOPRouter\Index::aiURL2(['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-fop_ai"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormFop_ai" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 ?>
								<div id='fop-upbar'></div>
								
									<?php
									$features = [];
									if (true && (false || true || true || 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')
											 .'||'. (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 = \'fop_ai\' 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 && (false || true || true || true || true || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_pre" id="column_pre">
		<!-- Feld "Vorwissen": pre -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="pre"><?php echo(_('Vorwissen')); ?>: </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="pre" id="pre" ><?php echo htmlentities($data['pre']); ?></textarea><label class="mdl-textfield__label" for="pre"><?php echo(_('text')); ?></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_command" id="column_command">
		<!-- Feld "Aufgabe": command -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="command"><?php echo(_('Aufgabe')); ?>: </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="command" id="command" ><?php echo htmlentities($data['command']); ?></textarea><label class="mdl-textfield__label" for="command"><?php echo(_('text')); ?></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_go" id="column_go">
		<!-- Feld "Aktion": go -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="go"><?php echo(_('Aktion')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
		<button onclick="
			var query = $('[name=pre]').val() + '\n\n' + $('[name=command]').val() + '\n\n' + $('[name=result]').val();
			var oldresult = $('[name=result]').val();

			var xhr = new XMLHttpRequest();
			xhr.open('POST', 'FOP/Index/ai', true);
			xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xhr.send('query=' + encodeURIComponent(query));
			xhr.addEventListener('readystatechange', () => {
				// TODO: xhr.readyState == 3 || 4
				var newtext = oldresult + xhr.responseText;
				$('[name=result]').val(newtext);
				$('[name=result]')[0].selectionStart = newtext.length;
			});
		" type="button" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised fop-tabnext"><i class="material-icons">keyboard_arrow_right</i>Berechnen</button>
		<button onclick="
			var newtext = $('[name=pre]').val() + '\n\n' + $('[name=result]').val();
			$('[name=pre]').val(newtext);
			$('[name=pre]')[0].selectionStart = newtext.length;
			$('[name=result]').val('');
			$('[name=command]').val('');
			$('[name=command]').focus();
		" type="button" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><i class="material-icons">keyboard_arrow_down</i>Nächste Aufgabe</button>
		<button onclick="
			$('[name=result]').val('');
			$('[name=command]').val('');
			$('[name=command]').focus();
		" type="button" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><i class="material-icons">create_new_folder</i>Zurücksetzen</button>
	
	</div>
	</div>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_result" id="column_result">
		<!-- Feld "Antwort": result -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="result"><?php echo(_('Antwort')); ?>: </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="result" id="result" ><?php echo htmlentities($data['result']); ?></textarea><label class="mdl-textfield__label" for="result"><?php echo(_('text')); ?></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_finish" id="column_finish">
		<!-- Feld "Anleitung": finish -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="finish"><?php echo(_('Anleitung')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		
		<?php
			if (isset($_GET['popup'])) {
				?><button onclick="window.close()" type="button" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised"><i class="material-icons">done</i>schließen</button><?php
			}
		?>
		Kopieren Sie den Text und nutzen ihn in den Formularen.
	
	</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-fop_ai').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-fop_ai').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-fop_ai').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=fop_ai&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=fop_ai&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-fop_ai')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-fop_ai 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>
						<?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 exportCFFAction() { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		header('Content-Type: text/plain');
		// common default values
		$defaults = [];
		// form specific special values
		foreach (\FOP\Database::query('SELECT form, subid, '.qi('key').', '.qi('value').' FROM fop_form_feature a WHERE '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetchAll(\PDO::FETCH_ASSOC) AS $setting) {
			if ($defaults[$setting['key']] != $setting['value']) {
				if ($setting['key'] == 'order') {
					echo 'CardFormFeatureOrder<"' . $setting['form'] . '", "' . $setting['subid'] . '", "' . $setting['value'] . '", "200">.' . "\n";
				}
				if ($setting['key'] == 'mode') {
					echo 'CardFormFeatureMode<"' . $setting['form'] . '", "' . $setting['subid'] . '", "' . $setting['value'] . '", "200">.' . "\n";
				}
				if ($setting['key'] == 'position') {
					echo 'CardFormFeaturePosition<"' . $setting['form'] . '", "' . $setting['subid'] . '", "' . $setting['value'] . '", "200">.' . "\n";
				}
				if ($setting['key'] == 'collapsed') {
					echo 'CardFormFeatureCollapsed<"' . $setting['form'] . '", "' . $setting['subid'] . '", "' . $setting['value'] . '", "200">.' . "\n";
				}
			}
		}
	
    // --- BLOCK: main-after ---
    
		echo "\n\n";
		foreach (\FOP\Database::query('SELECT dataview, '.qi('column').' FROM fop_dataview WHERE collapsed = 1 AND '.qi('user').' = ' . intval(\FOP\User::getID())) AS $col) {
			echo 'DataViewColumnNot<"' . $col['dataview'] . '", "' . $col['column'] . '">.' . "\n";
		}
	
    
  }

  public static function indexAction() { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: access+validators ---
    
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		
		/* Validatoren */
		
		

		
		/* Sanitizer */

		

		
	}
	
    // --- BLOCK: mai ---
    ?><?php include 'vendor/autoload.php'; ?><?php
    spl_autoload_register(function($class){
        // \ mit / ersetzen
        $slashes = str_replace("\\", "/", $class);

        // Klasse in lib/namespace/klassenname.php suchen und ggf. reinladen
        $dir = dirname(__FILE__);
        $filename = $dir . '/lib/' . $slashes . '.php';

        if(file_exists($filename)){
            require_once($filename);
        }
    });

    
    if(basename($_SERVER['SCRIPT_NAME']) != "dbcheck.php" && basename($_SERVER['SCRIPT_NAME']) != "setup.php") \FOP\I18n::initialize();
    
    if(basename($_SERVER['SCRIPT_NAME']) != "dbcheck.php" && basename($_SERVER['SCRIPT_NAME']) != "setup.php") \FOP\Cron::initialize();
    
    if(basename($_SERVER['SCRIPT_NAME']) != "dbcheck.php" && basename($_SERVER['SCRIPT_NAME']) != "setup.php") \FOP\User::initialize();
    
?><?php set_exception_handler("\\FOP\\Util::exception_handler"); ?><?php function qi($s){return \FOP\Database::quoteIdent($s);} ?><?php \FOP\User::getSessionUserID(); ?><?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(_('ERPL Verein')); ?></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(_('ERPL Verein')); ?></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(_('ERPL Verein')); ?></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');
				<?php if (\FOP\User::getIsGuest()) { ?>focusfield = $('input[name=username]');<?php } ?>
				if (focusfield.length) {
					focusfield[0].focus();
					focusfield[0].select();
				}
			});
		</script>
	
							</div>
							<div class="content" id="form">
								

								<div
								 
								id="cardform-index"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormIndex" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 ?>
								<div id='fop-upbar'></div>
								<?php \DataView\ReminderFop_mail_host_box_dir_emailUnseen::renderScript(); ?><?php \DataView\ReminderAufgabeAssigned::renderScript(); ?><?php \DataView\ReminderAufgabeNot_assigned::renderScript(); ?>
									<?php
									$features = [];
									if (true && ((\FOP\User::getIsLoggedIn())) && (true)) {
									$feature = [
										'id' => 'fop_mail_host_box_dir_email_unseen_table',
										'title' => _('Ungelesene E-Mails'),
										'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' => 'aufgabe_assigned_table',
										'title' => _('Mir zugewiesen'),
										'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' => 'aufgabe_not_assigned_table',
										'title' => _('Nicht zugewiesen'),
										'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::getIsLoggedIn())) && ((\FOP\User::getIsFirstUser())) && (true)) {
									$feature = [
										'id' => 'firstuser',
										'title' => _('Ersteinrichtung'),
										'order' => '200-firstuser', // 200-firstuser (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getIsLoggedIn())) && (true)) {
									$feature = [
										'id' => 'figures',
										'title' => _('figures'),
										'order' => '200-figures', // 200-figures (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getIsLoggedIn())) && (!\FOP\User::getIsGuest()) && (true)) {
									$feature = [
										'id' => '_changelog',
										'title' => _('Changelog'),
										'order' => '200-~changelog', // 200-~changelog (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getIsLoggedIn())) && ((\FOP\User::getDokument())) && (true)) {
									$feature = [
										'id' => 'doc_upload',
										'title' => sprintf(_('%s Schnell-Upload'), _('Dokument')),
										'order' => '200-doc-upload', // 200-doc-upload (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => !\FOP\User::getIsGuest(),
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
									$feature = [
										'id' => 'dashboardLogin',
										'title' => _('Login'),
										'order' => '200-dashboardLogin', // 200-dashboardLogin (10-50)
										'mode' => 'region', // region (50)
										'position' => 'full', // 
										'collapsed' => 0, // 
										'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 = \'index\' 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::getIsLoggedIn())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['fop_mail_host_box_dir_email_unseen_table']);
										?>
	<?php if (((\FOP\User::getIsLoggedIn()))) { ?>
	<div id="reminderFop_mail_host_box_dir_emailUnseen-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadreminderFop_mail_host_box_dir_emailUnseen()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\ReminderFop_mail_host_box_dir_emailUnseen::renderTabTableAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['fop_mail_host_box_dir_email_unseen_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['aufgabe_assigned_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest())) { ?>
	<div id="reminderAufgabeAssigned-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadreminderAufgabeAssigned()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\ReminderAufgabeAssigned::renderTabTableAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['aufgabe_assigned_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['aufgabe_not_assigned_table']);
										?>
	<?php if ((!\FOP\User::getIsGuest())) { ?>
	<div id="reminderAufgabeNot_assigned-table" class="fop-dv"><?php
		if (\EasyEditor\FormFeature::isCollapsed()) {
			// #3198 lazy rendering:
			echo '<div class="fop-lazy-reload" onclick="reloadreminderAufgabeNot_assigned()"></div>'; // CSS class .fop-lazy-reload will be clicked after being showed
		} else {
			\DataView\ReminderAufgabeNot_assigned::renderTabTableAction();
		}
	?></div>
	<?php } ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['aufgabe_not_assigned_table']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getIsLoggedIn())) && ((\FOP\User::getIsFirstUser())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['firstuser']);
										?>
		<h1>Wichtig! Ersteinrichtung</h1>
		Bevor Sie loslegen, müssen Sie einen Login einrichten. Dies sollten Sie tun, bevor jemand anderes diese Seite findet.
		<br>
		<a class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored" href="<?php echo htmlentities(\TablesRouter\Mitglied::createURL()); ?>"><?php echo(sprintf(_('create %s'), _('Mitglied'))); ?></a>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['firstuser']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getIsLoggedIn())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['figures']);
										?>
<div class="mdl-tabs mdl-js-tabs">
	<div class="mdl-tabs__tab-bar">
		<a class="mdl-tabs__tab is-active" href="#kennzahlentabelle"><?php echo(_('table')); ?></a>
		<a class="mdl-tabs__tab" href="#kennzahlengraph"><?php echo(_('graph')); ?></a>
	</div>
	<div id="kennzahlentabelle" class="mdl-tabs__panel is-active">
		<table class="table"><thead><tr>
		<th><?php echo(_('figure')); ?></th>
		<th><?php echo(_('last24hours')); ?></th><th><?php echo(_('last7days')); ?></th><th><?php echo(_('prelast7days')); ?></th><th><?php echo(_('last30days')); ?></th><th><?php echo(_('prelast30days')); ?></th><th><?php echo(_('runningyear')); ?></th><th><?php echo(_('lastyear')); ?></th><th><?php echo(_('prelastyear')); ?></th>
		</tr></thead><tbody>
		<?php

		$result = \FOP\Figures::getFiguresDefault();
		$timespans = [];

		
			if ((!\FOP\User::getIsGuest())) {
				echo '<tr><td>' . _('Aufgaben') . '</td>';
				foreach ($result as $row) {
						$timespans[$row['ID']] = $row;
						?><td><span style="white-space: nowrap; width: 100%; display: inline-block; "><?php echo htmlentities(\Types\Integer::print($row['Aufgaben'])); ?>
	</span></td><?php
				}
			}
			echo '</tr>';
		
		?>
		</tbody>
		</table>
	</div>

	<div id="kennzahlengraph" class="mdl-tabs__panel">
		<div style="display: flex; justify-content: space-between;">
			<div style="flex-grow: 1; padding: 10px;">
				<?php echo(_('figure')); ?>:
				<div class="mdlext-selectfield mdlext-js-selectfield"><select class="selectdropdown mdlext-selectfield__select" id="kennzahlengraphdropdown">
					<option value="Aufgaben"><?php echo(_('Aufgaben')); ?></option>
				</select></div>
			</div>

			<div style="flex-grow: 1; padding: 10px;">
				<?php echo(_('monthview')); ?>:
				<div class="mdlext-selectfield mdlext-js-selectfield"><select class="selectdropdown mdlext-selectfield__select" class="selectdropdown" id="monatsgraphdropdown">

				</select></div>
			</div>

			<div style="flex-grow: 1; padding: 10px;">
				<?php echo(_('yearview')); ?>:
				<div class="mdlext-selectfield mdlext-js-selectfield"><select class="selectdropdown mdlext-selectfield__select" class="selectdropdown" id="jahresgraphdropdown">

				</select></div>
			</div>
		</div>

		<div style="height: 300px; display: flex; justify-content: space-between;">
			<div style="flex-grow: 1; padding: 10px;"><canvas id="kennzahlencanvas"></canvas></div>
			<div style="flex-grow: 1; padding: 10px;"><canvas id="kennzahlencanvas2"></canvas></div>
		</div>


		<script type="text/javascript">
		$(function(){
			moment.locale('<?php echo(\FOP\I18n::getShortLocale()); ?>');
			var graph1, graph2;
			let feld = $('#kennzahlengraphdropdown').val();
			let monthoffset = 0, monthoffset2 = 0;
			for(let i = 0; i < 24; i++){
				$('#monatsgraphdropdown').append('<option value="' + (-i) + '">' + moment().startOf("month").add(-i, 'months').format('MMM YYYY') + '</option>');
			}
			for(let i = 0; i < 20; i++){
				$('#jahresgraphdropdown').append('<option value="' + (-i*12) + '">' + moment().startOf("year").add(-i, 'years').year() + '-' + moment().startOf("year").add(-i+1, 'years').year() + '</option>');
			}

			function updateData(){
				let values = [];
				feld = $('#kennzahlengraphdropdown').val();
				monthoffset = $('#monatsgraphdropdown').val();
				monthoffset2 = $('#jahresgraphdropdown').val();

				$.getJSON("FOP/Figures/getFiguresGraph?monthoffset=" + monthoffset + "&monthoffset2=" + monthoffset2, function(graphdata){
					for(let i = 0; i < 31; i++){
						values.push(parseInt(graphdata.filter(function(o){ return o.title == i + "day"; })[0][feld], 10));
					}

					graph1.options.title.text = $('#kennzahlengraphdropdown option:selected').text() + ' (<?php echo(_('month')); ?>)';
					graph1.data.datasets = [{label: $('#kennzahlengraphdropdown option:selected').text(), data: values, lineTension: 0}];

					let days = [];
					for(let i = 0; i < 31; i++) days.push(moment().startOf("month").add(monthoffset, 'months').add(i, 'days').format('l'));

					graph1.data.labels = days;

					let values2 = [];

					for(let i = 0; i < 24; i++){
						values2.push(parseInt(graphdata.filter(function(o){ return o.title == i + "month"; })[0][feld], 10));
					}

					days = [];
					for(let i = 0; i < 24; i++) days.push(moment().startOf("year").add(monthoffset2, 'months').add(i, 'month').format('MMM YYYY'));

					graph2.data.labels = days;

					graph2.options.title.text = $('#kennzahlengraphdropdown option:selected').text() + ' (<?php echo(_('2years')); ?>)';
					graph2.data.datasets = [{label: $('#kennzahlengraphdropdown option:selected').text(), data: values2, lineTension: 0}];

					graph1.update();
					graph2.update();
				});
			}

			$('#kennzahlengraphdropdown,#monatsgraphdropdown,#jahresgraphdropdown').change(function(){
				updateData();
			});
			setTimeout(updateData, 300);

			// Monat
			var ctx = document.getElementById("kennzahlencanvas");
			ctx.height = '250px';
			var context = ctx.getContext("2d");
			feld = 'Umsatz';

			var values = [];
			for(let i = 0; i < 31; i++) values.push(0);

			var days = [];
			for(let i = 0; i < 31; i++) days.push(moment().startOf("month").add(i, 'days').format('l'));

			graph1 = new Chart(ctx, {
				type: 'line',
				options: {
					title: {
						display: true,
						text: feld + ' (Monat)'
					}
				},
				data: {
					labels: days,
					datasets: [{
						label: feld,
						data: values,
						lineTension: 0
					}]
				}
			});

			// Jahr
			var ctx2 = document.getElementById("kennzahlencanvas2");
			ctx2.height = '250px';
			var context = ctx2.getContext("2d");

			var values = [];
			for(let i = 0; i < 24; i++) values.push(0);

			var days = [];
			for(let i = 0; i < 24; i++) days.push(moment().startOf("year").add(i, 'month').format('MMM YYYY'));

			graph2 = new Chart(ctx2, {
				type: 'line',
				title: '',
				options: {
					title: {
						display: true,
						text: feld + ' (2 Jahre)'
					}
				},
				data: {
					labels: days,
					datasets: [{
						label: feld,
						data: values,
						lineTension: 0
					}]
				}
			});
			console.log(graph1);
		});
		</script>
	</div>
</div>
<div style='display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; align-items: stretch;'>
</div>
<?php
										\EasyEditor\FormFeature::pop();
										$features['figures']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getIsLoggedIn())) && (!\FOP\User::getIsGuest()) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['_changelog']);
										?><div style='max-height: 70vh; overflow: auto;'><h2>1.2</h2><ul>
			<li>Geburtstagsliste</li>
			
			<li>Datenschutz-Hinweis ist nur noch eine Warnung, kein Pflichtfeld</li>
			
			<li>mehrere Passnummern je Mitglied</li>
			
			<li>Popup-Layout überarbeitet</li>
			
		</ul><h2>1.1</h2><ul>
			<li>Bankkonten und Ansprechpartener lassen sich mit CSV exportieren</li>
			
			<li>Umbenennung: Tarif =&gt; Mitgliedsbeitrag</li>
			
			<li>Mitgliedsbeiträge Initialdaten hinzugefügt</li>
			
			<li>Statistik für Geschlecht eingebaut</li>
			
			<li>Austrittsgrund und Verstorben zu Mitgliedern hinzugefügt</li>
			
			<li>Datenschutz wird Pflichtfeld</li>
			
			<li>Passnummer für Sportverbände eingebaut</li>
			
		</ul><h2>1.0</h2><ul>
			<li>Stabile Version</li>
			
		</ul><h2>0.8</h2><ul>
			<li>Berechtigungssystem für Dokumente</li>
			
		</ul><h2>0.7</h2><ul>
			<li>KI hinzugefügt</li>
			
			<li>Superadmin Berechtigung</li>
			
		</ul><h2>0.6</h2><ul>
			<li>DMS eingeführt</li>
			
			<li>Datenschutz</li>
			
			<li>Export von Mitgliedern eingebaut</li>
			
		</ul><h2>0.5</h2><ul>
			<li>Branding eingebaut</li>
			
			<li>Anleitung zur Softwareinstallation</li>
			
			<li>Modernisierung der Protokolle</li>
			
		</ul><h2>0.4</h2><ul>
			<li>Lebenszyklen für Mitglieder und Gruppen</li>
			
			<li>Fähigkeiten System</li>
			
			<li>Gruppenverantwortliche eingebaut</li>
			
		</ul><h2>0.3</h2><ul>
			<li>Lastschriftenabbuchung</li>
			
			<li>automatische Tarifabbuchung</li>
			
		</ul><h2>0.2</h2><ul>
			<li>Bankanbindungen hinzugefügt</li>
			
			<li>Sitzungsprotokolle hinzugefügt</li>
			
			<li>Kontaktpersonen hinzugefügt</li>
			
		</ul><h2>0.1</h2><ul>
			<li>Erste Version</li>
			
		</ul></div><?php
										\EasyEditor\FormFeature::pop();
										$features['_changelog']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getIsLoggedIn())) && ((\FOP\User::getDokument())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['doc_upload']);
										?>
		<?php (function () {
			
		$data = \Tables\Doc::getDefaults();
	$data['file'] = NULL;
	
		\Tables\Doc::sanitizeDefaults($data, true);
	
		?>
		
								

								<form
									
									action="<?php echo \TablesRouter\Doc::fastuploadURL2(['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_doc_fastupload"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormWf_doc_fastupload" 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' => false,
										'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' => false,
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									$upbar_collapsed = (bool) \FOP\Database::query('SELECT '.qi('value').' FROM fop_form_feature a WHERE subid = \'upbar\' AND '.qi('key').' = \'collapsed\' AND form = \'wf:doc:fastupload\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetch(\PDO::FETCH_COLUMN);
									

									/* fill in the content of the features */
									if (true && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='wf_doc_fastupload_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="upload" class="mdl-button mdl-js-button mdl-button--colored mdl-button--raised" ><i class="material-icons">cloud_upload</i><?php echo(_('Upload')); ?></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_doc_fastupload_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']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_file" id="column_file">
		<!-- Feld "file": file -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="file"><?php echo(_('file')); ?>: </label>
	</div>
	<div	class="mdl-cell mdl-cell--9-col mdl-cell--4-col-phone fop-form-content">
		

	
		<div>

<?php
       $maxupload =  \FOP\Util::convertIniBytes(ini_get('upload_max_filesize'));

?>
<div class="fop-file-upload dropzone dropzone-file" id="zone<?php echo htmlentities(\FOP\Files::getNextDummyCounter($data['file'])); ?>"
<?php if ($data['file']) {
						$fileInfo = \FOP\Database::query('SELECT filename AS name, size FROM fop_files WHERE '.qi('ID').' = ' . \FOP\Database::quote($data['file']))->fetch(\PDO::FETCH_ASSOC);
						$fileInfo['accepted'] = true;
						echo ' data-fileinfo="' . htmlentities(json_encode($fileInfo)) . '"';
}
					?>>
  <div class="dz-message"><?php echo(_('dropfiles')); ?></div>
  <input type="hidden" class="fileinput" name="file" value="<?php echo htmlentities(\FOP\Files::getLastDummyCounter($data['file'])); ?>">
</div>


<script>
	Dropzone.autoDiscover = false;
   $(function (){
	   $('.dropzone-file').each(function(){
			var dropzoneElement = this;
		   if ($(this).attr('data-dropzone-attached')) return;
		   $(this).attr('data-dropzone-attached', true);

		   let dummycounter = $(dropzoneElement).find('input').val();
		   let zone = this;

		   $(this).dropzone({
				maxFiles: 1,
				addRemoveLinks: true,
				paramName: 'file_' + dummycounter,
				url: 'FOP/Files/upload?x=' + dummycounter,
				maxFilesize: <?php echo \FOP\Util::convertIniBytes(ini_get('upload_max_filesize')); ?> / 1000 / 1000,
				timeout: 30*60*1000,

				dictDefaultMessage: '<?php echo(addslashes(_('dropfiles'))) ?>',
				dictFallbackMessage: '<?php echo(addslashes(_('dropfiles_notpossible'))) ?>',
				dictFileTooBig: '<?php echo(addslashes(_('dropfiles_toobig'))) ?>',
				dictInvalidFileType: '<?php echo(addslashes(_('dropfiles_invalidtype'))) ?>',
				dictResponseError: '<?php echo(addslashes(_('dropfiles_responseerror'))) ?>',
				dictCancelUpload: '<?php echo(addslashes(_('dropfiles_cancelupload'))) ?>',
				dictUploadCanceled: '<?php echo(addslashes(_('dropfiles_uploadcanceled'))) ?>',
				dictCancelUploadConfirmation: '<?php echo(addslashes(_('dropfiles_cancelupload_confirmation'))) ?>',
				dictRemoveFile: '<?php echo(addslashes(_('dropfiles_removefile'))) ?>',
				dictRemoveFileConfirmation: '<?php echo(addslashes(_('dropfiles_removefile_confirmation'))) ?>',

				init: function(){
					let prevfile = null;
					let self = this;

					// Datei anzeigen, die schon hochgeladen wurde
					if (dropzoneElement.dataset['fileinfo']) {
						let f = JSON.parse(dropzoneElement.dataset['fileinfo']);
						self.files.push(f);
						self.emit('addedfile', f);
						self.emit('complete', f);
						prevfile = f;
					}

					/* keep track of uploads */
					this.on('sending', function () {
						window.running_uploads = (window.running_uploads || 0) + 1;
					});
					this.on('complete', function () {
						window.running_uploads = (window.running_uploads || 0) - 1;
					});
					
					
						this.on('addedfile', function() {
							if (prevfile) self.removeFile(prevfile);
						});

						this.on('success', function(file, file_id) {
							prevfile = file;
							file.file_id = file_id;
							$(zone).find('.fileinput').val(file_id);
						});

						this.on('removedfile', function(file) {
							$(zone).find('.fileinput').val('0');
						});
					
				}
		   });
	   });
    });
				</script>
		</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_doc_fastupload').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-wf_doc_fastupload').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-wf_doc_fastupload').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%3Adoc%3Afastupload&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%3Adoc%3Afastupload&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-wf_doc_fastupload')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-wf_doc_fastupload 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>
							

		<?php })(); ?>
	<?php
										\EasyEditor\FormFeature::pop();
										$features['doc_upload']['html'] = ob_get_contents();
										ob_end_clean();
									}
									
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['dashboardLogin']);
										?>
	<?php (function () {
		// alles in eine Funktion kapseln, damit $features nicht überschrieben wird
		$data = [
			'username' => '',
			'password' => ''
		];?>
	
								

								<form
									
									action="<?php echo \FOPRouter\Login::loginURL2(['popup' => $_GET['popup'] ?? null, 'from' => isset($_GET['from']) ? $_GET['from'] : \FOPRouter\Index::indexURL()]); ?>"
									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-login_form"
								style="width: 100%; height: 100%;"
								class='mdl-grid'
									ng-controller="FormLogin_form" ng-init="form = <?php echo htmlentities(json_encode([]));
									?>;"
								>
								<?php
								 ?>
								<div id='fop-upbar'></div>
								<?php if (isset($login_error)) if ($login_error != "") echo '<span class="errhinweis">' . htmlspecialchars($login_error) . '</span><br/><br/>'; ?><p class='mdl-cell mdl-cell--12-col'><?php echo(_('enterlogin')); ?></p>
									<?php
									$features = [];
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
									$feature = [
										'id' => 'buttons',
										'title' => _('Aktionen'),
										'order' => '300', // 300 (50)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => false,
										'visibility' => null
									];
									$features[$feature['id']] = $feature;
									}
									
									if (true && ((\FOP\User::getIsGuest())) && (false || true || true)) {
									$feature = [
										'id' => 'main',
										'title' => _('Daten'),
										'order' => '100', // 100 (20)
										'mode' => 'area', // 
										'position' => 'full', // 
										'collapsed' => 0, // 
										'canEdit' => false,
										'visibility' => '0' .'||'. (true ? 'true' : '0')
											 .'||'. (true ? 'true' : '0')
											
									];
									$features[$feature['id']] = $feature;
									}
									

									
									$upbar_collapsed = (bool) \FOP\Database::query('SELECT '.qi('value').' FROM fop_form_feature a WHERE subid = \'upbar\' AND '.qi('key').' = \'collapsed\' AND form = \'login-form\' AND '.qi('user').' = '.intval(\FOP\User::getID()).'')->fetch(\PDO::FETCH_COLUMN);
									

									/* fill in the content of the features */
									if (true && ((\FOP\User::getIsGuest())) && (true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['buttons']);
										?><div id='login_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(_('login')); ?></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 = $('#login_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 || true)) {
										ob_start();
										\EasyEditor\FormFeature::push($features['main']);
										?>
	<div class="mdl-cell mdl-cell--12-col mdl-grid grid-card column_username" id="column_username">
		<!-- Feld "E-Mail": username -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="username"><?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="username"  id="username" value="<?php echo htmlentities($data['username']); ?>"/><label class="mdl-textfield__label" for="username"><?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_password" id="column_password">
		<!-- Feld "password": password -->
	<div	class="mdl-cell mdl-cell--3-col mdl-cell--4-col-phone fop-form-label">
		<label for="password"><?php echo(_('password')); ?>: </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="password" name="password"  id="password" value="<?php if(!empty($data['password'])) echo '&&'; echo htmlentities($data['password']); ?>"/><label class="mdl-textfield__label" for="password"><?php echo(_('password')); ?></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-login_form').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-login_form').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-login_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=login-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=login-form&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-login_form')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-login_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>
									<script></script> <!-- Benötigt, damit die Striped-Zählung unterbunden wird und das nachfolgende Card weiß bleibt-->
									<div class="grid-card mdl-cell mdl-cell--12-col">
										<a href="<?php echo htmlentities(\TablesRouter\Mitglied::acc_recoveryFormURL()); ?>"><?php echo(_('forgot_btn')); ?></a>
									</div>
									

							</form>
							
<?php })(); ?><?php
										\EasyEditor\FormFeature::pop();
										$features['dashboardLogin']['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-index').serialize();
											document.body.onbeforeunload = function () {
												if (formData != $('#cardform-index').serialize()) {
													return 'Form data has changed - are you sure??';
												}
											};
											$('#cardform-index').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=index&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=index&fids=' + encodeURIComponent(JSON.stringify(fids)));
											<?php } /* EditAccess */ ?>
										}
										$(function () {
											refreshTabHeaders($('#cardform-index')); /* provided in js/form.js */
											// preselection
											if (location.hash.startsWith('#select:')) {
												$('[name="' + window.location.hash.slice(8) + '"]').focus().select();
											} else {
												$('#cardform-index 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="greeter"><?php echo(_('')); ?>
							</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 ---
    die();
    
  }

  public static function getImpressum() { 
    
    
    // --- BLOCK: main ---
    return \FOP\Configuration::getFOPIndexImpressum();
    
  }

  public static function unregisterObserverAction($handle) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getIsLoggedIn())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    
		\FOP\Database::query('DELETE FROM fop_observer WHERE '.qi('user').' = ' . intval(\FOP\User::getID()) . ' AND handle = ' . intval($handle));
	
    
  }

  public static function dataviewAction($data) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		$user = \FOP\User::getID();
		if (!$user) { die('not logged in'); }
		$data = json_decode($data, true);
		// validate $data against {dataview: string, reset: true} using jsontype as FOP DSL
		if (isset($data) && is_array($data) && isset($data['dataview']) && is_string($data['dataview']) && isset($data['reset']) && $data['reset'] === true) {
			$dataview = $data['dataview'];
			\FOP\Database::query('DELETE FROM fop_dataview WHERE '.qi('user').' = '.\FOP\Database::quote($user).' AND dataview = '.\FOP\Database::quote($dataview));
			die('reset success');
		}
		// validate $data against {dataview: string, columns: {*: {order: number, width: number, collapsed: number}}} using jsontype as FOP DSL
		if (!(isset($data) && is_array($data) && isset($data['dataview']) && is_string($data['dataview']) && isset($data['columns']) && is_array($data['columns']) && array_reduce($data['columns'], function ($carry, $item) {return $carry && isset($item) && is_array($item) && isset($item['order']) && is_numeric($item['order']) && isset($item['width']) && is_numeric($item['width']) && isset($item['collapsed']) && is_numeric($item['collapsed']);}, true)
)) {
			die('validation failed');
		}
		$dataview = $data['dataview'];
		foreach ($data['columns'] AS $column => $col) {
			// TODO: postgresql ON CONFLICT (id) DO UPDATE tbl.col 
			\FOP\Database::query('INSERT INTO fop_dataview('.qi('user').', dataview, '.qi('column').', width, '.qi('order').', collapsed) VALUES ('.\FOP\Database::quote($user).', '.\FOP\Database::quote($dataview).', '.\FOP\Database::quote($column).', '.\FOP\Database::quote(intval($col['width'])).', '.\FOP\Database::quote(intval($col['order'])).', '.\FOP\Database::quote(intval($col['collapsed'])).')'
			. (\FOP\Database::getDriver() == 'mysql' ? ' ON DUPLICATE KEY UPDATE `width` = VALUES(`width`), `order` = VALUES(`order`), `collapsed` = VALUES(`collapsed`)' : ' ON CONFLICT('.qi('user').', dataview, '.qi('column').') DO UPDATE SET width = excluded.width, '.qi('order').' = excluded.'.qi('order').', collapsed = excluded.collapsed'));
		}
	
    
  }

  public static function favoritesAction($newValue) { 
    
    
    // --- BLOCK: access ---
    if(!(((\FOP\User::getIsLoggedIn())))) throw new \FOP\AccessDeniedException();
    // --- BLOCK: main ---
    
		if (!\FOP\User::getID()) return;
		\FOP\Database::query('UPDATE '.qi('mitglied').' SET fop_favorites = ' . \FOP\Database::quote($newValue) . ' WHERE '.qi('ID').' = ' . \FOP\User::getID());
	
    
  }

  public static function searchURLAction($q) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		/* zuerst die builtin Snippets behandeln */
		
	if($q == 'G'){
		header('Location: '. \TablesRouter\Gruppe::indexURL());
		die();
	}
	if($q == 'G_C'){
		header('Location: '. \TablesRouter\Gruppe::createURL());
		die();
	}
	if($q == 'M'){
		header('Location: '. \TablesRouter\Mitglied::indexURL());
		die();
	}
	if($q == 'M_C'){
		header('Location: '. \TablesRouter\Mitglied::createURL());
		die();
	}
	if($q == 'R'){
		header('Location: '. \TablesRouter\CampaignState::indexURL());
		die();
	}
	if($q == 'R_C'){
		header('Location: '. \TablesRouter\CampaignState::createURL());
		die();
	}
	$tmplen = strlen('G ');
	if (substr($q, 0, $tmplen) == 'G ') {
		header('Location: ' . \TablesRouter\Gruppe::indexURL(['search_gruppe' => substr($q, $tmplen)]));
		die();
	}
	$tmplen = strlen('G/');
	if (substr($q, 0, $tmplen) == 'G/') {
		header('Location: ' . \TablesRouter\Gruppe::viewURL(substr($q, $tmplen)));
		die();
	}
	$tmplen = strlen('M ');
	if (substr($q, 0, $tmplen) == 'M ') {
		header('Location: ' . \TablesRouter\Mitglied::indexURL(['search_mitglied' => substr($q, $tmplen)]));
		die();
	}
	$tmplen = strlen('M/');
	if (substr($q, 0, $tmplen) == 'M/') {
		header('Location: ' . \TablesRouter\Mitglied::viewURL(substr($q, $tmplen)));
		die();
	}
	$tmplen = strlen('R ');
	if (substr($q, 0, $tmplen) == 'R ') {
		header('Location: ' . \TablesRouter\CampaignState::indexURL(['search_campaignState' => substr($q, $tmplen)]));
		die();
	}
	$tmplen = strlen('R/');
	if (substr($q, 0, $tmplen) == 'R/') {
		header('Location: ' . \TablesRouter\CampaignState::viewURL(substr($q, $tmplen)));
		die();
	}
		/* kein Match? Dann das große Suchfeld anzeigen */
	
    // --- BLOCK: main-creation ---
    ?><?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(_('search')); ?></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(_('search')); ?></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(_('search')); ?></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">
	<?php
	if (!$q) {
		echo '<h1>Kein Suchbegriff angegeben</h1>';
	} else {
		$foundPage = false;
			if (preg_match('/' . preg_quote($q, '/') . '/i', _('Beiträge'))
					
					&& \TablesRouter\MitgliedBuchung::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\MitgliedBuchung::indexURL()); ?>"><?php echo(_('Beiträge')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Sammlungs-Mitglieder'))
					
					&& \TablesRouter\SammlungMitglied::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\SammlungMitglied::indexURL()); ?>"><?php echo(_('Sammlungs-Mitglieder')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Gruppenverantwortliche'))
					
					&& \TablesRouter\GruppeVerantwortlich::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\GruppeVerantwortlich::indexURL()); ?>"><?php echo(_('Gruppenverantwortliche')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Protokoll-Punkte'))
					
					&& \TablesRouter\ProtokollPunkt::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\ProtokollPunkt::indexURL()); ?>"><?php echo(_('Protokoll-Punkte')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Banken'))
					
					&& \TablesRouter\Fop_fints_bank::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_bank::indexURL()); ?>"><?php echo(_('Banken')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('SEPA-Dateien'))
					
					&& \TablesRouter\Fop_fints_file::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_file::indexURL()); ?>"><?php echo(_('SEPA-Dateien')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Tan Modes'))
					
					&& \TablesRouter\Fop_fints_tanMode::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_tanMode::indexURL()); ?>"><?php echo(_('Tan Modes')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Buchungen'))
					
					&& \TablesRouter\Fop_fints_buchung::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_buchung::indexURL()); ?>"><?php echo(_('Buchungen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Empfänger'))
					
					&& \TablesRouter\CampaignTarget::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\CampaignTarget::indexURL()); ?>"><?php echo(_('Empfänger')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Follow-Ups'))
					
					&& \TablesRouter\CampaignFollow::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\CampaignFollow::indexURL()); ?>"><?php echo(_('Follow-Ups')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('revisions %s|Dokumente'))
					
					&& \TablesRouter\Doc_revision::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Doc_revision::indexURL()); ?>"><?php echo(sprintf(_('revisions %s'), _('Dokumente'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('further recipients'))
					
					&& \TablesRouter\Fop_mail_host_box_draft_recipient::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_draft_recipient::indexURL()); ?>"><?php echo(_('further recipients')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Anhänge'))
					
					&& \TablesRouter\Fop_mail_host_box_draft_attachment::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_draft_attachment::indexURL()); ?>"><?php echo(_('Anhänge')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emailmailbox_plural'))
					
					&& \TablesRouter\Fop_mail_host_box::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box::indexURL()); ?>"><?php echo(_('emailmailbox_plural')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emaildirectory_plural'))
					
					&& \TablesRouter\Fop_mail_host_box_dir::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir::indexURL()); ?>"><?php echo(_('emaildirectory_plural')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Emails'))
					
					&& \TablesRouter\Fop_mail_host_box_dir_email::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir_email::indexURL()); ?>"><?php echo(_('Emails')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emaildirectorythread_plural'))
					
					&& \TablesRouter\Fop_mail_host_box_dir_email_thread::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir_email_thread::indexURL()); ?>"><?php echo(_('emaildirectorythread_plural')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('E-Mail-Empfänger'))
					
					&& \TablesRouter\Fop_mail_host_box_dir_email_recipient::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir_email_recipient::indexURL()); ?>"><?php echo(_('E-Mail-Empfänger')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('attachments'))
					
					&& \TablesRouter\Fop_mail_host_box_dir_email_attachment::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir_email_attachment::indexURL()); ?>"><?php echo(_('attachments')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Ereignisse|Aufgabe'))
					
					&& \TablesRouter\AufgabeEvent::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeEvent::indexURL()); ?>"><?php echo(sprintf(_('%s-Ereignisse'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Datei-Anhänge'))
					
					&& \TablesRouter\AufgabeAnhang::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeAnhang::indexURL()); ?>"><?php echo(_('Datei-Anhänge')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Gruppenmitglieder'))
					
					&& \TablesRouter\GruppeItem::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\GruppeItem::indexURL()); ?>"><?php echo(_('Gruppenmitglieder')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Eigenschaften'))
					
					&& \TablesRouter\AufgabeProperty::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeProperty::indexURL()); ?>"><?php echo(_('Eigenschaften')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('DMS-Kategorien'))
					
					&& \TablesRouter\DocType::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\DocType::indexURL()); ?>"><?php echo(_('DMS-Kategorien')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Typen|Aufgabe'))
					
					&& \TablesRouter\AufgabeType::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeType::indexURL()); ?>"><?php echo(sprintf(_('%s-Typen'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Zustände|Aufgabe'))
					
					&& \TablesRouter\AufgabeState::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeState::indexURL()); ?>"><?php echo(sprintf(_('%s-Zustände'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Eigenschaften-Auswahl|Aufgabe'))
					
					&& \TablesRouter\AufgabePropertyDropdown::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabePropertyDropdown::indexURL()); ?>"><?php echo(sprintf(_('%s-Eigenschaften-Auswahl'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Eigenschaften|Aufgabe'))
					
					&& \TablesRouter\AufgabePropertyType::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabePropertyType::indexURL()); ?>"><?php echo(sprintf(_('%s-Eigenschaften'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Anhänge'))
					
					&& \TablesRouter\CampaignAttachment::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\CampaignAttachment::indexURL()); ?>"><?php echo(_('Anhänge')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('versions of %s|Mitglieder'))
					
					&& \TablesRouter\MitgliedDynamicMonthyear::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\MitgliedDynamicMonthyear::indexURL()); ?>"><?php echo(sprintf(_('versions of %s'), _('Mitglieder'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('versions of %s|Beitrags-Tarife'))
					
					&& \TablesRouter\TarifDynamicMonthyear::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\TarifDynamicMonthyear::indexURL()); ?>"><?php echo(sprintf(_('versions of %s'), _('Beitrags-Tarife'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('config'))
					
					&& \TablesRouter\Userconfig::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Userconfig::indexURL()); ?>"><?php echo(_('config')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Beitrag'))
					
					&& \TablesRouter\MitgliedBuchung::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\MitgliedBuchung::indexURL()); ?>"><?php echo(_('Beitrag')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Geld-Sammlung'))
					
					&& \TablesRouter\Sammlung::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Sammlung::indexURL()); ?>"><?php echo(_('Geld-Sammlung')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Sammlungs-Mitglied'))
					
					&& \TablesRouter\SammlungMitglied::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\SammlungMitglied::indexURL()); ?>"><?php echo(_('Sammlungs-Mitglied')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Gruppenverantwortlicher'))
					
					&& \TablesRouter\GruppeVerantwortlich::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\GruppeVerantwortlich::indexURL()); ?>"><?php echo(_('Gruppenverantwortlicher')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Passnummer'))
					
					&& \TablesRouter\MitgliedPassnummer::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\MitgliedPassnummer::indexURL()); ?>"><?php echo(_('Passnummer')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Mitglied'))
					
					&& \TablesRouter\Mitglied::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Mitglied::indexURL()); ?>"><?php echo(_('Mitglied')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Kontaktperson'))
					
					&& \TablesRouter\Ansprechpartner::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Ansprechpartner::indexURL()); ?>"><?php echo(_('Kontaktperson')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Protokoll'))
					
					&& \TablesRouter\Protokoll::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Protokoll::indexURL()); ?>"><?php echo(_('Protokoll')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Protokoll-Punkt'))
					
					&& \TablesRouter\ProtokollPunkt::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\ProtokollPunkt::indexURL()); ?>"><?php echo(_('Protokoll-Punkt')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Protokoll-Vorlage'))
					
					&& \TablesRouter\ProtokollVorlage::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\ProtokollVorlage::indexURL()); ?>"><?php echo(_('Protokoll-Vorlage')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Beitrags-Tarif'))
					
					&& \TablesRouter\Tarif::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Tarif::indexURL()); ?>"><?php echo(_('Beitrags-Tarif')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Bank'))
					
					&& \TablesRouter\Fop_fints_bank::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_bank::indexURL()); ?>"><?php echo(_('Bank')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('SEPA-Datei'))
					
					&& \TablesRouter\Fop_fints_file::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_file::indexURL()); ?>"><?php echo(_('SEPA-Datei')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Bankkonto'))
					
					&& \TablesRouter\Fop_fints_konto::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_konto::indexURL()); ?>"><?php echo(_('Bankkonto')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Buchung'))
					
					&& \TablesRouter\Fop_fints_buchung::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_buchung::indexURL()); ?>"><?php echo(_('Buchung')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Aktion'))
					
					&& \TablesRouter\Campaign::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Campaign::indexURL()); ?>"><?php echo(_('Aktion')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Status|Aktion'))
					
					&& \TablesRouter\CampaignState::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\CampaignState::indexURL()); ?>"><?php echo(sprintf(_('%s-Status'), _('Aktion'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Follow-Up'))
					
					&& \TablesRouter\CampaignFollow::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\CampaignFollow::indexURL()); ?>"><?php echo(_('Follow-Up')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Einzelbrief'))
					
					&& \TablesRouter\Brief::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Brief::indexURL()); ?>"><?php echo(_('Einzelbrief')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('texttemplate'))
					
					&& \TablesRouter\BriefVorlage::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\BriefVorlage::indexURL()); ?>"><?php echo(_('texttemplate')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Dokument'))
					
					&& \TablesRouter\Doc::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Doc::indexURL()); ?>"><?php echo(_('Dokument')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('revision %s|Dokument'))
					
					&& \TablesRouter\Doc_revision::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Doc_revision::indexURL()); ?>"><?php echo(sprintf(_('revision %s'), _('Dokument'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('draft'))
					
					&& \TablesRouter\Fop_mail_host_box_draft::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_draft::indexURL()); ?>"><?php echo(_('draft')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Anhang'))
					
					&& \TablesRouter\Fop_mail_host_box_draft_attachment::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_draft_attachment::indexURL()); ?>"><?php echo(_('Anhang')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emailmailbox_singular'))
					
					&& \TablesRouter\Fop_mail_host_box::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box::indexURL()); ?>"><?php echo(_('emailmailbox_singular')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emaildirectory_singular'))
					
					&& \TablesRouter\Fop_mail_host_box_dir::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir::indexURL()); ?>"><?php echo(_('emaildirectory_singular')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Email'))
					
					&& \TablesRouter\Fop_mail_host_box_dir_email::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir_email::indexURL()); ?>"><?php echo(_('Email')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emaildirectorythread_singular'))
					
					&& \TablesRouter\Fop_mail_host_box_dir_email_thread::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir_email_thread::indexURL()); ?>"><?php echo(_('emaildirectorythread_singular')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('attachment'))
					
					&& \TablesRouter\Fop_mail_host_box_dir_email_attachment::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_dir_email_attachment::indexURL()); ?>"><?php echo(_('attachment')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Freigabe'))
					
					&& \TablesRouter\Fop_mail_host_box_share::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_share::indexURL()); ?>"><?php echo(_('Freigabe')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emailhost'))
					
					&& \TablesRouter\Fop_mail_host::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host::indexURL()); ?>"><?php echo(_('emailhost')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Ereignis|Aufgabe'))
					
					&& \TablesRouter\AufgabeEvent::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeEvent::indexURL()); ?>"><?php echo(sprintf(_('%s-Ereignis'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Aufgabe'))
					
					&& \TablesRouter\Aufgabe::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Aufgabe::indexURL()); ?>"><?php echo(_('Aufgabe')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Chat-Nachricht'))
					
					&& \TablesRouter\Fop_chat::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_chat::indexURL()); ?>"><?php echo(_('Chat-Nachricht')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Datei-Anhang'))
					
					&& \TablesRouter\AufgabeAnhang::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeAnhang::indexURL()); ?>"><?php echo(_('Datei-Anhang')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Gruppe'))
					
					&& \TablesRouter\Gruppe::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Gruppe::indexURL()); ?>"><?php echo(_('Gruppe')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Gruppenmitglied'))
					
					&& \TablesRouter\GruppeItem::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\GruppeItem::indexURL()); ?>"><?php echo(_('Gruppenmitglied')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Eigenschaft'))
					
					&& \TablesRouter\AufgabeProperty::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeProperty::indexURL()); ?>"><?php echo(_('Eigenschaft')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Kategorie'))
					
					&& \TablesRouter\DocType::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\DocType::indexURL()); ?>"><?php echo(_('Kategorie')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Typ|Aufgabe'))
					
					&& \TablesRouter\AufgabeType::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeType::indexURL()); ?>"><?php echo(sprintf(_('%s-Typ'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Zustand|Aufgabe'))
					
					&& \TablesRouter\AufgabeState::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabeState::indexURL()); ?>"><?php echo(sprintf(_('%s-Zustand'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Eigenschaft|Aufgabe'))
					
					&& \TablesRouter\AufgabePropertyType::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\AufgabePropertyType::indexURL()); ?>"><?php echo(sprintf(_('%s-Eigenschaft'), _('Aufgabe'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Anhang'))
					
					&& \TablesRouter\CampaignAttachment::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\CampaignAttachment::indexURL()); ?>"><?php echo(_('Anhang')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('versions of %s|Mitglied'))
					
					&& \TablesRouter\MitgliedDynamicMonthyear::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\MitgliedDynamicMonthyear::indexURL()); ?>"><?php echo(sprintf(_('versions of %s'), _('Mitglied'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('versions of %s|Beitrags-Tarif'))
					
					&& \TablesRouter\TarifDynamicMonthyear::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\TarifDynamicMonthyear::indexURL()); ?>"><?php echo(sprintf(_('versions of %s'), _('Beitrags-Tarif'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('KI'))
					
					&& \FOPRouter\Index::aiAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\FOPRouter\Index::aiURL()); ?>"><?php echo(_('KI')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Geburtstage'))
					
					&& \DataViewRouter\ReminderMitgliedMitglied_gebtag::viewAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\DataViewRouter\ReminderMitgliedMitglied_gebtag::viewURL()); ?>"><?php echo(_('Geburtstage')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('SEPA-Lastschrift'))
					
					&& \TablesRouter\Mitglied::payoutAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Mitglied::payoutURL()); ?>"><?php echo(_('SEPA-Lastschrift')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('create %s|emailmailbox_singular'))
					
					&& \TablesRouter\Fop_mail_host_box::createAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box::createURL()); ?>"><?php echo(sprintf(_('create %s'), _('emailmailbox_singular'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('sendmail'))
					
					&& \TablesRouter\Fop_mail_host_box_draft::createAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_draft::createURL()); ?>"><?php echo(_('sendmail')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Aufgaben'))
					
					&& \TablesRouter\Aufgabe::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Aufgabe::indexURL()); ?>"><?php echo(_('Aufgaben')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Bankkonten'))
					
					&& \TablesRouter\Fop_fints_konto::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_fints_konto::indexURL()); ?>"><?php echo(_('Bankkonten')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Rundmails / Aktionen'))
					
					&& \TablesRouter\Campaign::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Campaign::indexURL()); ?>"><?php echo(_('Rundmails / Aktionen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('%s-Status|Rundmails / Aktionen'))
					
					&& \TablesRouter\CampaignState::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\CampaignState::indexURL()); ?>"><?php echo(sprintf(_('%s-Status'), _('Rundmails / Aktionen'))); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('texttemplates'))
					
					&& \TablesRouter\BriefVorlage::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\BriefVorlage::indexURL()); ?>"><?php echo(_('texttemplates')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Einzelbriefe'))
					
					&& \TablesRouter\Brief::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Brief::indexURL()); ?>"><?php echo(_('Einzelbriefe')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Dokumente'))
					
					&& \TablesRouter\Doc::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Doc::indexURL()); ?>"><?php echo(_('Dokumente')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Geld-Sammlungen'))
					
					&& \TablesRouter\Sammlung::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Sammlung::indexURL()); ?>"><?php echo(_('Geld-Sammlungen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Gruppen'))
					
					&& \TablesRouter\Gruppe::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Gruppe::indexURL()); ?>"><?php echo(_('Gruppen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Chat-Nachrichten'))
					
					&& \TablesRouter\Fop_chat::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_chat::indexURL()); ?>"><?php echo(_('Chat-Nachrichten')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Freigaben'))
					
					&& \TablesRouter\Fop_mail_host_box_share::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_share::indexURL()); ?>"><?php echo(_('Freigaben')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Passnummern'))
					
					&& \TablesRouter\MitgliedPassnummer::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\MitgliedPassnummer::indexURL()); ?>"><?php echo(_('Passnummern')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Mitglieder'))
					
					&& \TablesRouter\Mitglied::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Mitglied::indexURL()); ?>"><?php echo(_('Mitglieder')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Kontaktpersonen'))
					
					&& \TablesRouter\Ansprechpartner::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Ansprechpartner::indexURL()); ?>"><?php echo(_('Kontaktpersonen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Protokolle'))
					
					&& \TablesRouter\Protokoll::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Protokoll::indexURL()); ?>"><?php echo(_('Protokolle')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Protokoll-Vorlagen'))
					
					&& \TablesRouter\ProtokollVorlage::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\ProtokollVorlage::indexURL()); ?>"><?php echo(_('Protokoll-Vorlagen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Beitrags-Tarife'))
					
					&& \TablesRouter\Tarif::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Tarif::indexURL()); ?>"><?php echo(_('Beitrags-Tarife')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('drafts'))
					
					&& \TablesRouter\Fop_mail_host_box_draft::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host_box_draft::indexURL()); ?>"><?php echo(_('drafts')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('emailhosts'))
					
					&& \TablesRouter\Fop_mail_host::indexAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Fop_mail_host::indexURL()); ?>"><?php echo(_('emailhosts')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('logout'))
					
					&& \FOPRouter\Login::logoutAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\FOPRouter\Login::logoutURL()); ?>"><?php echo(_('logout')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('user profile'))
					
					&& \TablesRouter\Mitglied::viewAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Mitglied::viewURL()); ?>"><?php echo(_('user profile')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('config'))
					
					&& \TablesRouter\Userconfig::view1Access()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Userconfig::view1URL()); ?>"><?php echo(_('config')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Offene Beiträge'))
					
					&& \DataViewRouter\ReminderMitgliedForderungen::viewAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\DataViewRouter\ReminderMitgliedForderungen::viewURL()); ?>"><?php echo(_('Offene Beiträge')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('unbehandelte Zahlungseingänge'))
					
					&& \DataViewRouter\ReminderFop_fints_buchungForderungen::viewAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\DataViewRouter\ReminderFop_fints_buchungForderungen::viewURL()); ?>"><?php echo(_('unbehandelte Zahlungseingänge')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('gemeldete Chat-Nachrichten'))
					
					&& \DataViewRouter\Fop_chat__chatflow::viewAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\DataViewRouter\Fop_chat__chatflow::viewURL()); ?>"><?php echo(_('gemeldete Chat-Nachrichten')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Benachrichtigungen...'))
					
					&& \TablesRouter\Mitglied::editNotificationSettingsAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Mitglied::editNotificationSettingsURL()); ?>"><?php echo(_('Benachrichtigungen...')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Mir zugewiesen'))
					
					&& \DataViewRouter\ReminderAufgabeAssigned::viewAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\DataViewRouter\ReminderAufgabeAssigned::viewURL()); ?>"><?php echo(_('Mir zugewiesen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('Nicht zugewiesen'))
					
					&& \DataViewRouter\ReminderAufgabeNot_assigned::viewAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\DataViewRouter\ReminderAufgabeNot_assigned::viewURL()); ?>"><?php echo(_('Nicht zugewiesen')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('changepw'))
					
					&& \TablesRouter\Mitglied::changepwAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\TablesRouter\Mitglied::changepwURL()); ?>"><?php echo(_('changepw')); ?></a></li><?php
				}if (preg_match('/' . preg_quote($q, '/') . '/i', _('login'))
					
					&& \FOPRouter\Login::loginFormAccess()
				) {
					if (!$foundPage) {
						// erster Treffer: Überschrift rendern
						?><h2>Programmfunktionen</h2>
							<ul><?php
						$foundPage = true;
					}
					?><li><a href="<?php echo htmlentities(\FOPRouter\Login::loginFormURL()); ?>"><?php echo(_('login')); ?></a></li><?php
				}
		if ($foundPage) echo '</ul>';

			
				$_GET['search_campaign'] = $q;
				if (\DataView\Campaign::getData('', $_GET)['itemcount'] > 0) {
					$foundPage = true;
					?><h2><?php echo(_('Rundmails / Aktionen')); ?></h2><?php
					\DataView\Campaign::renderScript();
					echo '<div id="campaign-table">';
					\DataView\Campaign::renderTabTableAction(); // gleichnamigen DataView rendern mit Suche; TODO: CardFormFeatureDataview mit Conditions
					echo '</div>';
				}
			
				$_GET['search_gruppe'] = $q;
				if (\DataView\Gruppe::getData('', $_GET)['itemcount'] > 0) {
					$foundPage = true;
					?><h2><?php echo(_('Gruppen')); ?></h2><?php
					\DataView\Gruppe::renderScript();
					echo '<div id="gruppe-table">';
					\DataView\Gruppe::renderTabTableAction(); // gleichnamigen DataView rendern mit Suche; TODO: CardFormFeatureDataview mit Conditions
					echo '</div>';
				}
			
				$_GET['search_mitglied'] = $q;
				if (\DataView\Mitglied::getData('', $_GET)['itemcount'] > 0) {
					$foundPage = true;
					?><h2><?php echo(_('Mitglieder')); ?></h2><?php
					\DataView\Mitglied::renderScript();
					echo '<div id="mitglied-table">';
					\DataView\Mitglied::renderTabTableAction(); // gleichnamigen DataView rendern mit Suche; TODO: CardFormFeatureDataview mit Conditions
					echo '</div>';
				}
			
				$_GET['search_aufgabeEvent'] = $q;
				if (\DataView\AufgabeEvent::getData('', $_GET)['itemcount'] > 0) {
					$foundPage = true;
					?><h2><?php echo(sprintf(_('%s-Ereignisse'), _('Aufgabe'))); ?></h2><?php
					\DataView\AufgabeEvent::renderScript();
					echo '<div id="aufgabeEvent-table">';
					\DataView\AufgabeEvent::renderTabTableAction(); // gleichnamigen DataView rendern mit Suche; TODO: CardFormFeatureDataview mit Conditions
					echo '</div>';
				}
			
				$_GET['search_aufgabe'] = $q;
				if (\DataView\Aufgabe::getData('', $_GET)['itemcount'] > 0) {
					$foundPage = true;
					?><h2><?php echo(_('Aufgaben')); ?></h2><?php
					\DataView\Aufgabe::renderScript();
					echo '<div id="aufgabe-table">';
					\DataView\Aufgabe::renderTabTableAction(); // gleichnamigen DataView rendern mit Suche; TODO: CardFormFeatureDataview mit Conditions
					echo '</div>';
				}
			
		
		if (!$foundPage) {
			echo '<h2>kein Ergebnis für ' . htmlentities($q) . '</h2>';
		}
	}
	?>
							</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 setCFFOrderAction($form, $fids) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		//Hilfsfunktion
		$saveCFFOrder = function ($subid, $order) use ($form) {
			\FOP\Database::query('INSERT INTO fop_form_feature('.qi('user').', form, subid, '.qi('key').', '.qi('value').') VALUES (
				' . \FOP\Database::quote(\FOP\User::getID()) . ',
				' . \FOP\Database::quote($form) . ',
				' . \FOP\Database::quote($subid) . ',
				"order",
				' . \FOP\Database::quote($order) . ')');
		};

		$fids = json_decode($fids);
		\FOP\Database::beginTransaction();

		// bisherige Daten löschen
		\FOP\Database::query('DELETE FROM fop_form_feature WHERE '.qi('user').' = ' . \FOP\Database::quote(\FOP\User::getID()) . ' AND 
			form = ' . \FOP\Database::quote($form) . ' AND
			'.qi('key').' = "order"');

		// Fixe CardFormFeatures abtrennen
		$alle_fix = array(['form' => 'fop_ai', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'importDynamicmitglied-Import', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'recovery_form', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'recovery_form2', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'login-form', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'index', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'payout', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitglied:assignIban', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_file:sendSepa', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:selectTanMode', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:tanerror', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:activate', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:tan', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignTarget:multistatus', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignTarget:multistatus2', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignTarget:multiadd', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc:fastupload', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc:merge', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft:answer', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft:forward', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabe:assign', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_chat:chatflow', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc:archive', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaign:clone', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:brief:copy', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeItem:multiadd', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedBuchung:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlung:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlungMitglied:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeVerantwortlich:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedPassnummer:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitglied:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:ansprechpartner:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokoll:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollPunkt:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollVorlage:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarif:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_bank:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_file:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_tanMode:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_buchung:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaign:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignState:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignTarget:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignFollow:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:brief:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:briefVorlage:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc_revision:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_share:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeEvent:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabe:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_chat:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeAnhang:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppe:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeItem:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedBuchung:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlung:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlungMitglied:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeVerantwortlich:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedPassnummer:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitglied:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:ansprechpartner:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokoll:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollPunkt:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollVorlage:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarif:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_bank:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_file:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_tanMode:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_buchung:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaign:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignState:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignTarget:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignFollow:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:brief:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:briefVorlage:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc_revision:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_share:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeEvent:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabe:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_chat:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeAnhang:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppe:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeItem:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitglied:editNotificationSettings', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'changepw', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'mitgliedBuchung', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'sammlung', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'sammlungMitglied', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'gruppeVerantwortlich', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'mitgliedPassnummer', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'mitglied', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'ansprechpartner', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'protokoll', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'protokollPunkt', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'protokollVorlage', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'tarif', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_fints_bank', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_fints_file', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_fints_konto', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_fints_tanMode', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_fints_buchung', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'campaign', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'campaignState', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'campaignTarget', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'campaignFollow', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'brief', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'briefVorlage', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'doc', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'doc_revision', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_draft', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_draft_recipient', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_draft_attachment', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_dir', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_dir_email', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_dir_email_thread', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_dir_email_recipient', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_dir_email_attachment', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host_box_share', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_mail_host', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabeEvent', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabe', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_chat', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabeAnhang', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'gruppe', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'gruppeItem', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabeProperty', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'docType', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabeType', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabeState', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabePropertyDropdown', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'aufgabePropertyType', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'reminderMitgliedMitglied-gebtag', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'reminderMitgliedForderungen', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'reminderFop_fints_buchungForderungen', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'fop_chat__chatflow', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaign:singleMail', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppe:lifecycleEnd', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeItem:lifecycleEnd', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitglied:lifecycleEnd', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignAttachment:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedDynamicMonthyear:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarifDynamicMonthyear:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeProperty:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:docType:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeType:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeState:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyDropdown:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyType:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedBuchung:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlung:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlungMitglied:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeVerantwortlich:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedPassnummer:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitglied:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:ansprechpartner:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokoll:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollPunkt:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollVorlage:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarif:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_bank:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_file:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_tanMode:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_buchung:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaign:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignState:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignTarget:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignFollow:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:brief:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:briefVorlage:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc_revision:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_share:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeEvent:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabe:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_chat:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeAnhang:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppe:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeItem:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeProperty:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:docType:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeType:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeState:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyDropdown:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyType:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedBuchung:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlung:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:sammlungMitglied:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeVerantwortlich:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedPassnummer:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitglied:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:ansprechpartner:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokoll:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollPunkt:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:protokollVorlage:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarif:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_bank:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_file:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_konto:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_tanMode:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_buchung:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaign:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignState:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignTarget:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignFollow:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:brief:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:briefVorlage:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:doc_revision:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host_box_share:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_mail_host:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeEvent:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabe:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_chat:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeAnhang:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppe:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:gruppeItem:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeProperty:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:docType:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeType:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeState:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyDropdown:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyType:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignAttachment:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedDynamicMonthyear:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarifDynamicMonthyear:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeProperty:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:docType:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeType:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabeState:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyDropdown:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:aufgabePropertyType:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'campaignAttachment', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'mitgliedDynamicMonthyear', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'tarifDynamicMonthyear', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'userconfig', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'reminderAufgabeAssigned', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'reminderAufgabeNot_assigned', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:userconfig:deleteConfirm', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignAttachment:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedDynamicMonthyear:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarifDynamicMonthyear:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:userconfig:create', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:campaignAttachment:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:mitgliedDynamicMonthyear:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:tarifDynamicMonthyear:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:userconfig:edit', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:userconfig:view', 'feature' => 'buttons', 'order' => '300'],
			['form' => 'wf:fop_fints_file:sendSepa', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:selectTanMode', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:tanerror', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:activate', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedBuchung:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlung:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlungMitglied:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeVerantwortlich:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedPassnummer:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitglied:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:ansprechpartner:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokoll:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollPunkt:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollVorlage:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarif:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_bank:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_file:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_tanMode:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_buchung:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaign:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignState:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignTarget:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignFollow:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:brief:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:briefVorlage:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc_revision:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_share:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeEvent:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabe:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_chat:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeAnhang:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppe:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeItem:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignAttachment:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedDynamicMonthyear:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarifDynamicMonthyear:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeProperty:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:docType:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeType:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeState:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyDropdown:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyType:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:userconfig:deleteConfirm', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_file:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft:forward', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignTarget:multiadd', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeItem:multiadd', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignTarget:multistatus', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignTarget:multistatus2', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabe:assign', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc:archive', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaign:clone', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaign:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft:answer', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabe:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaign:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabe:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppe:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitglied:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokoll:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyType:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppe:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitglied:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokoll:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyType:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppe:lifecycleEnd', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeItem:lifecycleEnd', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitglied:lifecycleEnd', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlung:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlung:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeType:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeType:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'fop_ai', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaign:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:tan', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_chat:chatflow', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedBuchung:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlung:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlungMitglied:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitglied:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:ansprechpartner:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokoll:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollPunkt:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollVorlage:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_tanMode:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_buchung:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignState:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignFollow:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:brief:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:briefVorlage:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc_revision:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_share:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeEvent:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabe:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_chat:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeAnhang:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppe:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedPassnummer:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarif:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_bank:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignTarget:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeItem:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignAttachment:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedDynamicMonthyear:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarifDynamicMonthyear:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeProperty:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:docType:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeType:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeState:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyDropdown:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyType:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:userconfig:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'recovery_form', 'feature' => 'main', 'order' => '100'],
			['form' => 'recovery_form2', 'feature' => 'main', 'order' => '100'],
			['form' => 'login-form', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitglied:assignIban', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc:fastupload', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitglied:editNotificationSettings', 'feature' => 'main', 'order' => '100'],
			['form' => 'changepw', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:brief:copy', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaign:singleMail', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarif:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarif:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedBuchung:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlungMitglied:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedPassnummer:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:ansprechpartner:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollPunkt:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollVorlage:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_bank:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_file:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_tanMode:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_buchung:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignState:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignTarget:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignFollow:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:brief:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:briefVorlage:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc_revision:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_share:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeEvent:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_chat:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeAnhang:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeItem:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeProperty:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:docType:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeState:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyDropdown:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedBuchung:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:sammlungMitglied:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedPassnummer:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:ansprechpartner:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollPunkt:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:protokollVorlage:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_bank:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_file:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_konto:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_tanMode:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_fints_buchung:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignState:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignTarget:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignFollow:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:brief:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:briefVorlage:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:doc_revision:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_recipient:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_draft_attachment:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_thread:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_recipient:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_dir_email_attachment:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host_box_share:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_mail_host:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeEvent:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:fop_chat:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeAnhang:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeItem:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeProperty:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:docType:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabeState:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:aufgabePropertyDropdown:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignAttachment:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedDynamicMonthyear:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarifDynamicMonthyear:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:userconfig:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:campaignAttachment:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:mitgliedDynamicMonthyear:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:tarifDynamicMonthyear:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:userconfig:edit', 'feature' => 'main', 'order' => '100'],
			['form' => 'fop_mail_host_box_dir_email', 'feature' => 'main', 'order' => '500'],
			['form' => 'wf:doc:merge', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeVerantwortlich:view', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeVerantwortlich:create', 'feature' => 'main', 'order' => '100'],
			['form' => 'wf:gruppeVerantwortlich:edit', 'feature' => 'main', 'order' => '100']);
		$fix = array_filter($alle_fix, function($fix) use ($form, $fids) { return $fix['form'] == $form && in_array($fix['feature'], $fids); });
		$fixfeatures = array_column($fix, 'feature');
		$fixorders = array_column($fix, 'order');
		sort($fixorders, SORT_NATURAL);
		$fids_fix = array_intersect($fids, $fixfeatures);	// Reihenfolge bleibt wie in $fids
		$orders = array_combine($fids_fix, $fixorders);
		// $orders ist jetzt ein array der Fixpunkte, geordnet nach order, Format fid => order

		// alle weiteren Feature-IDs werden interpoliert zwischen (0, fixorder_0), (fixorder_a, fixorder_b), oder (fixorder_n, 1000)
		$fids_flex = [];
		reset($fids_fix);
		$lastorder = 0;
		foreach ($fids as $fid) {
			if ($fid == current($fids_fix)) {
				// Fixpunkt erreicht => bisherige interpolieren und einfügen
				// Zahl vom Anfang des Fixorder-Strings extrahieren
				$currentorder = intval(substr($orders[current($fids_fix)], 0, strspn($orders[current($fids_fix)], '0123456789')));
				$step = ($currentorder - $lastorder) / (count($fids_flex) + 1);
				for ($i = 0; $i < count($fids_flex); $i++) {
					// linear interpolierte order speichern
					$saveCFFOrder($fids_flex[$i], strval(round($lastorder + ($i+1)*$step)));
				}
				$fids_flex = [];
				// fixorder speichern
				$saveCFFOrder(current($fids_fix), $orders[current($fids_fix)]);
				$lastorder = $currentorder;
				next($fids_fix);
			} else {
				// flexible fid => merken bis nächster Fixpunkt erreicht
				$fids_flex[] = $fid;
			}
		}
		// alle, die nach der letzten fixen CardFormFeature kommen
		$step = (1000-$lastorder) / (count($fids_flex) + 1);
		for ($i = 0; $i < count($fids_flex); $i++)
			$saveCFFOrder($fids_flex[$i], strval(round($lastorder + ($i+1)*$step)));

		\FOP\Database::commitTransaction();
	
    
  }

  public static function setCFFAction($form, $subid, $key, $value) { 
    
    
    // --- BLOCK: access ---
    
    // --- BLOCK: main ---
    
		if ($key == 'reset') {
			\FOP\Database::query('DELETE FROM fop_form_feature WHERE
				form = ' . \FOP\Database::quote($form) . ' AND
				'.qi('user').' = ' . \FOP\Database::quote(\FOP\User::getID()));
			return;
		}
		if ($key != 'mode' && $key != 'position' && $key != 'collapsed' && $key != 'order') return;
		if (!\FOP\User::getIsGuest()) {
			// Wert schon vorhanden:
			$c = intval(\FOP\Database::query('SELECT COUNT(*) FROM fop_form_feature WHERE '.qi('user').' = ' . \FOP\Database::quote(\FOP\User::getID()) . ' AND 
				form = ' . \FOP\Database::quote($form) . ' AND
				subid = ' . \FOP\Database::quote($subid) . ' AND
				'.qi('key').' = ' . \FOP\Database::quote($key))->fetchColumn());
			if ($c > 0) {
				// Update
				$q = \FOP\Database::query('UPDATE fop_form_feature SET value = ' . \FOP\Database::quote($value) . ' WHERE
				form = ' . \FOP\Database::quote($form) . ' AND
				subid = ' . \FOP\Database::quote($subid) . ' AND
				'.qi('key').' = ' . \FOP\Database::quote($key) . ' AND
				'.qi('user').' = ' . \FOP\Database::quote(\FOP\User::getID()));
			} else {
				// insert
				\FOP\Database::query('INSERT INTO fop_form_feature('.qi('user').', form, subid, '.qi('key').', '.qi('value').') VALUES (
					' . \FOP\Database::quote(\FOP\User::getID()) . ',
					' . \FOP\Database::quote($form) . ',
					' . \FOP\Database::quote($subid) . ',
					' . \FOP\Database::quote($key) . ',
					' . \FOP\Database::quote($value) . ')');
			}
		}
	
    
  }

  public static function ImpressumAction() { 
    
    
    // --- BLOCK: 100-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(_('Impressum')); ?></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(_('Impressum')); ?></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(_('Impressum')); ?></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="100-main"><?php echo \FOP\Util::sanitizeUserHTML(\FOP\Index::getImpressum()); ?>
							</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
    // --- BLOCK: access ---
    
    
  }


  
  

  
  
}



