var months_array = [ gettext('Styczeń'), gettext('Luty'), gettext('Marzec'), gettext('Kwiecień'), gettext('Maj'),gettext('Czerwiec'), gettext('Lipiec'), gettext('Sierpień'), gettext('Wrzesień'), gettext('Październik'),gettext('Listopad'), gettext('Grudzień')];

function get_prev_month(year, month){
    month = month - 1;
    if (month < 0) {
        month=11;
        year=year-1;
    }
    return new Date(year, month+1, 0);
}


function get_next_month(year, month){
    month = month + 1;
    if (month > 11){
        month=0;
        year=year+1;
    }
    return new Date(year, month+1, 0);
}


function is_event_date(date){
    var dates = $('input#events_dates').val();
    dates = dates.split(';');
    for (var i=0; i<dates.length; i++){
        var year = dates[i].split('-')[0];
        var month = dates[i].split('-')[1];
        var day = dates[i].split('-')[2];
        if ((year == date.getFullYear()) && (month == date.getMonth()+1) && (day == date.getDate())){
            return true;
        }
    }
    return false;
}

function date_to_str(date){
    var month = (date.getMonth()+1);
    if (date.getMonth()+1 < 10){
        var month = '0' + month; 
    } 
    var day = date.getDate();
    if (date.getDate() < 10){
        var day = '0' + day; 
    } 
    return date.getFullYear()+'-'+month+'-'+day;
    
}

function get_cell(date){
    var now = new Date();    
    if ((is_event_date(date) == true) && ((date.getFullYear() == now.getFullYear()) && (date.getMonth() == now.getMonth()) && (date.getDate() == now.getDate()))){
        return '<td id="today"><a title="" href="/artykuly/'+date_to_str(date)+'/">'+date.getDate()+'</a></td>';
    }
    else if (is_event_date(date) == true) {
        return '<td><a title="" href="/artykuly/'+date_to_str(date)+'/">'+date.getDate()+'</a></td>';   
    } 
    else if ((date.getFullYear() == now.getFullYear()) && (date.getMonth() == now.getMonth()) && (date.getDate() == now.getDate())){
        return '<td id="today">'+date.getDate()+'</td>';
    } 
    else {
        return '<td>'+date.getDate()+'</td>';
    }
}

    
function add_calendar(year, month){
    $('table#wp-calendar').remove();
    var main_date = new Date(year, month, 0);
    var caption = '<caption>' + months_array[month] + ' ' + year + '</caption>'


    // ------------------------------------------------------------------------
    //                            H E A D    
    // ------------------------------------------------------------------------
    var thead = '<thead><tr>\
                        <th abbr="'+gettext('Poniedziałek')+'" scope="col" title="'+gettext('Poniedziałek')+'">'+gettext('Poniedziałek').substring(0,2)+'</th>\
                        <th abbr="'+gettext('Wtorek')+'" scope="col" title="'+gettext('Wtorek')+'">'+gettext('Wtorek').substring(0,2)+'</th>\
                        <th abbr="'+gettext('Środa')+'" scope="col" title="'+gettext('Środa')+'">'+gettext('Środa').substring(0,2)+'</th>\
                        <th abbr="'+gettext('Czwartek')+'" scope="col" title="'+gettext('Czwartek')+'">'+gettext('Czwartek').substring(0,2)+'</th>\
                        <th abbr="'+gettext('Piątek')+'" scope="col" title="'+gettext('Piątek')+'">'+gettext('Piątek').substring(0,2)+'</th>\
                        <th abbr="'+gettext('Sobota')+'" scope="col" title="'+gettext('Sobota')+'">'+gettext('Sobota').substring(0,2)+'</th>\
                        <th abbr="'+gettext('Niedziela')+'" scope="col" title="'+gettext('Niedziela')+'">'+gettext('Niedziela').substring(0,2)+'</th>\
                 </tr></thead>';
    
    
    
    // ------------------------------------------------------------------------
    //                          F O O T E R    
    // ------------------------------------------------------------------------
    var next_month = get_next_month(year, month); 
    var prev_month = get_prev_month(year, month);
    var tfoot = '<tfoot><tr>';
    tfoot += '<td abbr="'+months_array[prev_month.getMonth()]+'" colspan="3" id="prev"><a href="javascript:add_calendar('+prev_month.getFullYear()+', '+prev_month.getMonth()+');" title="'+months_array[prev_month.getMonth()] + ' ' + prev_month.getFullYear()+'">&laquo; '+gettext('Poprzedni')+'</a></td>';
    tfoot += '<td class="pad">&nbsp;</td>';
    tfoot += '<td abbr="'+months_array[next_month.getMonth()]+'" colspan="3" id="next"><a href="javascript:add_calendar('+next_month.getFullYear()+', '+next_month.getMonth()+');" title="'+months_array[next_month.getMonth()] + ' ' + next_month.getFullYear()+'">'+gettext('Następny')+' &raquo;</a></td>';
    tfoot += '</tr></tfoot>'; 



    // ------------------------------------------------------------------------
    //                             B O D Y
    // ------------------------------------------------------------------------

    
    var tbody = '<tbody>';
    var _date = new Date(year, month, 1);
    while(_date.getMonth() == month){
        if (_date.getDate() == 1){
            tbody += '<tr>';
            var _day = (_date.getDay() + 6) % 7; 
            for(var j=0; j<_day; j++){
                tbody += '<td>&nbsp;</td>';
            }
            for(var j=_day; j<7; j++){
                tbody += get_cell(_date);
                _date.setDate(_date.getDate()+1);
            }
            tbody += '</tr>';
        }
        else {
            tbody += '<tr>';
            for(var j=0; j<7; j++){
                if (_date.getMonth() == month){
                    tbody += get_cell(_date);
                    _date.setDate(_date.getDate()+1);    
                }
                else {
                    tbody += '<td>&nbsp;</td>';           
                }
            }
            tbody += '</tr>';   
        }
    }
    tbody += '</tbody>';

    var table_html = '<table id="wp-calendar" summary="Calendar">' + caption + thead + tfoot + tbody + '</table>'                        
    $("div#calendar_wrap").append(table_html);
}
                    
                    

        
$(document).ready(function() {
    var selected_date = $('input#selected_date').val();
    if (selected_date == ''){
        var now = new Date();
        add_calendar(now.getFullYear(), now.getMonth());
    }
    else {
        var year = parseInt(selected_date.split('-')[0]);
        var month = parseInt(selected_date.split('-')[1])-1;
        add_calendar(year, month);    
    }
});
        
