{"version":3,"sources":["eventFinder.js"],"names":["BDM","eventFinder","results","reset","programData","currentDay","startMonth","thisDay","settings","dataurl","shownumber","$el","finder","$","calendar","mobileCalendar","desktopCalendar","calendarWrapper","dateTitle","filters","mobileopen","mobileclose","filterwindow","template","loadmore","tabs","select","searchField","searchButton","notfound","prevButton","nextButton","loading","dayView","resultsLoaded","currentWeek","start","end","thisWeek","first","last","loadData","searchData","campus","val","school","tpye","searchText","addClass","removeClass","hasClass","ajax","type","url","data","dataType","success","events","showResults","formatDate","date","moment","format","checkDate","setDate","text","fullCalendar","closest","updateLabels","previous","subtract","next","add","$temp","displayResults","find","remove","length","show","splice","hide","forEach","result","clone","attr","toISOString","name","location","html","description","href","typename","timezone","organizer","organizer_email","all_day_event","address","schoolclass","image","register","title","addcalendar","append","addeventatc","refresh","setTimeout","not","each","index","element","pre","resizeHandler","window","width","parent","detach","init","on","event","preventDefault","change","focus","css","display","keydown","keyCode","customButtons","weekClick","click","header","left","center","right","buttonIcons","prev","dayClick","jsEvent","view","viewRender","$day","$sun","stopPropagation","target","resize"],"mappings":"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","file":"eventFinder.min.js","sourcesContent":["/*globals $*/\r\n(function(BDM, eventFinder) {\r\n 'use strict';\r\n\r\n var settings = {\r\n dataurl: \"event_finder.json\",\r\n shownumber: 9 /// Number of results to reveal initially and after load more\r\n },\r\n\r\n $el = { //stored elements\r\n finder: $('.event-finder'),\r\n calendar: $('.event-finder__calendar'),\r\n mobileCalendar: $('.event-finder__calendar-wrapper--mobile'),\r\n desktopCalendar: $('.event-finder__calendar-wrapper--desktop'),\r\n calendarWrapper: $('.event-finder__calendar-wrapper'),\r\n dateTitle: $('.event-finder__navbar-date h3'),\r\n filters: $('.event-finder .degree-finder__filter'),\r\n mobileopen: $('.event-finder .degree-finder__mobilebutton'),\r\n mobileclose: $('.event-finder .degree-finder__close'),\r\n filterwindow: $('.event-finder .degree-finder__filters'),\r\n results: $('.event-finder .degree-finder__results'),\r\n template: $('.event-finder .degree-finder__template .event-finder__result'),\r\n loadmore: $('.event-finder .degree-finder__loadmore'),\r\n tabs: $('.event-finder .degree-finder__filter .nav > li'),\r\n select: $('.event-finder .degree-finder__filter select'),\r\n searchField: $('.event-finder #event-search'),\r\n searchButton: $('.event-finder .degree-finder__filter .btn'),\r\n notfound: $('.event-finder .degree-finder__notfound'),\r\n prevButton: $('.event-finder__prev'),\r\n nextButton: $('.event-finder__next'),\r\n loading: $('.icon__loading')\r\n },\r\n\r\n dayView = false,\r\n\r\n filters = [],\r\n\r\n results,\r\n\r\n reset,\r\n\r\n focusElements = 'select, input, textarea, button, a',\r\n\r\n resultsLoaded = false,\r\n\r\n scrollPos = null,\r\n\r\n programData,\r\n\r\n useSearchData = false,\r\n\r\n currentWeek = { start: '', end: '' },\r\n\r\n currentDay,\r\n\r\n startMonth,\r\n\r\n thisWeek = { start: '', end: '' },\r\n\r\n thisDay,\r\n\r\n first = false,\r\n\r\n last = false;\r\n /**\r\n * Helper Methods\r\n **/\r\n\r\n\r\n\r\n function loadData() {\r\n var searchData = {\r\n campus: $('#campus').val(),\r\n school: $('#school').val(),\r\n tpye: $('#tpye').val(),\r\n searchText: $el.searchField.val()\r\n };\r\n $el.loading.addClass('fadein').removeClass('fadeout');\r\n if ($el.results.hasClass('fadein')) {\r\n $el.results.addClass('fadeout').removeClass('fadein');\r\n }\r\n if (dayView) {\r\n searchData.start = currentDay;\r\n searchData.end = currentDay;\r\n } else {\r\n searchData.start = currentWeek.start;\r\n searchData.end = currentWeek.end;\r\n }\r\n $.ajax({\r\n type: 'POST',\r\n url: settings.dataurl,\r\n data: searchData,\r\n dataType: 'json',\r\n success: function(data) {\r\n if (!programData) {\r\n programData = data.events;\r\n }\r\n results = data.events;\r\n reset = true;\r\n resultsLoaded = false;\r\n showResults();\r\n }\r\n });\r\n }\r\n\r\n function formatDate(date) {\r\n return moment(date).format('MMMM D');;\r\n }\r\n\r\n function checkDate() {\r\n if (dayView === true) {\r\n if (moment(currentDay).format('YYYY-MM-DD') <= thisDay) {\r\n $el.prevButton.addClass('disabled');\r\n } else {\r\n $el.prevButton.removeClass('disabled');\r\n }\r\n } else {\r\n if (moment(currentWeek.start).format('YYYY-MM-DD') <= moment(thisWeek.start).format('YYYY-MM-DD')) {\r\n $el.prevButton.addClass('disabled');\r\n } else {\r\n $el.prevButton.removeClass('disabled');\r\n }\r\n\r\n }\r\n }\r\n\r\n function setDate() {\r\n if (dayView === true) {\r\n $el.finder.addClass('day-view').removeClass('week-view');\r\n\r\n $el.dateTitle.text(formatDate(currentDay));\r\n $el.calendar.fullCalendar('gotoDate', moment(currentDay));\r\n\r\n $('.fc-day-top').removeClass('selected');\r\n $('[data-date=\"' + currentDay + '\"]').addClass('selected');\r\n\r\n } else {\r\n $el.finder.removeClass('day-view').addClass('week-view');\r\n $el.dateTitle.text(formatDate(currentWeek.start) + ' - ' + formatDate(currentWeek.end));\r\n $el.calendar.fullCalendar('gotoDate', moment(currentWeek.start));\r\n }\r\n $('.fc-current-week').removeClass('fc-current-week');\r\n $('[data-date=\"' + currentWeek.start + '\"]').closest('.fc-week').addClass('fc-current-week');\r\n\r\n checkDate();\r\n updateLabels();\r\n loadData();\r\n }\r\n\r\n function previous() {\r\n if (!$el.prevButton.hasClass('disabled')) {\r\n if (dayView) {\r\n currentDay = moment(currentDay).subtract(1, 'day').format('YYYY-MM-DD');\r\n } else {\r\n currentWeek.start = moment(currentWeek.start).subtract(7, 'day').format('YYYY-MM-DD');\r\n currentWeek.end = moment(currentWeek.end).subtract(7, 'day').format('YYYY-MM-DD');\r\n }\r\n setDate();\r\n }\r\n }\r\n\r\n function next() {\r\n if (!$el.nextButton.hasClass('disabled')) {\r\n if (dayView) {\r\n currentDay = moment(currentDay).add(1, 'day').format('YYYY-MM-DD');\r\n } else {\r\n currentWeek.start = moment(currentWeek.start).add(7, 'day').format('YYYY-MM-DD');\r\n currentWeek.end = moment(currentWeek.end).add(7, 'day').format('YYYY-MM-DD');\r\n }\r\n setDate();\r\n }\r\n }\r\n\r\n function showResults() {\r\n var $temp,\r\n displayResults = [];\r\n if (resultsLoaded === false) {\r\n resultsLoaded = true;\r\n if (reset) {\r\n $el.results.find('.event-finder__result').remove();\r\n }\r\n reset = false;\r\n\r\n if (results.length) {\r\n if (results.length > settings.shownumber) {\r\n $el.loadmore.show();\r\n displayResults = results.splice(0, settings.shownumber);\r\n } else {\r\n $el.loadmore.hide();\r\n displayResults = results;\r\n }\r\n $el.notfound.addClass('fadeout').removeClass('fadein');\r\n } else {\r\n $el.loadmore.hide();\r\n $el.notfound.addClass('fadein').removeClass('fadeout');\r\n }\r\n if (displayResults.length) {\r\n displayResults.forEach(function(result) {\r\n $temp = $el.template.clone();\r\n\r\n $temp.find('.card__eventlisting-date').text(moment(result.start).format('dddd, MMMM D, YYYY'));\r\n\r\n $temp.find('.start').attr('datetime', moment(result.start).toISOString()).text(moment(result.start).format('MM/DD/YYYY HH:mm'));\r\n $temp.find('.end').attr('datetime', moment(result.end).toISOString()).text(moment(result.end).format('MM/DD/YYYY HH:mm'));\r\n\r\n if (moment(result.end).format('MM-DD-YYYY') !== moment(result.start).format('MM-DD-YYYY')) {\r\n $temp.find('.card__eventlisting-enddate').text(moment(result.end).format('dddd, MMMM D, YYYY'));\r\n } else {\r\n $temp.find('.card__eventlisting-through').remove();\r\n $temp.find('.card__eventlisting-enddate').remove();\r\n }\r\n\r\n $temp.find('.card__eventlisting-time').text(moment(result.start).format('h:mma') + ' - ' + moment(result.end).format('h:mma'));\r\n $temp.find('.card__eventlisting-name').text(result.name);\r\n $temp.find('.title').text(result.name);\r\n $temp.find('.card__eventlisting-location').text(result.location);\r\n $temp.find('.card__eventlisting-description').html(result.description);\r\n\r\n $temp.find('.description').html(result.description);\r\n\r\n $temp.find('.card__eventlisting-link').attr('href', result.href);\r\n\r\n $temp.find('.card__eventlisting-type').text(result.typename);\r\n $temp.find('.card__eventlisting-name').text(result.name);\r\n\r\n $temp.find('.timezone').text(result.timezone);\r\n $temp.find('.organizer').text(result.organizer);\r\n $temp.find('.organizer_email').text(result.organizer_email);\r\n $temp.find('.all_day_event').text(result.all_day_event);\r\n $temp.find('.location').text(result.address);\r\n\r\n\r\n $temp.addClass(result.schoolclass);\r\n\r\n if (!result.image) {\r\n $temp.find('.card__eventlisting-image').remove();\r\n }\r\n if (result.register.href) {\r\n $temp.find('.register-button').attr('href', result.register.href);\r\n $temp.find('.register-button').text(result.register.title);\r\n } else {\r\n $temp.find('.register-button').remove();\r\n }\r\n if (result.addcalendar) {\r\n $temp.find('.addcalendar-button').attr('href', result.addcalendar.href);\r\n } else {\r\n $temp.find('.addcalendar-button').remove();\r\n }\r\n\r\n $el.results.append($temp);\r\n });\r\n }\r\n if (typeof addeventatc !== 'undefined') {\r\n addeventatc.refresh();\r\n }\r\n $el.results.removeClass('fadeout');\r\n setTimeout(function() {\r\n $el.results.addClass('fadein');\r\n $el.loading.removeClass('fadein').addClass('fadeout');\r\n }, 100);\r\n }\r\n }\r\n\r\n function updateLabels() {\r\n $('.fc-day-top').not('.fc-other-month').each(function(index, element) {\r\n var pre = '';\r\n if ($(element).hasClass('fc-today')) {\r\n pre = 'Today';\r\n }\r\n if ($(element).hasClass('selected')) {\r\n pre = 'Selected';\r\n }\r\n $(element).find('button').attr('aria-label', pre + ' ' + moment($(element).attr('data-date')).format('dddd, MMMM D'));\r\n });\r\n }\r\n\r\n function resizeHandler() {\r\n\r\n if ($(window).width() > 767 && $el.calendarWrapper.parent().hasClass('event-finder__calendar-wrapper--mobile')) {\r\n $el.desktopCalendar.append($el.calendarWrapper.detach());\r\n }\r\n\r\n if ($(window).width() < 768 && $el.calendarWrapper.parent().hasClass('event-finder__calendar-wrapper--desktop')) {\r\n $el.mobileCalendar.append($el.calendarWrapper.detach());\r\n }\r\n }\r\n\r\n /// Setup Events\r\n function bindEvents() {\r\n if ($el.loadmore.length) {\r\n $el.loadmore.on(\"click\",function(event) {\r\n event.preventDefault();\r\n resultsLoaded = false;\r\n showResults(false);\r\n });\r\n }\r\n if ($el.select.length) {\r\n $el.select.change(function(event) {\r\n event.preventDefault();\r\n loadData();\r\n });\r\n }\r\n if ($el.mobileopen.length) {\r\n $el.mobileopen.on(\"click\",function(event) {\r\n event.preventDefault();\r\n $el.filterwindow.addClass('open');\r\n $el.mobileopen.hide();\r\n $el.filterwindow.find(focusElements).first().focus();\r\n });\r\n }\r\n if ($el.mobileclose.length) {\r\n $el.mobileclose.on(\"click\",function(event) {\r\n event.preventDefault();\r\n $el.filterwindow.removeClass('open');\r\n $el.mobileopen.css({ display: '' });\r\n $el.mobileopen.focus();\r\n });\r\n }\r\n if ($el.results.length) {\r\n $el.results.on('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(event) {\r\n if (resultsLoaded === false) {\r\n showResults();\r\n }\r\n });\r\n }\r\n if ($el.prevButton.length) {\r\n $el.prevButton.on(\"click\",previous);\r\n }\r\n if ($el.nextButton.length) {\r\n $el.nextButton.on(\"click\",next);\r\n }\r\n if ($el.searchButton.length) {\r\n $el.searchButton.on(\"click\",function(event) {\r\n event.preventDefault();\r\n loadData();\r\n });\r\n }\r\n if ($el.searchButton.length) {\r\n $el.searchButton.on(\"click\",function(event) {\r\n event.preventDefault();\r\n loadData();\r\n });\r\n $el.searchField.keydown(function(event) {\r\n if (event.keyCode === 13) {\r\n event.preventDefault();\r\n loadData();\r\n }\r\n });\r\n }\r\n if ($el.calendar.length) {\r\n $el.calendar.fullCalendar({\r\n customButtons: {\r\n weekClick: {\r\n text: 'View Current Week',\r\n click: function() {\r\n currentWeek.start = thisWeek.start;\r\n currentWeek.end = thisWeek.end;\r\n\r\n dayView = false;\r\n setDate();\r\n }\r\n }\r\n },\r\n header: {\r\n left: 'prev',\r\n center: 'title, weekClick',\r\n right: 'next'\r\n },\r\n buttonIcons: {\r\n prev: 'icon icon__leftarrow',\r\n next: 'icon icon__rightarrow'\r\n },\r\n dayClick: function(date, jsEvent, view) {\r\n if (startMonth <= date.format('YYYY-MM') && thisDay <= date.format('YYYY-MM-DD')) {\r\n currentDay = date.format();\r\n dayView = true;\r\n\r\n setDate();\r\n }\r\n },\r\n viewRender: function(view, element) {\r\n if (!startMonth && view.title) {\r\n startMonth = moment($('.fc-day-top').not('.fc-other-month').first().attr('data-date')).format('YYYY-MM');\r\n }\r\n if (first === true || last === true) {\r\n if (dayView === true) {\r\n $el.finder.addClass('day-view').removeClass('week-view');\r\n\r\n var $day;\r\n if (first === true) {\r\n $day = $('.fc-day-top').not('.fc-other-month').first();\r\n } else {\r\n $day = $('.fc-day-top').not('.fc-other-month').last();\r\n }\r\n\r\n currentDay = $day.attr('data-date');\r\n $el.dateTitle.text(formatDate(currentDay));\r\n\r\n $('.fc-day-top').removeClass('selected');\r\n $day.addClass('selected');\r\n\r\n } else {\r\n var $sun;\r\n if (first === true) {\r\n $sun = $('.fc-day-top.fc-sun').first();\r\n } else {\r\n $sun = $('.fc-day-top.fc-sun').not('.fc-other-month').last();\r\n }\r\n currentWeek.start = $sun.attr('data-date');\r\n currentWeek.end = $sun.parent().find('.fc-sat').attr('data-date');\r\n\r\n $el.finder.removeClass('day-view').addClass('week-view');\r\n $el.dateTitle.text(formatDate(currentWeek.start) + ' - ' + formatDate(currentWeek.end));\r\n }\r\n $('.fc-current-week').removeClass('fc-current-week');\r\n $('[data-date=\"' + currentWeek.start + '\"]').closest('.fc-week').addClass('fc-current-week');\r\n\r\n first = false;\r\n last = false;\r\n loadData();\r\n }\r\n if (startMonth >= moment($('.fc-day-top').not('.fc-other-month').first().attr('data-date')).format('YYYY-MM')) {\r\n $('.fc-prev-button').addClass('disabled');\r\n } else {\r\n $('.fc-prev-button').removeClass('disabled');\r\n }\r\n\r\n checkDate();\r\n updateLabels();\r\n\r\n $('.fc-week').each(function(index, element) {\r\n if ($(element).find('.fc-content-skeleton .fc-other-month').length === 7) {\r\n $(element).hide();\r\n }\r\n });\r\n }\r\n });\r\n $('.fc-next-button').attr('aria-label', 'Next Month');\r\n $('.fc-next-button').on('mousedown', function() {\r\n first = true;\r\n });\r\n $('.fc-prev-button').attr('aria-label', 'Previous Month');\r\n $('.fc-prev-button').on('mousedown', function() {\r\n if (!$('.fc-prev-button').hasClass('disabled')) {\r\n last = true;\r\n }\r\n });\r\n\r\n $('.fc-day-top').keydown(function(event) {\r\n if (event.keyCode === 13) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n currentDay = $(event.target).closest('.fc-day-top').attr('data-date');\r\n dayView = true;\r\n setDate();\r\n }\r\n });\r\n\r\n currentWeek.start = $('.fc-today').parent().find('.fc-sun').attr('data-date');\r\n currentWeek.end = $('.fc-today').parent().find('.fc-sat').attr('data-date');\r\n\r\n thisWeek.start = currentWeek.start;\r\n thisWeek.end = currentWeek.end;\r\n\r\n thisDay = $('.fc-today').attr('data-date');\r\n\r\n setDate();\r\n loadData();\r\n\r\n $('.event-finder__calendar-wrapper .btn').attr('aria-label', $('.event-finder__calendar-wrapper .btn').text());\r\n }\r\n $(window).resize(resizeHandler);\r\n resizeHandler();\r\n }\r\n\r\n /**\r\n * Public Methods\r\n **/\r\n\r\n eventFinder.init = function() {\r\n if ($el.finder.length) {\r\n settings.dataurl = $el.finder.attr('data-eventsurl') || settings.dataurl;\r\n bindEvents();\r\n }\r\n };\r\n})(\r\n window.BDM = window.BDM || {},\r\n window.BDM.eventFinder = window.BDM.eventFinder || {}\r\n);\r\n\r\n//load when ready\r\n$(function() {\r\n window.BDM.eventFinder.init();\r\n});"]}