function monthName(monthNr)
{
    
    switch(monthNr)
    {
        case 1:
            return 'STYCZEŃ';
            break;
        case 2:
            return 'LUTY';
            break;
        case 3:
            return 'MARZEC';
            break;
        case 4:
            return 'KWIECIEŃ';
            break;
        case 5:
            return 'MAJ';
            break;
        case 6:
            return 'CZERWIEC';
            break;
        case 7:
            return 'LIPIEC';
            break;
        case 8:
            return 'SIERPIEŃ';
            break;
        case 9:
            return 'WRZESIEŃ';
            break;
        case 10:
            return 'PAŹDZIERNIK';
            break;
        case 11:
            return 'LISTOPAD';
            break;
        case 12:
            return 'GRUDZIEŃ';
            break;
        default:
            return "";
    }

}



$(document).ready(function(){
                    
    var cal_html = ' <div class="calendar_back"></div>';
    var cal_eb = '';       
    
    var eventsTP = new Array(); //Days to print 
    
    $('.raw-calendar-event').each(function(index) {
       
        eval('eventsTP.push({"title" : "'+$(this).children('p.title').html()+'", "partner" : "'+$(this).children('p.partner').html()+'","d" : "'+$(this).attr('d_date')+'", "m" : "'+$(this).attr('m_date')+'" })');
    
    
     cal_eb = cal_eb + '<div style="display:none;" class="calendar_event event-'+$(this).attr('d_date')+'-'+$(this).attr('m_date')+'"><a href="'+$(this).attr('link')+'" style="color:#ffffff" >'+$(this).children('p.title').html()+' / <span style="color: '+$(this).attr('color')+'" class="miasto">'+$(this).children('p.partner').html()+'</span></a></div>';  
    
    });     
  
    var eventsTP2 = new Array();
  

    
           
        
           
    var d = new Date();
    var cal_year = '2011';                
    var month_count = 0;
    var month_div_width = 237;
    var first_month = d.getMonth()+1; // getMonth() starts from 0    
    //alert(d.get)
    var last_month = 12;  
                    
    var i=0;
    for (i=first_month;i<=last_month;i++)
    {
        eventsTP2[i] = new Array();
        var j=0;
        for (j=0;j<31;j++)
        {
            eventsTP2[i][j] = new Array();
            $.each(eventsTP, function(index, value) { 
                if(value.m==i && value.d==j+1)
                {
                    eventsTP2[i][j].push(value);
                }
               
            });       
            
            
        }
        
    }          
             
             
                    
    // drukowanie gotowego kodu
    cal_html = cal_html + '<div class="all_months" style="width: '+month_count*month_div_width+'px; left: 0px; top: 0px;">';
            
    var i=0;
    for (i=first_month;i<=last_month;i++)
    {
        

        cal_html = cal_html + '<div class="month">';
        if(i!=first_month){
            cal_html = cal_html + '<div class="cal_left"></div>';
        }
        cal_html = cal_html + '<div class="cal_center">'+monthName(i)+' '+ cal_year +'</div>';
        if(i!=last_month){
            cal_html = cal_html + '<div class="cal_right"></div>';
        }
        cal_html = cal_html + '<table class="cal_table" cellpadding="0" cellspacing="2"><thead><tr><th>P</th><th>W</th><th>Ś</th><th>C</th><th>P</th><th>S</th><th>N</th></tr></thead> <tfoot></tfoot><tbody>';    
       

       
        var d1 = new Date(Number(cal_year),i,0); 
        var d2 = new Date(Number(cal_year),i,5); 
        var d3 = new Date(Number(cal_year),i,0); 
//        
//        var d1 = new Date(2011, 6, 0);
//        var d2 = new Date(2011, 7, 0); 
//        var d3 = new Date(2011, 8, 0); 
        
        //alert(new Date(2011, 8, 0).getDate());
        
        var last_day_of_previous_month = d1.getDate();
        var last_day_of_month = d3.getDate(); 
        
        //alert(first_month);
        
        var first_day_of_week =  d2.getDay();
        var dtp = new Array(); //Days to print 
        var cdtp = new Array(); //Days to print 
        var todtp = new Array(); //Type of days to print 
  
        var days_from_previous_month = (7+first_day_of_week - 1)%7;
       
        var jj=0;
        for (jj=0;jj<days_from_previous_month;jj++)
        {
            dtp.push(last_day_of_previous_month - (days_from_previous_month -1)+jj);
            todtp.push(0);
            cdtp.push(" ");
            
        }
        for (jj=0;jj<last_day_of_month;jj++)
        {
            dtp.push(jj+1);
            if(eventsTP2[i][jj].length>0)
            {
                todtp.push(2);
                cdtp.push(eventsTP2[i][jj]);
            }
            else
            {
                todtp.push(1); 
                cdtp.push(" ");
            }
            
            eventsTP2
            
        }
        
        var brakujace = dtp.length;
        
        for (jj=0;jj<(42-brakujace);jj++)
        {
            dtp.push(jj+1);
            
            todtp.push(0);   
            cdtp.push(" ");
            
        }       
        
        
       
       
        var j=1;
        for (j=1;j<=6;j++)
        {
            

            
            
            cal_html = cal_html + '<tr>'; 
            
            var k=0;
            for (k=0;k<7;k++)
            {
                var dayClass = "";
                switch(todtp[7*(j-1)+k])
                {
                    case 0:
                        dayClass = '';
                        break;
                    case 1:
                        dayClass = 'day';
                        break;
                    case 2:
                        dayClass = 'event';
                        break;
                    default:
                        return "";
                }
                if(cdtp[7*(j-1)+k]!=" "){
                    //alert(cdtp[7*(j-1)+k][0].title);
                    cal_html = cal_html + '<td class="'+dayClass+'" dd="'+dtp[7*(j-1)+k]+'" mm="'+i+'">'; 
                    
                    
                  //   cal_html = cal_html + '<div style="display:none;">';
                     
         //           $.each(cdtp[7*(j-1)+k][0], function(index, value) { 
                        

           //         });       
                    
                   
                //    cal_html = cal_html + '</div>';
                }
                else
                {
                    cal_html = cal_html + '<td class="'+dayClass+'">';   
                }
                
                cal_html = cal_html + dtp[7*(j-1)+k]; 
       
                cal_html = cal_html + '</td>';    
            }
       
       
            cal_html = cal_html + '</tr>';    
        }
                   

        //          <td class="day">1</td>
        //          <td class="event">2</td>
        //          <td class="event_hoover">3</td>

            
        cal_html = cal_html + '</tbody></table></div>';


    }
                    
                    
                    
    cal_html = cal_html + '<div>';
                    
    $("div.calendar").html(cal_html);
    $("div.calendar_eventbox").html(cal_eb);
    
    $(".all_months").width(237*(last_month-first_month+1)+10);
    
    $('.cal_right').click(function() {
        
        //$('.all_months').css('left',(parseInt($('.all_months').css('left')) - 237));
          
        $('.all_months').animate({
            left: '-=237'
        }, 300, function() {
            // Animation complete.
        });
            
    });
    
    $('.cal_left').click(function() {
        
        //$('.all_months').css('left',(parseInt($('.all_months').css('left')) - 237));
          
        $('.all_months').animate({
            left: '+=237'
        }, 300, function() {
            // Animation complete.
        });
            
    });
    
    $('.event').mouseenter(function() {
        
        $(this).addClass('event_hoover');
            
    });
    
    $('.event').mouseleave(function() {
        if($(this).hasClass('stay') == false)
            $(this).removeClass('event_hoover');
            
    });
    
    $('.event').live('mouseover', function() {
        $(this).addClass('clicked-event');
        $(this).click(function(){
            $(this).addClass('stay');
        });
        $(this).removeClass('event');
        if($(this).attr('mm')){            
        var class_to_show ="";
        class_to_show = 'event-'+$(this).attr('dd') + '-' +$(this).attr('mm');
        
        $('.'+class_to_show).show();
        }
    });
    
    $('.clicked-event').live('mouseout', function() {
        if($(this).hasClass('stay')){
            $(this).click(function(){
                $(this).removeClass('stay');
            });
            return false;
        }
        $(this).removeClass('clicked-event');
        $(this).addClass('event');
        if($(this).attr('mm')){            
        var class_to_show ="";
        class_to_show = 'event-'+$(this).attr('dd') + '-' +$(this).attr('mm');
        
        $('.'+class_to_show).hide();
        }
    });
    
    
    
                    
                    
});
