(function ($, document, apiClient) { var currentItem; var programs; function cancelRecording(page, id) { } function scheduleRecording(page, id) { } function renderPrograms(page, result) { var html = ''; var currentIndexValue; for (var i = 0, length = result.Items.length; i < length; i++) { var program = result.Items[i]; var startDate = program.StartDate; var startDateText = ''; try { startDate = parseISO8601Date(startDate, { toLocal: true }); startDateText = LibraryBrowser.getFutureDateText(startDate); } catch (err) { } if (startDateText != currentIndexValue) { html += '

' + startDateText + '

'; currentIndexValue = startDateText; } html += ''; html += '
'; html += '
' + LiveTvHelpers.getDisplayTime(startDate) + '
'; html += '
'; var cssClass = "tvProgramInfo"; if (program.IsKids) { cssClass += " childProgramInfo"; } else if (program.IsSports) { cssClass += " sportsProgramInfo"; } else if (program.IsNews) { cssClass += " newsProgramInfo"; } else if (program.IsMovie) { cssClass += " movieProgramInfo"; } html += '
'; html += '
' + program.Name + '
'; html += '
'; if (program.IsLive) { html += 'LIVE  '; } else if (program.IsPremiere) { html += 'PREMIERE  '; } else if (program.IsSeries && !program.IsRepeat) { html += 'NEW  '; } var minutes = program.RunTimeTicks / 600000000; minutes = Math.round(minutes || 1) + ' min'; if (program.EpisodeTitle) { html += program.EpisodeTitle + '  (' + minutes + ')'; } else { html += minutes; } if (program.SeriesTimerId) { html += '
'; html += '
'; html += '
'; } else if (program.TimerId) { html += '
'; } html += '
'; html += '
'; html += '
'; } $('#programList', page).html(html).trigger('create'); } function loadPrograms(page) { ApiClient.getLiveTvPrograms({ ChannelIds: currentItem.Id, UserId: Dashboard.getCurrentUserId() }).done(function (result) { renderPrograms(page, result); programs = result.Items; Dashboard.hideLoadingMsg(); }); } function reload(page) { Dashboard.showLoadingMsg(); ApiClient.getLiveTvChannel(getParameterByName('id'), Dashboard.getCurrentUserId()).done(function (item) { currentItem = item; var name = item.Name; $('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item)); Dashboard.setPageTitle(name); $('.itemName', page).html(name); $('.itemChannelNumber', page).html(item.Number); $('.userDataIcons', page).html(LibraryBrowser.getUserDataIconsHtml(item)); if (ApiClient.isWebSocketOpen()) { var vals = [item.Type, item.Id, item.Name]; vals.push('livetv'); ApiClient.sendWebSocketMessage("Context", vals.join('|')); } if (MediaPlayer.canPlay(item)) { $('#playButtonContainer', page).show(); } else { $('#playButtonContainer', page).hide(); } Dashboard.getCurrentUser().done(function (user) { if (user.Configuration.IsAdministrator && item.LocationType !== "Offline") { $('#editButtonContainer', page).show(); } else { $('#editButtonContainer', page).hide(); } }); loadPrograms(page); }); } window.LiveTvHelpers = { getDisplayTime: function (date) { if ((typeof date).toString().toLowerCase() === 'string') { try { date = parseISO8601Date(date, { toLocal: true }); } catch (err) { return date; } } date = date.toLocaleTimeString(); date = date.replace('0:00', '0').replace(':00 ', '').replace(' ', ''); return date; }, renderMiscProgramInfo: function (elem, obj) { var html = []; if (obj.IsSeries && !obj.IsRepeat) { html.push('NEW'); } if (obj.IsLive) { html.push('LIVE'); } if (obj.ChannelId) { html.push('' + obj.ChannelName + ''); } if (obj.IsHD) { html.push('HD'); } if (obj.Audio) { html.push(obj.Audio); } html = html.join('     '); if (obj.SeriesTimerId) { html += ''; html += '
'; html += '
'; html += '
'; html += '
'; } else if (obj.TimerId) { html += ''; html += '
'; html += '
'; } elem.html(html).trigger('create'); }, renderOriginalAirDate: function (elem, item) { var airDate = item.OriginalAirDate; if (airDate) { try { airDate = parseISO8601Date(airDate, { toLocal: true }).toLocaleDateString(); } catch (e) { console.log("Error parsing date: " + airDate); } elem.html('Original air date:  ' + airDate).show(); } else { elem.hide(); } } }; $(document).on('pageinit', "#liveTvChannelPage", function () { var page = this; $('#btnPlay', page).on('click', function () { var userdata = currentItem.UserData || {}; LibraryBrowser.showPlayMenu(this, currentItem.Name, currentItem.Type, currentItem.MediaType, userdata.PlaybackPositionTicks); }); $('#btnRemote', page).on('click', function () { RemoteControl.showMenuForItem({ item: currentItem, context: 'livetv' }); }); $('#btnEdit', page).on('click', function () { Dashboard.navigate("edititemmetadata.html?channelid=" + currentItem.Id); }); }).on('pageshow', "#liveTvChannelPage", function () { var page = this; reload(page); }).on('pagehide', "#liveTvChannelPage", function () { currentItem = null; programs = null; }); })(jQuery, document, ApiClient);