﻿function calendar_next(tid) {
    var m = $('#Calendar1' + '_hdn_next_m').attr('value');
    var y = $('#Calendar1' + '_hdn_next_y').attr('value');
    return calendar_get(tid, y, m, false);
}
function calendar_curr(tid) {
    var m = $('#Calendar1' + '_hdn_curr_m').attr('value');
    var y = $('#Calendar1' + '_hdn_curr_y').attr('value');
    return calendar_get(tid, y, m, true);
}
function calendar_prev(tid) {
    var m = $('#Calendar1' + '_hdn_prev_m').attr('value');
    var y = $('#Calendar1' + '_hdn_prev_y').attr('value');
    return calendar_get(tid, y, m, false);
}
function calendar_get(tid, y, m, isChange) {
    var calReq = {};
    calReq.TaxonomyId = tid;
    calReq.Month = m;
    calReq.Year = y;
    calReq.QuickLink = $('#Calendar1' + '_hdn_ql').attr('value');
    calReq.IsChange = isChange;

    var DTO = { 'request': calReq };

    doJson(
        '/services/calendar.asmx/GetCalendar',
        JSON.stringify(DTO),
        function (result, textStatus) {
            if (result.Html)
                $('#Calendar1').html(result.Html);
            else if (result.d)
                $('#Calendar1').html(result.d.Html);
        },
        function (request, status, err) {
            if (request.readyState == 4) {
                switch (request.status) {
                    // Page-not-found error 
                    case 404:
                        alert('Error: Not Found. The requested URL could not be found.');
                        break;
                    // Internal server error 
                    case 500:
                        if (request.responseText.Message) {
                            alert(request.responseText.Message);
                        }
                        else {
                            alert(request.responseText);
                        }
                        break;
                    default:
                        break;
                }
            }
        },
        function (XMLHttpRequest, textStatus) {
        });

    return false;
}
