<?php

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


class PageMaTeilnehmerUebersicht extends BrowseableObjectsPageBaseWT
{
  private $_data;

  private $_searchteilnehmer;
  private $_statusMessage;
  private $_tnSuchForm;

  public function __construct($pTool, $pData, $pAnzahlAllerTeilnehmer, $pAnzahlTeilnehmerProSeite, $pPageId, $pStatusMessage = '', $pTnSuchForm = '')
  {
    $sprachsettings = new SprachSettingsObject();
    
    parent::__construct('Übersicht der ' . $sprachsettings->Teilnehmer['Plural']['Genitiv'], $pPageId, $pTool, $pAnzahlAllerTeilnehmer, $pAnzahlTeilnehmerProSeite);
    $this->_data = $pData;
    
    
    $this->_searchteilnehmer = (GetOperations::getVarValue('searchteilnehmer', false) ? '&amp;searchteilnehmer=1' : '');
    $this->_statusMessage = $pStatusMessage;
    $this->_tnSuchForm = $pTnSuchForm;
  }

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

    return $sprachsettings->Teilnehmer['Plural']['Nominativ'];
  }

  
  public function getContent()
  {
    $sprachsettings = new SprachSettingsObject();
    $sectionId4Reiter = 411;

    $menu = new Menu();
    

    $tool_id = $this->tool->getToolId();
    $toolsection_id = $this->id; 

    $allowDetails = (isset($this->links['teilnehmerDetails']) && $this->links['teilnehmerDetails'] ? 2 : 0);
    $result = '';

    if ($this->_statusMessage !== '') {
      $result .= $this->_statusMessage;
    }

    $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();
    }

    $counter = 0;
    if (count($this->_data) > 0) {
      foreach ($this->_data as $teilnehmer) {
        $builder = new SightBuilderUebersicht($this->tool->getToolId(), $toolsection_id, $teilnehmer, true);
        $evenClass = ($counter % 2 == 0) ? ' farbe_sicht_erstezeile' : '';
        $result .= '<div class="content_zeile' . $evenClass . '">';
        $result .= '<div class="steuerelemente">';

        if (isset($this->links['checkboxen']) && $this->links['checkboxen']) {
          $result .= '<input type="checkbox" id="tn_' . CleanOperations::cleanInt($teilnehmer->id) . '"  name="' . CleanOperations::cleanInt($teilnehmer->id) . '" class="tncheckbox markable" value="' . CleanOperations::cleanInt($teilnehmer->id) . '">' . BR_WT;
        }

        
        $result .= $menu->getUserLink(
          '<img src="images/details.gif" alt="Zu den Details" title="' . CleanOperations::cleanStringForHtml($sprachsettings->Teilnehmer['Plural']['Nominativ']) . 'details">',
          'usertools.php?tool_id=' . CleanOperations::cleanInt($tool_id) . '&toolsection_id=' . $sectionId4Reiter . '&tnr=' . CleanOperations::cleanInt($teilnehmer->id) 
                                      . '&currentIndex=' . CleanOperations::cleanInt($this->currentIndex * $this->objectsPerPage + $counter + 1),
          $allowDetails,
          false
        );

        $result .= '</div>';
        $result .= $builder->buildSight();
        $result .= '</div>' . "\n";
        $counter++;
      }
    } else { 
      if ($this->_searchteilnehmer == '') {
        
        $result .= $this->getNoDataMessageDefault(1);
      } else {
        
        $result .= $this->getNoDataMessageDefault(2);
      }
    }
    $result .= '</div>' . "\n";
    if ($this->allgSettings->buttonleite_position != BUTTONBAR_TOP) {
      $result .= $this->_getMainButtons();
    }

    $result .= $this->_tnSuchForm;

    return $result;
  }

  

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

    $result = '';
    
    if (count($this->_data) > 0) {
      $result .= '<div class="main_buttons tn">';

      if (isset($this->links['markieren']) && $this->links['markieren']) {
        $result .= "<input type='image' name='markieren' value='1' src='layout/button_small_markieren.gif' border='0' "
              . " title='Markieren von " . CleanOperations::cleanStringForHtml($sprachsettings->Teilnehmer['Plural']['Akkusativ']) . "' alt='Markieren von " . CleanOperations::cleanStringForHtml($sprachsettings->Teilnehmer['Plural']['Akkusativ']) . "' class=\"alleMarkieren\">\n";
        static $isDialogSet = false;
        if (!$isDialogSet) {
          $result .= $this->_getDialogMarkieren();
          $isDialogSet = true;
        }
      }
    }  
    

    if (isset($this->links['newTeilnehmer']) && $this->links['newTeilnehmer']) {
      $result .= '<a id="newTeilnehmer" class="button_img" href="#" title="neuer Teilnehmer">'
                   . HTMLOperations::createButtonSpan('neuer Teilnehmer', 'neuer Teilnehmer', '', '', 'images/tnadd.gif')
                   . '</a>' . "\n";
    }

    
    if (count($this->_data) > 0) {
      if (isset($this->links['print']) && $this->links['print']) {
        $result .= '<a href="javascript:window.print();" id="DruckTeilnehmer" title="Teilnehmerliste drucken">'
                   . '<img src="layout/button_druck_small.gif" alt="Teilnehmerliste drucken"></a>' . "\n";
      }
    }

    
    if (count($this->_data) > 0 || $this->_searchteilnehmer != '') {
      if (isset($this->links['filter'])) {
        
        $imgText = '<img src="layout/button_search_small24.gif" title="Suchfilter" alt="Suchfilter">';
        $result .= $this->getLinkButton4JS($imgText, '', 'Suchfilter', $this->links['filter'], '#ui-dialog-title-teilnehmersuche', false, 'smallmargin_right tnSuchbutton');
      }
    }
    if (count($this->_data) > 0) {
      
      $result .= $this->getNavigaton();

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

    return $result;
  }

  

  
  protected function getNoDataMessageDefault($messageType)
  {
    $sprachSettings = SettingsFactory::getSettings('SprachSettingsObject');
    switch ($messageType) {
      default:
      case 1: 
        $message = 'Es sind keine ' . CleanOperations::cleanStringForHtml($sprachSettings->Teilnehmer['Plural']['Nominativ']) . ' vorhanden.';
        break;
      case 2: 
        $message = 'Für Ihre Filteroptionen wurden keine ' . CleanOperations::cleanStringForHtml($sprachSettings->Teilnehmer['Plural']['Nominativ']) . ' gefunden';
        break;
    }

    return $this->getNoDataMessage($message);
  }

  
  private function _getDialogMarkieren()
  {
    $sprachsettings = new SprachSettingsObject();
    $textAlle = 'Alle ' . BR . 'markieren';
    $titleAltAlle = 'Alle ' . $sprachsettings->Teilnehmer['Plural']['Nominativ'] . ' markieren';
    $textKeiner = 'Alle Markierungen' . BR . 'entfernen';
    $titleAltKeiner = $sprachsettings->Teilnehmer['Plural']['Nominativ'] . ' nicht markieren';
    $textAlleDerSeite = 'Alle dieser' . BR . 'Seite markieren';
    $titleAltAlleDerSeite = $sprachsettings->Teilnehmer['Plural']['Nominativ'] . ' dieser Seite markieren';
    $textKeinerDerSeite = ' Markierungen dieser ' . BR . 'Seite entfernen';
    $titleAltKeinerDerSeite = $sprachsettings->Teilnehmer['Plural']['Nominativ'] . ' dieser Seite nicht markieren';

    return '<div id="dialog_markierenneu">'
              . '<div class="nowrap">'
              . HTMLOperations::createButtonSpan($textAlle, $titleAltAlle, 'mark', 'markall', 'images/okay.gif')
              . HTMLOperations::createButtonSpan($textKeiner, $titleAltKeiner, 'mark', 'unmarkall', 'images/abort.gif')
            . '</div>'
            . '<div class="nowrap">'
              . HTMLOperations::createButtonSpan($textAlleDerSeite, $titleAltAlleDerSeite, 'mark', 'markside', 'images/okay.gif')
              . HTMLOperations::createButtonSpan($textKeinerDerSeite, $titleAltKeinerDerSeite, 'mark', 'unmarkside', 'images/abort.gif')
            . '</div>'
          . '</div>';
  }

  

  public function getJSDeclarations()
  {
    $result = parent::getJSDeclarations();
    $result .= 'registerNamespace("KuferTools");' . "\n";
    $result .= JsOperations::getDeclarationInt('KuferTools.ToolSectionId', $this->id);
    $result .= $this->getJSForIds($this->_data);

    $sprachSettings = SettingsFactory::getSettings('SprachSettingsObject');
    $result .= JsOperations::getDeclarationJson('KuferTools.Spracheinstellungen', $sprachSettings);
    $result .= 'KuferTools.TeilnehmerInfo;' . "\n";

    return $result;
  }

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

    return $cssAry;
  }

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

    $fileAry[] = 'js/MATool/teilninfo.js';  
    $fileAry[] = 'js/MATool/personendetails.js';

    return $fileAry;
  }
}