﻿$(document).ready(function ()
{
    var calendarAjaxHandler = '/Frontend/DHF/DHF.Widget.Teasers.Calendar/Server/DHF.Widget.Teasers.Calendar.ashx';
    var $currentMonthDays = new Array();

    $('.calendarDiv').createEventCalendar(null, beforeShowDay, onChangeMonthYear, onSelect);

    function getEventsByCategoryId(sCategoryId, iYear, iMonth)
    {
        var parameters = {
            url: calendarAjaxHandler,
            data:
			{
			    method: "getEventsByCategoryId",
			    categoryId: sCategoryId,
			    year: iYear,
			    month: iMonth
			},
            callback: function (data)
            {
                if (data == null)
                {
                    $currentMonthDays = null;
                }
                else
                {
                    $currentMonthDays = data;
                }
            }
        }

        DataProvider.getJSON(parameters);
    }

    function beforeShowDay(date)
    {
        var result = new Array();

        if ($currentMonthDays != null)
        {
            for (var i = 0; i < $currentMonthDays.length; i++)
            {
                if (Date.parse($currentMonthDays[i].Date).getDate() == date.getDate())
                {
                    //selectable
                    result[0] = true;

                    //default ui representation
                    result[1] = 'datepickerItemNews';

                    //tooltip text
                    if (parseInt($currentMonthDays[i].Count) > 1)
                    {
                        result[2] = 'Se arrangementer';
                    }
                    else
                    {
                        result[2] = $currentMonthDays[i].Event.Title;
                    }

                }
            }
        }
        else
        {
            //selectable
            result[0] = true;

            //default ui representation
            result[1] = '';

            //tooltip text
            result[2] = '';
        }
        return result;

    }

    function onChangeMonthYear(year, month, inst, sCategoryId)
    {
        getEventsByCategoryId(sCategoryId, year, month);

        return;
    }

    function onSelect(dateText, inst, url)
    {
        window.location.href = url + '?eventDate=' + dateText + 'T00:00:00';
    }
});
