<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */


class WarenkorbStatusMessagerAPI
{
  public static function _getExportResult4Kurs($pText, $pKurs)
  {
    $exportadapter = new ExpKurse();
    $exportadapter->export->initiate();
    $exportadapter->export->exportresults = array($pKurs);
    $exportadapter->filestream = $pText;
    $exportadapter->replaceVarNames();

    return $exportadapter->resultlist[0];
  }

  
  public static function &_getStatusMessager()
  {
    $instance = &StatusMessager::getInstance();

    return $instance;
  }

  
  public static function addMessageNichtFreigegeben($pKurs)
  {
    $statusId = TEXTE_ANM_NICHTFREIGEGEBEN;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $dbwTexte = new DBWorkTexte();
    if (trim($pKurs->keinewebanmeld) != '') {
      $statusText = WarenkorbStatusMessagerAPI::_getExportResult4Kurs($pKurs->keinewebanmeld, $pKurs);
    } else {
      $textObj = $dbwTexte->getTextById($statusId);
      $statusText = trim($textObj->wert);
      
      if ($statusText != '') {
        $statusText = WarenkorbStatusMessagerAPI::_getExportResult4Kurs($statusText, $pKurs);
      } else {
        $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') ist für Anmeldungen nicht freigegeben. ';
      }
    }
    $statusmessager->addMessage($statusText, $statusId);
  }

  
  public static function addMessageAnmeldungDeaktiviert()
  {
    $settings = ToolSettingsAPI::getToolSettings(4);
    $statusText = '<div class="statusmeldung-danger" id="anmeldung-deaktiviert">' . $settings->keineanmeldungtext . '</div></div>';
    $statusId = TEXTE_ANM_NICHTFREIGEGEBEN;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $statusmessager->addMessage($statusText, $statusId);
  }

  public static function addMessageBadReichenhallKurskennzeichenNichtMischen($pKurs)
  {
    $statusId = TEXTE_WK_KURSKENNZEICHENNICHTMISCHEN;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') kann nicht in den Warenkorb gelegt werden. '
    . 'Kinderkurse können nicht mit anderen Veranstaltungsarten gemischt werden. Bitte schließen Sie zuerst den Anmeldevorgang für die im Warenkorb befindlichen Kurse ab.';
    $statusmessager->addMessage($statusText, $statusId);
  }

  public static function addMessageKoelnElternschuleKurskennzeichenNichtMischen($pKurs)
  {
    $statusId = TEXTE_WK_KURSKENNZEICHENNICHTMISCHEN;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') kann nicht in den Warenkorb gelegt werden. '
    . 'Geburtsvorbereitungskurse können nicht mit anderen Veranstaltungsarten gemischt werden. Bitte schließen Sie zuerst den Anmeldevorgang für die im Warenkorb befindlichen Kurse ab.';
    $statusmessager->addMessage($statusText, $statusId);
  }

  
  public static function addMessageKannNichtAblegen($pKurs)
  {
    $statusId = TEXTE_WK_KANNNICHTABLEGEN;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $dbwTexte = new DBWorkTexte();
    $textObj = $dbwTexte->getTextById($statusId);
    $statusText = trim($textObj->wert);
    
    if ($statusText != '') {
      $statusText = WarenkorbStatusMessagerAPI::_getExportResult4Kurs($statusText, $pKurs);
    } else {
      $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') kann nicht in den Warenkorb gelegt werden. '
      . 'Bitte führen Sie erst den Anmeldevorgang für die bisher eingetragenen Veranstaltungen durch.';
    }
    $statusmessager->addMessage($statusText, $statusId);
  }

  
  public static function addMessageFriedrichshafenVeranstaltungsartenNichtMischen($pKurs)
  {
    $statusId = TEXTE_WK_VERANSTALTUNGENNICHTMISCHEN;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') kann nicht in den Warenkorb gelegt werden. '
    . 'Jugendangebote können nicht mit anderen Veranstaltungsarten gemischt werden. Bitte schließen Sie zuerst den Anmeldevorgang für die im Warenkorb befindlichen Kurse ab.';
    $statusmessager->addMessage($statusText, $statusId);
  }

  
  public static function addMessageAbgelegt($pKurs)
  {
    $statusId = TEXTE_WK_ABGELEGT;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $dbwTexte = new DBWorkTexte();
    $textObj = $dbwTexte->getTextById($statusId);
    $statusText = trim($textObj->wert);
    if ($statusText != '') {
      $statusText = WarenkorbStatusMessagerAPI::_getExportResult4Kurs($statusText, $pKurs);
    } else {
      $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') wurde in den Warenkorb gelegt.';
    }
    if (DBWorkBASysSettings::isIHK()) {
      $statusText .= "<span class='hiddenBasketMessage'></span>";
    }
    $statusmessager->addMessage($statusText, $statusId);
  }

  
  public static function addMessageCookieCheck($pKurs)
  {
    $statusId = TEXTE_WK_COOKIECHECK;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $dbwTexte = new DBWorkTexte();
    $textObj = $dbwTexte->getTextById($statusId);
    $statusText = trim($textObj->wert);
    if ($statusText != '') {
      $statusText = WarenkorbStatusMessagerAPI::_getExportResult4Kurs($statusText, $pKurs);
    } else {
      $statusText = 'Es ist nicht sicher, ob Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') in den Warenkorb gelegt wurde.'
                    . ' Bitte überprüfen Sie den Warenkorb und aktivieren Sie ggf. die Cookies in den Einstellungen Ihres Browsers.';
    }
    $statusmessager->addMessage($statusText, $statusId);
  }

  
  public static function addMessageEntfernt($pKurs)
  {
    $statusId = TEXTE_WK_ENTFERNT;
    $dbwText = new DBWorkTexte();
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $textObj = $dbwText->getTextById($statusId);
    $statusText = trim($textObj->wert);
    if ($statusText != '') {
      $statusText = WarenkorbStatusMessagerAPI::_getExportResult4Kurs($statusText, $pKurs);
    } else {
      $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') wurde aus dem Warenkorb entfernt.';
    }
    $statusmessager->addMessage($statusText, $statusId);
  }

  
  public static function addMessageGeleert()
  {
    $statusId = TEXTE_WK_GELEERT;
    $dbwText = new DBWorkTexte();
    $settings = ToolSettingsAPI::getToolSettings(4);
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $textObj = $dbwText->getTextById($statusId);
    $statusText = trim($textObj->wert);
    if ($statusText === '') {
      $statusText = 'Der ' . $settings->warenkorbName . ' wurde geleert.';
    }
    $statusmessager->addMessage($statusText, $statusId);
  }

  public static function addMessageEPayment($pMessage)
  {
    $pMessage = base64_decode($pMessage);
    $enc = new EncodeCharsetFromTo(UTF_8, CodingOperations::getInternalEncoding());
    $msg = $enc->encode($pMessage);
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $statusmessager->addMessage($msg, 5);
  }

  
  public static function addMessageHauptkursNichtLoeschbar($pKurs)
  {
    $statusId = TEXTE_WK_HAUPTKURS_NICHT_LOESCHBAR;
    $statusmessager = &WarenkorbStatusMessagerAPI::_getStatusMessager();
    $statusText = 'Veranstaltung "' . $pKurs->getVarValue('kurzbez_titel') . '" (Nr. ' . $pKurs->nrab . ') kann nicht'
    . ' aus dem Warenkorb entfernt werden, da noch mindestens ein Unterkurs dieses Hauptkurses im Warenkorb liegt.';
    $statusmessager->addMessage($statusText, $statusId);
  }
}