<?php
if(intval($_GET['debug']??0)==230578){
 @error_reporting(E_ALL);
 @ini_set("display_errors", 1);
}

define('FUPO_PAGE' , true);
define('LOAD_START', microtime(true)); //--- Ladezeitberechnung!

/***** Config Laden *********************/
@include(__DIR__.'/_config/main.php');
@header('red-alarm-level: '.$_CONFIG['PAGE_URL'].'/borg.php');

//--- Globale Klassen laden!
@include($_CONFIG['CLASSES_PATH'].'/errorhandler.php');
@include($_CONFIG['CLASSES_PATH'].'/mysql.php');
@include($_CONFIG['CLASSES_PATH'].'/sanitize.php');
@include($_CONFIG['CLASSES_PATH'].'/divers.php');
@include($_CONFIG['CLASSES_PATH'].'/account.php');
@include($_CONFIG['CLASSES_PATH'].'/users.php');
@include($_CONFIG['CLASSES_PATH'].'/notify.php');
@include($_CONFIG['CLASSES_PATH'].'/language.php');
@include($_CONFIG['CLASSES_PATH'].'/crypt.php');

//--- Page-Klassen laden!
@include($_CONFIG['DOMAIN_CLASSES_PATH'].'/pageload.php');
@include($_CONFIG['DOMAIN_CLASSES_PATH'].'/dialoge.php');

//--- Klassen initialisieren!
$_MYSQL    = new mySQLDB();
if($_MYSQL->isOpen()!==true){
 header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
 die('500 Internal Server Error [E:118]');
}

$_SANITIZE = new Sanitizer();
$_PGFUNC   = new Funktionen();
$_ERRORS   = new ErrorHandler($_MYSQL);
$_PGLOAD   = new Pageload($_MYSQL);
$_DIALOGE  = new Dialoge();
$_PGLANG   = new Languages($_MYSQL);
$_USERS    = new Users($_MYSQL);
$_CRYPT    = new Crypter();
$_NOTIFY   = new Notification($_MYSQL);
$_ACCNT    = new Accounting($_MYSQL);

$_PGLOAD->setDark($_ACCNT->getDark());
$_PGLOAD->setLanguage($_ACCNT->getLanguage());

//--- Sprache einstellen!
$_PGLANG->load($_ACCNT->getLanguage());

//--- Page-Content verarbeiten!!
//$_PGLOAD->runPageFile(); <--- Erst aktivieren wenn Umstellung auf Klassen komplett abgeschlossen!!

$_PGLOAD->addHeaderCSS($_CONFIG['STATIC_URL'].'/lightbox/css/lightbox.min.css');
$_PGLOAD->addFooterJS($_CONFIG['STATIC_URL'].'/lightbox/js/lightbox.min.js');

//---- ALT -----
@include($_CONFIG['LANGUAGE_PATH'].'/de_DE.inc');
@include($_CONFIG['INCLUDE_PATH'].'/page_language.php');
@include($_CONFIG['INCLUDE_PATH'].'/pageloader.php');
@include($_CONFIG['INCLUDE_PATH'].'/jsPacker.php');

if($_PGLOAD->getNEU()!==true){
 $_PGLOAD->setNavi($_PAGE['NAVI']);
 $_PGLOAD->setTitel($_PAGE['TITEL']);
 $_PGLOAD->setSubtitel($_PAGE['SUBTITEL']);
 $_PGLOAD->setOGImage($_PAGE['OGIMAGE']);
 $_PGLOAD->setOGDescr($_PAGE['OGDESCR']);
 $_PGLOAD->setOGTitel($_PAGE['OGTITEL']);
 $_PGLOAD->setNoShare($_PAGE['NO_SHARE']);

 foreach($_PAGE['BREADCRUMB']      as $pBr){ $_PGLOAD->addBreadcrumb($pBr); }
 foreach($_PAGE['HEADER']['CSS']   as $hCs){ $_PGLOAD->addHeaderCSS($hCs); }
 foreach($_PAGE['HEADER']['STYLE'] as $hSt){ $_PGLOAD->addHeaderSTYLE($hSt); }
 foreach($_PAGE['HEADER']['JS']    as $hJs){ $_PGLOAD->addHeaderJS($hJs); }
 foreach($_PAGE['FOOTER']['JS']    as $fJs){ $_PGLOAD->addFooterJS($fJs); }

}
$_PGLOAD->setContent($_PAGE['CONTENT']);
//--- ENDE ALT ---

header("Content-Language: ".$_PGLOAD->getLanguage());
?>
<!DOCTYPE html>
<html lang="<?php echo $_PGLOAD->getLanguage(); ?>">
<head>
 <!-- Meta Tags -->
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="apple-mobile-web-app-capable" content="yes">
 <meta name="mobile-web-app-capable" content="yes">
 <meta name="apple-mobile-web-app-status-bar-style" content="default">
 <link rel="manifest" href="<?php echo $_CONFIG['PAGE_URL'].'/manifest.json' ?>">
 <!-- Languages -->
 <meta http-equiv="content-language" content="<?php echo $_PGLOAD->getLanguage(); ?>">
 <link rel="alternate" hreflang="x-default" href="<?php echo $_PGLOAD->generateMetaLangUri('de', true); ?>">
<?php
 foreach($_CONFIG['LANG_SELECT'] as $ID=>$NA){
  echo " <link rel=\"alternate\" hreflang=\"".strToLower($ID)."\" href=\"".$_PGLOAD->generateMetaLangUri($ID, false)."\">\n";
 }
?>
 <!-- OpenGraph -->
 <meta property="og:url" content="<?php echo $_CONFIG['PAGE_URL'].$_PGLOAD->getPageViewURL() /* $_CONFIG['PAGE_VIEW_URL']*/ ?>">
 <meta property="og:title" content="<?php echo $_PGLOAD->getOGTitel() ?>">
 <meta property="og:description" content="<?php echo $_PGLOAD->getOGDescr() ?>">
 <meta property="og:image" content="<?php echo $_PGLOAD->getOGImage() ?>">
 <!-- Meta -->
 <meta name="description" content="<?php echo $_PGLOAD->getSubtitel() ?>">
 <meta name="author" content="<?php echo $_CONFIG['PAGE_NAME'] ?>">
 <meta name="theme-color" content="#2d353e">
 <!-- Favicon -->
 <link rel="shortcut icon" type="image/x-icon" href="<?php echo $_CONFIG['PAGE_URL'] ?>/favicon.ico">
 <link rel="icon" type="image/png" href="<?php echo $_CONFIG['PAGE_URL'] ?>/favicon.png" sizes="64x64">
 <!-- Page Titel -->
 <title><?php echo $_PGLOAD->getTitel().' | '.$_CONFIG['PAGE_NAME'] ?></title>
 <!-- FunkerPortal CSS -->
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/css/funkerportal.css" media="all" preload>
<?php
 if($_PGLOAD->isDark()===true){
  //=== Darkmode aktivieren ===;
  echo ' <link rel="stylesheet" href="'.$_CONFIG['STATIC_URL'].'/css/fupo.dark.css" media="all" preload>';
  echo "\n";
 }
?>
 <!-- diverse CSS-Dateien -->
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/fontawesome-free/css/all.min.css" media="all" preload>
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/editor/css/third_party/font-awesome47.min.css" media="all" preload>
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/ionicons/css/ionicons.min.css" media="all" preload>
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/css/animate.min.css" media="all" preload>
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/css/rippler.min.css" media="all" preload>
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/css/jquery.toast.min.css" media="all" preload>
 <link rel="stylesheet" href="<?php echo $_CONFIG['STATIC_URL'] ?>/confirm/confirm.min.css" media="all" preload>
<?php
 if(count($_PGLOAD->getHeaderCSS())>0){
  echo " <!-- dynamische CSS-Dateien -->\n";
  foreach($_PGLOAD->getHeaderCSS() as $CSS){
   echo " <link rel=\"stylesheet\" href=\"".$CSS."\" media=\"all\" preload>\n";
  }
 }

 if(@count($_PGLOAD->getHeaderSTYLE())>0){
  echo " <!-- inline CSS -->\n <style>\n";
  foreach($_PGLOAD->getHeaderSTYLE() as $STYLE){
   echo "  ".$STYLE."\n";
  }
  echo " </style>\n";
 }

 echo "\n <!-- Javascript-Header -->\n <script type=\"text/javascript\" language=\"JavaScript\"><!-- \n  ".$_SANITIZE->packJS($_CONFIG['JS_HEADER'] )." --></script>\n";

 if(@count($_PGLOAD->getHeaderJS())>0){
  echo "\n<!-- dynamische Javascript-Dateien (c) -->\n";
  foreach($_PGLOAD->getHeaderJS() as $HJS){
   echo " <script src=\"".$HJS."\" async></script>\n";
  }
 }
?>
</head>
<body id="body" style="min-width:300px;">

<!-- PAGE-Header -->
 <?php echo $_SANITIZE->htmlMinifier($_PGLOAD->includePHPPage($_CONFIG['DOMAIN_INCLUDE_PATH'].'/pageheader.php')); ?>


<!-- PAGE-Content -->
<?php

echo $_SANITIZE->htmlMinifier($_PGLOAD->includePHPPage($_CONFIG['DOMAIN_INCLUDE_PATH'].'/contentheader.php'));

if($_PGLOAD->getNavi()!==false){
 if($_PGLOAD->getModNavFirst()===true){
  //--- Modul-Navigation als erstes.
  if(@is_file($_PGLOAD->getMODPath().'/'.$_PGLOAD->getMOD().'.nav')===true){ @include($_PGLOAD->getMODPath().'/'.$_PGLOAD->getMOD().'.nav'); }
  if(@is_file($_PGLOAD->getMODPath().'/general.nav')===true && $_PGLOAD->getGenNavShow()===true){ @include($_PGLOAD->getMODPath().'/general.nav'); }
 }else{
  //--- General-Navigation als erstes.
  if(@is_file($_PGLOAD->getMODPath().'/general.nav')===true && $_PGLOAD->getGenNavShow()===true){ @include($_PGLOAD->getMODPath().'/general.nav'); }
  if(@is_file($_PGLOAD->getMODPath().'/'.$_PGLOAD->getMOD().'.nav')===true){ @include($_PGLOAD->getMODPath().'/'.$_PGLOAD->getMOD().'.nav'); }
 }

//--- Alt -------------------------------------------------;
foreach($_PAGE['CNAV'] as $cNa){ $_PGLOAD->addCNav($cNa); }
//---------------------------------------------------------;

 echo "\n".$_SANITIZE->htmlMinifier(' <div id="maincont" class="content fupo-modal-blur">
  <div id="bkscroll" class="container pd-x-0 pd-lg-x-10 pd-xl-x-0 bksticky" style="display:none;margin-top:-22px;z-index:998;">
   <nav aria-label="breadcrumb"><ol class="breadcrumb breadcrumb-style2" style="margin:1px;margin-left:5px;">'.$_PGLOAD->makeBreadcrumb().'</ol></nav>
  </div>
  <div class="container pd-x-0 pd-lg-x-10 pd-xl-x-0">
   <div class="media d-block d-lg-flex">
    <div id="mainContentView" class="media-body animated fadeIn">
     '.(($_ACCNT->isLogin()===true && $_ACCNT->getTokenLT()<$_CONFIG['LOGIN_TOKEN_WARN'] && $_ACCNT->getDataValue('loginend', true)===true)?'<div id="loginwarn-alert" class="alert alert-warning" role="alert"><i class="fas fa-key mg-r-10"></i>'.$_PGLANG->getText(340, array($_ACCNT->getVorname(), $_PGFUNC->getMHDFromSeconds($_ACCNT->getTokenLT(), $_PGLANG))).' <a href="'.$_CONFIG['PAGE_URL'].'/_apis/logref.php?go='.base64_encode($_SERVER['REQUEST_URI']).'" target="_top" class="btn btn-outline-primary btn-xxs mg-l-20"><i class="fas fa-retweet mg-r-5"></i>'.$_PGLANG->getText(341).'</a><button class="btn btn-outline-danger btn-xxs mg-l-15" onClick="setLoginWarnMessage(0);return false;"><i class="far fa-eye-slash mg-r-5"></i>'.$_PGLANG->getText(343).'</button></div>':'').'
     '.makeUeberschrift($_PAGE['UEBERSCHRIFT']['TYP']??'',$_PAGE['UEBERSCHRIFT']['ICON']??'', $_PAGE['UEBERSCHRIFT']['TITEL']??'', $_PAGE['UEBERSCHRIFT']['TEXT']??'', $_PAGE['UEBERSCHRIFT']['TOOG']??'').'
     <!-- Content Start -->
     '.parseContent($_PGLOAD->getContent()).'
     <!-- Content Ende -->
    </div>
    <div id="cnavrh" class="noprint cnav-sidebar'.(($_PAGE['CNAV_WD']!==false)?'-'.$_PAGE['CNAV_WD']:'').' mg-t-40 mg-lg-t-0 pd-lg-l-25 stickynav">
     '.$_PGLOAD->makeCNavMenu().'
    </div>
   </div>
  </div>
 </div>
</div>');
}else{
 echo $_SANITIZE->htmlMinifier(' <div id="maincont" class="content fupo-modal-blur" style="min-height: calc(100vh - 300px);">
  <div id="bkscroll" class="container pd-x-0 pd-lg-x-10 pd-xl-x-0 bksticky" style="display:none;margin-top:-22px;z-index:998;">
   <nav aria-label="breadcrumb"><ol class="breadcrumb breadcrumb-style2" style="margin:1px;margin-left:5px;">'.$_PGLOAD->makeBreadcrumb().'</ol></nav>
  </div>
  <div class="container ht-100p" style="position:relative;min-height:inherit;">
   <div id="mainContentView" class="media-body animated fadeIn" style="min-height:inherit;">
    '.(($_ACCNT->isLogin()===true && $_ACCNT->getTokenLT()<$_CONFIG['LOGIN_TOKEN_WARN'] && $_ACCNT->getDataValue('loginend', true)===true)?'<div id="loginwarn-alert" class="alert alert-warning" role="alert"><i class="fas fa-key mg-r-10"></i>'.$_PGLANG->getText(340, array($_ACCNT->getVorname(), $_PGFUNC->getMHDFromSeconds($_ACCNT->getTokenLT(), $_PGLANG))).' <a href="'.$_CONFIG['PAGE_URL'].'/_apis/logref.php?go='.base64_encode($_SERVER['REQUEST_URI']).'" target="_top" class="btn btn-outline-primary btn-xxs mg-l-20"><i class="fas fa-retweet mg-r-5"></i>'.$_PGLANG->getText(341).'</a><button class="btn btn-outline-danger btn-xxs mg-l-15" onClick="setLoginWarnMessage(0);return false;"><i class="far fa-eye-slash mg-r-5"></i>'.$_PGLANG->getText(343).'</button></div>':'').'
    '.makeUeberschrift($_PAGE['UEBERSCHRIFT']['TYP'],$_PAGE['UEBERSCHRIFT']['ICON'], $_PAGE['UEBERSCHRIFT']['TITEL'], $_PAGE['UEBERSCHRIFT']['TEXT'], $_PAGE['UEBERSCHRIFT']['TOOG']).'
    <!-- Content Start -->
    '.parseContent($_PGLOAD->getContent()).'
    <!-- Content Ende -->
   </div>
  </div>
 </div>
</div>');
}

if($_ACCNT->isLogin()===true && $_ACCNT->getTokenLT()<$_CONFIG['LOGIN_TOKEN_WARN'] && $_ACCNT->getDataValue('loginend', true)===true){
 $_PGLOAD->addJavascript('
  function setLoginWarnMessage(_SET){
    $.confirm({
       icon: \'far fa-check-square\',
       title: \''.$_PGLANG->getText(275).'\',
       content: \'<p class="tx-warning tx-bold">'.$_PGLANG->getMessage(80).'</p>'.$_PGLANG->getMessage(81).'\',
       type: \'red\',
       animation: \'top\',
       closeAnimation: \'bottom\',
       buttons: {
        cancel: {
         text: \'<i class="fas fa-chevron-left mg-r-5"></i>'.$_PGLANG->getText(5).'\',
         btnClass: \'btn-outline-secondary\',
         action: function(){
          this.close();
         }
        },
        confirm: {
         text: \'<i class="far fa-eye-slash mg-r-5"></i>'.$_PGLANG->getText(343).'\',
         btnClass: \'btn-danger\',
         action: function(){
          $.ajax({
           url: \'./_apis/zugang/acmngr.php\',
           enctype: \'multipart/form-data\',
           type: \'POST\',
           dataType: \'json\',
           data: {\'action\':\'savelogwarn\', \'set\':_SET},
           success: function(data){
            if(data.STATE==true){
             $(\'#loginwarn-alert\').slideUp(200, function(){ $(\'#loginwarn-alert\').remove(); });
            }else{
             showToastInfo(\'error\', \''.$_PGLANG->getText(85).'\', \''.$_PGLANG->getMessage(14).'\', 4000);
            }
           },
           error: function(error){
            showToastInfo(\'error\', \''.$_PGLANG->getText(85).'\', \''.$_PGLANG->getMessage(14).'\', 4000);
           }
          });
         }
        }
       },

    });
  }');
}
?>


<!-- PAGE-Footer -->
<?php
echo $_SANITIZE->htmlMinifier($_PGLOAD->includePHPPage($_CONFIG['DOMAIN_INCLUDE_PATH'].'/pagefooter.php'));
//--- Weihnachtsdeko anzeigen! ------;
if(intval(date('n'))==12 && intval(date('j'))<=26){ echo $_SANITIZE->htmlMinifier($_PGLOAD->includePHPPage($_CONFIG['DOMAIN_INCLUDE_PATH'].'/xmasfooter.php')); }
//--- Halloween-Deko anzeigen! ------;
if(intval(date('n'))==10 && intval(date('j'))>=20){ echo $_SANITIZE->htmlMinifier($_PGLOAD->includePHPPage($_CONFIG['DOMAIN_INCLUDE_PATH'].'/halloweenfooter.php')); }
?>


<!-- Fixierte Anzeigeboxen -->
<div id="totopbtnbox" class="mb-0 mb-lg-5" style="display:none;position:fixed;bottom:10px;right:10px;width:50px;height:50px;"><a href="#top" data-toggle="tooltip" data-placement="left" title="Nach oben"><button type="button" class="btn btn-secondary btn-icon"><i class="fas fa-chevron-up fa-2x"></i></button></a></div>
<div id="alertbox" class="container pd-x-0 pd-lg-x-10 pd-xl-x-0" style="margin-top:2px;position:fixed;top:75px;left:0px;right:0px;z-index:1060;"></div>
<div id="toastbox" class="mb-0 mb-lg-5" style="position:fixed;top:80px;left:10px;min-width:280px;max-width:450px;"></div>

<!-- statische Javascript-Dateien -->
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/jquery/jquery.min.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/jquery/jquery.toast.min.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/confirm/confirm.min.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/feather-icons/feather.min.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/perfect-scrollbar/perfect-scrollbar.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/js/funkerportal.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/js-cookie/js.cookie.js"></script>
<script src="<?php echo $_CONFIG['STATIC_URL'] ?>/js/rippler.min.js"></script>
<?php
if($_ACCNT->isLogin()===true){
 //=== Logout-Dialog erstellen!! =====;
 $_ACCNT->setDataValue('letzt-action', time());
 $_DIALOGE->makeLogoutDLG($_PGLOAD, $_PGLANG, $_ACCNT, false);
}else{
 //=== Login-Dialog erstellen!! ======;
 $_DIALOGE->makeLoginDLG($_PGLOAD, $_PGLANG, $_ACCNT, false);
}

if(count($_PGLOAD->getFooterJS())>0){
 echo "\n<!-- dynamische Javascript-Dateien -->\n";
 foreach($_PGLOAD->getFooterJS() as $HJS){
  echo "<script src=\"".$HJS."\"></script>\n";
 }
}

//--- ALT -----------------;
if(@count($_PAGE['DIALOGE']) > 0){ foreach($_PAGE['DIALOGE'] as $DIALOG){ $_PGLOAD->addDialog($DIALOG); }}
//--- Ende ALT ------------;

if(count($_PGLOAD->getDialoge())>0){
 $_DLG = "\n<!-- BS-Modal - Dialoge -->\n";
 foreach($_PGLOAD->getDialoge() as $DIALOG){
  $_DLG .= $_SANITIZE->htmlMinifier($DIALOG)."\n";
 }
 echo $_DLG;
}



$_PAGE['JAVASCRIPT'][] = '
  var _isPageVisi = true;
  var _ISAJOP     = false;
  var _ALERTID    = 0;
  var _TOASTID    = 0;
  var _TOASTMP3   = new Audio(\''.$_CONFIG['STATIC_URL'].'/mp3/notisound-001.mp3\');

  //const ps = new PerfectScrollbar(\'#inhalt\');
  //$("#inhalt").niceScroll();

  function openLogInOutDLG(){
   '.(($_ACCOUNT['IsLogIn']!==true)?'$(\'#userLoginDLG\').modal(\'show\');':'$(\'#userLogoutDLG\').modal(\'show\');').'
  }

  function showAlertMSG(_TYP,_TEXT,_CLOSE,_ICON){
   _ALERTID++;
   var _ALIDENT = \'ALMSG-\'+_ALERTID;
   $(\'#alertbox\').prepend(\'<div id="\'+_ALIDENT+\'" class="h6 alert alert-fupo alert-\'+_TYP+\' alert-dismissible fade show" role="alert"><i class="\'+_ICON+\' fa-2x" style="margin-right:8px;vertical-align:middle;"></i>\'+_TEXT+\'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button></div>\');
   if(_CLOSE>=1000){
    setTimeout(function(){$(\'#\'+_ALIDENT).fadeOut(400,function(){$(\'#\'+_ALIDENT).remove();});}, _CLOSE);
   }
  }

  function showToastMSG(_ICON,_HEAD,_TEXT,_TIME, _CLOSE){
   _TOASTID++;
   var _TSIDENT = \'TSTMSG-\'+_TOASTID;
   if(_CLOSE>=1000){
    $(\'#toastbox\').append(\'<div id="\'+_TSIDENT+\'" class="toast" role="alert" aria-live="assertive" aria-atomic="true" data-delay="\'+_CLOSE+\'"><div class="toast-header"><i class="\'+_ICON+\'" style="margin-right:7px;"></i><strong class="mr-auto">\'+_HEAD+\'</strong><small class="text-muted">\'+_TIME+\'</small><button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Schliessen"><span aria-hidden="true">&times;</span></button></div><div class="toast-body">\'+_TEXT+\'</div></div>\');
   }else{
    $(\'#toastbox\').append(\'<div id="\'+_TSIDENT+\'" class="toast" role="alert" aria-live="assertive" aria-atomic="true"><div class="toast-header"><i class="\'+_ICON+\'" style="margin-right:7px;"></i><strong class="mr-auto">\'+_HEAD+\'</strong><small class="text-muted">\'+_TIME+\'</small><button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Schliessen"><span aria-hidden="true">&times;</span></button></div><div class="toast-body">\'+_TEXT+\'</div></div>\');
    $(\'#\'+_TSIDENT).toast({autohide:false});
   }
   $(\'#\'+_TSIDENT).on(\'hidden.bs.toast\', function () {$(\'#\'+_TSIDENT).remove();});
   _TOASTMP3.play();
   $(\'#\'+_TSIDENT).toast(\'show\');
  }

  function showToastInfo(_ICON, _HEAD, _TEXT, _WAIT){
   if(_ICON.toLowerCase()==\'danger\') { _ICON = \'error\'; }
   if(_ICON.toLowerCase()==\'success\'){ _ICON = \'success\'; }
   if(_ICON.toLowerCase()==\'warning\'){ _ICON = \'warning\'; }
   if(_ICON.toLowerCase()==\'primary\'){ _ICON = \'info\';    }

   if(_WAIT<3000) _WAIT = 5000;
   $.toast({
    heading: _HEAD,
    text: _TEXT,
    position: \'bottom-right\',
    showHideTransition: \'slide\',
    icon: _ICON,
    hideAfter: _WAIT,
    stack: 4
   });
  }

  $(window).scroll(function(){
    var scrollPos = $(document).scrollTop();
    if(scrollPos >= 122){
     $(\'#bkscroll\').addClass(\'bkon\');
     $(\'#bkscroll\').fadeIn();
     $(\'#totopbtnbox\').fadeIn();
    }else{
     $(\'#bkscroll\').fadeOut(200, function(){
      $(\'#bkscroll\').removeClass(\'bkon\');
      $(\'#totopbtnbox\').fadeOut();
     });
    }
  });

  function toggleTooltips(){

   $(\'[data-toggle="tooltip"]\').tooltip(\'dispose\');
   $(\'.tooltip\').remove();
   $(\'[data-toggle="tooltip"]\').tooltip({
       template: \'<div class="tooltip tooltip-secondary" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>\'
   });
  }

  function toggleUrlInfoPopup(){
   $(\'.popover\').remove();

   $(\'.pgInfoHover\').hover(
    function (event) {
     var el = $(this);
        //el.off(event);
        el.popover({
           title: \''.getLanguageText(34).'\',
           content: \'<div class="mg-10"><div class="spinner-border spinner-border-sm"></div> '.getLanguageText(32).'</div>\',
           html:true,
           trigger:\'hover\',
           placement:\'auto\',
           template: \'<div class="pginfpop popover '.(($_PAGE['DARKMODE']===true)?'popover-secondary':'').'" style="min-width:400px;"><div class="arrow"></div><h3 class="pginfpop-header popover-header"></h3><div class="pginfpop-body popover-body '.(($_PAGE['DARKMODE']===true)?'tx-white':'').'" style="margin:0px;padding:0px;"></div></div>\'
        });

        el.popover(\'show\');

        $.ajax({
              url:"'.$_CONFIG['PAGE_URL'].'/_apis/urlinfo.php",
              method:"POST",
              dataType: \'json\',
              data:{\'action\':\'urlInfo\', \'ident\':el.attr("id")},
              success:function(dat){
               if ($(\'#\'+el.attr("id")+\':hover\').length > 0) {
                el.data(\'bs.popover\').config.content = dat.HTML;
                el.popover(\'show\');
               }else{
                el.popover(\'hide\');
               }
              },
              error: function(error){
               if ($(\'#\'+el.attr("id")+\':hover\').length > 0) {
                el.data(\'bs.popover\').config.content = \''.getLanguageText(33).'\';
                el.popover(\'show\');
               }else{
                el.popover(\'hide\');
               }
              }
        });

     },
    function() { }
   );
  }

  function navigateToPage(_URL){
   window.location.href = \''.$_CONFIG['HTTP_URL'].'/\'+_URL;
  }

  function checkCapsLock(e, _TARGET) {
   if (e.getModifierState("CapsLock")) {
    $(_TARGET).html(\'<i class="fas fa-exclamation-circle mg-r-5"></i>'.$_PGLANG->getText(295).'!\');
    $(_TARGET).slideDown();
   }else{
    $(_TARGET).slideUp(400, function(){ $(_TARGET).html(\'\'); });
   }
  }
';

$_PAGE['DOCREADY_JS'][] = '
  toggleTooltips();
  $(\'[data-toggle="popover"]\').popover();

 $(".rippler").rippler({
   effectClass     :  \'rippler-effect\'
  ,effectSize      :  25
  ,addElement      :  \'div\'
  ,duration        :  400
 });

 toggleUrlInfoPopup();

 document.addEventListener("visibilitychange", () => {
  if (document.hidden) {
   _isPageVisi = false;
  } else {
   _isPageVisi = true;
  }
 });

 $(\'.usInfoHover\').hover(
  function (event) {
    var el = $(this);
        //el.off(event);
        el.popover({
           title: \''.getLanguageText(35).'\',
           content: \'<div class="mg-10"><div class="spinner-border spinner-border-sm"></div> '.getLanguageText(32).'</div>\',
           html:true,
           trigger:\'manual\',
           placement:\'auto\',
           sanitize: false,
           template: \'<div class="usinfpop popover '.(($_PAGE['DARKMODE']===true)?'popover-secondary':'').'" style="min-width:400px;"><div class="arrow"></div><h3 class="usinfpop-header popover-header"></h3><div class="usinfpop-body popover-body '.(($_PAGE['DARKMODE']===true)?'tx-white':'').'" style="margin:0px;padding:0px;"></div></div>\'
        })
        .on("mouseenter", function() {
          el.popover(\'show\');
          $(".popover").on("mouseleave", function() {
           el.popover(\'hide\');
          });
        }).on("mouseleave", function() {
          setTimeout(function() {
           if (!$(".popover:hover").length) {
            el.popover("hide");
           }
          }, 300);
        });

        //el.popover(\'show\');

        $.ajax({
              url:"'.$_CONFIG['PAGE_URL'].'/_apis/usrinfo.php",
              method:"POST",
              dataType: \'json\',
              data:{\'action\':\'usrInfo\', \'ident\':el.attr("id")},
              success:function(dat){
               if ($(\'#\'+el.attr("id")+\':hover\').length > 0) {
                el.data(\'bs.popover\').config.content = dat.HTML;
                el.popover(\'show\');
               }else{
                //el.popover(\'hide\');
               }
              },
              error: function(error){
               if ($(\'#\'+el.attr("id")+\':hover\').length > 0) {
                el.data(\'bs.popover\').config.content = \''.getLanguageText(33).'\';
                el.popover(\'show\');
               }else{
                //el.popover(\'hide\');
               }
              }
        });

     },
    function() { }
   );
   
// if (window.matchMedia && window.matchMedia(\'(prefers-color-scheme: dark)\').matches) {
    // dark mode
//    console.log(\'darkmode\');
// }

 $(document).keydown(function (event) {
  var _keyURL = [];
  '.makeKeyShortcutJS().'

  if (event.altKey && _keyURL.hasOwnProperty(event.key)) {
   if(_keyURL[event.key].type===\'URL\') navigateToPage(_keyURL[event.key].URL);
   if(_keyURL[event.key].type===\'FUC\') eval(_keyURL[event.key].FUC);
   event.preventDefault();
  }
 });
';

if($_PGLOAD->checkErrorView()===true){
 //--- Fehlermeldungen aus der GET-Variable anzeigen!!
 $eDA = $_PGLOAD->getErrorView();
 if(intval($eDA[0])>0 && intval($eDA[2])>0){
  $eTX = $_PGLANG->getErrorData($eDA[0]);
  if(is_array($eTX)===true){
   if(intval($eDA[2])===2){
    $_PGLOAD->addDocreadyJS('showAlertMSG(\''.((strlen("".$eDA[1])>5)?strToLower($eDA[1]):strToLower($eTX[1])).'\',\''.$eTX[0].'\', '.intval($eTX[3]).', \''.$eTX[2].'\');');
   }else{
    $_PGLOAD->addDocreadyJS('showToastInfo(\''.((strlen("".$eDA[1])>5)?strToLower($eDA[1]):strToLower($eTX[1])).'\', \''.$_PGLANG->getText(85).'\', \''.$eTX[0].'\', '.intval($eTX[3]).');');
   }
  }
 }
}

//--- JS-Funktionen für den Notifications-Websocket!!
@include($_CONFIG['SHELL_PATH'].'/_js/index_noti_ws.php');

if($_ACCNT->isLogin()===true){
 //--- JS-Funktionen für den PN Dialog!!
 @include($_CONFIG['SHELL_PATH'].'/_js/mailbox_popup.php');
}

//=== Die Seite wurde in einem Frame geladen!! ==========;
$_PGLOAD->addDocreadyJS('if(INFRAME===true){
  $(\'#mainContentView\').prepend(\'<div class="mg-b-20"><div class="alert alert-warning" role="alert">'.$_PGLANG->getMessage(99).'<br>&nbsp;<br><a href="'.$_PGLOAD->getPageViewURL().'" target="_top" class="tx-danger">'.$_PGLANG->getText(381).'</a></div></div>\');
}');
//=== Fertig mit Frame-Anzeige ==========================;


//--- ALT - Entfernen ---------------------------;
 foreach($_PAGE['JAVASCRIPT']  as $iJs){ $_PGLOAD->addJavascript($iJs); }
 foreach($_PAGE['DOCREADY_JS'] as $dJs){ $_PGLOAD->addDocreadyJS($dJs); }
//-----------------------------------------------;

if($_PGLOAD->countFooterJS()>0){
 echo "\n<!-- komprimierter Javascript -->\n<script language=\"JavaScript\"><!--\n";
 echo "try{\n";
 if(count($_PGLOAD->getJavascript())>0){
  $JSOut = '';
  foreach($_PGLOAD->getJavascript() as $JS){
   $JSOut .= $JS."\n";
  }
  echo " ".$_SANITIZE->packJS($JSOut);
  echo "}catch(e){\n ".$_SANITIZE->packJS('console.log(e);')."}\n";
  unset($JSOut);
 }

 if(count($_PGLOAD->getDocreadyJS())>0){
  $JSOut = '';
  echo "\n$(document).ready(function(){\n try{";
  foreach($_PGLOAD->getDocreadyJS() as $JS){
   $JSOut .= $JS."\n";
  }
  echo "\n  ".$_SANITIZE->packJS($JSOut);
  echo " }catch(e){\n  ".$_SANITIZE->packJS('console.log(e);')." }\n});";
  unset($JSOut);
 }
 echo "\n--></script>\n";
}

//--- Alt - Entfernen -----;
dbClose();
closeLanguageDB();
//-------------------------;
?>
</body>
</html>
<!-- Load-Time: <?php
$_PGLOAD->updLoadTime(floatval(microtime(true))-floatval(constant('LOAD_START')));
echo $_PGLOAD->getLoadTime();
?> -->