// kalendarz do wprowadzania daty
var calendar = {
  months  : new Array('styczeń', 'luty' , 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień'),
  days    : new Array(31,28,31,30,31,30,31,31,30,31,30,31),
  pos_x   : 0,
  pos_y   : 0,
  element : '',
  
  init : function() {
    document.onmousemove = calendar.position;
  },
  position : function(e) {
    calendar.pos_x = Event.pointerX(e);
    calendar.pos_y = Event.pointerY(e);
  },
  show : function(element) {
    var x = calendar.pos_x;
    var y = calendar.pos_y;
    var date  = new Date();
    var year  = date.getFullYear();
    var month = date.getMonth();
    
    calendar.element = element;
    
    Element.show('calendar');
    $('calendar').style.left = (calendar.pos_x - 100) + 'px';
    $('calendar').style.top  = (calendar.pos_y - 100) + 'px';
    
    calendar.generate(year, month);
  },
  hide : function(year, month, day) {
    month++;
    month = (month < 10) ? '0' + month : month;
    day   = (day < 10)   ? '0' + day   : day;
    calendar.element.value = year + '-' + month + '-' + day;
    
    Effect.Shrink('calendar');
  },
  generate : function(start_year, start_month) {
    var html  = new String();
    var date  = new Date(start_year, start_month, 1);
    var year  = date.getFullYear();
    var month = date.getMonth();
    var day   = date.getDate();
    var day_of_week = (date.getDay() == 0) ? 7 : date.getDay();
    
    calendar.days[1] = (year % 4 == 0) ? 29 : 28;
    
    html  = '<table width="150px" border="1" cellpadding="0" cellspacing="0">';
    html += '<tr class="select"><td colspan="4">';
    html += '<select id="calendar_month" onchange="calendar.generate($F(\'calendar_year\'), $F(\'calendar_month\'))">';
    
    for (i = 0; i <= 11; i++) {
      if (i == month) {
        html += '<option value="' + i + '" selected>' + calendar.months[i] + '</option>';
      } else {
        html += '<option value="' + i + '">' + calendar.months[i] + '</option>';
      }
    }
    
    html += '</select></td><td colspan="3">';
    html += '<select id="calendar_year" onchange="calendar.generate($F(\'calendar_year\'), $F(\'calendar_month\'))">';
    
    for (i = (year - 1); i <= (year + 2); i++) {
      if (i == year) {
        html += '<option value="' + i + '" selected>' + i + '</option>';
      } else {
        html += '<option value="' + i + '">' + i + '</option>';
      }
    }
    
    html += '</select></td></tr>';
    html += '<tr class="head"><td><b>PN</b></td><td><b>WT</b></td><td><b>ŚR</b></td><td><b>CZ</b></td><td><b>PT</b></td><td><b>SB</b></td><td><b>ND</b></td></tr>';
    html += '<tr>';
    
    var d = 1;
    
    for (i = 1; i <= (((calendar.days[month] + day_of_week) <= 35) ? 35 : 42); i++) {
      if (i >= day_of_week && d <= calendar.days[month]) {
        html += '<td><a href="javascript:void(0);" onclick="calendar.hide($F(\'calendar_year\'), $F(\'calendar_month\'), ' + d + ');">' + d + '</a></td>';
        d++;
      } else {
        html += '<td>&nbsp;</td>';
      }
      if (i%7 == 0) {
        html += '</tr><tr>';
      }
    }
    
    html += '</tr>';
    html += '<tr><td colspan="7"><a href="javascript:void(0);" onclick="Effect.Shrink(\'calendar\')">zamknij kalendarz</a></td></tr>';
    html += '</table>';
    
    $('calendar').innerHTML = html;
  }
}
