var getInProgress = false;

$(document).ready(function () {
    var d = new Date();
    CurrentDate.month = d.getMonth() + 1;
    CurrentDate.year = d.getFullYear();
    GetNewsAndEvents(CurrentDate.year, CurrentDate.month);
    GetCalendar(CurrentDate.year, CurrentDate.month);


});

var CurrentDate = function(){
    var year;
    var month;
    var day;
    return {year: year, month: month, day: day}
};

function SetDayClick() {
    $('.dayNr').click(function () {
        $('.calUpcomingEvents').empty();
        $('.calNews').empty();
        CurrentDate.day = $(this).text();
        GetNewsAndEventsForDay(CurrentDate);
    });
}
function BindMonthClicks() {
    $('#previousMonth').click(function () {
        if (getInProgress === false) {
            getInProgress = true;

            CurrentDate.month = CurrentDate.month - 1;
            if (CurrentDate.month === 0) {
                CurrentDate.month = 12;
                CurrentDate.year = CurrentDate.year - 1;
            }

            FillNewsAndCalendar();
        }
    });

    $('#nextMonth').click(function () {
        if (getInProgress === false) {
            getInProgress = true;

            CurrentDate.month = CurrentDate.month + 1;
            if (CurrentDate.month === 13) {
                CurrentDate.month = 1;
                CurrentDate.year = CurrentDate.year + 1;
            }
            FillNewsAndCalendar();
        }
    });

    $('#previousMonth').hover(function () {
        $(this).css('cursor', 'pointer');
    }, function () {
        $(this).css('cursor', 'auto');
    });

    $('#nextMonth').hover(function () {
        $(this).css('cursor', 'pointer');
    }, function () {
        $(this).css('cursor', 'auto');
    });
}

function FillNewsAndCalendar() {
    $('.calUpcomingEvents').fadeOut(50);
    $('.calNews').fadeOut(50, function () {
        GetNewsAndEvents(CurrentDate.year, CurrentDate.month);
    }).empty();
    $('.calendarView').fadeOut(50, function () {
        GetCalendar(CurrentDate.year, CurrentDate.month);
    });
    
    
}
function GetCalendar(year, month) {
    $('.calendarView').empty();
    var breaker = new Date().getMilliseconds();
    $.get('/cal/startpageCalendar.cshtml?m=' + month + '&y=' + year, function (data) {
        $('.calendarView').append(data).fadeIn();
        SetDayClick();
        getInProgress = false;
        BindMonthClicks();

        $('.pdcalendar li').click(function () {
            $('.pdcalendar li').removeClass('active');
            $(this).addClass('active');
        });
    });
}

function GetNewsAndEvents(year, month) {
    $('.calNews').empty();
    $('.calUpcomingEvents').empty();
    var breaker = new Date().getMilliseconds();
    $.get('/Base/News/GetUpcomingEventsForMonth/' + year + '/' + month + '/' + breaker, function (data) {
        var eventul = $('.calUpcomingEvents');

        data = $.parseJSON(data, true);

        $.each(data, function (idx, val) {
            var d = val.Date;
            if (typeof d !== "object")
                d = new Date(eval(val.Date.slice(1, -1)));
            var datestring = d.getFullYear() + "-" + d.getMonth() + "-" + d.getDate();
            eventul.append('<li><a href="' + val.Link + '">' + val.Header + '<time datetime="' + datestring + '">' + d.getDate() + '/' + (d.getMonth() + 1) + '</time></a></li>');
        });
        if (data.length != 0)
            eventul.fadeIn();
    });

    $.get('/Base/News/GetNewsForMonth/' + year + '/' + month + '/' + breaker, function (data) {
        var newsul = $('.calNews');        
        data = $.parseJSON(data, true);
        $.each(data, function (idx, val) {
            var d = val.Date;
            if (typeof d !== "object")
                d = new Date(eval(val.Date.slice(1, -1)));
            var datestring = d.getFullYear() + "-" + d.getMonth() + "-" + d.getDate();
            newsul.append('<li><a href="' + val.Link + '">' + val.Header + '<time datetime="' + datestring + '">' + d.getDate() + '/' + (d.getMonth() + 1) + '</time></a></li>');
        });
        if (data.length != 0)
            newsul.fadeIn();
    });
}

function GetNewsAndEventsForDay(d) {
    var breaker = new Date().getMilliseconds();
    $.get('/Base/News/GetEventsForDate/' + d.year + '/' + d.month + '/' + d.day + '/' + breaker, function (data) {
        var eventul = $('.calUpcomingEvents');

        data = $.parseJSON(data, true);
        $.each(data, function (idx, val) {
            var d = val.Date;
            if (typeof d !== "object")
                d = new Date(eval(val.Date.slice(1, -1)));
            eventul.append('<li><a href="' + val.Link + '">' + val.Header + '<time datetime="' + d.toString() + '">' + d.getDate() + '/' + (d.getMonth() + 1) + '</time></a></li>');
        });
        eventul.fadeIn();
    });

    $.get('/Base/News/GetNewsForDate/' + d.year + '/' + d.month + '/' + d.day + '/' + breaker, function (data) {
        var newsul = $('.calNews');
        data = $.parseJSON(data, true);
        $.each(data, function (idx, val) {
            var d = val.Date;
            if (typeof d !== "object")
                d = new Date(eval(val.Date.slice(1, -1)));
            newsul.append('<li><a href="' + val.Link + '">' + val.Header + '<time datetime="' + d.toString() + '">' + d.getDate() + '/' + (d.getMonth() + 1) + '</time></a></li>');
        });
        newsul.fadeIn();
    });
}
