'use strict'; $(function () { $.ajaxSetup({ cache: false }); var FILTERING_DATA = $.parseJSON($("#filterJson").text()); var updateYearSelector = function (selectedYear) { var years = FILTERING_DATA.allYears; var selectedCategory = $('#categorySelector').find(':selected').val(); if (selectedCategory != 'ALL') { years = FILTERING_DATA.yearsByCategory[selectedCategory]; } var $periodSelector = $('#selectPeriod'); if (typeof years !== 'undefined') { var dateRange = years[years.length - 1] + '-' + years[0]; if (years[0] != years[years.length - 1]) { $periodSelector.append(''); } $.each(years, function (key, value) { var $option = $(''); if (selectedYear == value) { $option.prop("selected", true); } $periodSelector.append($option); }); } }; var getLatestYearForCategory = function (category) { var years = FILTERING_DATA.yearsByCategory[category]; if (category == 'ALL') { years = FILTERING_DATA.allYears; } if(typeof lastname !== "undefined") { return years[0] != years[years.length - 1] ? years[years.length - 1] + '-' + years[0] : years[0]; }else{ return ""; } }; updateYearSelector(); $(document).on('click', '.pagination a', function (event) { goToPage(this); }); $('.pagination a').on('click', function (event) { goToPage(this); }); var goToPage = function (pageLink) { var page = $(pageLink).data('page'); if (page) { var year = $('#selectPeriod').find(':selected').val(); var url = composeUrl(year); url.setParam('page', page); $.get(url.toString(), function (data) { updatePageContent(data); updateYearSelector(year); }); } }; $('#categorySelector').on('change', '#selectCategory', function () { var category = $('#categorySelector').find(':selected').val(); var year = getLatestYearForCategory(category); var url = composeUrl(year, category); $.get(url.toString(), function (data) { updatePageContent(data); updateYearSelector(); }); }); $('#periodSelector').on('change', '#selectPeriod', function () { var year = $('#selectPeriod').find(':selected').val(); var url = composeUrl(); $.get(url.toString(), function (data) { updatePageContent(data); updateYearSelector(year); }); }); var updatePageContent = function (data) { $('#paginationTop').html($(data).find('#paginationTop').children()); $('#periodSelector').html($(data).find('#periodSelector').children()); $('#categorySelector').html($(data).find('#categorySelector').children()); $('#dateSelector').html($(data).find('#dateSelector').children()); $('#news-feed').html($(data).find('#news-feed').children()); $('#paginationContainer').html($(data).find('#paginationContainer').children()); $.scrollTo($('header h1'), {duration: 200}); }; var composeUrl = function (year, category) { year = typeof year !== 'undefined' ? year : $('#selectPeriod').find(':selected').val(); category = typeof category !== 'undefined' ? category : $('#categorySelector').find(':selected').val(); var startTime = $.isNumeric(year) ? new Date(year, 0, 1, 0, 0, 0, 0).getTime() : 'NA'; var endTime = $.isNumeric(year) ? new Date(parseInt(year) + 1, 0, 0, 1, 0, 0, 0).getTime() : 'NA'; var url = new URL(); url.setURL(window.location.href); url.setParam('startTime', startTime); url.setParam('endTime', endTime); url.setParam('category', category); return url; }; var URL = function () { this.url = window.location.href.replace('#', ''); this.setURL = function (newURL) { this.url = newURL; }; this.setParam = function (paramName, paramValue) { var params = this.url.split('?')[1]; if (!params) { params = paramName + '=' + paramValue; } else { var paramExist = false; var pairs = params.split('&'); for (var i = 0; i < pairs.length; i++) { var name = pairs[i].split('=')[0]; if (name == paramName) { paramExist = true; pairs[i] = name + '=' + paramValue; } } if (!paramExist) { pairs.push(paramName + '=' + paramValue); } params = pairs.join('&'); } this.url = this.url.split('?')[0] + '?' + params; }; this.toString = function () { return this.url; }; }; });