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


class PageRaumVeranstaltungsPlanung extends PageBaseWT
{
  
  private $_data;
  
  private $_rNrSelected;

  
  private $_eMailSuccess;

  public function __construct($pTool, $pPageId, $pData, $pRNrSelected = -1, $pEMailSuccess = '')
  {
    parent::__construct('Veranstaltungsplanung', $pPageId, $pTool);
    $this->_data = $pData;
    $this->_rNrSelected = $pRNrSelected;
    $this->_eMailSuccess = $pEMailSuccess;
  }

  public function getContent()
  {
    

    
    $raumOptions = array();
    foreach ($this->_data as $raum) {
      $raumOptions[$raum->id] = $raum->mktext;
    }


    
    $bestulungsOptions = array(
      'U-Form' => 'U-Form',
      'Reihe' => 'Reihe',
      'Kreis' => 'Kreis',
      'Konferenz' => 'Konferenz'
    );

    
    $medienCheckboxen = array(
      'Flipchart' => array('text' => 'Flipchart',         'trail' => '<span class="med_stueck">' . $this->_getInput('medien_anz_Flipchart', 'verAnPlan_medien_anz val_int', PostOperations::getVarValue('medien_anz_Flipchart', '1')) . ' Stück</span>'),
      'Pinnwand' => array('text' => 'Pinnwand',          'trail' => '<span class="med_stueck">' . $this->_getInput('medien_anz_Pinnwand', 'verAnPlan_medien_anz val_int', PostOperations::getVarValue('medien_anz_Pinnwand', '1')) . ' Stück</span>'),
      'Moderationskoffer' => array('text' => 'Moderationskoffer', 'trail' => '<span class="med_stueck">' . $this->_getInput('medien_anz_Moderationskoffer', 'verAnPlan_medien_anz val_int', PostOperations::getVarValue('medien_anz_Moderationskoffer', '1')) . ' Stück</span>')
    );

    
    $eindeckungCheckboxen = array(
      'Buffet' => 'Buffet',
      'Tafel' => 'Tafel',
      'Tische' => 'Tische'
    );

    
    $dekoCheckboxen = array(
      'Tischdecken' => 'Tischdecken',
      'Blumen' => 'Blumen'
    );

    
    $getraenkeCheckboxen = array(
      'Kaffee' => 'Kaffee',
      'Tee' => 'Tee',
      'Wasser' => 'Wasser'
    );

    
    $edvCheckboxen = array(
      'Internet-Zugang' => 'Internet-Zugang',
      'Intranet' => 'Intranet',
      'Software' => array('text' => 'Software', 'trail' => $this->_getInput('edv_software', 'verAnArt_SoftWare', PostOperations::getVarValue('edv_software')))
    );

    $result = '<div class="veranstaltungsplanung">';

    if ($this->_eMailSuccess === true) {
      $result .= HTMLOperations::getInfoBox(
        'Ihre Veranstaltungsplanung wurde erfolgreich versendet.',
        'Veranstaltungsplanung erfolgreich versendet',
        'verAnPlanInfo'
      );
    } elseif ($this->_eMailSuccess === false) {
      $result .= HTMLOperations::getAlertBox(
        'Es ist ein Fehler beim Versenden der Veranstaltungsplanung aufgetreten. '
                                              . 'Bitte versuchen Sie es erneut, oder wenden Sie sich an die Einrichtung.',
        'Fehler beim Versenden der Veranstaltungsplanung',
        'verAnPlanInfo'
      );
    }

    $result .= '<form enctype="multipart/form-data" method="post" action="usertools.php?tool_id=' . CleanOperations::cleanInt($this->tool->getToolId()) . '&toolsection_id=' . CleanOperations::cleanInt($this->id) . '&showVerAnPlan=1">';
    $result .= '<table>
                  <colgroup>
                    <col class="columnFirst">
                    <col class="columnSecond">
                  </colgroup>
                <tbody>';
    $result .= '<tr><th colspan="2"><span class="bold">Name der Veranstaltung</span></th></tr>';
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_Veranstalter">Veranstalter</label>',
      $this->_getInput('verAnPlan_Veranstalter', 'pflichtfeld full_width', PostOperations::getVarValue('verAnPlan_Veranstalter'), 'verAnPlan_Veranstalter')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_Kostenstelle">Kostenstelle (Klinik/Abteilung/Bereich)</label>',
      $this->_getInput('verAnPlan_Kostenstelle', 'pflichtfeld val_int full_width', PostOperations::getVarValue('verAnPlan_Kostenstelle'), 'verAnPlan_Kostenstelle')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_Datum">Datum</label>',
      $this->_getInput('verAnPlan_Datum', 'pflichtfeld val_date full_width', PostOperations::getVarValue('verAnPlan_Datum'), 'verAnPlan_Datum')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_Personenanzahl">Personenzahl</label>',
      $this->_getInput('verAnPlan_Personenanzahl', 'pflichtfeld val_int full_width', PostOperations::getVarValue('verAnPlan_Personenanzahl'), 'verAnPlan_Personenanzahl')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_ZeitBeginn">Beginn der Veranstaltung</label>',
      $this->_getInput('verAnPlan_ZeitBeginn', 'pflichtfeld val_time full_width', PostOperations::getVarValue('verAnPlan_ZeitBeginn'), 'verAnPlan_ZeitBeginn')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_ZeitEnde">Ende der Veranstaltung</label>',
      $this->_getInput('verAnPlan_ZeitEnde', 'pflichtfeld val_time full_width', PostOperations::getVarValue('verAnPlan_ZeitEnde'), 'verAnPlan_ZeitEnde')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_Ansprechpartner">Ansprechpartner</label>',
      $this->_getInput('verAnPlan_Ansprechpartner', 'pflichtfeld full_width', PostOperations::getVarValue('verAnPlan_Ansprechpartner'), 'verAnPlan_Ansprechpartner')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_AnsprechpartnerTel">Telefonnummer Ansprechpartner</label>',
      $this->_getInput('verAnPlan_AnsprechpartnerTel', 'pflichtfeld full_width', PostOperations::getVarValue('verAnPlan_AnsprechpartnerTel'), 'verAnPlan_AnsprechpartnerTel')
    );

    $result .= '<tr><th colspan="2"><span class="bold">Raumplanung, Bestuhlung, Medien, Material:</span> Bildungswerk</th></tr>';
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_RaumNr">Welcher Raum soll gebucht werden?</label>',
      $this->_getSelect('verAnPlan_RaumNr', ' - - Raum auswählen - -', $raumOptions, PostOperations::getVarValue('verAnPlan_RaumNr', $this->_rNrSelected), 'pflichtfeld full_width', 'verAnPlan_RaumNr')
    );
    $result .= $this->_getTableRow(
      '<label for="verAnPlan_Bestuhlung">Gewünschte Bestuhlung</label>',
      $this->_getSelect('verAnPlan_Bestuhlung', '- - Bestuhlung auswählen - - ', $bestulungsOptions, PostOperations::getVarValue('verAnPlan_Bestuhlung'), 'pflichtfeld full_width', 'verAnPlan_Bestuhlung')
    );
    $result .= $this->_getTableRow('Gewünschte Medien und Material', '<div class="verAnPlan_medien hasCheckboxen">' . $this->_getCheckboxen('verAnPlan_MedienMaterial', $medienCheckboxen, PostOperations::getVarValue('verAnPlan_MedienMaterial', array())) . '</div>');

    $result .= '<tr><th colspan="2"><span class="bold">Eindecken der Tische/Dekoration:</span> Hauswirtschaft, Telefon: 5578 / Fax: -1368</th></tr>';
    $result .= $this->_getTableRow('Welche Eindeckung wird benötigt?', '<div class="verAnPlan_Gedeck hasCheckboxen">' . $this->_getCheckboxen('verAnPlan_Gedeck', $eindeckungCheckboxen, PostOperations::getVarValue('verAnPlan_Gedeck', array())) . '</div>');
    $result .= $this->_getTableRow('Wird besondere Dekoration benötigt?', '<div class="verAnPlan_Deko hasCheckboxen">' . $this->_getCheckboxen('verAnPlan_Deko', $dekoCheckboxen, PostOperations::getVarValue('verAnPlan_Deko', array())) . '</div>');

    $result .= '<tr><th colspan="2"><span class="bold">Getränke:</span> Speisenversorgung, Telefon: 5790 / Fax: -313 </th></tr>';
    $result .= $this->_getTableRow('Getränke: Kaffee, Tee, Wasser', '<div class="verAnPlan_Getraenke hasCheckboxen">' . $this->_getCheckboxen('verAnPlan_Getraenke', $getraenkeCheckboxen, PostOperations::getVarValue('verAnPlan_Getraenke', array())) . '</div>');

    $result .= '<tr><th colspan="2"><span class="bold">Netzwerk:</span> EDV-Abteilung, Telefon: 1399 / Fax: -398</th></tr>';
    $result .= $this->_getTableRow('Internet-Zugang, Intranet, Software' . BR_WT . BR_WT . 'Laptop und Beamer sind separat über die EDV-Abteilung zu buchen', '<div class="verAnPlan_Netzwerk hasCheckboxen">' . $this->_getCheckboxen('verAnPlan_Netzwerk', $edvCheckboxen, PostOperations::getVarValue('verAnPlan_Netzwerk', array())) . '</div>');
    $result .= '</tbody></table>';

    $result .= '<div class="verAnPlan_besonderes">';
    $result .= '<span class="bold">Besondere Getränke und Speisen:</span> Bitte reichen Sie einen formlosen Antrag mit Informationen über den Anlass und die Beköstigungsart ein. '
               . 'Sie können den Antrag faxen (-1969) oder einscannen und die Datei hier mit anhängen: ' . BR_WT;
    
    $result .= '<input type="hidden" name="MAX_FILE_SIZE" value="4000000"><input type="file" name="varAnPlan_genehmigung">';

    $speisenCheck = (PostOperations::isDefined('verAnPlan_BesondereSpeissen')) ? 'checked="checked"' : '';
    $geschirrJa = (PostOperations::getVarValue('verAnPlan_Geschirr') == 'true') ? 'checked="checked"' : '';
    $geschirrNein = ($geschirrJa == '') ? 'checked="checked"' : '';
    $result .= '<ul>
                  <li><label for="verAnPlan_BesondereSpeissen">Besondere Speisen und/oder Getränke:</label> <input type="checkbox" id="verAnPlan_BesondereSpeissen" name="verAnPlan_BesondereSpeissen" ' . $speisenCheck . '> (gemäß beigefügtem Antrag)' . BR_WT
                  . '<a href="http://marienhospital-herne.netgroup.de/kufer/kurse/dokumente/fingerfoodauswahl.pdf" target="_blank">Hier geht es zur Auswahl besonderer Speisen</a></li>
                  <li><label for="verAnPlan_LieferantNamen">Bestellung bei anderen Lieferanten (bitte Lieferantennamen angeben):</label> <input id="verAnPlan_LieferantNamen" name="verAnPlan_LieferantNamen" value="' . PostOperations::getVarValue('verAnPlan_LieferantNamen') . '"></li>
                  <li><label for="verAnPlan_EssenLieferZeit">Wann wird das Essen geliefert:</label> <input id="verAnPlan_EssenLieferZeit" name="verAnPlan_EssenLieferZeit" class="val_time" value="' . PostOperations::getVarValue('verAnPlan_EssenLieferZeit') . '"> Uhr</li>
                  <li>Wird Geschirr benötigt: <input id="verAnPlan_Geschirr_false" type="radio" name="verAnPlan_Geschirr" value="false" ' . $geschirrNein . '><label for="verAnPlan_Geschirr_false">nein</label>, <input id="verAnPlan_Geschirr_true" type="radio" name="verAnPlan_Geschirr" value="true" ' . $geschirrJa . '><label for="verAnPlan_Geschirr_true">ja</label>, <label for="verAnPlan_GeschirrArt">welcher Art:</label> <input id="verAnPlan_GeschirrArt" name="verAnPlan_GeschirrArt"  value="' . PostOperations::getVarValue('verAnPlan_GeschirrArt') . '"></li>
                </ul>';
    $fremdFinanzierungCheck = (PostOperations::isDefined('verAnPlan_Fremdfinanzierung')) ? 'checked="checked"' : '';
    $result .= 'Anmerkung: <input id="varAnPlan_FremdFinanzierung" type="checkbox" name="verAnPlan_Fremdfinanzierung" ' . $fremdFinanzierungCheck . '> <label for="varAnPlan_FremdFinanzierung">Fremdfinanzierung (in diesem Falle bitte hier die vollständige Rechnungsanschrift angeben)</label>';
    $result .= '<textarea id="varAnPlan_FremdFinanzierung_TextArea" name="verAnPlan_FremdfinanzierungRechnungsanschrift">' . PostOperations::getVarValue('verAnPlan_FremdfinanzierungRechnungsanschrift') . '</textarea>';

    $result .= '</div>';
    if ($this->_eMailSuccess !== true) {
      $result .= HTMLOperations::createButtonSpan('Formular absenden', 'Formular absenden', 'veranstaltungsplanung_submit', '', 'images/okay.gif');
    }
    $result .= '<a href="' . CleanOperations::cleanStringForHtml(ToolsAPI::getLastHistoryEntry()) . '"><img title="zurück" alt="Zurück" src="layout/button_close_small.gif" class="verAnPlan_back"></a>';
    $result .= '</form>';
    $result .= '</div>';

    
    $result .= '<div class="hinweisbox_prototype">' . HTMLOperations::getInfoBox('', 'Feldinhalt') . '</div>';

    return $result;
  }

  public function getContentHeader()
  {
    return 'Veranstaltungsplanung';
  }

  
  private function _getTableRow($pCol1, $pCol2)
  {
    return '<tr><td>' . $pCol1 . '</td><td>' . $pCol2 . '</td></tr>';
  }

  
  private function _getInput($pName = '', $pClass = '', $pValue = '', $pId = '')
  {
    return '<input id="' . CleanOperations::cleanStringForHtml($pId) . '" type="text" name="' . CleanOperations::cleanStringForHtml($pName) . '" class="' . CleanOperations::cleanStringForHtml($pClass) . '" value="' . CleanOperations::cleanStringForHtml($pValue) . '">';
  }

  
  private function _getSelect($pName, $pDefaultText, $pOptionAry, $pSelected, $pClass, $pId)
  {
    $result = '<select id="' . CleanOperations::cleanStringForHtml($pId) . '" name="' . CleanOperations::cleanStringForHtml($pName) . '" class="' . CleanOperations::cleanStringForHtml($pClass) . '">';
    $result .= '<option value="">' . CleanOperations::cleanStringForHtml($pDefaultText) . '</option>';
    foreach ($pOptionAry as $value => $text) {
      $selected = ($value == $pSelected) ? 'selected="selected"' : '';

      $result .= '<option value="' . CleanOperations::cleanStringForHtml($value) . '" ' . $selected . '>' . CleanOperations::cleanStringForHtml($text) . '</option>';
    }
    $result .= '</select>';

    return $result;
  }

  
  private function _getCheckboxen($pName, $pCheckBoxen, $pChecked = array())
  {
    $result = '';
    $i = 0;
    foreach ($pCheckBoxen as $value => $checkbox) {
      $trail = '';
      if (is_string($checkbox)) {
        $text = $checkbox;
      } else {
        $text = $checkbox['text'];
        $trail = $checkbox['trail'];
      }
      $id = $pName . '_' . $i;

      $checked = (in_array($value, $pChecked)) ? 'checked="checked"' : '';

      $result .= '<input id="' . CleanOperations::cleanStringForHtml($id) . '" type="checkbox" name="' . CleanOperations::cleanStringForHtml($pName) . '[]" value="' . CleanOperations::cleanStringForHtml($value) . '" ' . $checked . ' > ';
      $result .= '<label for="' . CleanOperations::cleanStringForHtml($id) . '">' . CleanOperations::cleanStringContainingHtml($text) . '</label>' . $trail . BR_WT;
      $i++;
    }
    
    $checked = (empty($pChecked) && ! empty($_POST)) ? 'checked="checked"' : '';
    $result .= '<hr><input id="' . CleanOperations::cleanStringForHtml($pName) . '_nb" name="' . CleanOperations::cleanStringForHtml($pName) . '_nb" value="nicht_benoetigt" type="checkbox" class="varAnPlan_nichtBenoetigt" ' . $checked . '> <label for="' . CleanOperations::cleanStringForHtml($pName) . '_nb">wird nicht ben&ouml;tigt</label>';

    return $result;
  }
}