jQuery().ready(function() {

  var eventDate = $.datepicker.parseDate('y-m-d', $('#date').val() + '-01');
  $('#datepicker').datepicker({
    firstDay:    1,
    dayNamesMin: ['P', 'E', 'T', 'K', 'N', 'R', 'L'],
    monthNames:  ['Jaanuar', 'Veebruar', 'Märts', 'Aprill', 'Mai', 'Juuni', 'Juuli', 'August', 'September', 'Oktoober', 'November', 'Detsember'],
    defaultDate: eventDate,
    prevText:    'Eelmine',
    nextText:    'Järgmine'
  });
  sidebar.calendar.populateEvents(eventDate.getFullYear() + '-' + $.datepicker._getPaddedMonthDay(eventDate.getMonth() + 1));
  
  // Add plus/minus toggler to collapsible widgets
  $('#menu li.collapsible-widget h2 span.show-hide').addClass('ui-icon');
  $('#menu li.collapsible-widget h2 span.show-hide').addClass('ui-icon-minus');
  $('#menu li.collapsible-widget h2 span.show-hide').click(function() {
    $(this).toggleClass('ui-icon-plus').toggleClass('ui-icon-minus').parent().siblings().toggle(180);
  });
  
  // Disable AJAX cache (required for admin login/logoff discrepancies)
  $.ajaxSetup({ cache: false });
});

window.sidebar =
{
  calendar:
  {
    clickHandler: function (dateStr)
    {
      document.location.href = '?page_id=' + window.EventsPageId + '&date=' + dateStr;
    },
    
    populateEvents: function (yearAndMonth)
    {
      // Add onclick handler to datepicker title in case admin user
      if ($('#isEditor').val() == '1')
      {
        $('.ui-datepicker-title').css('cursor', 'pointer');
        $('.ui-datepicker-title').click(function () {
          window.location.href = '/wp-content/themes/wpthemegen/events_month.php?date=' + yearAndMonth; 
        });
      }
      
      // Collect events via AJAX
      $.getJSON('http://www.tym.ee/wp-content/themes/wpthemegen/ajax/get_events.php', { date: yearAndMonth }, function (events) {
        
        if (!events[yearAndMonth]) return;
        events = events[yearAndMonth];

        // Set CSS class for days that have events, add click function
        for (var i in events)
        {
          var activeDay  = $('#dp\\:' + yearAndMonth + '-' + i);
          $('#dp\\:' + yearAndMonth + '-' + i + ' > a').addClass('ui-datepicker-day-has-events');
          
          activeDay.hover(
            function (e) {
              var date = this.id.replace(/^dp:(.*)$/, '$1');
              var dayEvents = events[date.split('-')[2]];
              var menuOffset = $('#menu').offset();
          
              $('#datepicker-slider').html('');
              for (var j = 0; j < dayEvents.length; ++j)
              {
                var eventTitle = dayEvents[j].title;
                // If event is not public, show "Broneeritud" for non-admin users.
                if (!dayEvents[j].public && $('#isEditor').val() != '1')
                {
                  eventTitle = 'Broneeritud';
                }
                $('#datepicker-slider').append(dayEvents[j].time + ': ' + eventTitle + '<br />');
              }
      
              $('#datepicker-slider').css({ 'left': (e.pageX+10-menuOffset.left) + 'px', 'top': (e.pageY+10-menuOffset.top) + 'px' });
              $('#datepicker-slider').show('slow');
            },
            function () { $('#datepicker-slider').hide('fast'); }
          );
        }
        
      });        
    }
  }
}
