﻿function renderEvent(event, element, showText) {
    numberOfEvents++;
    element.addClass("event_" + event.monthNumber + "_" + event.dayNumber).addClass("event_" + event.id);
    if ($j(".event_" + event.id).length > 1)
        element.addClass('not-hide');

    var dayEvents = $j(".event_" + event.monthNumber + "_" + event.dayNumber);
    var theSameEvens = $j(".event_" + event.id);
    if ((dayEvents.length - theSameEvens.length) > 1) {
        element.not('.not-hide').addClass('hidden').hide();
        var currentDate = $j('#calendar').fullCalendar('getDate');
        if ($j("#more_events_" + event.monthNumber + "_" + event.dayNumber).length == 0 && currentDate.getMonth() == event.monthNumber) {
            element.addClass('hidden-first');
            $j("div.fc-day-number:econtains('" + event.dayNumber + "')")
		                    .not("td.fc-other-month div.fc-day-number:contains('" + event.dayNumber + "')")
		                    .before('<div class="fc-more-events" id="more_events_' + event.monthNumber + "_" + event.dayNumber + '">' + showText + '</div>');
        }
    }
}

function afterRenderEvent(event, element, showText, hideText) {
    renderedEventsCount++;
    if (renderedEventsCount == numberOfEvents) {
        $j("td.fc-mon div.fc-day-content div").css('height', 'auto');
        $j('div.hidden-first').each(function () {
            var nextHidden = $j(this).next("div.hidden");
            var top = $j(this).css('top').replace('px', '') / 1;
            var height = $j(this).height() + 3;
            while (nextHidden.length > 0) {
                nextHidden.css('top', top + height + 'px');
                height += (nextHidden.height() + 3);
                nextHidden = nextHidden.next("div.hidden");
            }
        });
        $j('div.fc-more-events').click(function () {
            var holder = $j(this);
            var day = holder.attr('id').replace('more_events_', '');
            if (holder.hasClass('hide')) {
                holder.removeClass('hide').html(showText);
                $j('div.event_' + day + '.hidden').hide().css('z-index', '8');
            }
            else {
                holder.addClass('hide').html(hideText);
                $j('div.event_' + day + '.hidden').show().css('z-index', '10');
            }
        });
        numberOfEvents = 0;
        renderedEventsCount = 0;
    }
}

function clickEvent(event, isAdmin, deleteText, ajaxUrl, moduleId, sessionId, hfEventId) {
    $j.fancybox(createEventView(event), {
        'autoDimensions': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'title': event.title,
        'modal': false,
        onComplete: function () {
            if (isAdmin) {
                $j('#delete_event_' + event.id).click(function () {
                    var answer = confirm(deleteText);
                    if (answer) {
                        $j.ajax({
                            url: ajaxUrl,
                            dataType: 'xml',
                            data: {
                                calendar_id: moduleId,
                                event_id: event.id,
                                sessionid: sessionId
                            },
                            success: function (xmlDoc) {
                                $j.fancybox.close();
                                var event = $j(xmlDoc).find('event');
                                var event_id = event.find('id').text();
                                $j('#calendar').fullCalendar('removeEvents', event_id);
                            }
                        });
                    }
                });
                $j('#edit_event_' + event.id).fancybox({
                    'autoDimensions': false,
                    'transitionIn': 'none',
                    'transitionOut': 'none',
                    onComplete: function () {
                        fillEventEditor(event);
                        $j('#' + hfEventId).val(event.id);
                        $j('#eventEditor').show();
                    },
                    onCleanup: function () {
                        $j('#' + hfEventId).val('');
                        $j('#eventEditor').hide();
                    }
                });
            }
        }
    });
}

