function Calendar() {
  d=new Date();
  
  this.month=d.getMonth()+1;
  this.year=d.getFullYear();
  this.drawerOpen=-1;
}

Calendar.prototype.loadMonth=function(m,y,dir) {
  this.month=m;
  this.year=y;
  
  if(dir=='next') {
    exb='40px';
    exf='20px';
    enb='60px';
    enf='40px';
  }
  else {
    exb='40px';
    exf='60px';
    enb='20px';
    enf='40px';
  }
  
  $("#calendar table").css({left:exb,opacity:1})
                      .animate({left:exf,opacity:0},{
    duration:300,
    easing:'easeInCirc',
    complete:function() {
      $(this).remove();
    
      $.ajax({
        url:'calendar/month/'+m+'/'+y,
        success:function(data) {
          $('#calendar').append(data);
          $('#calendar table').css({left:enb,opacity:0})
                              .animate({left:enf,opacity:1},{
            duration:300,
            easing:'easeOutCirc'
          });
        }
      });
    }
  });
  
  return false;
}

Calendar.prototype.day=function(d) {
  calendar=this;
  m=calendar.month;
  y=calendar.year;

  if(calendar.drawerOpen!=d) {
    calendar.drawerOpen=d;
    
    $('#calendar-drawer *').remove();
    $.ajax({
      url:'index.php/calendar/day/'+d+'/'+m+'/'+y,
      success:function(data) {
        $('#calendar-drawer').append(data);
      }
    });
  
    $('#calendar-drawer').css('width',0).stop().animate({width:'266px'},{
      duration:1000,
      easing:'easeOutQuint'
    });
  
    $('#calendar').bind('mouseleave',function() {
      calendar.hideDrawer();
      $('#calendar').unbind('mouseleave');
    });
  }
  
  return false;
}

Calendar.prototype.hideDrawer=function() {
  calendar=this;
  
  $('#calendar-drawer').stop().animate({width:0},{
    duration:1000,
    easing:'easeInOutQuint',
    complete:function() {
      $(this).hide();
      calendar.drawerOpen=-1;
    }
  });
  return false;
}

calendar=new Calendar;

$(document).ready(function() {
  
});