<?php
/**
 * @copyright (c) Kufer Software GmbH, Oderstraße 7, D-84453 Mühldorf
 */

/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */
class PageAnmeldEinstieg extends PageBaseWT
{
  private $_contentHeader;

  
  public function __construct($pPageTitle, $pPageId, $pTool, $pContentHeader)
  {
    parent::__construct($pPageTitle, $pPageId, $pTool);
    $this->_contentHeader = $pContentHeader;
  }

  
  public function getContentHeader()
  {
    return $this->_contentHeader;
  }

  
  public function getContent()
  {
    $result = BR_WT . '<h2>Suche nach:</h2>';
    $result .= '<form method="post" action="usertools.php?tool_id=' . CleanOperations::cleanInt($this->tool->getToolId());
    $result .= '&amp;toolsection_id=' . CleanOperations::cleanInt($this->id) . '&amp;searchkurs=1" id="suchformDiv">';
    $result .= '<table border="0" cellpadding="3" cellspacing="2">';
    $result .= '<tbody>';

    $sprachSettings = new SprachSettingsObject();
    

    
    $rowKnrTitel = '<tr class="fatn_anmeld_einstieg_suche_kursnr">';
    $rowKnrTitel .= '<td nowrap="">' . CleanOperations::cleanStringForHtml($sprachSettings->KursZusammengesetzt['Singular']['Nominativ']) . 'nummer'
                    
                    . (DBWorkBASysSettings::isBlak() ? BR_WT . '<div style="position:relative; margin-top: 4px; margin-bottom: 20px"><div style="position:absolute">(letzten 4 Ziffern der Kursnr.)</div></div>' : '')
                    . '</td>';
    $rowKnrTitel .= '<td nowrap=""><input id="search_kursnummer" type="text" size="10" name="search_kursnummernbereich_von"></td>';
    $rowKnrTitel .= '<td nowrap="">' . CleanOperations::cleanStringForHtml($sprachSettings->KursZusammengesetzt['Singular']['Nominativ']) . 'titel</td>';
    $rowKnrTitel .= '<td nowrap=""><input type="text" size="30" name="search_kurstitel" value=""></td>';
    if (!$this->toolSettings->searchShowAllKriterienByDefault) {
      
      $rowKnrTitel .= '<td nowrap=""><input type="submit" value="Suchen"> <a href="#" id="searchToggleSwitch">erweitert</a> <a href="#" style="display: none;" id="searchToggleSwitch2">einfach</a></td>';
    }
    $rowKnrTitel .= '</tr>';






    
    if ($this->toolSettings->searchShowAllKriterienByDefault) {
      $hideableClass = '';
    } else {
      $hideableClass = ' class="search_hideable" ';
    }

    
    $rowDate = '<tr ' . $hideableClass . '>';
    $rowDate .= '<td nowrap="">' . CleanOperations::cleanStringForHtml($sprachSettings->KursZusammengesetzt['Singular']['Nominativ']) . 'beginn von </td>';
    $rowDate .= '<td nowrap=""><input type="text" size="10" class="hasDatePicker" name="search_kursbeginnzeitraum_von" value="">';
    $rowDate .= '<td nowrap="">bis ';
    $rowDate .= '<td nowrap="" colspan="2"><input type="text" size="10" class="hasDatePicker" name="search_kursbeginnzeitraum_bis" value=""></td>';
    $rowDate .= '</tr>';

    
    $dbwAussenst = new DBWorkHLAussenstellen();
    $aussenst = $dbwAussenst->getAussenstellen();

    $rowAussenStelle = '<tr ' . $hideableClass . '>';

    if (DBWorkBASysSettings::isBlak()) {
      $AussenstelleBezeichnung = 'Stadt';
      $AussenstelleBezeichnungMehrzahl = 'Städte';
    } else {
      $AussenstelleBezeichnung = 'Außenstelle';
      $AussenstelleBezeichnungMehrzahl = 'Außenstellen';
    }

    
    $hilfeButton = '';
    if ($this->toolSettings->seachMulipleAussenStellen) {
      $hilfeText = 'Es können hier auch mehrere ' . $AussenstelleBezeichnungMehrzahl . ' ausgewählt werden:' . BR_WT . BR_WT

        . 'Einzelne ' . $AussenstelleBezeichnungMehrzahl . ' auswählen:' . BR_WT
        . 'Klick mit der linken Maustaste auf diese ' . $AussenstelleBezeichnung . '.' . BR_WT . BR_WT

        . 'Einen zusammenhängenden Bereich auswählen:' . BR_WT
        . 'Entweder mit der linken Maustaste auf eine ' . $AussenstelleBezeichnung . ' klicken, '
        . 'die Maustaste gedrückt halten und über die auszuwählenden ' . $AussenstelleBezeichnungMehrzahl . ' ziehen,' . BR_WT
        . 'oder mit der linken Maustaste auf eine ' . $AussenstelleBezeichnung . ' klicken, '
        . 'die Umschalttaste gedrückt halten und eine weitere ' . $AussenstelleBezeichnung . ' anklicken.' . BR_WT . BR_WT

        . 'Auswahl beibehalten:' . BR_WT
        . 'Damit die zuvor ausgewählten ' . $AussenstelleBezeichnungMehrzahl . ' bei einer '
        . 'neuen Auswahl beibehalten werden, halten Sie während der Auswahl neuer ' . $AussenstelleBezeichnungMehrzahl . ' die Steuerungstaste gedrückt.';
      $hilfeButton = MenuEinstell::getInfoPopUp($hilfeText, 'Mehrere ' . $AussenstelleBezeichnungMehrzahl . ' wählen', 'Hilfe');
    }

    $rowAussenStelle .= '<td nowrap="">' . $AussenstelleBezeichnung . ' ' . $hilfeButton . '</td>';

    $rowAussenStelle .= '<td nowrap="" colspan="4">';

    
    if ($this->toolSettings->seachMulipleAussenStellen) {
      $rowAussenStelle .= '<select name="search_bezeichn[]" style="width: 355px;"  size="5" multiple>';
    } else {
      $rowAussenStelle .= '<select name="search_bezeichn" style="width: 378px;" ><option value="-1"></option>';
    }
    for ($i = 0; $i < count($aussenst); $i++) {
      $rowAussenStelle .= "<option value='" . CleanOperations::cleanInt($aussenst[$i]->id) . "'>" . CleanOperations::cleanStringForHtml($aussenst[$i]->bezeichner) . '</option>';
    }
    $rowAussenStelle .= '</select>';
    $rowAussenStelle .= '</td>';
    $rowAussenStelle .= '</tr>';
    

    if ($this->toolSettings->searchShowAllKriterienByDefault) {
      $result .= $rowDate . $rowAussenStelle . $rowKnrTitel;
      $result .= '<tr><td><input type="submit" value="Suchen"></td></tr>';
    } else {
      $result .= $rowKnrTitel . $rowDate . $rowAussenStelle;
    }

    $result .= '</tbody>';
    $result .= '</table>';
    $result .= '</form>' . BR_WT;

    if (!DBWorkBASysSettings::isBlak() && ($this->toolSettings->zeigeKategorienBeimEinstieg || $this->toolSettings->zeigeSonderkategorienBeimEinstieg)) {
      $result .= '<h2>' . $sprachSettings->Kurs['Plural']['Nominativ'] . ' aus diesem Fachbereich anzeigen:</h2>';

      $kapi = new KategorienAPIWT($this->tool->getToolId(), $this->id);

      $result .= '<ul id="categoryList">';
      if ($this->toolSettings->zeigeKategorienBeimEinstieg) {
        $result .= $kapi->getCategoryList(1);
      }
      if ($this->toolSettings->zeigeSonderkategorienBeimEinstieg) {
        $result .= $kapi->getCategoryList(2);
      }
      $result .= '</ul>';

      $result .= "<script type='text/javascript'>";
      $result .= "$('#categoryList').treeview({collapsed: true});";
      $result .= "$('.search_hideable').toggle();";
      $result .= "$('#searchToggleSwitch').click(function() { $('.search_hideable').toggle();"
              . "                                             $('#searchToggleSwitch').toggle();"
              . "                                             $('#searchToggleSwitch2').toggle();});";
      $result .= "$('#searchToggleSwitch2').click(function() { $('.search_hideable').toggle();"
              . "                                              $('#searchToggleSwitch').toggle();"
              . "                                              $('#searchToggleSwitch2').toggle();});";
      $result .= '</script>';
    }

    return $result;
  }

  
  public function getSpecialJS()
  {
    $fileAry = parent::getSpecialJS();
    $fileAry[] = '../jquery/plugins/jquery.treeview.js';
    $fileAry[] = 'js/anmelden.js';

    return $fileAry;
  }

  
  public function getSpecialCSS()
  {
    $cssAry = parent::getSpecialCss();
    $cssAry[] = '../jquery/css/treeview/jquery.treeview.css';

    return $cssAry;
  }
} 

class PageKurseUebersichtAnmeld extends BrowseableObjectsPageBaseWT
{
  private $_data;
  private $_searchkurs;
  private $_contentHeader;

  
  public function __construct($pPageTitle, $pPageId, $pTool, $pContentHeader, $pData, $countAllObjects, $objectsPerPage)
  {
    parent::__construct($pPageTitle, $pPageId, $pTool, $countAllObjects, $objectsPerPage);
    $this->_contentHeader = $pContentHeader;
    $this->_data = $pData;
    $this->_searchkurs = ((GetOperations::getVarValue('searchkurs', false)) ? '&amp;searchkurs=1' : '');
  }

  
  public function getContentHeader()
  {
    return $this->_contentHeader;
  }

  
  public function getContent()
  {
    $sprachSettings = new SprachSettingsObject();

    $result = '';

    $isBlak = DBWorkBASysSettings::isBlak();
    if ($isBlak) {
      $tnr = $this->tool->getUser()->tnr;

      $dbwKennz = new DBWorkKennz();
      $tnKennzIDAry = $dbwKennz->getKennzShort4Teilnehmer($tnr);
    }

    
    $searchAPI = new KurssuchAPIwSearch(false);
    $tool_action = $searchAPI->getKursSearchLink(true);
    $result .= $searchAPI->getSearchDiv($tool_action);

    
    
    
    $result .= '<form method="post" name="TNKurseForm" action="#">' . "\n";

    $result .= '<div id="main_content">' . "\n";

    if (!(count($this->_data) == 0 && $this->allgSettings->buttonleite_position == BUTTONBAR_BOTH)
       && ($this->allgSettings->buttonleite_position == BUTTONBAR_TOP || $this->allgSettings->buttonleite_position == BUTTONBAR_BOTH)) {
      $result .= $this->_getMainButtons();
    }

    $user = SessionOperations::getCurrentWebToolsUser();
    $tnr = $user->tnr;

    $dbwTeiln = new DBWorkTeilnehmer();
    $teilnehm = $dbwTeiln->getTeilnehm($tnr);
    $tnrKonto = $teilnehm->konto;
    $tnrIban = $teilnehm->iban;
    if (!SessionOperations::isReplikat()) {
      $tnrKonto = SecurityOperations::anonymizeString($tnrKonto);
      $tnrIban = SecurityOperations::anonymizeString($tnrIban);
    }
    $tnrGutHaben = '';
    
    if (DBWorkBASysSettings::isBlak() && MathOperations::stringToFloat($teilnehm->guthaben) > 0) {
      $tnrGutHaben = $teilnehm->guthaben;
    }

    
    SessionOperations::setVarValueWTIntern('cansignon', true);

    $counter = 0;
    foreach ($this->_data as $kurs) {
      if ($isBlak && $kurs->kursauswahl2 == 'W') {
        $kurs->gebuehr = BLAK_NOT_SHOW_WSS;
        $kurs->geb_erm = BLAK_NOT_SHOW_WSS;
      }
      $builder = new SightBuilderUebersicht($this->tool->getToolId(), $this->id, $kurs, true);

      $evenClass = ($counter % 2 == 0) ? ' farbe_sicht_erstezeile' : '';
      $result .= '<div class="content_zeile' . $evenClass . ' kurszeile" id="kurs_' . str_replace(' ', '_', CleanOperations::cleanStringForHtml($kurs->id)) . '">' . "\n";
      $result .= '<div class="steuerelemente">' . "\n";
      if (isset($this->links['details']) && $this->links['details'] != '') {
        $class = (DBWorkBASysSettings::isBlak()) ? 'class="kursdetails_lupe_blak"' : '';
        $result .= '<a href="' . CleanOperations::cleanStringForHtml($this->links['details']) . '&knr=' . CleanOperations::cleanStringForHtml($kurs->id) . CleanOperations::cleanStringForHtml($this->_searchkurs) . '" class="details_link"><img src="images/details.gif" ' . $class . ' alt="Zu den Details" title="Zu den ' . CleanOperations::cleanStringForHtml($sprachSettings->KursZusammengesetzt['Singular']['Nominativ']) . 'details"></a>' . BR_WT . "\n";
      }
      if (isset($this->links['anmelden']) && $this->links['anmelden'] != '') {
        $done = false;

        if ($isBlak) {
          if ($kurs->kursauswahl2 == 'W') {
            
            $onclick = $this->getShowMessage4ExternerKursBLAK($kurs);

            
            $result .= '<img src="images/tipp.gif" class="externen_kurs_blak" alt="Informationen zum externen ' . CleanOperations::cleanStringForHtml($sprachSettings->Kurs['Singular']['Nominativ']) . '" title="Informationen zum externen ' . CleanOperations::cleanStringForHtml($sprachSettings->Kurs['Singular']['Nominativ']) . '" ' . $onclick . '>';

            $done = true;
          } elseif (!is_a($this->tool, 'ToolFaAnmeldung') && !$dbwKennz->isTnKennzInKurs($tnKennzIDAry, $kurs->id)) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenUebersicht"></a>' . "\n";
            $done = true;
          }
        }
        if (!$done) {
          if (isset($this->links['emptyMandatorys']) && !empty($this->links['emptyMandatorys'])) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenFehlendePflichtangaben"></a>' . "\n";
          } elseif ($kurs->ausfall) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenUebersichtAusfall"></a>' . "\n";
          
          } elseif ($kurs->webflags & \Kurs::WEBFLAG_KEINE == 1) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenUebersichtNichtFreigegeben"></a>' . "\n";

          
          } elseif ($kurs->anm_ende != '' && DateTimeOperations::isDatebeforeNow($kurs->anm_ende)) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenUebersichtAnmeldeschlussErreicht"></a>' . "\n";

          
          } elseif ($kurs->ende_dat != '' && DateTimeOperations::isDatebeforeNow($kurs->ende_dat)) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenUebersichtEndeErreicht"></a>' . "\n";
          } elseif ($kurs->elearningKursID > 0 && $this->tool->getToolId() == \ToolsAPI::TOOL_ANMELDUNGBUCHEN_FA) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenFirma"></a>' . "\n";
          
          } elseif (ToolsAPI::isPersonWithoutMoodleCredentialsForElearningCourse(SessionOperations::getCurrentWebToolsUser(), $kurs)) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenNoMoodleCredentials"></a>' . "\n";
          } elseif (!ToolsAPI::isTnMoodleRegisterableOrAlreadyRegistered(\SessionOperations::getCurrentWebToolsTeilnehmer(), $kurs)) {
            $result .= '<a href="#"><img src="images/okayg.gif" alt="Anmelden nicht möglich" title="Anmelden nicht möglich" class="AnmeldenButtonVerbotenMoodleNotRegisterable"></a>' . "\n";
          } else {
            if ($kurs->elearningKursID > 0) {
              $tnrGutHaben = '';
            }
            
            
            
            $bgluClass = (DBWorkBASysSettings::isBlak() && $kurs->isBGLU() ? 'isbgluKurs' : '');
            $fspClass = (DBWorkBASysSettings::isBlak() && $kurs->isFSP() ? 'isfspKurs' : '');
            $result .= '<a href="#"><img src="images/okay.gif" alt="Anmelden" title="Anmelden" class="AnmeldenButtonUebersicht ' . $bgluClass . ' ' . $fspClass . '">
                          <input type="hidden" value="' . CleanOperations::cleanStringForHtml($this->links['anmelden']) . '&knr=' . CleanOperations::cleanStringForHtml($kurs->id) . CleanOperations::cleanStringForHtml($this->_searchkurs) . '" class="anm_link"></a>' . "\n";
          }
        }
      }
      $result .= '</div>' . "\n";
      $result .= $builder->buildSight();
      $result .= '</div>' . "\n";

      $gebuehr = APIGebuehren::getGebuehren($tnr, $kurs->id);
      
      $guthaben = ($gebuehr == MathOperations::floatToString(0)) ? '' : $tnrGutHaben;

      
      
      
      $toBeReplaced = array("\r\n", "\n\r", "\r", "\n");
      $gebuehrErgaenzText = StringOperations::htmlentities($kurs->gebuehrergaenztext, ENT_QUOTES);
      $gebuehrErgaenzText = trim(str_replace($toBeReplaced, ' ', $gebuehrErgaenzText));

      $kursdata = (object)array(
        'Knr' => StringOperations::htmlentities($kurs->id, ENT_QUOTES),
        'Titel' => StringOperations::htmlentities($kurs->getVarValue('titel_zeile1'), ENT_QUOTES),
        'Zeitraum' => StringOperations::htmlentities($kurs->getVarValue('beginn_ende_komplett'), ENT_QUOTES),
        'Ort' => StringOperations::htmlentities($kurs->ort, ENT_QUOTES),
        'Gebuehr' => StringOperations::htmlentities($gebuehr . ' ' . CURRENCY, ENT_QUOTES),
        'GebuehrenErgaenzText' => $gebuehrErgaenzText,
        'Aussenstelle' => StringOperations::htmlentities($kurs->aussenst, ENT_QUOTES),
        'Konto' => StringOperations::htmlentities($tnrKonto, ENT_QUOTES),
        'Iban' => StringOperations::htmlentities($tnrIban, ENT_QUOTES),
        'Guthaben' => StringOperations::htmlentities($guthaben . (($guthaben != '') ? ' ' . CURRENCY : ''), ENT_QUOTES)
      );

      $result .= '<script type="text/javascript">$("#kurs_' . CleanOperations::cleanStringForJs(str_replace(' ', '_', $kurs->id)) . '").data("kurs", ' . json_encode($kursdata) . ');';
      $result .= "</script>\n";

      $counter++;
    }
    if ($counter == 0) {
      $result .= BR_WT . 'Für Ihre angegebenen Kriterien wurden keine passenden ' . CleanOperations::cleanStringForHtml($sprachSettings->Kurs['Plural']['Nominativ']) . ' gefunden.' . BR_WT . BR_WT;
      $result .= '<a href="' . CleanOperations::cleanStringForHtml($this->links['back']) . '" title="Zurück">zurück zur Übersicht</a>' . BR_WT . BR_WT;
    }

    $result .= '</div>' . "\n";

    if ($this->allgSettings->buttonleite_position != BUTTONBAR_TOP) {
      $result .= $this->_getMainButtons();
    }

    $result .= '</form>' . "\n";

    return $result;
  }

  private function _getMainButtons()
  {
    $sprachSettings = new SprachSettingsObject();

    $result = '<div class="main_buttons">' . "\n";
    $result .= $this->getNavigaton();

    if (isset($this->links['filter'])) {
      $imgText = '<img src="layout/button_main_search_filter.gif" title="Suchfilter" alt="Suchfilter">';
      $result .= $this->getLinkButton4JS($imgText, '', 'Suchfilter', $this->links['filter'], '#ui-dialog-title-kurssuche', false, 'suchen_button');
    }
    if (isset($this->links['back'])) {
      $title = 'Zurück zur ' . $sprachSettings->KursZusammengesetzt['Singular']['Nominativ'] . 'suche';
      $result .= HTMLOperations::CreateBackButton($this->links['back'], '', '', '', $title, 'layout/button_zur_kurssuche.gif');
    }

    $result .= "\n" . '</div>' . "\n";

    return $result;
  }

  
  public function getSpecialJS()
  {
    $fileAry = parent::getSpecialJS();
    


    $fileAry[] = 'js/anmelden.js';
    $fileAry[] = 'js/Formulare/kontakte.js';

    return $fileAry;
  }

  public function getJSDeclarations()
  {
    $result = parent::getJSDeclarations();

    
    $result .= $this->getSelektorKursFelderToDetails();

    $user = SessionOperations::getCurrentWebToolsUser();
    $dbwTeiln = new DBWorkTeilnehmer();
    $teilnehm = $dbwTeiln->getTeilnehm($user->tnr);
    $tnrKonto = $teilnehm->konto;
    $tnrIban = $teilnehm->iban;
    if (!SessionOperations::isReplikat()) {
      $tnrKonto = SecurityOperations::anonymizeString($tnrKonto);
      $tnrIban = SecurityOperations::anonymizeString($tnrIban);
    }

    $result .= 'registerNamespace("KuferTools.UserInfo"); ';
    $anmZf = $this->toolSettings->anm_zahlverfahren;
    if ($anmZf == ANM_ZAHLVERFAHREN_SEPA_KTO || $anmZf == ANM_ZAHLVERFAHREN_NUR_KTO) {
      $result .= JsOperations::getDeclarationString('KuferTools.UserInfo.CurrentUserKonto', StringOperations::htmlentities($tnrKonto, ENT_QUOTES));
      $result .= JsOperations::getDeclarationBoolean('KuferTools.UserInfo.UseKto', true);
    }
    if ($anmZf == ANM_ZAHLVERFAHREN_SEPA_KTO || $anmZf == ANM_ZAHLVERFAHREN_NUR_SEPA) {
      $result .= JsOperations::getDeclarationString('KuferTools.UserInfo.CurrentUserIban', StringOperations::htmlentities($tnrIban, ENT_QUOTES));
      $result .= JsOperations::getDeclarationBoolean('KuferTools.UserInfo.UseSepa', true);
    }

    $result .= JsOperations::getDeclarationBoolean('KuferTools.UserInfo.HasSepaMandat', isset($this->links['hasSepaMandat']) && $this->links['hasSepaMandat']);

    if (isset($this->links['emptyMandatorys']) && is_array($this->links['emptyMandatorys'])) {
      $result .= JsOperations::getDeclarationJson('KuferTools.UserInfo.EmptyMandatorys', $this->links['emptyMandatorys']);
    }

    $result .= JsOperations::getDeclarationString('KuferTools.UserInfo.NewsletterErlaubt', $teilnehm->newsl_erlaubt);
    
    $result .= JsOperations::getDeclarationBoolean('KuferTools.NewsletterAnmeldung_erlaubt', $this->toolSettings->newsletterAnmeldung_erlaubt);

    $result .= JsOperations::getDeclarationJsonBase64('KuferTools.ErlaubteZahlarten', $this->toolSettings->getErlaubteZahlArten());

    $result .= JsOperations::getDeclarationBoolean('KuferTools.isBLAK', DBWorkBASysSettings::isBlak());
    $result .= JsOperations::getDeclarationInt('KuferTools.ToolSectionId', $this->getPageId());

    
    $result .= JsOperations::getDeclarationString('KuferTools.SepaTextOhneMandat', StringOperations::convertLinebreaks2HTML($this->toolSettings->sepaTextOhneMandat));
    $result .= JsOperations::getDeclarationString('KuferTools.SepaTextMitMandat', StringOperations::convertLinebreaks2HTML($this->toolSettings->sepaTextMitMandat));
    $result .= JsOperations::getDeclarationString('KuferTools.SepaTextDruckLink', $this->toolSettings->sepaTextDruckLink);

    
    $result .= JsOperations::getDeclarationString('KuferTools.AnmZusatzText', StringOperations::convertLinebreaks2HTML($this->toolSettings->anm_zusatzText));
    $result .= JsOperations::getDeclarationString('KuferTools.AnmZusatzAufforderung', StringOperations::convertLinebreaks2HTML($this->toolSettings->anm_zusatzAufforderung));

    if (DBWorkBASysSettings::isBlak() && $this->tool->getToolId() == \ToolsAPI::TOOL_ANMELDUNGBUCHEN_TN) {
      $result .= 'registerNamespace(\'KuferTools.Kontakt\');' . "\n";
      $result .= 'registerNamespace(\'KuferTools.Kontakte\');' . "\n";

      $nachweisMap = DatDocAPI::getNachweisartMap();
      $nachweisMap = array_merge(array('nachreichen' => 'wird nachgereicht'), $nachweisMap);

      $result .= JsOperations::getDeclarationJson('KuferTools.NachweisartMap', $nachweisMap);
      $tool0Settings = ToolSettingsAPI::getToolSettings(0);
      if ($tool0Settings->dokuUploadAllowByExclude) {
        
        $fileExtStr = $tool0Settings->uploadBlacklist4Ext;
        $allowByExclude = true;
      } else {
        
        $fileExtStr = $tool0Settings->uploadWhitelist4Ext;
        $allowByExclude = false;
      }

      $result .= JsOperations::getDeclarationBoolean('KuferTools.Kontakt.AllowUploadByExclude', $allowByExclude);
      $result .= JsOperations::getDeclarationString('KuferTools.Kontakt.FileExtStr', $fileExtStr);
      $statusMessageStr4FileExt = DokuUploadUserAPI::getStatusMessagePart4FileExt($tool0Settings);
      $result .= JsOperations::getDeclarationString('KuferTools.Kontakt.FileExtMessagePart', $statusMessageStr4FileExt);

      
      $result .= JsOperations::getDeclarationBoolean('KuferTools.Kontakt.UseAllowedExt4Attach', $tool0Settings->useAllowedExt4Attach);
    }


    return $result;
  }

  
  public function getSpecialCSS()
  {
    $cssAry = parent::getSpecialCss();
    $cssAry[] = './css/tntoolKursuebersicht.css';

    return $cssAry;
  }
}