<?php

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


class ToolTnKursVorschlag extends ToolBase
{
  protected $_isRefresh = false;

  public function __construct()
  {
    parent::__construct();
    $sprachsettings = new SprachSettingsObject();

    $this->toolTitle = $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . 'vorschlag';
  }

  
  public function init($pPageId)
  {
    $sprachsettings = new SprachSettingsObject();
    ToolBase::checkBrowserReload();
    switch ($pPageId) {
      default:
      case 330:
        $doVorschlag = !$this->_isRefresh && ((PostOperations::getVarValue('Vorschlagen', '') != '') || (PostOperations::getVarValue('Vorschlagen_x', '') != ''));
        
        $versandOk = false;
        $statusMeldung = '';
        if ($doVorschlag) {
          $tn = \SessionOperations::getCurrentWebToolsTeilnehmer();
          $betreff = $sprachsettings->Teilnehmer['Singular']['Nominativ'] . ' Vorschlag für ein ' . $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . '-Thema aus den KuferTools';
          $mailText = 'Am ' . DateTimeOperations::getDateNow() . ' um ' . DateTimeOperations::getTimeNow() . ' wurde von ';
          $mailText .= $tn->namevorname . ' (interne ' . $sprachsettings->Teilnehmer['Singular']['Nominativ'] . '-Nr. ' . $tn->id . ') folgender Kursvorschlag eingereicht:' . "\n";
          $vars = array('kursthema' => $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . '-Thema',
            'kursinhalt' => $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . 'inhalt',
            'bemerkungen' => 'Bemerkungen',
            'kursdauer' => 'gewünschte ' . $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . 'dauer (in Stunden)',
            'dauerForm' => 'alternative Dauer',
            'uhrzeit' => 'gewünschte Uhrzeit', 'tageszeit' => 'Tageszeit');
          foreach ($vars as $var => $mailBezeichnung) {
            $val = PostOperations::getVarValue($var);
            if (is_array($val)) {
              if (count($val) > 0) {
                $mailText .= "\n" . $mailBezeichnung . ': ' . implode(', ', $val);
              }
            } elseif ($val != '') {
              $mailText .= "\n" . $mailBezeichnung . ': ' . $val;
            }
          }

          

          try {
            $teilnehmer = SessionOperations::getCurrentWebToolsTeilnehmer();
          } catch (Exception $e) { 
            $teilnehmer = null;
          }
          $senderEmailData = ToolsAPI::getSenderEmailAddressAndName($teilnehmer);

          
          
          $mailAddress = EmailOperations::getToolEmailAddressForVhs($this->toolSettings->vhsEmailTool25Section330);
          $email = new smtpMailTools();
          $email->SetVar2Value('from', $senderEmailData['email']);
          $email->SetVar2Value('sendername', $senderEmailData['name']);
          $email->SetVar2Value('reply', $senderEmailData['reply']);
          $email->SetVar2Value('replyname', $senderEmailData['replyname']);
          $email->SetVar2Value('to', $mailAddress);
          $email->SetVar2Value('contenttype', 'text/plain; charset=' . CodingOperations::getInternalEncoding() . '; format=flowed');
          $email->SetVar2Value('subject', $betreff);
          $email->SetVar2Value('body', $mailText);
          $versandOk = $email->sendMail();
          if (!$versandOk) {
            $statusMeldung = HTMLOperations::getAlertBox('Der Vorschlag konnte nicht verschickt werden.' . BR_WT . 'Bitte versuchen Sie es später erneut oder
                                                          setzen Sie sich mit uns in Verbindung.', 'Achtung', 'in_background');
          } else {
            
            foreach ($vars as $var => $mailBezeichnung) {
              unset($_POST[$var]);
            }
          }
        } else {
          if ($this->_isRefresh) {
            $statusMeldung = HTMLOperations::getInfoBox('<div class="infobox_text">Ein mehrfaches Versenden des gleichen Vorschlags ist nicht möglich.</div>', 'Hinweis', 'in_background');
          }
        }
        $pageLinks = array('action' => $this->getUrlParamsForFile(array('toolsection_id' => '330')));
        $page = new PageTnKursvorschlag($sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . 'vorschlag', $pPageId, $this, $versandOk);
        if ($statusMeldung != '') {
          $page->statusMessage = $statusMeldung;
        }
        $page->setLinks($pageLinks);
        break;
    }
    if ($page == null) {
      throw new Exception('ungültige PageId');
    }
    $this->currentPage = $page;
  }

  public function doByBrowserRefresh()
  {
    $this->_isRefresh = true;
    $_POST = array();
    $_SERVER['REQUEST_METHOD'] = 'GET';
  }

  public function getToolId()
  {
    return \ToolsAPI::TOOL_KURSVORSCHLAG_TN;
  }
}

class PageTnKursvorschlag extends PageBaseWT
{
  protected $_vorschlagEingereicht = false;
  public $statusMessage;

  public function __construct($pPageTitle, $pPageId, $pTool, $pEingereicht = false)
  {
    parent::__construct($pPageTitle, $pPageId, $pTool);
    $this->_vorschlagEingereicht = $pEingereicht;
    if ($this->_vorschlagEingereicht) {
      $this->statusMessage = HTMLOperations::getSuccessBox('Der Vorschlag wurde erfolgreich versandt. Vielen Dank.', 'Versand erfolgreich', 'in_background');
    }
  }

  
  public function getContent()
  {
    $sprachsettings = new SprachSettingsObject();
    $result = '';
    if ($this->statusMessage != '') {
      $result .= '<div id="statusMessage">' . $this->statusMessage . '</div>';
    }
    $result .= 'Sollten Sie eine Idee oder einen konkreten Vorschlag für ein neues ' . $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . '-Thema haben, ';
    $result .= 'so können Sie uns dies hier übermitteln. ' . BR_WT;
    $result .= 'Wir werden dann versuchen, ' . $sprachsettings->Kurs['Singular_mit_Artikel']['Akkusativ'] . ' zu planen und bei ausreichendem Interesse ';
    $result .= 'stattfinden zu lassen!' . BR_WT;
    $result .= 'Wir bedanken uns für Ihre aktive Mitarbeit und halten Sie über den Planungsfortschritt ';
    $result .= 'auf dem Laufenden.' . BR_WT . BR_WT;
    $result .= '<form method="post" action="' . $this->links['action'] . '" id="formKursvorschlag">' . "\n";
    $result .= '  <table>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '    <th class="noBG"><label for="kursthema">' . $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . '-Thema</label></th>' . "\n";
    $result .= '    <td colspan="2"><input type="text" name="kursthema" value="' . PostOperations::getVarValue('kursthema') . '" id="kursthema" style="width:332px;"></td>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '    <th class="noBG"><label for="kursinhalt">' . $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . 'inhalt</label></th>' . "\n";
    $result .= '    <td colspan="2"><textarea name="kursinhalt" id="kursinhalt" rows="5" cols="60" style="resize: none; width:330px;">'
                . PostOperations::getVarValue('kursinhalt') . '</textarea></td>' . "\n";
    $result .= '  </tr>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '    <th class="noBG"><label for="bemerkungen">Bemerkungen</label></th>' . "\n";
    $result .= '    <td colspan="2"><textarea name="bemerkungen" id="bemerkungen" rows="5" cols="60" style="resize: none; width:330px;">'
                . PostOperations::getVarValue('bemerkungen') . '</textarea></td>' . "\n";
    $result .= '  </tr>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '    <th class="noBG"><label for="kursdauer">gewünschte ' . $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . 'dauer</label></th>' . "\n";
    $result .= '    <td><input type="text" name="kursdauer" value="' . PostOperations::getVarValue('kursdauer') . '" id="kursdauer" style="width:38px;"> Stunden oder als  </td>' . "\n";
    $result .= '    <td>' . "\n";
    $result .= '      <input type="checkbox" name="dauerForm[]" id="tagesseminar" value="als Tagesseminar"'
                . (is_array(PostOperations::getVarValue('dauerForm')) && in_array('als Tagesseminar', PostOperations::getVarValue('dauerForm')) ? ' checked' : '')
                . '><label for="tagesseminar">Tagesseminar</label>' . BR_WT . "\n";
    $result .= '      <input type="checkbox" name="dauerForm[]" id="wochenendseminar" value="als Wochenendseminar"'
                . (is_array(PostOperations::getVarValue('dauerForm')) && in_array('als Wochenendseminar', PostOperations::getVarValue('dauerForm')) ? ' checked' : '')
                . '><label for="wochenendseminar">Wochenend-Seminar</label>' . BR_WT . "\n";
    $result .= '      <input type="checkbox" name="dauerForm[]" id="ganzesSemester" value="das ganze Semester"'
                . (is_array(PostOperations::getVarValue('dauerForm')) && in_array('das ganze Semester', PostOperations::getVarValue('dauerForm')) ? ' checked' : '')
                . '><label for="ganzesSemester">über das ganze Semester</label>' . "\n";
    $result .= '    </td>' . "\n";
    $result .= '  </tr>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '    <td>&nbsp;</td>' . "\n";
    $result .= '  </tr>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '    <th class="noBG"><label for="kursuhrzeit">gewünschte Uhrzeit</label></th>' . "\n";
    $result .= '    <td><input type="text" name="uhrzeit" value="' . PostOperations::getVarValue('uhrzeit') . '" id="kursuhrzeit" style="width:38px;" class="hasTimePicker"> oder </td>' . "\n";
    $result .= '    <td>' . "\n";
    $result .= '      <input type="checkbox" name="tageszeit[]" id="vormittags" value="vormittags"'
                . (is_array(PostOperations::getVarValue('tageszeit')) && in_array('vormittags', PostOperations::getVarValue('tageszeit')) ? ' checked' : '')
                . '><label for="vormittags">vormittags</label>' . BR_WT . "\n";
    $result .= '      <input type="checkbox" name="tageszeit[]" id="nachmittags" value="nachmittags"'
                . (is_array(PostOperations::getVarValue('tageszeit')) && in_array('nachmittags', PostOperations::getVarValue('tageszeit')) ? ' checked' : '')
                . '><label for="nachmittags">nachmittags</label>' . BR_WT . "\n";
    $result .= '      <input type="checkbox" name="tageszeit[]" id="abends" value="abends"'
                . (is_array(PostOperations::getVarValue('tageszeit')) && in_array('abends', PostOperations::getVarValue('tageszeit')) ? ' checked' : '')
                . '><label for="abends">abends</label>' . BR_WT . "\n";
    $result .= '    </td>' . "\n";
    $result .= '  </tr>' . "\n";
    $result .= '  <tr>' . "\n";
    $result .= '    <td>&nbsp;</td>' . "\n";
    $result .= '  </tr>' . "\n";
    $result .= '  <tr>' . "\n";

    $result .= '    <td></td>' . "\n";
    $result .= '    <td colspan="2">' . "\n"
               . '      <a href="javascript:window.print();" id="kursVorschlagDruck" title="Kursvorschlag drucken">'
               . '        <img src="layout/button_druck.gif" alt="Kursvorschlag drucken"></a>' . "\n"
               . '        <input type="image" title="Abschicken" src="layout/button_absenden.gif" border="0" name="Vorschlagen">';
    $result .= '        <img alt="Formular Löschen" id="resetForm" src="layout/button_delete.gif" onmouseover="this.style.cursor=\'pointer\';" title="Formular Löschen">';
    $result .= '    </td>';
    $result .= '  </tr>' . "\n";
    $result .= '  </table>' . "\n";
    $result .= '</form>' . "\n";
    $result .= '<script type="text/javascript" language="javascript">';
    $result .= '$(\'#kursuhrzeit\').timepicker({});';
    $result .= '$(\'#resetForm\').click(function() {';
    $result .= '  $(\'#formKursvorschlag input[type=checkbox]\').prop(\'checked\', false);';
    $result .= '  $(\'#formKursvorschlag input[type=text]\').val("");';
    $result .= '  $(\'#formKursvorschlag textarea\').val("");';
    $result .= '});' . "\n";
    
    $result .= '$(\'#formKursvorschlag input[type=image]\').click(function() {';
    $result .= '  if ($("#formKursvorschlag #kursthema").val()=="" || $("#formKursvorschlag #kursinhalt").val()=="") {';
    $result .= '    showMessage("Zumindest Thema und Inhalt müssen gefüllt sein!","Hinweis");';
    $result .= '    return false;';
    $result .= '  }';
    $result .= '});' . "\n";
    $result .= '</script>';

    return $result;
  }

  
  public function getContentHeader()
  {
    $sprachsettings = new SprachSettingsObject();

    return 'Vorschlag für ein neues ' . $sprachsettings->KursZusammengesetzt['Singular']['Nominativ'] . '-Thema:';
  }
}