Search
General Search

'); } }); // Initialize the calendar by appending the HTML dates function init_calendar(date) { $(".tbody").empty(); $(".events-container").empty(); var calendar_days = $(".tbody"); var month = date.getMonth(); var year = date.getFullYear(); var day_count = days_in_month(month, year); var row = $(""); var today = date.getDate(); // Set date to 1 to find the first day of the month date.setDate(1); var first_day = date.getDay(); // 35+firstDay is the number of date elements to be added to the dates table // 35 is from (7 days in a week) * (up to 5 rows of dates in a month) for(var i=0; i<35+first_day; i++) { // Since some of the elements will be blank, // need to calculate actual date from index var day = i-first_day+1; // If it is a sunday, make a new row if(i%7===0) { calendar_days.append(row); row = $(""); } // if current index isn't a day in this month, make it blank if(i < first_day || day > day_count) { var curr_date = $(""+""); row.append(curr_date); } else { var curr_date = $(""+day+""); var events = check_events(day, month+1, year); if(today===day && $(".active-date").length===0) { curr_date.addClass("active-date"); show_events(events, months[month], day); } // If this date has any events, style it with .event-date if(events.length!==0) { curr_date.addClass("event-date"); for(var ii=0; ii

'+events[ii]["occasion"]+ '

'+events[ii]["day"]+' '+monthname+' '+events[ii]["year"]+'

'); } } // Set onClick handler for clicking a date curr_date.click({events: events, month: months[month], day:day}, date_click); row.append(curr_date); } } // Append the last row and set the current year calendar_days.append(row); $(".year").text(year); } // Get the number of days in a given month/year function days_in_month(month, year) { var monthStart = new Date(year, month, 1); var monthEnd = new Date(year, month + 1, 1); return (monthEnd - monthStart) / (1000 * 60 * 60 * 24); } // Event handler for when a date is clicked function date_click(event) { var $container = $("html,body"); var $scrollTo = $('.events-container'); // $container.animate({scrollTop: $scrollTo.offset().top - $container.offset().top + $container.scrollTop(), scrollLeft: 0},3000); $container.animate({scrollTop: $scrollTo.offset().top, scrollLeft: 0},500); $(".events-container").show(250); $(".active-date").removeClass("active-date"); $(this).addClass("active-date"); //show_events(event.data.events, event.data.month, event.data.day); }; // Event handler for when a month is clicked function month_click(event) { $(".events-container").show(250); $("#dialog").hide(250); var date = event.data.date; $(".active-month").removeClass("active-month"); $(this).addClass("active-month"); var new_month = $(".month").index(this); var year = date.getFullYear(); date.setMonth(new_month); fetch_more_events(year, new_month, event); init_calendar(date); } // Event handler for when the year right-button is clicked function next_year(event) { $("#dialog").hide(250); var date = event.data.date; var new_year = date.getFullYear()+1; $("year").html(new_year); date.setFullYear(new_year); var new_year = date.getFullYear(); var new_month = date.getMonth()+1; fetch_more_events(new_year, new_month, event); init_calendar(date); } // Event handler for when the year left-button is clicked function prev_year(event) { $("#dialog").hide(250); var date = event.data.date; var new_year = date.getFullYear()-1; $("year").html(new_year); date.setFullYear(new_year); var new_year = date.getFullYear(); var new_month = date.getMonth()+1; fetch_more_events(new_year, new_month, event); init_calendar(date); } // Event handler for clicking the new event button function new_event(event) { // if a date isn't selected then do nothing if($(".active-date").length===0) return; // remove red error input on click $("input").click(function(){ $(this).removeClass("error-input"); }) // empty inputs and hide events $("#dialog input[type=text]").val(''); $("#dialog input[type=number]").val(''); $(".events-container").hide(250); $("#dialog").show(250); // Event handler for cancel button $("#cancel-button").click(function() { $("#name").removeClass("error-input"); $("#count").removeClass("error-input"); $("#dialog").hide(250); $(".events-container").show(250); }); // Event handler for ok button $("#ok-button").unbind().click({date: event.data.date}, function() { var date = event.data.date; var name = $("#name").val().trim(); var count = parseInt($("#count").val().trim()); var day = parseInt($(".active-date").html()); // Basic form validation if(name.length === 0) { $("#name").addClass("error-input"); } else if(isNaN(count)) { $("#count").addClass("error-input"); } else { $("#dialog").hide(250); console.log("new event"); /*new_event_json(name, count, date, day);*/ date.setDate(day); init_calendar(date); } }); } // Display all events of the selected date in card views function show_events(events, month, day) { // Clear the dates container $(".events-container").empty(); $(".events-container").show(250); console.log(event_data["events"]); // If there are no events for this date, notify the user if(events.length===0) { var event_card = "
There are no events planned for "+month+" "+day+".
"; $(".events-container").append(event_card); } else { // Go through and add each event as a card to the events container for(var i=0; i Minutes"); } } } } else if(events[i]['minutes_format'] == "Text") { var minutes = events[i]['minutes_text']; } if(events[i]['agenda_format'] == "Pdf") { var agendaspdffiles = events[i]['agenda_pdf']; if(agendaspdffiles) { var agendasfilescount = agendaspdffiles.length; for (var agcount = 0; agcount < agendasfilescount; agcount++) { agenda = agenda.concat(" Agendas "); } } } else if(events[i]['agenda_format'] == "Text") { var agenda = events[i]['agenda_text']; } else if(events[i]['agenda_format'] == "None") { var agenda = "No Agendas Set"; } } } } // Checks if a specific date has any events function check_events(day, month, year) { var events = []; for(var i=0; i