$(document).ready(function () {

     function handle_new_date(arrow_ref) {
     
       // get current month
        var year_month = $('#calendar #calendar-year-month').val();
        var year_month_array = year_month.split('-');
        
        if ( $(arrow_ref).hasClass('right-one') ) {
        
           if (year_month_array[1] == 12) {
              year_month_array[1] = 01;
              year_month_array[0]++;
           }
           else {
              year_month_array[1]++;
           }
           
        }
        else {
       
           if (year_month_array[1] == 01) {
              year_month_array[1] = 12;
              year_month_array[0]--;
              
           }
           else {
              year_month_array[1]--;
           }
        }
        
        if (year_month_array[1] < 10) year_month_array[1] = '0' + year_month_array[1];
        
        return year_month_array[0] + '-' + year_month_array[1];
     
     }
     
     
    function refresh_calendar(arrow_ref) {
        
        var new_year_month = handle_new_date(arrow_ref);
    
        if (this.timer) {
          clearTimeout(this.timer);
        }
        
        this.timer = setTimeout(function () { 
        
          $('#calendar .bottom-panel').css({'overflow' : 'hidden'});
        
          if ( $(arrow_ref).hasClass('right-one') ) {
             $('#calendar #slider').prepend('<div class="calendar-data rcv"></div>');
             $( "#calendar .calendar-data.rcv").css({'top':'-170px'});
             
          }
          else {
             $('#calendar #slider').append('<div class="calendar-data rcv"></div>');
             $( "#calendar .calendar-data.rcv").css({'top':'170px'});
          } 
          var ajax_calendar_link = app_url + current_lang + '/ajax-calendar/' + encodeURIComponent( new_year_month );
           
          $.ajax({
                type: "POST",
                url: ajax_calendar_link,
                async: false,
                cache: true,
                dataType: "json", 
                beforeSend: function(){
                      $('#calendar .bottom-panel #loader').fadeIn(0);
                  },
                  complete: function(){                   
                      $('#calendar .bottom-panel #loader').fadeOut(500);
                  },  
                error: function(){                   
                    
                }, 
                success: function(msg){
                  
                    if (msg['success']) {
                      $('#calendar .top-panel .date').html(msg['date']);
                      $('#calendar .bottom-panel .calendar-data.rcv').html(msg['calendar']);
                        
                      
                      if ( $(arrow_ref).hasClass('right-one') ) {
                            $( "#calendar .calendar-data.rcv").animate({'top': "+=170px" }, 500, 'linear');
                      
                            $( "#calendar .calendar-data.dsp").animate({'top': "+=170px" }, 500, 'linear', function() {
                                                   
                                     $( "#calendar .calendar-data.dsp").remove();
                                     $( "#calendar .calendar-data.rcv").removeClass('rcv').addClass('dsp');
   
                                 }
                            );
                           
                      }
                      else {
                            $( "#calendar .calendar-data.rcv").animate({'top': "-=170px" }, 500, 'linear');
                      
                            $( "#calendar .calendar-data.dsp").animate({'top': "-=170px" }, 500, 'linear', function() {
                                                   
                                     $( "#calendar .calendar-data.dsp").remove();
                                     $( "#calendar .calendar-data.rcv").removeClass('rcv').addClass('dsp');
                                    
                                 }
                            );
                      } 
          
                      $('#calendar #calendar-year-month').val(new_year_month);
                   } 
                    
                }
                    
          }); 
               
       }, 400);        
     }
     
     
     function init_calendar_setup() {
     
         // calendar refresh handler
         $('#calendar .top-panel .arrow').click(function() {
            refresh_calendar(this);
         });
         
         //show calendar info handler 
         $('#calendar .bottom-panel table td.action').live('mouseenter', function () {
  
            $('#calendar .bottom-panel').css({'overflow' : 'visible'});
            $(this).find('.calendar-info').css({'display' : 'block'});
            
         }).live('mouseleave', function () {
         
            $(this).find('.calendar-info').css({'display' : 'none'});
                        
         }); 
         
     }
     
     //launch all calendar actions at startup
     init_calendar_setup();
                
                        
});

   

 




