jQuery(function() {
    var todayDate = new Date();     
    
    jQuery("#datepicker").datepicker({
        nextText: unescape('N%E4chster Monat'),
        prevText: 'Vorheriger Monat',
        dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
        monthNames: ['Januar', 'Februar', unescape('M%E4rz'), 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
        firstDay: 1,
        beforeShowDay: function (date){ 
            var events = calendarEvents.getEvents();

            //Each day in array
            if(events) {
                for(i = 0; i < events.length; i++) {
                    if(date.getMonth()    == (events[i][0] - 1)
                        && date.getDate()     ==  events[i][1]
                        && date.getFullYear() ==  events[i][2]) {
                        return[true, "ui-state-active day" + date.getDate(), "Termine vorhanden"]; 
                    }
                }
            }
           
            //Today
            if(date.getMonth()    == todayDate.getMonth()
                && date.getDate()     == todayDate.getDate()
                && date.getFullYear() == todayDate.getFullYear()) {
                return[false, "ui-state-highlight day" + date.getDate(), "Keine Termine vorhanden; Heutige Tag"]; 
            }else{
                return[false, "day" + date.getDate(), "Keine Termine vorhanden"];
            }
        },
        onChangeMonthYear: function(year, month, inst) {
            jQuery.ajax({
                type: "POST",
                url: "/sportid/calendar/ajax/true/month/" + month + "/year/" + year + "/groupid/" + groupNid,
                beforeSend: function(XMLHttpRequest){
                    jQuery("#datepicker").datepicker('disable');                                            
                    jQuery("#calendarStatus").show();                                            
                },
                complete: function(msg){
                    jQuery("#calendarStatus").hide();
                    jQuery("#datepicker").datepicker('enable');
                },
                success: function(events){
                    if(events) {
                        //Convert date string to array/object
                        eventsObject = eval(events);
                        calendarEvents.setEvents(eventsObject);
                            
                        //Set new date                   
                        var newDate = new Date();
                        newDate.setMonth((month - 1));
                        newDate.setYear(year);
                        jQuery("#datepicker").datepicker('setDate', newDate);  
                    }
                }
            });
        },
        onSelect: function(dateText, inst) {
            var selectedDate     = dateText.split("/");
            var selectedDay      = selectedDate[1];
            var selectedDayInt   = eval(selectedDay);  //Convert day string to int
            var selectedMonth    = selectedDate[0];
            var selectedMonthInt = eval(selectedMonth);
            var selectedYear     = selectedDate[2];

            if(jQuery(".day" + selectedDayInt).hasClass("ui-state-active")) { 
                jQuery("#eventsDialog").html('Termindaten werden geladen...');
            
                //Open dialog box
                jQuery("#eventsDialog").dialog({
                    title: 'Termine vom ' + selectedDay + '.' + selectedMonth + '.' + selectedYear,
                    width: 600,
                    height: 500,
                    modal: true,
                    close: function(event, ui) {
                        jQuery("#eventsDialog").dialog('destroy');
                    }
                });
                
                //Load the calendar events
                jQuery.ajax({
                    type: "POST",
                    url: "/sportid/calendarEvents/month/" + selectedMonthInt + "/selectedYear/" + selectedYear + "/day/" + selectedDayInt + "/groupid/" + groupNid,
                    success: function(eventsOutput){
                        if(eventsOutput) {
                            jQuery("#eventsDialog").html(eventsOutput);
                        }                                             
                    }
                });                    
            }else{
                alert('Fuer diesen Tag sind keine Termine vorhanden.')
            }  
        }
    });
});
