
//==================================================================================
//==================================================================================
//
// KALENDER-MODUL Projektbezogene Methoden und Objekte
// OO-PROGRAMMIERUNG
// AUTOR: DF
// ERSTELLT: 05.04.2004
//
//==================================================================================
//==================================================================================

// ============================================================
// Klasse Calendar
// ============================================================

// ------------------------------------------------------------
// Private Klasseneigenschaften
// ------------------------------------------------------------

Calendar._htmlRoot = "/frontend";

// ------------------------------------------------------------
// Private Instanzmethoden
// ------------------------------------------------------------

// -------------------------------------------
// _drawMonthPeriod()
// -------------------------------------------
//
// Beschreibung:
// -------------
// Methode blätter Calendar in die Zukunft
//
// Beispiel:
// ---------
// _drawMonthPeriod();
//

Calendar.prototype._drawMonthPeriod = function() {
  var html = '';
  var heute = Calendar.createSystemDate();
  if (this.viewType() == 'Eyecatcher'){
  } else {
    html += '\n';
    html += '<div id="'+ this.id() +'">\n';
    html += '<div class="abfuhrkalender">\n';

    html += '<div class="abfuhrkalender-navigation">\n';
    html += '<div class="abfuhrkalender-navigation-body">\n';

    html += '<div class="abfuhrkalender-navigation-body-back">\n';
    if (this.date().getMonth() >= 1 && (DEFAULT_YEAR && DEFAULT_YEAR == this.date().getFullYear())){
      html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').backward();"><img src="/kiosk/grafik/abfuhrkalender_navigation_back.gif" style="width: 11px; height: 9px;" alt="Zurück" title="Zurück" /></a><br />\n';
    } else {
      html += '<br />\n';
    }
    html += '</div>\n';
    html += '<div class="abfuhrkalender-navigation-body-status">\n';
    html += '' + DateProperties.monatName(this.date().getMonth()) + ' ' + this.date().getFullYear() + '<br />\n';
    html += '</div>\n';
    html += '<div class="abfuhrkalender-navigation-body-forward">\n';
    if (this.date().getMonth() <= 10 && (DEFAULT_YEAR && DEFAULT_YEAR == this.date().getFullYear())){
      html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').forward();"><img src="/kiosk/grafik/abfuhrkalender_navigation_forward.gif" style="width: 11px; height: 9px;" alt="Weiter" title="Weiter" /></a><br />\n';
    } else {
      html += '<br />\n';
    }
    html += '</div>\n';

    html += '<div class="float-aufheben"><br /></div>\n';
    html += '</div>\n';
    html += '</div>\n';


    html += '<div class="abfuhrkalender-body">\n';
    html += '<div class="tools-div-max-width">\n';

    for (var m=1; m<8; m++){
      if (m == 6){
        html += '<div class="abfuhrkalender-kopf-samstag">\n';
      } else if (m == 7){
        html += '<div class="abfuhrkalender-kopf-sonntag">\n';
      } else {
        html += '<div class="abfuhrkalender-kopf-wochentag">\n';
      }

      html += '<div class="abfuhrkalender-eintrag">\n';
      if (m < 7){
        html += '' + DateProperties.wochenTageNameKurz(m) + '<br />\n';
      } else {
        html += '' + DateProperties.wochenTageNameKurz(0) + '<br />\n';
      }
      html += '</div>\n';
      html += '</div>\n';
    }

    var kw = this.listTag()[0].properties().kw();
    var kwS = [];
    kwS.push(this.listTag()[0].properties().kw());
    for (var k=0; k<this.listTag().length; k++){
      if (kw != this.listTag()[k].properties().kw()){
        kwS.push(this.listTag()[k].properties().kw());
        kw = this.listTag()[k].properties().kw();
      }
    }

    for (var i=0; i<kwS.length; i++){
      html += '        <div class="float-aufheben"><br /></div>\n';
      var _divLayout = '';
      for (var ii=1; ii<8; ii++){
        if (ii == 6){
          _divLayout = '<div class="abfuhrkalender-kopf-samstag">\n';
        } else if (ii == 7){
          _divLayout = '<div class="abfuhrkalender-kopf-sonntag">\n';
        } else {
          _divLayout = '<div class="abfuhrkalender-kopf-wochentag">\n';
        }
        
        var leer = true;
        for (var iii=0; iii<this.listTag().length; iii++){
          if ((this.listTag()[iii].properties().nameKey() == ii || (this.listTag()[iii].properties().nameKey() == 0 && ii==7 )) && (this.listTag()[iii].properties().kw() == kwS[i])){
            var aTitle = DateProperties.formatDatum(this.listTag()[iii].datum(), 'dd.mm.yyyy') + ', '+ this.listTag()[iii].properties().kw() +'.KW';
            if (this.listTag()[iii].properties().feierTag() != undefined){
              aTitle += ', ' + this.listTag()[iii].properties().feierTag().name();
            }
            var styleAtt = '';
            if (this.listTag()[iii].datum().toString() == heute.toString()){
              styleAtt = 'style="border: 2px solid #67695C"';
            }
            if (DEFAULT_YEAR && DEFAULT_YEAR == this.date().getFullYear()){
              if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isBoth(this.listTag()[iii].datum(), WEEK_TYPE, WEEK_DAY)){
                // Beides
                _divLayout = '        <div class="abfuhrkalender-tag-wochentag-restmuell-gelber">\n';
              } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isYellowTon(this.listTag()[iii].datum(), WEEK_TYPE, WEEK_DAY)){
                // Restmüll
                _divLayout = '        <div class="abfuhrkalender-tag-wochentag-gelber">\n';
              } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isResidualWaste(this.listTag()[iii].datum(), WEEK_TYPE, WEEK_DAY)){
                // Gelber Sack
                _divLayout = '        <div class="abfuhrkalender-tag-wochentag-restmuell">\n';
              }
            }
            html += _divLayout;
            /*
            html += '<span style="display: none">KW: ' +kwS[i] + ' | Date: ' +this.listTag()[iii].datum() + ' ( ' + WEEK_TYPE +  '/' + WEEK_DAY + ') : ' + ALTERNATIVE_DATES.isResidualWaste(this.listTag()[iii].datum(), WEEK_TYPE, WEEK_DAY) + '</span>\n';
            var _AD_date = DateProperties.createDateProperties({'datum':this.listTag()[iii].datum()});
            var _AD_key = DateProperties.formatDatum(_AD_date.datum(), 'dd.mm.yyyy');
            html += '<span style="display: none">_AD_date = '+ _AD_date.datum() +' | _AD_key = '+ _AD_key +'</span>\n';
            html += '<span style="display: none">isALT = '+ALTERNATIVE_DATES._AlternateDates[_AD_key] +'</span>\n';
            */
            if (this.listTag()[iii].datum().toString() == heute.toString()){
              html += '<div class="abfuhrkalender-eintrag-heute">\n';
            } else {
              html += '<div class="abfuhrkalender-eintrag">\n';
            }
            html += '<span title="'+ aTitle +'">';
            html += this.listTag()[iii].datum().getDate() + '<br />';
            html += '</span>\n';
            html += '</div>\n';
            html += '</div>\n';
            leer = false;
          }
        }
        if (leer){
          html += _divLayout;
          html += '<div class="abfuhrkalender-eintrag">\n';
          html += '<br />\n';
          html += '</div>\n';
          html += '</div>\n';
        }
      }
    }

    html += '<div class="float-aufheben"><br /></div>\n';
    html += '</div>\n';
    html += '<div class="float-aufheben"><br /></div>\n';
    html += '</div>\n';

    html += '<div class="abfuhrkalender-legende">\n';
    html += '<div class="abfuhrkalender-legende-eintrag" style="background-image: url(/kiosk/grafik/abfuhrkalender_legende_restmuell.gif);">\n';
    html += 'Restmüll-Abholung<br />\n';
    html += '</div>\n';
    html += '<div class="abfuhrkalender-legende-eintrag" style="background-image: url(/kiosk/grafik/abfuhrkalender_legende_gelber.gif);">\n';
    html += 'Blaue Tonne und Gelber Sack<br />\n';
    html += '</div>\n';
    html += '</div>\n';

    html += '</div>\n';

    /*
      Nach Einrückungen und allem sollte das Teil an dieser Stelle fehlen, mittendrin ist mir nichts aufgefallen
      vs
    */

    /*html += '</div>\n';*/
  }
  return html;
}

// ------------------------------------------------------------
// Öffentliche Instanzmethoden
// ------------------------------------------------------------

Calendar.prototype._drawDayPeriod = function() {
  var html = '';
  var heute = Calendar.createSystemDate();
  var day = this.listTag()[0];
  html += '<div id="'+ this.id() +'">';
  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';
  html += '<td>\n';
  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';
  html += '<td>\n';
  html += '<table border="0" cellspacing="2" cellpadding="0" style="width: 96px;">\n';
  html += '<tr>\n';
  html += '<td class="kalendertabelle">\n';
  html += day.properties().name() + '<br />\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '<tr>\n';
  html += '<td>\n';
  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';
  html += '<td>\n';
  html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').backward();"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_zurueck_.gif" style="width: .9em; height: 2.8em;" alt="" title="" /></a><br />\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/trans.gif" style="width:1px; height: 1px;" alt="" title="" /><br />\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<table border="0" cellspacing="0" cellpadding="0" style="width: 100%; height: 36px;">\n';
  html += '<tr>\n';
  html += '<td>\n';
  html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/bg_balken_datum.gif" style="width: 70px; height: 1px;" alt="" title="" /><br />\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '<tr>\n';
  html += '<td class="kalendertabelle-datum">\n';
  html += '<a href="'+ Calendar.getSearchFormURLDay(day.properties().datum()) +'">'+ day.properties().datum().getDate() + '.</a><br />\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '<tr>\n';
  html += '<td>\n';
  html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/bg_balken_datum.gif" style="width: 70px; height: 1px;" alt="" title="" /><br />\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/trans.gif" style="width:1px; height: 1px;" alt="" title="" /><br />\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').forward();"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_vor_.gif" style="width: .9em; height: 2.8em;" alt="" title="" /></a><br />\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '<tr>\n';
  html += '<td class="kalendertabelle">\n';
  html += '<span class="kalendertabelle-monat">'+ day.properties().month() + '&#160;' + day.properties().year() + '</span><br />\n';
  html += day.properties().kw() + '. KW<br />\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';
  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';
  html += '</div>\n';

  return html;
}

Calendar.prototype._drawDayIntervallPeriod = function() {
  var html = '';
  var heute = Calendar.createSystemDate();
  html += '<div id="'+ this.id() +'">';

  html += '<div class="kalenderanzeige">\n';
  var anzeige = this.listTag()[0].properties()._getMonth();
  if (this.listTag()[0].properties()._getMonth() != this.listTag()[this.listTag().length - 1].properties()._getMonth()){
    if (this.listTag()[0].properties().datum().getFullYear() != this.listTag()[this.listTag().length - 1].properties().datum().getFullYear()){
      anzeige += ' ' + this.listTag()[0].properties().datum().getFullYear();
    }
    anzeige += ' / ' + this.listTag()[this.listTag().length - 1].properties()._getMonth();
  }
  anzeige += ' ' + this.listTag()[this.listTag().length - 1].properties().datum().getFullYear();
  html += anzeige + '<br/>\n';
  html += '</div>\n';
  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';
  html += '<td>\n';

  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';
  html += '<td>\n';

  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';
  html += '<td>\n';
  html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').backward();"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_zurueck_.gif" style="width: .9em; height: 2.8em;" alt="" title="" /></a><br />\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/trans.gif" style="width:1px; height: 1px;" alt="" title="" /><br />\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';
  html += '<td style="border-top: 1px solid #5F72AE; font-size: 1px; line-height: 1px; height: 1px;">\n';
  //html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/bg_balken_hor_kalender.gif" style="width: 530px; height: 3px;" alt="" title="" /><br />\n';
  html += '<br/>';
  html += '</td>\n';
  html += '</tr>\n';
  html += '<tr>\n';
  html += '<td>\n';

  html += '<table border="0" cellspacing="0" cellpadding="0">\n';
  html += '<tr>\n';

  var row1 = '';
  var row2 = '';
  for (var i=0; i<this.listTag().length; i++){
    var day = this.listTag()[i];
    if (i == 0 || day.properties().nameKey() == 1){
      html += '<td>\n';
      html += '<table border="0" cellspacing="0" cellpadding="2">\n';
      html += '<tr>\n';
    }

    // Day-Name
    var className = 'kalender-wochentag';
    if (heute.toString() == day.datum().toString()){
      className += '-aktiv';
    }
    row1 += '<td class="'+ className +'">\n';
    className = 'plain';
    if (day.properties().nameKey() == 0){
      className = 'rot';
    }
    var title = ''
    if (day.properties().feierTag() != undefined && day.properties().feierTag().listBundesland()[this.bundesland().toString()]){
      className = 'green';
      title = day.properties().feierTag().name() + ', ';
    }
    title += DateProperties.formatDatum(day.datum(), 'dd.mm.yyyy');
    row1 += '<a href="'+ Calendar.getSearchFormURLDay(day.properties().datum()) +'" class="'+ className +'" title="'+ title +'">'+ DateProperties.wochenTageNameKurz(day.properties().nameKey()) +'</a><br />\n';
    row1 += '</td>\n';

    // Date
    className = 'kalender-datum';
    if (heute.toString() == day.datum().toString()){
      className += '-aktiv';
    }
    row2 += '<td class="'+ className +'">\n';
    className = 'plain';
    if (day.properties().nameKey() == 0){
      className = 'rot';
    }
    var title = '';
    if (day.properties().feierTag() != undefined && day.properties().feierTag().listBundesland()[this.bundesland().toString()]){
      className = 'green';
      title = day.properties().feierTag().name() + ', ';
    }
    title += DateProperties.formatDatum(day.datum(), 'dd.mm.yyyy');
    row2 += '<a href="'+ Calendar.getSearchFormURLDay(day.properties().datum()) +'" class="'+ className +'" title="'+ title +'">'+ day.properties().datum().getDate() +'</a><br />\n';
    row2 += '</td>\n';

    if (day.properties().nameKey() == 0 || i==(this.listTag().length -1)){
      html += row1;
      html += '</tr>\n';
      html += '<tr>\n';
      html += row2;
      html += '</tr>\n';
      html += '</table>\n';
      html += '</td>\n';
      row1 = '';
      row2 = '';
    }
    if (day.properties().nameKey() == 0 && i!=(this.listTag().length -1)){
      html += '<td>\n';
      html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/bg_balken_ver_kalender.gif" style="width: 5px; height: 34px;" alt="" title="" /><br />\n';
      html += '</td>\n';
    }
  }

  html += '</tr>\n';
  html += '</table>\n';

  html += '</td>\n';
  html += '</tr>\n';
  html += '<tr>\n';
  html += '<td style="border-top: 1px solid #5F72AE; font-size: 1px; line-height: 1px; height: 1px;">\n';
  //html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/bg_balken_hor_kalender.gif" style="width: 530px; height: 3px;" alt="" title="" /><br />\n';
  html += '<br/>';
  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/trans.gif" style="width:1px; height: 1px;" alt="" title="" /><br />\n';
  html += '</td>\n';
  html += '<td>\n';
  html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').forward();"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_vor_.gif" style="width: .9em; height: 2.8em;" alt="" title="" /></a><br />\n';
  html += '</td>\n';
  html += '</tr>\n';

  html += '</table>\n';

  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';

  html += '</td>\n';
  html += '</tr>\n';
  html += '</table>\n';
  html += '</div>\n';
  return html;
}

// -------------------------------------------
// _drawYearPeriod()
// -------------------------------------------
//
// Beschreibung:
// -------------
// Methode blätter Calendar in die Zukunft
//
// Beispiel:
// ---------
// _drawMonthPeriod();
//

Calendar.prototype._drawYearPeriod = function() {
  var html = '';
  var heute = Calendar.createSystemDate();
  html += '<table border="0" cellpadding="0" cellspacing="0" class="calendar">\n';
  var dayIDX = 0;
  var dayIDX2 = 0;
  for (var i=0; i<12; i++){
    html += '<tr>\n';
    html += '<th class="calendar-label" rowspan="2">\n';
    html += DateProperties.monatNameKurz(i);
    html += '</th>\n';
    for (var ii=0; ii<31; ii++){
      var _day = this.listTag()[dayIDX];
      var _dayContainer = '<td class="calendar-day-name">\n';
      if (_day && _day.datum().getMonth() == i){
        if (_day.properties().nameKey() == 6){
          _dayContainer = '<td class="calendar-day-name-saturday">\n';
        }
        if (_day.properties().nameKey() == 0){
          _dayContainer = '<td class="calendar-day-name-sunday">\n';
        }
        if (DEFAULT_YEAR && DEFAULT_YEAR == this.date().getFullYear()){
          if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isBoth(_day.datum(), WEEK_TYPE, WEEK_DAY)){
            // Beides
            _dayContainer = '<td class="calendar-day-name-restmuell-gelber-print">\n';
          } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isYellowTon(_day.datum(), WEEK_TYPE, WEEK_DAY)){
            // Restmüll
            _dayContainer = '<td class="calendar-day-name-restmuell">\n';
          } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isResidualWaste(_day.datum(), WEEK_TYPE, WEEK_DAY)){
            // Gelber Sack
            _dayContainer = '<td class="calendar-day-name-gelbmuell">\n';
          }
        }
        html += _dayContainer;
        html += _day.properties().nameKurz();
        dayIDX++;
      } else {
        html += _dayContainer;
        html += '<br />';
      }
      html += '</td>\n';
    }
    html += '</tr>\n';
    html += '<tr>\n';
    for (var ii=0; ii<31; ii++){
      var _day = this.listTag()[dayIDX2];
      var _dayContainer = '<td class="calendar-day-date">\n';
      if (_day && _day.datum().getMonth() == i){
        if (_day.properties().nameKey() == 6){
          _dayContainer = '<td class="calendar-day-date-saturday">\n';
        }
        if (_day.properties().nameKey() == 0){
          _dayContainer = '<td class="calendar-day-date-sunday">\n';
        }
        if (DEFAULT_YEAR && DEFAULT_YEAR == this.date().getFullYear()){
          if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isBoth(_day.datum(), WEEK_TYPE, WEEK_DAY)){
            // Beides
            _dayContainer = '<td class="calendar-day-date-restmuell-gelber-print">\n';
          } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isYellowTon(_day.datum(), WEEK_TYPE, WEEK_DAY)){
            // Restmüll
            _dayContainer = '<td class="calendar-day-date-restmuell">\n';
          } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isResidualWaste(_day.datum(), WEEK_TYPE, WEEK_DAY)){
            // Gelber Sack
            _dayContainer = '<td class="calendar-day-date-gelbmuell">\n';
          }
        }
        html += _dayContainer;
        html += _day.datum().getDate();
        dayIDX2++;
      } else {
        html += _dayContainer;
        html += '<br />';
      }
      html += '</td>\n';
    }
    html += '</tr>\n';
  }
  html += '</table>\n';
  return html;
}

// -------------------------------------------
// _drawMonthDetail()
// -------------------------------------------
//
// Beschreibung:
// -------------
// Methode blätter Calendar in die Zukunft
//
// Beispiel:
// ---------
// _drawMonthPeriod();
//

Calendar.prototype._drawMonthDetail = function() {
  var html = '';
  var heute = Calendar.createSystemDate();
  html += '<tr>\n';
  html += '<th class="calendar-label" rowspan="2">\n';
  html += DateProperties.monatNameKurz(this.date().getMonth());
  html += '</th>\n';
  for (var ii=0; ii<31; ii++){
    var _day = this.listTag()[ii];
    var _dayContainer = '<td class="calendar-day-name">\n';
    if (_day){
      if (_day.properties().nameKey() == 6){
        _dayContainer = '<td class="calendar-day-name-saturday">\n';
      }
      if (_day.properties().nameKey() == 0){
        _dayContainer = '<td class="calendar-day-name-sunday">\n';
      }
      if (DEFAULT_YEAR && DEFAULT_YEAR == this.date().getFullYear()){
        if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isBoth(_day.datum(), WEEK_TYPE, WEEK_DAY)){
          // Beides
          _dayContainer = '<td class="calendar-day-name-restmuell-gelber-print">\n';
        } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isYellowTon(_day.datum(), WEEK_TYPE, WEEK_DAY)){
          // Restmüll
          _dayContainer = '<td class="calendar-day-name-restmuell">\n';
        } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isResidualWaste(_day.datum(), WEEK_TYPE, WEEK_DAY)){
          // Gelber Sack
          _dayContainer = '<td class="calendar-day-name-gelbmuell">\n';
        }
      } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isYellowTon(_day.datum(), WEEK_TYPE, WEEK_DAY)){
        // Gelber Sack
        _dayContainer = '<td class="calendar-day-name-restmuell">\n';      
      }
      html += _dayContainer;
      html += _day.properties().nameKurz();
    } else {
      html += _dayContainer;
      html += '<br />';
    }
    html += '</td>\n';
  }
  html += '</tr>\n';
  html += '<tr>\n';
  for (var ii=0; ii<31; ii++){
    var _day = this.listTag()[ii];
    var _dayContainer = '<td class="calendar-day-date">\n';
    if (_day){
      if (_day.properties().nameKey() == 6){
        _dayContainer = '<td class="calendar-day-date-saturday">\n';
      }
      if (_day.properties().nameKey() == 0){
        _dayContainer = '<td class="calendar-day-date-sunday">\n';
      }
      if (DEFAULT_YEAR && DEFAULT_YEAR == this.date().getFullYear()){
        if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isBoth(_day.datum(), WEEK_TYPE, WEEK_DAY)){
          // Beides
          _dayContainer = '<td class="calendar-day-date-restmuell-gelber-print">\n';
        } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isYellowTon(_day.datum(), WEEK_TYPE, WEEK_DAY)){
          // Restmüll
          _dayContainer = '<td class="calendar-day-date-restmuell">\n';
        } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isResidualWaste(_day.datum(), WEEK_TYPE, WEEK_DAY)){
          // Gelber Sack
          _dayContainer = '<td class="calendar-day-date-gelbmuell">\n';
        }
      } else if (ALTERNATIVE_DATES && ALTERNATIVE_DATES.isYellowTon(_day.datum(), WEEK_TYPE, WEEK_DAY)){
        // Gelber Sack
        _dayContainer = '<td class="calendar-day-date-restmuell">\n';     
      }
      html += _dayContainer;
      html += _day.datum().getDate();
    } else {
      html += _dayContainer;
      html += '<br />';
    }
    html += '</td>\n';
  }
  html += '</tr>\n';
  return html;
}


// ------------------------------------------------------------
// Öffentliche Klasseneigenschaften
// ------------------------------------------------------------

// ------------------------------------------------------------
// Private Klassenmethoden
// ------------------------------------------------------------

// ------------------------------------------------------------
// Öffentliche Klassenmethoden
// ------------------------------------------------------------

Calendar.getSearchFormURLDay = function(date){
  var url = Calendar.searchFormURL;
  if(date){
    var dayStart = date;
    var dayEnd = new Date(new Date().setTime(date.getTime() + 86400000));
    url += '&Document.Idx.Ende-von=' + Calendar.getCMSDate(dayStart) + '&Template.Variant=day';
  }
  return url;
}

Calendar.getCMSDate = function(date){
  var _year = date.getFullYear();
  var _month = date.getMonth();
  _month++;
  if (_month < 10){
    _month = '0' + _month;
  }
  var _day = date.getDate();
  if (_day < 10){
    _day = '0' + _day;
  }
  var _str = _year + '-' + _month + '-' + _day + ' 00:00:00';
  return _str;
}


/////////////////////////////////////////////////////////////////////////////////////////////////////////////
