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

class XMLMailAnmeldung
{
  public $emailxml;      
  public $emailxmlkurse; 

  
  public function GetStammdatenNode($pPerson, $pNodeTag = 'STAMMDATEN')
  {
    $stammrootnode = new XMLNode($pNodeTag, '');

    if ($pPerson->ewahl != '') {
      $stammrootnode->addChild(new XMLNode('EWAHL', $pPerson->ewahl));
    }
    if ($pPerson->typ != '') {
      $stammrootnode->addChild(new XMLNode('TYP', $pPerson->typ));
    }
    if ($pPerson->name != '') {
      $stammrootnode->addChild(new XMLNode('NAME', $pPerson->name));
    }
    if ($pPerson->vorname != '') {
      $stammrootnode->addChild(new XMLNode('VORNAME', $pPerson->vorname));
    }
    if ($pPerson->zusatz != '') {
      $stammrootnode->addChild(new XMLNode('ZUSATZ', $pPerson->zusatz));
    }
    if ($pPerson->zusatz2 != '') {
      $stammrootnode->addChild(new XMLNode('ZUSATZ2', $pPerson->zusatz2));
    }
    if ($pPerson->zusatz3 != '') {
      $stammrootnode->addChild(new XMLNode('ZUSATZ3', $pPerson->zusatz3));
    }
    if ($pPerson->strasse != '') {
      $stammrootnode->addChild(new XMLNode('STRASSE', $pPerson->strasse));
    }
    if ($pPerson->ort != '') {
      $stammrootnode->addChild(new XMLNode('ORT', $pPerson->ort));
    }
    if ($pPerson->geschlecht != '-') {
      $stammrootnode->addChild(new XMLNode('GESCHLECHT', $pPerson->geschlecht));
    }
    if ($pPerson->beruf != '') {
      $stammrootnode->addChild(new XMLNode('BERUF', $pPerson->beruf));
    }
    if ($pPerson->gebdatum != '') {
      $stammrootnode->addChild(new XMLNode('GEBDATUM', $pPerson->gebdatum));
    }
    if ($pPerson->gebjahr != '') {
      $stammrootnode->addChild(new XMLNode('GEBJAHR', $pPerson->gebjahr));
    }
    if ($pPerson->altersklasse != '') {
      $stammrootnode->addChild(new XMLNode('ALTERSKLASSE', $pPerson->altersklasse));
    }
    if ($pPerson->kontonr != '') {
      $stammrootnode->addChild(new XMLNode('KONTONR', $pPerson->kontonr));
    }
    if ($pPerson->blz != '') {
      $stammrootnode->addChild(new XMLNode('BLZ', $pPerson->blz));
    }
    if ($pPerson->bankbez != '') {
      $stammrootnode->addChild(new XMLNode('BANKBEZ', $pPerson->bankbez));
    }
    if ($pPerson->kontoinh != '') {
      $stammrootnode->addChild(new XMLNode('KONTOINH', $pPerson->kontoinh));
    }
    if ($pPerson->bic != '') {
      $stammrootnode->addChild(new XMLNode('BIC', $pPerson->bic));
    }
    if ($pPerson->iban != '') {
      $stammrootnode->addChild(new XMLNode('IBAN', $pPerson->iban));
    }
    if ($pPerson->mandatam != '') {
      $stammrootnode->addChild(new XMLNode('MANDATAM', $pPerson->mandatam));
    }
    if ($pPerson->erm_grund != '') {
      $stammrootnode->addChild(new XMLNode('ERM_GRUND', $pPerson->erm_grund));
    }
    if ($pPerson->erm_proz != '') {
      $stammrootnode->addChild(new XMLNode('ERM_PROZ', floor($pPerson->erm_proz)));
    }
    if ($pPerson->bemerkung != '') {
      $stammrootnode->addChild(new XMLNode('BEMERKUNG', $pPerson->bemerkung));
    }
    if ($pPerson->newsl_erlaubt != '') {
      $stammrootnode->addChild(new XMLNode('NEWSL_ERLAUBT', $pPerson->newsl_erlaubt));
    }
    if ($pPerson->rechadr1 != '') {
      $stammrootnode->addChild(new XMLNode('RECHADR1', $pPerson->rechadr1));
    }
    if ($pPerson->rechadr2 != '') {
      $stammrootnode->addChild(new XMLNode('RECHADR2', $pPerson->rechadr2));
    }
    if ($pPerson->rechadr3 != '') {
      $stammrootnode->addChild(new XMLNode('RECHADR3', $pPerson->rechadr3));
    }
    if ($pPerson->rechadr4 != '') {
      $stammrootnode->addChild(new XMLNode('RECHADR4', $pPerson->rechadr4));
    }
    if ($pPerson->rechadr5 != '') {
      $stammrootnode->addChild(new XMLNode('RECHADR5', $pPerson->rechadr5));
    }
    if ($pPerson->rechadr6 != '') {
      $stammrootnode->addChild(new XMLNode('RECHADR6', $pPerson->rechadr6));
    }
    if ($pPerson->tnr != '') {
      $stammrootnode->addChild(new XMLNode('TNR', $pPerson->tnr));
    }
    if ($pPerson->status != '') {
      $stammrootnode->addChild(new XMLNode('STATUS', $pPerson->status));
    }
    if ($pPerson->statusinfo != '') {
      $stammrootnode->addChild(new XMLNode('STATUSINFO', $pPerson->statusinfo));
    }
    if ($pPerson->ausweisnr != '') {
      $stammrootnode->addChild(new XMLNode('AUSWEISNR', $pPerson->ausweisnr));
    }
    if ($pPerson->mitgliednr != '') {
      $stammrootnode->addChild(new XMLNode('MITGLIEDNR', $pPerson->mitgliednr));
    }
    if ($pPerson->ausweisdat != '') {
      $stammrootnode->addChild(new XMLNode('AUSWEISDAT', $pPerson->ausweisdat));
    }
    if ($pPerson->arbamtnr != '') {
      $stammrootnode->addChild(new XMLNode('ARBAMTNR', $pPerson->arbamtnr));
    }
    if ($pPerson->sessionid != '') {
      $stammrootnode->addChild(new XMLNode('SESSIONID', $pPerson->sessionid));
    }
    if ($pPerson->sessiontime != '') {
      $stammrootnode->addChild(new XMLNode('SESSIONTIME', $pPerson->sessiontime));
    }
    if ($pPerson->geburtsort != '') {
      $stammrootnode->addChild(new XMLNode('GEBURTSORT', $pPerson->geburtsort));
    }
    if ($pPerson->staatsang != '') {
      $stammrootnode->addChild(new XMLNode('STAATSANG', $pPerson->staatsang));
    }
    if ($pPerson->krit1 != '') {
      $stammrootnode->addChild(new XMLNode('KRIT1', $pPerson->krit1));
    }
    if ($pPerson->krit2 != '') {
      $stammrootnode->addChild(new XMLNode('KRIT2', $pPerson->krit2));
    }
    if ($pPerson->krit3 != '') {
      $stammrootnode->addChild(new XMLNode('KRIT3', $pPerson->krit3));
    }
    if ($pPerson->krit4 != '') {
      $stammrootnode->addChild(new XMLNode('KRIT4', $pPerson->krit4));
    }
    if ($pPerson->krit5 != '') {
      $stammrootnode->addChild(new XMLNode('KRIT5', $pPerson->krit5));
    }
    if ($pPerson->krit6 != '') {
      $stammrootnode->addChild(new XMLNode('KRIT6', $pPerson->krit6));
    }
    if ($pPerson->sozarbeitgeber != '') {
      $stammrootnode->addChild(new XMLNode('SOZARBEITGEBER', $pPerson->sozarbeitgeber));
    }
    if ($pPerson->dse_unterschrieben_datum != '') {
      $stammrootnode->addChild(new XMLNode('DSE_UNTERSCHRIEBEN_DATUM', $pPerson->dse_unterschrieben_datum));
    }
    if ($pPerson->dse_unterschrieben_weg != '') {
      $stammrootnode->addChild(new XMLNode('DSE_UNTERSCHRIEBEN_WEG', $pPerson->dse_unterschrieben_weg));
    }
    if ($pPerson->dse_unterschrieben_bearbeiter != '') {
      $stammrootnode->addChild(new XMLNode('DSE_UNTERSCHRIEBEN_BEARBEITER', $pPerson->dse_unterschrieben_bearbeiter));
    }
    if ($pPerson->dse_widerrufen_datum != '') {
      $stammrootnode->addChild(new XMLNode('DSE_WIDERRUFEN_DATUM', $pPerson->dse_widerrufen_datum));
    }
    if ($pPerson->dse_widerrufen_weg != '') {
      $stammrootnode->addChild(new XMLNode('DSE_WIDERRUFEN_WEG', $pPerson->dse_widerrufen_weg));
    }
    if ($pPerson->dse_widerrufen_bearbeiter != '') {
      $stammrootnode->addChild(new XMLNode('DSE_WIDERRUFEN_BEARBEITER', $pPerson->dse_widerrufen_bearbeiter));
    }

    if ($pPerson->keinebankverbindung != '') { 
      $stammrootnode->addChild(new XMLNode('KEINEBANKVERBINDUNG', ($pPerson->keinebankverbindung === '1' ? 'W' : 'F')));
    }
    if ($pPerson->name_titel != '') {
      $stammrootnode->addChild(new XMLNode('NAME_TITEL', $pPerson->name_titel));
    }
    if ($pPerson->weitergabekommunikationfg != '') {
      $stammrootnode->addChild(new XMLNode('WEITERGABEKOMMUNIKATIONFG', $pPerson->weitergabekommunikationfg));
    }
    if ($pPerson->zustimmung_hygiene != '') {
      $stammrootnode->addChild(new XMLNode('ZUSTIMMUNG_HYGIENE', $pPerson->zustimmung_hygiene));
    }
    if ($pPerson->zustimmung_indiv != '') {
      $stammrootnode->addChild(new XMLNode('ZUSTIMMUNG_INDIV', $pPerson->zustimmung_indiv));
    }
    if ($pPerson->zustimmung_fuehrung != '') {
      $stammrootnode->addChild(new XMLNode('ZUSTIMMUNG_FUEHRUNG', $pPerson->zustimmung_fuehrung));
    }
    if ($pPerson->rech_tnr != '') {
      $stammrootnode->addChild(new XMLNode('RECH_TNR', $pPerson->rech_tnr));
    }
    if ($pPerson->rech_name != '') {
      $stammrootnode->addChild(new XMLNode('RECH_NAME', $pPerson->rech_name));
    }
    if ($pPerson->rech_vorname != '') {
      $stammrootnode->addChild(new XMLNode('RECH_VORNAME', $pPerson->rech_vorname));
    }
    if ($pPerson->rech_zusatz1 != '') {
      $stammrootnode->addChild(new XMLNode('RECH_ZUSATZ1', $pPerson->rech_zusatz1));
    }
    if ($pPerson->rech_zusatz2 != '') {
      $stammrootnode->addChild(new XMLNode('RECH_ZUSATZ2', $pPerson->rech_zusatz2));
    }
    if ($pPerson->rech_zusatz3 != '') {
      $stammrootnode->addChild(new XMLNode('RECH_ZUSATZ3', $pPerson->rech_zusatz3));
    }
    if ($pPerson->rech_strasse != '') {
      $stammrootnode->addChild(new XMLNode('RECH_STRASSE', $pPerson->rech_strasse));
    }
    if ($pPerson->rech_ort != '') {
      $stammrootnode->addChild(new XMLNode('RECH_ORT', $pPerson->rech_ort));
    }
    if ($pPerson->rech_dauerhaft != '') {
      $stammrootnode->addChild(new XMLNode('RECH_DAUERHAFT', $pPerson->rech_dauerhaft));
    }
    if ($pPerson->rech_email != '') {
      $stammrootnode->addChild(new XMLNode('RECH_EMAIL', $pPerson->rech_email));
    }

    $kommnode = $this->GetKommunikationNode($pPerson);
    
    if (!empty($kommnode)) {
      $stammrootnode->addChild($kommnode);
    }

    if (count($pPerson->arykennzeichen) > 0) {
      $kennzeichen = new XMLNode('KENNZEICHEN');
      foreach ($pPerson->arykennzeichen as $kennznode) {
        $kennzeichen->addChild($kennznode->getXMLNode());
      }
      $stammrootnode->addChild($kennzeichen);
    }

    return $stammrootnode;
  }

  
  public function GetKommunikationNode($pPerson, $pNodeTag = 'KOMMUNIKATION')
  {
    if (count($pPerson->arykommunikation) > 0) {
      $kommunikationrootnode = new XMLNode($pNodeTag, '');
      $arynodes = array();
      for ($i = 0;$i < count($pPerson->arykommunikation);$i++) {
        if ($pPerson->arykommunikation[$i]->kommwert != '') {
          $tmparynodes = new XMLNode('KOMMUNIKATIONSEINTRAG', '');
          $tmparynodes->addChild(new XMLNode('KOMMART', $pPerson->arykommunikation[$i]->kommart));
          $tmparynodes->addChild(new XMLNode('KOMMWERT', $pPerson->arykommunikation[$i]->kommwert));
          $tmparynodes->addChild(new XMLNode('KOMMBEZ', $pPerson->arykommunikation[$i]->kommbez));
          array_push($arynodes, $tmparynodes);
        }
      }
      $kommunikationrootnode->addChilds($arynodes);
    }
    if (isset($kommunikationrootnode)) {
      return $kommunikationrootnode;
    }

    return '';
  }

  public function GetAnmeldungNode($pNodeTag = 'ANMELDUNG')
  {
    $anmeldungnode = new XMLNode($pNodeTag, '');
    $anmeldungnode->addChild($this->GetStammdatenNode($this->emailxml, 'STAMMDATEN'));
    $anmeldungnode->addChild($this->GetKurseNode($this->emailxmlkurse));

    return $anmeldungnode;
  }

  public function GetKurseNode($pKurse, $pNodetag = 'KURSE')
  {
    $kurserootnode = new XMLNode($pNodetag, '');
    for ($i = 0; $i < count($pKurse); $i++) {
      $kursnode = new XMLNode('KURS', '');
      if ($pKurse[$i]->kursnummer != '') {
        $kursnode->addChild(new XMLNode('KURSNUMMER', $pKurse[$i]->kursnummer));
      }
      if ($pKurse[$i]->status != '') {
        $kursnode->addChild(new XMLNode('STATUS', $pKurse[$i]->status));
      }
      if ($pKurse[$i]->kursgebuehr != '') {
        $kursnode->addChild(new XMLNode('KURSGEBUEHR', str_replace('.', '', $pKurse[$i]->kursgebuehr)));
      }
      if ($pKurse[$i]->anzahl != '') {
        $kursnode->addChild(new XMLNode('ANZAHL', $pKurse[$i]->anzahl));
      }
      if ($pKurse[$i]->beleghistorie1 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE1', $pKurse[$i]->beleghistorie1));
      }
      if ($pKurse[$i]->beleghistorie2 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE2', $pKurse[$i]->beleghistorie2));
      }
      if ($pKurse[$i]->beleghistorie3 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE3', $pKurse[$i]->beleghistorie3));
      }
      if ($pKurse[$i]->beleghistorie4 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE4', $pKurse[$i]->beleghistorie4));
      }
      if ($pKurse[$i]->beleghistorie5 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE5', $pKurse[$i]->beleghistorie5));
      }
      if ($pKurse[$i]->beleghistorie6 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE6', $pKurse[$i]->beleghistorie6));
      }
      if ($pKurse[$i]->beleghistorie7 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE7', $pKurse[$i]->beleghistorie7));
      }
      if ($pKurse[$i]->beleghistorie8 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE8', $pKurse[$i]->beleghistorie8));
      }
      if ($pKurse[$i]->beleghistorie9 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE9', $pKurse[$i]->beleghistorie9));
      }
      if ($pKurse[$i]->beleghistorie10 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE10', $pKurse[$i]->beleghistorie10));
      }
      if ($pKurse[$i]->beleghistorie11 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE11', $pKurse[$i]->beleghistorie11));
      }
      if ($pKurse[$i]->beleghistorie12 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE12', $pKurse[$i]->beleghistorie12));
      }
      if ($pKurse[$i]->beleghistorie13 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE13', $pKurse[$i]->beleghistorie13));
      }
      if ($pKurse[$i]->beleghistorie14 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE14', $pKurse[$i]->beleghistorie14));
      }
      if ($pKurse[$i]->beleghistorie15 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE15', $pKurse[$i]->beleghistorie15));
      }
      if ($pKurse[$i]->beleghistorie16 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE16', $pKurse[$i]->beleghistorie16));
      }

      if ($pKurse[$i]->zahlart != '') {
        $kursnode->addChild(new XMLNode('ZAHLART', $pKurse[$i]->zahlart));
      }

      if ($pKurse[$i]->abw_kursgeb != '') {
        $kursnode->addChild(new XMLNode('ABW_KURSGEB', $pKurse[$i]->abw_kursgeb));
      }
      if ($pKurse[$i]->abw_kontonr != '') {
        $kursnode->addChild(new XMLNode('ABW_KONTONR', $pKurse[$i]->abw_kontonr));
      }
      if ($pKurse[$i]->abw_blz != '') {
        $kursnode->addChild(new XMLNode('ABW_BLZ', $pKurse[$i]->abw_blz));
      }
      if ($pKurse[$i]->abw_bankbez != '') {
        $kursnode->addChild(new XMLNode('ABW_BANKBEZ', $pKurse[$i]->abw_bankbez));
      }
      if ($pKurse[$i]->abw_kontoinh != '') {
        $kursnode->addChild(new XMLNode('ABW_KONTOINH', $pKurse[$i]->abw_kontoinh));
      }
      if ($pKurse[$i]->abw_bic != '') {
        $kursnode->addChild(new XMLNode('ABW_BIC', $pKurse[$i]->abw_bic));
      }
      if ($pKurse[$i]->abw_iban != '') {
        $kursnode->addChild(new XMLNode('ABW_IBAN', $pKurse[$i]->abw_iban));
      }

      if ($pKurse[$i]->anmeldeart != '') {
        $kursnode->addChild(new XMLNode('ANMELDEART', $pKurse[$i]->anmeldeart));
      }
      
      
      
      
      if ($pKurse[$i]->anzahl > 1) {
        $kursnode->addChild($this->GetWeitereAnmeldungeNode($pKurse[$i]));
      }
      $kurserootnode->addChild($kursnode);
    }

    return $kurserootnode;
  }

  public function Execute()
  {
  }
}






class XMLMailAnmeldungNormal extends XMLMailAnmeldung
{
  public function Execute()
  {
    $rootnode = new XMLNode('ANMELDUNGEN', '');
    $rootnode->addChild($this->GetAnmeldungNode('ANMELDUNG'));

    return '<?xml version="1.0" encoding="' . CodingOperations::getInternalEncoding() . '" ?' . ">\r\n" . $rootnode->getXMLstring($rootnode);
  }
}






class XMLMailAnmeldungMehrfach extends XMLMailAnmeldung
{
  public function GetTeilnehmerStammdatenNode($pKurs, $pNum, $pNodeTag = 'WEITERSTAMM')
  {
    $person = $pKurs->aryweitere[$pNum]->emailxml;

    return $this->GetStammdatenNode($person, $pNodeTag);
  }

  public function GetWeitereAnmeldungeNode($pKurs, $pNodeTag = 'WEITEREANM')
  {
    if (count($pKurs->aryweitere) > 0) {
      $anmeldungenroot = new XMLNode($pNodeTag, '');
      $anmeldungenchilds = array(count($pKurs->aryweitere));
      for ($i = 0; $i < count($pKurs->aryweitere); $i++) {
        $anmeldungenchilds[$i] = new XMLNode('WEITERANM', '');
        $anmeldungenchilds[$i]->addChild(new XMLNode('TYP', 'M')); 

        $anmeldungenchilds[$i]->addChild(new XMLNode('KURSGEBUEHR', '0,00'));
        $anmeldungenchilds[$i]->addChild($this->GetTeilnehmerStammdatenNode($pKurs, $i, 'WEITERSTAMM'));
      }
      $anmeldungenroot->addChilds($anmeldungenchilds);

      return $anmeldungenroot;
    }
  }

  public function Execute()
  {
    $rootnode = new XMLNode('ANMELDUNGEN', '');
    $rootnode->addChild($this->GetAnmeldungNode('ANMELDUNG'));
    
    return '<?xml version="1.0" encoding="' . CodingOperations::getInternalEncoding() . '" ?' . ">\r\n" . $rootnode->getXMLstring($rootnode);
  }
}






class XMLMailAnmeldungElternKind extends XMLMailAnmeldung
{
  public function GetKindStammdatenNode($pKurs, $pNum, $pNodeTag)
  {
    $kind = $pKurs->aryweitere[$pNum]->emailxml;

    return $this->GetStammdatenNode($kind, $pNodeTag);
  }

  public function GetWeitereAnmeldungeNode($pKurs, $pNodeTag = 'WEITEREANM')
  {
    if (count($pKurs->aryweitere) > 0) {
      $anmeldungenroot = new XMLNode($pNodeTag, '');
      $anmeldungenchilds = array(count($pKurs->aryweitere));
      for ($i = 0; $i < count($pKurs->aryweitere); $i++) {
        $anmeldungenchilds[$i] = new XMLNode('WEITERANM', '');
        $anmeldungenchilds[$i]->addChild(new XMLNode('TYP', 'K')); 
        $anmeldungenchilds[$i]->addChild(new XMLNode('KURSGEBUEHR', '0,00'));
        $anmeldungenchilds[$i]->addChild($this->GetKindStammdatenNode($pKurs, $i, 'WEITERSTAMM'));
      }
      $anmeldungenroot->addChilds($anmeldungenchilds);

      return $anmeldungenroot;
    }
  }

  public function Execute()
  {
    $rootnode = new XMLNode('ANMELDUNGEN', '');
    $rootnode->addChild($this->GetAnmeldungNode('ANMELDUNG'));
    
    return '<?xml version="1.0" encoding="' . CodingOperations::getInternalEncoding() . '" ?' . ">\r\n" . $rootnode->getXMLstring($rootnode);
  }
}






class XMLMailAnmeldungFirma extends XMLMailAnmeldung
{
  public function GetFirmaStammdatenNode($pKurs, $pNum, $pNodeTag)
  {
    $firma = $pKurs->aryweitere[$pNum]->emailxml;

    return $this->GetStammdatenNode($firma, $pNodeTag);
  }

  public function GetWeitereAnmeldungeNode($pKurs, $pNodeTag = 'WEITEREANM')
  {
    if (count($pKurs->aryweitere) > 0) {
      $anmeldungenroot = new XMLNode($pNodeTag, '');
      $anmeldungenchilds = array(count($pKurs->aryweitere));
      for ($i = 0; $i < count($pKurs->aryweitere); $i++) {
        $anmeldungenchilds[$i] = new XMLNode('WEITERANM', '');
        $anmeldungenchilds[$i]->addChild(new XMLNode('TYP', 'F'));

        $anmeldungenchilds[$i]->addChild(new XMLNode('KURSGEBUEHR', '0,00'));
        $anmeldungenchilds[$i]->addChild($this->GetFirmaStammdatenNode($pKurs, $i, 'WEITERSTAMM'));
      }
      $anmeldungenroot->addChilds($anmeldungenchilds);

      return $anmeldungenroot;
    }
  }

  public function Execute()
  {
    $rootnode = new XMLNode('ANMELDUNGEN', '');
    $rootnode->addChild($this->GetAnmeldungNode('ANMELDUNG'));
    
    return '<?xml version="1.0" encoding="' . CodingOperations::getInternalEncoding() . '" ?' . ">\r\n" . $rootnode->getXMLstring($rootnode);
  }
}


class XMLMailAnmeldungNormalHotel extends XMLMailAnmeldungNormal
{
  
  public function _GetHotelDatenNode($pKurs)
  {
    $rootNode = new XMLNode('HOTELANM');
    $rootNode->addChild(new XMLNode('UEBERNACHTUNG_JN', $pKurs->hotelAnm->uebernachtung_jn ? 'W' : 'F'));
    $rootNode->addChild(new XMLNode('ZIMMERART', $pKurs->hotelAnm->zimmerart));
    $rootNode->addChild(new XMLNode('ZIMMERGEBUEHR', $pKurs->hotelAnm->zimmergebuehr));
    $rootNode->addChild(new XMLNode('DZ_STATT_EZ_OK', $pKurs->hotelAnm->dz_statt_ez_ok ? 'W' : 'F'));
    $rootNode->addChild(new XMLNode('DZ_MIT', $pKurs->hotelAnm->dz_mit));
    $rootNode->addChild(new XMLNode('SW_ZIMMER', $pKurs->hotelAnm->sw_zimmer));
    $rootNode->addChild(new XMLNode('KEINE_WEITERGABE_NAME', $pKurs->hotelAnm->keine_weitergabe_name ? 'W' : 'F'));
    $rootNode->addChild(new XMLNode('ESSEN_JN', $pKurs->hotelAnm->essen_jn ? 'W' : 'F'));
    $rootNode->addChild(new XMLNode('KEIN_FRUEHSTUECK', $pKurs->hotelAnm->kein_fruehstueck ? 'W' : 'F'));
    $rootNode->addChild(new XMLNode('KEIN_ABENDESSEN', $pKurs->hotelAnm->kein_abendessen ? 'W' : 'F'));
    $rootNode->addChild(new XMLNode('SW_ESSEN', $pKurs->hotelAnm->sw_essen));
    $rootNode->addChild(new XMLNode('ESSENGEBUEHR', $pKurs->hotelAnm->essengebuehr));

    return $rootNode;
  }

  public function GetKurseNode($pKurse, $pNodetag = 'KURSE')
  {
    $kurserootnode = new XMLNode($pNodetag, '');
    for ($i = 0; $i < count($pKurse); $i++) {
      $kursnode = new XMLNode('KURS', '');
      if ($pKurse[$i]->kursnummer != '') {
        $kursnode->addChild(new XMLNode('KURSNUMMER', $pKurse[$i]->kursnummer));
      }
      if ($pKurse[$i]->status != '') {
        $kursnode->addChild(new XMLNode('STATUS', $pKurse[$i]->status));
      }
      if ($pKurse[$i]->kursgebuehr != '') {
        $kursnode->addChild(new XMLNode('KURSGEBUEHR', str_replace('.', '', $pKurse[$i]->kursgebuehr)));
      }
      if ($pKurse[$i]->anzahl != '') {
        $kursnode->addChild(new XMLNode('ANZAHL', $pKurse[$i]->anzahl));
      }
      if ($pKurse[$i]->beleghistorie1 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE1', $pKurse[$i]->beleghistorie1));
      }
      if ($pKurse[$i]->beleghistorie2 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE2', $pKurse[$i]->beleghistorie2));
      }
      if ($pKurse[$i]->beleghistorie3 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE3', $pKurse[$i]->beleghistorie3));
      }
      if ($pKurse[$i]->beleghistorie4 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE4', $pKurse[$i]->beleghistorie4));
      }
      if ($pKurse[$i]->beleghistorie5 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE5', $pKurse[$i]->beleghistorie5));
      }
      if ($pKurse[$i]->beleghistorie6 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE6', $pKurse[$i]->beleghistorie6));
      }
      if ($pKurse[$i]->beleghistorie7 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE7', $pKurse[$i]->beleghistorie7));
      }
      if ($pKurse[$i]->beleghistorie8 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE8', $pKurse[$i]->beleghistorie8));
      }
      if ($pKurse[$i]->beleghistorie9 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE9', $pKurse[$i]->beleghistorie9));
      }
      if ($pKurse[$i]->beleghistorie10 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE10', $pKurse[$i]->beleghistorie10));
      }
      if ($pKurse[$i]->beleghistorie11 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE11', $pKurse[$i]->beleghistorie11));
      }
      if ($pKurse[$i]->beleghistorie12 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE12', $pKurse[$i]->beleghistorie12));
      }
      if ($pKurse[$i]->beleghistorie13 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE13', $pKurse[$i]->beleghistorie13));
      }
      if ($pKurse[$i]->beleghistorie14 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE14', $pKurse[$i]->beleghistorie14));
      }
      if ($pKurse[$i]->beleghistorie15 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE15', $pKurse[$i]->beleghistorie15));
      }
      if ($pKurse[$i]->beleghistorie16 != '') {
        $kursnode->addChild(new XMLNode('BELEGHISTORIE16', $pKurse[$i]->beleghistorie16));
      }

      $kursnode->addChild($this->_GetHotelDatenNode($pKurse[$i]));
      $kurserootnode->addChild($kursnode);
    }

    return $kurserootnode;
  }
}