﻿$(document).ready(function () {
    GetSelectedDates("", "", addCalendar, false);
    $("#CalenderMouseClickCloseLink").click(function (e) {
        e.preventDefault();
        $("#CalenderMouseClick").hide();
    });
});

var _events = {};

function addCalendar(events) {
    
    $("#calEvents").datepicker({
        beforeShowDay: function (date) {
            var event = jQuery.grep(_events, function (e, i) {
                var eventDate = eval('new' + e.Date.replace(/\//g, ' '));
                return eventDate.toDateString() == date.toDateString();
            });

            if (event.length > 0) {
                return [true, 'ui-datepicker-selected'];
            }
            return [false, ''];
        },
        onChangeMonthYear: function (year, month, inst) {
            GetSelectedDates(year, month, null, true);
        },
        onSelect: function (dateText, inst) {
            var dateArray = dateText.split(",");
            var year = dateArray[0];
            var month = (dateArray[1] - 1);
            var day = dateArray[2];
            var date = new Date(year, month, day);
            var event;
            jQuery.grep(_events, function (e, i) {
                var eventDate = eval('new' + e.Date.replace(/\//g, ' '));
                if (eventDate.toDateString() == date.toDateString())
                    event = e;
            });

            SetPopup(event, year, month, day);
        },
        dateFormat: 'yy,mm,dd',
        closeText: 'Luk',
        prevText: 'Forrige',
        nextText: 'Næste',
        currentText: 'Idag',
        monthNames: ['Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December'],
        monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],
        dayNames: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],
        dayNamesShort: ['Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'],
        dayNamesMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø'],
        weekHeader: 'Uge',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''
    });
}

function GetSelectedDates(year, month, callback, sync) {
    $.ajax({
        type: "POST",
        async: !sync,
        data: { GetCalenderDates: true, Year: year, Month: month },
        dataType: "json",
        success: function (data) {
            _events = data;
            if (callback)
                callback(data);
        }
    });
}

function SetPopup(event, year, month, day) {
    var calenderMouseClick = $("#CalenderMouseClick");
    var tdOffset;
    var td;

    $("#calEvents .ui-datepicker-calendar a").each(function (i, e) {
        if (Number($(e).html()) == Number(day)) {
            td = $(e).parent();
            tdOffset = td.offset();
        }
    });

    var headlineSpan = $("#DateHeadlineSpan");
    var yearDiv = $(".ui-datepicker-year");
    var monthDiv = $(".ui-datepicker-month");

    headlineSpan.html(day + ". " + monthDiv.html() + " " + yearDiv.html());

    var description = "";
    for (var i = 0; i < event.EventInfos.length; i++) {
        description += "<b>" + event.EventInfos[i].Headline + "</b>";
        description += "<p>" + event.EventInfos[i].Info + "<br />";
        description += "<a href='" + event.EventInfos[i].Url + "'>Læs mere her</a></p>";
    }

    calenderMouseClick.find(".unitInnerFooterDiv").html(description);

    calenderMouseClick.css("top", (tdOffset.top + td.outerHeight())).show();
    $("#PopupArrowDiv").css("left", (tdOffset.left - calenderMouseClick.offset().left + 5));
}
