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


class KathauptAPI
{
  
  public $menues;

  
  public function __construct()
  {
    $this->menues = array(156 => 156, 141 => 156, 142 => 156, 143 => 156, 144 => 156, 145 => 156, 146 => 156, 147 => 156, 148 => 156, 188 => 156, 189 => 156,
                           115 => 115, 130 => 115, 131 => 115, 132 => 115, 133 => 115, 134 => 115, 135 => 115, 186 => 115, 187 => 115,
                           109 => 109, 125 => 109, 126 => 109, 127 => 109, 128 => 109, 129 => 109,
                           104 => 104, 121 => 104, 122 => 104, 123 => 104, 124 => 104,
                           150 => 150, 136 => 150, 137 => 150, 138 => 150, 139 => 150,
                           165 => 165, 184 => 165, 185 => 165,
                           13 => 13, 180 => 13, 181 => 13, 182 => 13, 183 => 13,
                           103 => 103, 110 => 103,
                           6 => 6, 140 => 6,
                           4 => 4,
                           9 => 9,
                           18 => 18, 16 => 18,
                           19 => 19,
                           173 => 173, 190 => 173, 191 => 173, 192 => 173, 193 => 173, 194 => 173,
                           212 => 212, 213 => 212,
                           214 => 214, 215 => 214,
                           216 => 216,
                           222 => 222
                          );
  }

  
  public function getParentDepth0Kathaupt($childKathaupt)
  {
    if (isset($this->menues[$childKathaupt])) {
      return $this->menues[$childKathaupt];
    } else {
      return 'NULL';
    }
  }

  
  public static function getKathauptArray4Suche()
  {
    return array(6, 18, 19, 26, 27, 28, 29, 247);
  }

  
  public function getDatamenuByKathaupt($pKathaupt, $pUrlparameter)
  {
    
    $toolSettings = ToolSettingsAPI::getToolSettings(4);
    switch ($pKathaupt) {
      default:
        if ($pKathaupt > 800 && $pKathaupt <= 1000) {
          $dir = opendir(WBPLUGIN_PATH);
          if ($dir) {
            while ($actDir = readdir($dir)) {
              $dirPath = WBPLUGIN_PATH . $actDir;
              if (!is_dir($dirPath) || $actDir === '..' || $actDir === '.' || $actDir === '.svn') {
                continue;
              }

              $fileName = $dirPath . DIRECTORY_SEPARATOR . 'kathaupt.php';
              $className = 'KathauptAPI' . ucfirst(StringOperations::strtolower($actDir));
              if (file_exists($fileName) && class_exists($className)) {
                $datamenu = $className::getDataMenuByKathaupt($pKathaupt, $pUrlparameter);
                if ($datamenu) {
                  break;
                }
              }
            }
          }
          
        }
        if (!isset($datamenu)) {
          $datamenu = new DataMenuStart($pUrlparameter);
        }
        break;
      case '1':
      case '2':
        if (DBWorkBASysSettings::isIhkKarlsruhe()) {
          $datamenu = new \webbasys\includee\datamenu\DataMenuKurseGroupALaIhk(new URLParameterNavigation());
        } elseif (DBWorkBASysSettings::isBadenBadenEuraka()) {
          $datamenu = new \webbasys\includee\datamenu\DataMenuKurseGroupALaEuraka(new URLParameterNavigation());
        } elseif (DBWorkBASysSettings::isBenediktushof()) {
          $datamenu = new \webbasys\includee\datamenu\DataMenuKurseGroupALaBenediktushof(new URLParameterNavigation());
        } elseif ($toolSettings->kategorienImmerMitKursen) {
          if ($toolSettings->kursAnzeigeTrennen) {
            $datamenu = new DataMenuAlteKurseSeparat4KategorienMitKursen($pUrlparameter);
          } else {
            $datamenu = new DataMenuKategorienMitKursen($pUrlparameter);
          }
        } elseif ($toolSettings->kursAnzeigeTrennen && empty($pUrlparameter->browse)) {
          
          
          $datamenu = new DataMenuAlteKurseSeparat4Kategorien($pUrlparameter);
        } else {
          if (DBWorkBASysSettings::isFIHH()) {
            $datamenu = new DataMenuKurseGroupByCategory($pUrlparameter);
          } else {
            $datamenu = new DataMenuKurse($pUrlparameter);
          }
        }
        break;
      case '3': $datamenu = new DataMenuDemnaechst($pUrlparameter);
        break;
      case '4': $datamenu = new DataMenuWarenkorb($pUrlparameter);
        break;
      case '5': $datamenu = new DataMenuMainAnmeldung(new URLParameterAnmeldungSofort());
        break;
      case '6':

        SessionOperations::setVarValueSuche('kfs_suchegesetzt', 'true');
        $urlparametersuche = new URLParameterSuche();
        if ($urlparametersuche->suchformular == 'true') {
          $datamenu = new DataMenuSuche($urlparametersuche);
        } elseif ($urlparametersuche->suchesetzen == 'false') {
          $addfsession = new SessionOperations();
          $addfsession->session_destroy_suchvariablen();
          $datamenu = new DataMenuStart($pUrlparameter);
        }
        
        else {
          if ($toolSettings->kursAnzeigeTrennen && empty($urlparametersuche->browse)) {
            
            
            $datamenu = new DataMenuAlteKurseSeparat($urlparametersuche);
          } else {
            $datamenu = new DataMenuSucheKurse($urlparametersuche);
          }
        }
        break;
      case '550':

        SessionOperations::setVarValueSuche('kfs_suchegesetzt', 'true');
        $urlparametersuche = new URLParameterSuche();
        if ($urlparametersuche->suchformular == 'true') {
          $datamenu = new DataMenuSuche($urlparametersuche);
        } else {
          $datamenu = new DataMenuSucheKurseGroupByCategory($urlparametersuche);
        }
        break;
      case '7': $datamenu = new DataMenuAktuelles($pUrlparameter);
        break;
      case '8': $datamenu = new DataMenuProjekte($pUrlparameter);
        break;
      case '9': $datamenu = new DataMenuAGB($pUrlparameter);
        break;
      case '10': $datamenu = new DataMenuAnfahrt($pUrlparameter);
        break;
      case '11': $datamenu = new DataMenuKursDetailsSelf($pUrlparameter);
        break;
      case '12': $datamenu = new DataMenuTermineSelf(new URLParameterNavigationWarenkorb());
        break;
      case '13': $datamenu = new DataMenuKontakt($pUrlparameter);
        break;
      case '14': $datamenu = new DataMenuImpressum($pUrlparameter);
        break;
        
        
      case '16': $datamenu = new DataMenuKatOverview($pUrlparameter);
        break;
      case '17': $datamenu = new DataMenuAussenstelleSelf(new URLParameterAussenstelle());
        break;

      case '18':
        $urlparametersuche = new URLParameterSuche();
        if ($urlparametersuche->ajax) {
          $datamenu = new DataMenuKursFinderAjax($urlparametersuche);
        } else {
          $datamenu = new DataMenuSucheKurseKategorien(new URLParameterSuche());
        }
        break;
      case '19': $datamenu = new DataMenuSucheKurseDozenten(new URLParameterSuche());
        break;
      case '20': $datamenu = new DataMenuKursDetailsSelfKategorien(new URLParameterSuche());
        break;
      case '21': $datamenu = new DataMenuKursDetailsSelfDozenten(new URLParameterSuche());
        break;
      case '22': $datamenu = new DataMenuTermineSelfKategorien(new URLParameterSuche());
        break;
      case '23': $datamenu = new DataMenuTermineSelfDozenten(new URLParameterSuche());
        break;
      case '24': $datamenu = new DataMenuKursDetailsSelfWarenkorb(new URLParameterSuche());
        break;
      case '25': $datamenu = new DataMenuTermineSelfWarenkorb(new URLParameterSuche());
        break;
      case '26':
        $urlparametersuche = new URLParameterSuche();
        if ($urlparametersuche->ajax) {
          $datamenu = new DataMenuKursFinderAjax($urlparametersuche);
          break;
        }
        if ($toolSettings->kursAnzeigeTrennen && empty($urlparametersuche->browse)) {
          
          
          $datamenu = new DataMenuAlteKurseSeparat($urlparametersuche);
        } else {
          $datamenu = new DataMenuSucheKurse($urlparametersuche);
        }
        break;
      case '27': 
        $datamenu = new DataMenuSucheByDatum(new URLParameterSuche());
        break;
      case '28':
        $datamenu = new DataMenuKursFinderAjaxResult(new URLParameterSuche());
        break;
      case '29':
        $datamenu = new DataMenuKursFinderAjax(new URLParameterSuche());
        break;
        
        

      case '121': $datamenu = new DataMenuFree4Sub1($pUrlparameter);
        break;
      case '122': $datamenu = new DataMenuFree4Sub2($pUrlparameter);
        break;
      case '123': $datamenu = new DataMenuFree4Sub3($pUrlparameter);
        break;
      case '124': $datamenu = new DataMenuFree4Sub4($pUrlparameter);
        break;
      case '125': $datamenu = new DataMenuFree9Sub1($pUrlparameter);
        break;
      case '126': $datamenu = new DataMenuFree9Sub2($pUrlparameter);
        break;
      case '127': $datamenu = new DataMenuFree9Sub3($pUrlparameter);
        break;
      case '128': $datamenu = new DataMenuFree9Sub4($pUrlparameter);
        break;
      case '129': $datamenu = new DataMenuFree9Sub5($pUrlparameter);
        break;
      case '130': $datamenu = new DataMenuFree15Sub1($pUrlparameter);
        break;
      case '131': $datamenu = new DataMenuFree15Sub2($pUrlparameter);
        break;
      case '132': $datamenu = new DataMenuFree15Sub3($pUrlparameter);
        break;
      case '133': $datamenu = new DataMenuFree15Sub4($pUrlparameter);
        break;
      case '134': $datamenu = new DataMenuFree15Sub5($pUrlparameter);
        break;
      case '135': $datamenu = new DataMenuFree15Sub6($pUrlparameter);
        break;
      case '136': $datamenu = new DataMenuFree22Sub1($pUrlparameter);
        break;
      case '137': $datamenu = new DataMenuFree22Sub2($pUrlparameter);
        break;
      case '138': $datamenu = new DataMenuFree22Sub3($pUrlparameter);
        break;
      case '139': $datamenu = new DataMenuFree22Sub4($pUrlparameter);
        break;
      case '140': $datamenu = new DataMenuFree27Sub1($pUrlparameter);
        break;
      case '141': $datamenu = new DataMenuFree28Sub1($pUrlparameter);
        break; 
      case '142': $datamenu = new DataMenuFree28Sub2($pUrlparameter);
        break; 
      case '143': $datamenu = new DataMenuFree28Sub3($pUrlparameter);
        break; 
      case '144': $datamenu = new DataMenuFree28Sub4($pUrlparameter);
        break; 
      case '145': $datamenu = new DataMenuFree28Sub5($pUrlparameter);
        break; 
      case '146': $datamenu = new DataMenuFree28Sub6($pUrlparameter);
        break; 
      case '147': $datamenu = new DataMenuFree28Sub7($pUrlparameter);
        break; 
      case '148': $datamenu = new DataMenuFree28Sub8($pUrlparameter);
        break;
      case '180': $datamenu = new DataMenuKontaktSub1($pUrlparameter);
        break;
      case '181': $datamenu = new DataMenuKontaktSub2($pUrlparameter);
        break;
      case '182': $datamenu = new DataMenuKontaktSub3($pUrlparameter);
        break;
      case '183': $datamenu = new DataMenuKontaktSub4($pUrlparameter);
        break;
      case '184': $datamenu = new DataMenuFree37Sub1($pUrlparameter);
        break;
      case '185': $datamenu = new DataMenuFree37Sub2($pUrlparameter);
        break;
      case '186': $datamenu = new DataMenuFree15Sub7($pUrlparameter);
        break;
      case '187': $datamenu = new DataMenuFree15Sub8($pUrlparameter);
        break;
      case '188': $datamenu = new DataMenuFree28Sub9($pUrlparameter);
        break;
      case '189': $datamenu = new DataMenuFree28Sub10($pUrlparameter);
        break;
      case '190': $datamenu = new DataMenuFree45Sub1($pUrlparameter);
        break;
      case '191': $datamenu = new DataMenuFree45Sub2($pUrlparameter);
        break;
      case '192': $datamenu = new DataMenuFree45Sub3($pUrlparameter);
        break;
      case '193': $datamenu = new DataMenuFree45Sub4($pUrlparameter);
        break;
      case '194': $datamenu = new DataMenuFree45Sub5($pUrlparameter);
        break;


      case '101': $datamenu = new DataMenuFreeSight1($pUrlparameter);
        break;
      case '102': $datamenu = new DataMenuFreeSight2($pUrlparameter);
        break;
      case '103': $datamenu = new DataMenuFreeSight3($pUrlparameter);
        break;
      case '104': $datamenu = new DataMenuFreeSight4($pUrlparameter);
        break;
      case '105': $datamenu = new DataMenuFreeSight5($pUrlparameter);
        break;
      case '106': $datamenu = new DataMenuFreeSight6($pUrlparameter);
        break;
      case '107': $datamenu = new DataMenuFreeSight7($pUrlparameter);
        break;
      case '108': $datamenu = new DataMenuFreeSight8($pUrlparameter);
        break;
      case '109': $datamenu = new DataMenuFreeSight9($pUrlparameter);
        break;
      case '110': $datamenu = new DataMenuFreeSight10($pUrlparameter);
        break;
      case '111': $datamenu = new DataMenuFreeSight11($pUrlparameter);
        break;
      case '112': $datamenu = new DataMenuFreeSight12($pUrlparameter);
        break;
      case '113': $datamenu = new DataMenuFreeSight13($pUrlparameter);
        break;
      case '114': $datamenu = new DataMenuFreeSight14($pUrlparameter);
        break;
      case '115': $datamenu = new DataMenuFreeSight15($pUrlparameter);
        break;
      case '116': $datamenu = new DataMenuFreeSight16($pUrlparameter);
        break;
      case '117': $datamenu = new DataMenuFreeSight17($pUrlparameter);
        break;
      case '118': $datamenu = new DataMenuFreeSight18($pUrlparameter);
        break;
      case '119': $datamenu = new DataMenuFreeSight19($pUrlparameter);
        break;
      case '120': $datamenu = new DataMenuFreeSight20($pUrlparameter);
        break;
      case '149': $datamenu = new DataMenuFreeSight21($pUrlparameter);
        break;
      case '150': $datamenu = new DataMenuFreeSight22($pUrlparameter);
        break;
      case '151': $datamenu = new DataMenuFreeSight23($pUrlparameter);
        break;
      case '152': $datamenu = new DataMenuFreeSight24($pUrlparameter);
        break;
      case '153': $datamenu = new DataMenuFreeSight25($pUrlparameter);
        break;
      case '154': $datamenu = new DataMenuFreeSight26($pUrlparameter);
        break;
      case '155': $datamenu = new DataMenuFreeSight27($pUrlparameter);
        break;
      case '156': $datamenu = new DataMenuFreeSight28($pUrlparameter);
        break;
      case '157': $datamenu = new DataMenuFreeSight29($pUrlparameter);
        break;
      case '158': $datamenu = new DataMenuFreeSight30($pUrlparameter);
        break;
      case '159': $datamenu = new DataMenuFreeSight31($pUrlparameter);
        break;
      case '160': $datamenu = new DataMenuFreeSight32($pUrlparameter);
        break;
      case '161': $datamenu = new DataMenuFreeSight33($pUrlparameter);
        break;
      case '162': $datamenu = new DataMenuFreeSight34($pUrlparameter);
        break;
      case '163': $datamenu = new DataMenuFreeSight35($pUrlparameter);
        break;
      case '164': $datamenu = new DataMenuFreeSight36($pUrlparameter);
        break;
      case '165': $datamenu = new DataMenuFreeSight37($pUrlparameter);
        break;
      case '166': $datamenu = new DataMenuFreeSight38($pUrlparameter);
        break;
      case '167': $datamenu = new DataMenuFreeSight39($pUrlparameter);
        break;
      case '168': $datamenu = new DataMenuFreeSight40($pUrlparameter);
        break;
      case '169': $datamenu = new DataMenuFreeSight41($pUrlparameter);
        break;
      case '170': $datamenu = new DataMenuFreeSight42($pUrlparameter);
        break;
      case '171': $datamenu = new DataMenuFreeSight43($pUrlparameter);
        break;
      case '172': $datamenu = new DataMenuFreeSight44($pUrlparameter);
        break;
      case '173': $datamenu = new DataMenuFreeSight45($pUrlparameter);
        break;
      case '174': $datamenu = new DataMenuFreeSight46($pUrlparameter);
        break;
      case '175': $datamenu = new DataMenuFreeSight47($pUrlparameter);
        break;
      case '176': $datamenu = new DataMenuFreeSight48($pUrlparameter);
        break;
      case '177': $datamenu = new DataMenuFreeSight49($pUrlparameter);
        break;
      case '178': $datamenu = new DataMenuFreeSight50($pUrlparameter);
        break;

        
      case '200':
      case '201':
      case '202':
      case '203':
      case '206':
      case '209':
      case '207': $datamenu = DataMenuInteressenbekundungFactory::getDataMenu(new URLParameterNavigation());
        break;

      case '204': $datamenu = new DataMenuAussenstellenUebersichtForKategorie($pUrlparameter);
        break; 
      case '205': $datamenu = new DataMenuDokumente($pUrlparameter);
        break; 
      case '208': $datamenu = new DataMenuAussenstellenUebersicht($pUrlparameter);
        break; 
      case '210': $datamenu = new DataMenuCookies($pUrlparameter);
        break; 
      case '211': $datamenu = new DataMenuWbPlugin($pUrlparameter);
        break; 
      case '212': $datamenu = new DataMenuDozUebersicht(new URLParameterNavigationWarenkorb());
        break; 
      case '213': $datamenu = new DataMenuDozDetailsSelf(new URLParameterDetails());
        break; 
      case '214': $datamenu = new DataMenuHausUebersicht(new URLParameterBlaetternSelf());
        break; 
      case '215': $datamenu = new DataMenuHausDetailsSelf(new URLParameterDetails());
        break; 
      case '216': $datamenu = new DataMenuKurseLastMinute($pUrlparameter);
        break;
      case '217': $datamenu = new DataMenuKursortUebersicht(new URLParameterBlaetternSelfKursort());
        break; 
      case '218': $datamenu = new DataMenuKursortDetailsSelf(new URLParameterDetails());
        break; 
        
      case '220': $datamenu = new DataMenuHausUebersichtForAussenst(new URLParameterBlaetternSelfAussenstelle());
        break; 
      case '221': $datamenu = new DataMenuKursortUebersichtForAussenst(new URLParameterBlaetternSelfAussenstelle());
        break; 
      case '222':

        $datamenu = new DataMenuDozentenGruppiert($pUrlparameter);
        break;
      case '223':

        $datamenu = new DataMenuKursUebersicht($pUrlparameter);
        break;
      case '224':

        $datamenu = new DataMenuLoginFormular($pUrlparameter);
        break;
      case '225':

        $datamenu = new DataMenuKategorienListe($pUrlparameter);
        break;
      case '226':

        $datamenu = new DataMenuStichwortliste($pUrlparameter);
        break;
      case '227':

        $datamenu = new DataMenuStichworteGruppiert($pUrlparameter);
        break;
      case '228':

        $datamenu = new DataMenuNewsletter(new URLParameterNavigation());
        break;
      case '229':

        $datamenu = new DataMenuAktuellesWbUebersicht(new URLParameterNavigation());
        break;
      case '230':

        $datamenu = new DataMenuAktuellesWbDetails(new URLParameterNavigation());
        break;
        
      case '231':

        $datamenu = new DataMenuNachbarschaftskurse();
        break;
        
      case '232':

        $datamenu = new DataMenuNachbarschaftskurseFormular();
        break;
      case '233':

        $datamenu = new DataMenuKategorienListe(new URLParameterNavigation());
        break;
      case '234':

        $datamenu = new DataMenuVerlauf(new URLParameterNavigation());
        break;
      case '235':

        $datamenu = new DataMenuKursHighlights(new URLParameterNavigation());
        break;
      case '236':

        $datamenu = new DataMenuLogin(new URLParameterNavigation());
        break;
      case '237':

        $datamenu = new DataMenuLoginFormular(new URLParameterNavigation());
        break;
      case '238':

        $datamenu = new DataMenuWebToolsLogin(new URLParameterNavigation());
        break;
      case '239':

        $datamenu = new DataMenueAktuelleTermineBasis(new URLParameterNavigation());
        break;
      case '240':

        $datamenu = new DataMenueAktuelleTermineBasis(new URLParameterNavigation());
        $datamenu->setStatus('A');
        break;
      case '241':

        $datamenu = new DataMenueAktuelleTermine(new URLParameterNavigation());
        break;
      case '242':

        $datamenu = new DataMenueAktuelleTermine(new URLParameterNavigation());
        $datamenu->setStatus('A');
        break;
      case '243':

        $datamenu = new DataMenuKategorienSelect($pUrlparameter);
        break;
      case '244':

        $datamenu = new DataMenuKategorienSelectDefault($pUrlparameter);
        break;
      case '245':

        $datamenu = new DataMenuSonderKategorienSelect($pUrlparameter);
        break;
      case '246':

        $datamenu = new DataMenuSonderKategorienSelectDefault($pUrlparameter);
        break;

      case '247':
        $datamenu = new DataMenuGebaeudeGruppiert($pUrlparameter);
        break;
      case '248':
        $datamenu = new DataMenuKursorteGruppiert($pUrlparameter);
        break;

      case '249':
        $datamenu = new DataMenuBasysUser($pUrlparameter);
        break;
      case '250':
        $datamenu = new DataMenuKategorieUebersichtGesamt($pUrlparameter);
        break;

      case '251':
        $datamenu = new DataMenuKurseMonatsuebersicht(new URLParameterKursMonatsUebersicht());
        break;

        
      case '252':
        $datamenu = new DataMenuWunschzettelUebersicht($pUrlparameter);
        break;

        
      case '253':
        $datamenu = new DataMenuWunschzettelDetails($pUrlparameter);
        break;

        
      case '254':
        $datamenu = new DataMenuWunschzettelFormular($pUrlparameter);
        break;

        
      case'255':
        $datamenu = DataMenuTagcloud::getDataMenu(new URLParameterTagcloud());
        break;

        
      case '256':
        $datamenu = DataMenuPasswortVergessenFactory::getDataMenu(new URLParameterLogin());
        break;
        
      case '257':
        if (DBWorkBASysSettings::isKornwestheimEbz()) {
          $datamenu = new DataMenuLoginDatenAendernZsa(new URLParameterNavigation());
        } else {
          $datamenu = new DataMenuLoginDatenAendern(new URLParameterNavigation());
        }
        break;

      case '266':
        $datamenu = new DataMenuLoginRegistrierung(new URLParameterNavigation());
        break;

      case '267':
        $datamenu = new DataMenuLoginBankdaten(new URLParameterNavigation());
        break;
      case '268':
        $datamenu = DataMenuFreeKontaktFormularFactory::getDataMenu(new URLParameterNavigation());
        break;
      case '269':
        $datamenu = DataMenuFreeKontaktFormularFactory::getDataMenu(new URLParameterNavigation());
        break;
      case '271':
        $datamenu = new DataMenuStandortUebersichtAdressen(new URLParameterNavigation());
        break;
      case '272':
        $datamenu = new DataMenuAdressDetailsSelf(new URLParameterNavigation());
        break;
      case '273':
        $datamenu = new DataMenuKursKontaktFormular($pUrlparameter);
        break;
      case '274':
        $datamenu = new DataMenuBasysUserDetailsSelf(new URLParameterNavigation());
        break;
      case '275':
        $datamenu = new DataMenuRestplatzBoerse($pUrlparameter);
        break;
      case '276': 
        $datamenu = new DataMenuAussenstellenUebersichtListe($pUrlparameter);
        break;
      case '277': 
        $datamenu = new DataMenuNewsletterBestaetigungKuferSql(new URLParameterNewsletterBestaetigungKuferSql());
        break;
      case '278':
        $datamenu = new DataMenuDetailsEinzelKursCms($pUrlparameter);
        break;
      case '279':
        $datamenu = new DataMenuTeamsMitarbeiter($pUrlparameter);
        break;
      case '280':
        $datamenu = new DataMenuTeamsDozenten($pUrlparameter);
        break;
      case '281':
        $datamenu = new DataMenuMatAusgUebersicht(new URLParameterBlaetternSeiteSelf());
        break;
      case '282':
        $datamenu = new DataMenuMatAusgDetails(new URLParameterMaterial());
        break;
      case '283':
        $datamenu = DataMenuMatAusgInteresseFactory::getDataMenu(new URLParameterMaterial());
        break;
      case '284':
        $datamenu = new DataMenuTeilnehmerAlsMitarbeiter(new URLParameterBlaetternSeiteSelf());
        break;
      case '285':
        $datamenu = new DataMenuKurseMonatsuebersicht2(new URLParameterKursMonatsUebersichtKombiniert());
        break;
      case '286':
        $datamenu = new DataMenuKursHighlightsSeparat(new URLParameterNavigation());
        break;
      case '287':
        $datamenu = \Kufer\Web\Webbasys\Includee\Datamenu\DataMenuKurseSonderkategorieOderHighlights::getDataMenu($pUrlparameter);
        break;
      case '288':
        $datamenu = new DataMenuWeitermeldungCodeEingabe($pUrlparameter);
        break;
      case '289': 
        $datamenu = new DataMenuWeitermeldungDoubleOptIn($pUrlparameter);
        break;
      case '290':
        $datamenu = new DataMenuWeitermeldung($pUrlparameter);
        break;
      case '291':
        $datamenu = new DataMenuStartendeKurse($pUrlparameter);
        break;
      case '400':
        $datamenu = new DataMenuLoginMeineKurse($pUrlparameter);
        break;
      case '401': 
        $datamenu = new DataMenuLoginMerkliste($pUrlparameter);
        break;
      case '402':
        $datamenu = new DataMenuLoginRegistrierungPersNr(new URLParameterNavigation());
        break;
      case '403':
        $datamenu = new DataMenuLoginRegistrierungTnr(new URLParameterNavigation());
        break;
      case '404':
        $datamenu = new DataMenuLoginDateienHochladen(new URLParameterNavigation());
        break;
      case '405':
        $datamenu = new DataMenuLoginSepaMandat(new URLParameterNavigation());
        break;
      case '406': 
        $datamenu = new DataMenuLoginStornieren(new URLParameterStornieren());
        break;
      case '407':
        $datamenu = new DataMenuLoginMeineDokumente($pUrlparameter);
        break;

      case '420': 
        $datamenu = new DataMenuLoginKinderAnhandBeziehungUebersicht(new URLParameterKind());
        break;
      case '421':
        $datamenu = new DataMenuLoginKinderAnhandBeziehungHinzufuegen(new URLParameterKind());
        break;
      case '422':
        $datamenu = new DataMenuLoginKinderAnhandBeziehungBearbeiten(new URLParameterKind());
        break;
      case '423':
        $datamenu = new DataMenuDemnaechstMenueSeparat($pUrlparameter);
        break;

      case '424':
        $datamenu = new DataMenuLoginWeitermeldung($pUrlparameter);
        break;
      case '425':
        $datamenu = new DataMenuStandortliste($pUrlparameter);
        break;

      case '426':
        $datamenu = new DataMenuKurshighlightsKategorie($pUrlparameter);
        break;

      case '500': 
        if (DBWorkBASysSettings::isInnsbruckStadt()) {
          $datamenu = new DataMenuMainAnmeldung(new URLParameterAnmeldungSofort());
          break;
        } else {
          $datamenu = new DataMenuAnmeldungNeu(new URLParameterAnmeldungSofort());
        }
        break;
      case '505':
        $datamenu = new DataMenuAnmeldungVerification(new URLParameterVerification());
        break;
      case '510':
        $f = new \Kufer\Web\Webbasys\Includee\Datamenu\TerminAnfrage\DataMenuTerminAnfrageFactory();
        $datamenu = $f->getDataMenu(new \Kufer\Web\Classes\Datamodul\URLParameterTerminAnfrage());
        break;
      case '600': 
        $datamenu = new \webbasys\includee\datamenu\DataMenuWebShopArtikelUebersicht(new URLParameterBlaetternShop()); 
        break;
      case '601': 
        $datamenu = new \webbasys\includee\datamenu\DataMenuWebShopArtikelDetails(new URLParameterDetails()); 
        break;
      case '602': 
        $datamenu = new \webbasys\includee\datamenu\DataMenuWebShopWarenkorbKomplett($pUrlparameter);
        break;
      case '620':
        $datamenu = new DataMenuKursUebersichtBeendete(new URLParameterBlaetternSeiteSelf());
        break;
      case '621':
        $datamenu = new DataMenuKursUebersichtKalender(new URLParameterBlaetternSeiteSelf());
        break;

      case '666':
        $datamenu = new DataMenuZsaRegistrierungBestaetigenDblOptIn($pUrlparameter);
        break;
      case '667':
        $datamenu = new DataMenuZsaRegistrierung($pUrlparameter);
        break;
      case '668':
        $datamenu = new DataMenuZsaZielbereichAendern($pUrlparameter);
        break;
      case '680':
        $datamenu = new DataMenuAbmeldelink(new URLParameterAbmeldungOnline());
        break;


        
    }

    return $datamenu;
  }

  public static function getKathauptNrAnmeldung()
  {
    if (SessionOperations::isNeuesAnmeldeverfahren()) {
      return '500';
    } else {
      return '5';
    }
  }
}