var eventDates = '';
var isInit = false;
var CALENDAR = '#calendar';
var POST = '/events/calendar/';

Events = {
    init: function() {
        $(CALENDAR).datepicker({
            dayNamesMin: ['Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat'],
            showOtherMonths: true,
            onSelect: this.onDateSelect,
            onChangeMonthYear: this.onChangeMonthYear,
            beforeShowDay: this.enableEvents
        });
        $(CALENDAR).datepicker('setDate', this.getDate());
        App.searchInput('#eq', 'Enter Search');
        $('#eventSearchSubmit').click(function() { $(this).closest('form').submit(); });
        isInit = true;
    },
    enableEvents: function(date) {
        var str = "(" + (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear() + ")";
        return [new RegExp(str, 'g').test(eventDates), ''];
    },
    getDate: function() {
        var date = new Date();
        date.setFullYear(year, month - 1, day);
        return date;
    },
    onChangeMonthYear: function(year, month) {
        $(CALENDAR).datepicker('disable');
        $.get(POST + 'days', { month: month, year: year }, function(data) {
            eventDates = data;
            $(CALENDAR).datepicker('enable');
            if (!isInit) Events.init();
        });
    },
    onDateSelect: function(dateText, inst) {
        var dates = dateText.split('/');
        location.href = POST + dates[2] + '/' + dates[0] + '/' + dates[1];
    }
};
$().ready(function() {
    //Events.init();
    var date = Events.getDate();
    Events.onChangeMonthYear(date.getFullYear(), date.getMonth() + 1);
});
