var eventsCalendar = {

    eventsDates: [],
    eventsCurrrDate: new Date(),

    init: function (eventsDates, selectedDay)
    {
        eventsCalendar.eventsDates = eventsDates;

        if (typeof selectedDay == 'string') {
            var pattern = new RegExp(/^\d{4}-\d{2}-\d{2}$/);
            if (pattern.test(selectedDay)) {
                var dateArr = selectedDay.split('-');
                eventsCalendar.eventsCurrrDate = new Date(parseInt(dateArr[0], 10), (parseInt(dateArr[1], 10) - 1), parseInt(dateArr[2], 10));
            }
        }

        $('#eventsCalendar').jCal({
            day:            eventsCalendar.eventsCurrrDate,
            days:           1,
            showMonths:     1,
            monthSelect:    false,
            sDate:          new Date(),
            //dayOffset:        1,
            dCheck:         function (day) { return eventsCalendar.dCheck(day); },
            callback:       function (day, days) { return eventsCalendar.callback(day, days); }
        });
        
        var currDtate = $('div#c1d_' + eventsCalendar.eventsCurrrDate.format('m_d_yyyy'));
        //if ($(currDtate).attr('class') != 'invday') {
            $(currDtate).addClass('selectedDay');
        //}
    },

    dCheck: function (day)
    {
        var myDate = new Date(day.getTime());
        if (in_array(myDate.format('yyyy-mm-dd'), eventsCalendar.eventsDates)) {
            return true;
        }
        return false;
    },

    callback: function (day, days)
    {
        var myDate = new Date(day.getTime());
        document.location = BASE_URL + '/search?date=' + myDate.format('yyyy-mm-dd') + '&in=events';
    }
};

