(function ($, document, apiClient) { function formatDigit(i) { return i < 10 ? "0" + i : i; } function getDateFormat(date) { // yyyyMMddHHmmss // Convert to UTC // http://stackoverflow.com/questions/948532/how-do-you-convert-a-javascript-date-to-utc/14610512#14610512 var d = new Date(date.getTime()); return "" + d.getFullYear() + formatDigit(d.getMonth() + 1) + formatDigit(d.getDate()) + formatDigit(d.getHours()) + formatDigit(d.getMinutes()) + formatDigit(d.getSeconds()); } function normalizeDateToTimeslot(date) { var minutesOffset = date.getMinutes() - 30; if (minutesOffset >= 0) { date.setTime(date.getTime() - (minutesOffset * 60 * 1000)); } else { date.setTime(date.getTime() - (date.getMinutes() * 60 * 1000)); } date.setTime(date.getTime() - (date.getSeconds() * 1000)); return date; } var currentDate; var channelsPromise; function reloadGuide(page) { channelsPromise = channelsPromise || apiClient.getLiveTvChannels({ userId: Dashboard.getCurrentUserId() });; var date = currentDate; var nextDay = new Date(date.getTime()); nextDay.setDate(nextDay.getDate() + 1); nextDay.setHours(1, 0, 0, 0); var promise1 = channelsPromise; var promise2 = apiClient.getLiveTvPrograms({ UserId: Dashboard.getCurrentUserId(), MaxEndDate: getDateFormat(nextDay) }); $.when(promise1, promise2).done(function (response1, response2) { var channels = response1[0].Items; var programs = response2[0].Items; renderGuide(page, date, channels, programs); }); } function renderDate(page, date) { $('.guideDate', page).html(LibraryBrowser.getFutureDateText(date)); $('.timeslotHeaders', page).html(getTimeslotHeadersHtml(date)); } function getTimeslotHeadersHtml(date) { var html = ''; html += '