
//==================================================================================
//==================================================================================
//
// 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'){
  // Eyecatcher-Ansicht
    html += '<div id="'+ this.id() +'">';
    html += '<div class="Calendar-Eyecatcher">';
    html += '<div class="CalendarFrame">';
    html += '<div>';
    html += '<table border="0" cellpadding="0" cellspacing="0" class="CalendarNavigation-Eyecatcher">';
    html += '<tr>';
    html += '<td class="CalendarNavigationButtonLeft">';
    html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').backward();" title="Monat zurück"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_left.gif" border="0"/></a><br />';
    html += '</td>';
    html += '<td class="CalendarNavigationPull-Eyecatcher">';
    html += '<a href="javascript:submitEyecatcherCalenderMonth_'+ this.id() +'(\''+ this.id() + '\', \''+ DateProperties.formatDatum(DateProperties.getMonatAnfangVonDatum(this.date()), "yyyy-mm-dd") +'\', \''+ DateProperties.formatDatum(DateProperties.getMonatEndeVonDatum(this.date()), "yyyy-mm-dd") +'\')" class="CalendarMonth-Eyecatcher" title="Hier finden Sie alle Artikel für diesen Monat.">'+ DateProperties.monatNameKurz(this.date().getMonth()) + '</a> ' + this.date().getFullYear() + '<br/>';
    html += '</td>';
    html += '<td class="CalendarNavigationButtonRight">';
    html += '<a href="javascript:Calendar.getInstance(\''+ this.id() +'\').forward();" title="Monat vor"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_right.gif" border="0"/></a><br />';
    html += '</td>';
    html += '</tr>';
    html += '</table>';
    html += '</div>';
    html += '<table border="0" cellpadding="0" cellspacing="0" class="CalendarDays-Eyecatcher">';
    html += '<tr>';
    /*
    html += '<td class="CalendarDay"><br /></td>';
    */
      for (var m=1; m<8; m++){
        html += '<td class="CalendarDay-Eyecatcher">';
          html += '<div class="CalendarDayHeadContent">';
            if (m < 7){
              html += DateProperties.wochenTageNameKurz(m) + '<br />';
            } else {
              html += DateProperties.wochenTageNameKurz(0) + '<br />';
            }
          html += '</div>';
        html += '</td>';
      }
    html += '</tr>';

    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 += '<tr>';
      for (var ii=1; ii<8; ii++){
        /*
        if (ii==1){
          html += '<td class="CalendarKW">';
          html += '<div class="CalendarKW">';
          html += '<a class="CalendarKW" style="color: #ffffff;">';
          html += kwS[i];
          html += '</a>';
          html += '</div>';
          html += '</td>';
        } 
        */
        html += '<td class="CalendarDay-Eyecatcher">';
          if (ii<6){
            html += '<div class="CalendarDayContent">';
          } else {
            html += '<div class="CalendarDayContentWE">';
          }
          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])){
              //alert(this.listTag()[iii].properties().kw() + ' = ' + i);
              var styleAtt = 'CalendarDay-Eyecatcher';
              var aTitle = DateProperties.formatDatum(this.listTag()[iii].datum(), 'dd.mm.yyyy') + ', '+ this.listTag()[iii].properties().kw() +'.KW';
              if (this.listTag()[iii].datum().toString() == heute.toString()){
                styleAtt = 'CalendarDayNow-Eyecatcher';
              } else if (this.listTag()[iii].properties().feierTag() != undefined){
                if (this.listTag()[iii].properties().feierTag().listBundesland()[this.bundesland().toString()] && this.listTag()[iii].properties().feierTag().statusKey()!=0){
                  styleAtt = 'CalendarDayCeleb-Eyecatcher';
                }  
                aTitle += ', ' + this.listTag()[iii].properties().feierTag().name();
              }
              html += '<a href="javascript:submitEyecatcherCalenderDay_'+ this.id() +'(\''+ this.id() +'\', \''+ DateProperties.formatDatum(this.listTag()[iii].datum(), "yyyy-mm-dd") +'\');" class="'+ styleAtt +'" title="'+ aTitle +'">';
              html += this.listTag()[iii].datum().getDate() + '<br />\n';
              html += '</a>';
              leer = false;
            }
          }
          if (leer){
            html += '<a class="CalendarDay-Eyecatcher"><br /></a>';
          }
        html += '</div>';
        html += '</td>';
      }
      html += '</tr>';
    }
    html += '</table>';
    html += '</div>';
    html += '</div>';
    html += '</div>';
  } else {
  // Standard-Ansicht
    html += '<div id="'+ this.id() +'">';
    html += '<div class="Calendar">';
    html += '<div class="CalendarFrame">';
    html += '<div>';
    html += '<table border="0" cellpadding="0" cellspacing="0" class="CalendarNavigation">';
    html += '<tr>';
    html += '<td class="CalendarNavigationButtonLeft">';
    html += '<a href="javascript:Calendar.getInstance().backward();" title="Monat zurück"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_left.gif" border="0"/></a><br />';
    html += '</td>';
    html += '<td class="CalendarNavigationPull">';
    html += '<select name="month" class="CalendarNavigationSelector" onchange="Calendar.getInstance().navigationMonth(this.options[this.selectedIndex].value);">';
      for (var o=0; o<12; o++){
        var optSelected = '';
        if (o == this.date().getMonth()){
          optSelected = ' selected="1"';
        }
        html += '<option value="'+ o +'"'+ optSelected +'>' + DateProperties.monatNameKurz(o) +'</option>';
      }
    html += '</select>';
    html += '</td>';
    html += '<td class="CalendarNavigationPull">';
    html += '<select name="year" class="CalendarNavigationSelector" onchange="Calendar.getInstance().navigationYear(this.options[this.selectedIndex].value);">';
      var past = parseFloat(new Date().getFullYear() - 50);
      var future = parseFloat(new Date().getFullYear() + 50);
      for (var y=past; y<future; y++){
        var optSelected = '';
        if (y == this.date().getFullYear()){
          optSelected = ' selected="1"';
        }
        html += '<option value="'+ y +'"'+ optSelected +'>' + y +'</option>';
      }
    html += '</select>';
    html += '</td>';
    html += '<td class="CalendarNavigationButtonRight">';
    html += '<a href="javascript:Calendar.getInstance().forward();" title="Monat vor"><img src="' + Calendar._htmlRoot + '/resource/calendar/graphic/button_right.gif" border="0"/></a><br />';
    html += '</td>';
    html += '</tr>';
    html += '</table>';
    html += '</div>';
    html += '<table border="0" cellpadding="0" cellspacing="0" class="CalendarDays">';
    html += '<tr>';
    html += '<td class="CalendarDay"><br /></td>';
      for (var m=1; m<8; m++){
        html += '<td class="CalendarDay">';
          html += '<div class="CalendarDayHeadContent">';
            if (m < 7){
              html += DateProperties.wochenTageNameKurz(m) + '<br />';
            } else {
              html += DateProperties.wochenTageNameKurz(0) + '<br />';
            }
          html += '</div>';
        html += '</td>';
      }
    html += '</tr>';

    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 += '<tr>';
      for (var ii=1; ii<8; ii++){
        if (ii==1){
          html += '<td class="CalendarKW">';
          html += '<div class="CalendarKW">';
          html += '<a class="CalendarKW" style="color: #ffffff;">';
          html += kwS[i];
          html += '</a>';
          html += '<div>';
          html += '</td>';
        } 
        html += '<td class="CalendarDay">';
          if (ii<6){
            html += '<div class="CalendarDayContent">';
          } else {
            html += '<div class="CalendarDayContentWE">';
          }
          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])){
              //alert(this.listTag()[iii].properties().kw() + ' = ' + i);
              var styleAtt = 'CalendarDay';
              var aTitle = DateProperties.formatDatum(this.listTag()[iii].datum(), 'dd.mm.yyyy') + ', '+ this.listTag()[iii].properties().kw() +'.KW';
              if (this.listTag()[iii].datum().toString() == heute.toString()){
                styleAtt = 'CalendarDayNow';
              } else if (this.listTag()[iii].properties().feierTag() != undefined){
                if (this.listTag()[iii].properties().feierTag().listBundesland()[this.bundesland().toString()] && this.listTag()[iii].properties().feierTag().statusKey()!=0){
                  styleAtt = 'CalendarDayCeleb';
                }  
                aTitle += ', ' + this.listTag()[iii].properties().feierTag().name();
              }
              html += '<a href="javascript:dialogContext.callback(\''+ DateProperties.formatDatum(this.listTag()[iii].datum(), "dd.mm.yyyy") +'\');" class="'+ styleAtt +'" title="'+ aTitle +'">';
              html += this.listTag()[iii].datum().getDate() + '<br />\n';
              html += '</a>';
              leer = false;
            }
          }
          if (leer){
            html += '<a class="CalendarDay"><br /></a>';
          }
        html += '</div>';
        html += '</td>';
      }
      html += '</tr>';
    }
    html += '</table>';
    html += '</div>';
    html += '</div>';
  }  
  return html;
}

// ------------------------------------------------------------
// Öffentliche Instanzmethoden
// ------------------------------------------------------------

// ------------------------------------------------------------
// Öffentliche Klasseneigenschaften
// ------------------------------------------------------------

// ------------------------------------------------------------
// Private Klassenmethoden
// ------------------------------------------------------------

// ------------------------------------------------------------
// Öffentliche Klassenmethoden
// ------------------------------------------------------------


/////////////////////////////////////////////////////////////////////////////////////////////////////////////