(function ($, document, LibraryBrowser, window) { var currentItem; function reload(page) { var id = getParameterByName('id'); Dashboard.showLoadingMsg(); ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) { currentItem = item; renderHeader(page, item); var name = item.Name; if (item.IndexNumber != null) { name = item.IndexNumber + " - " + name; } if (item.ParentIndexNumber != null) { name = item.ParentIndexNumber + "." + name; } $('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item)); Dashboard.setPageTitle(name); $('#itemName', page).html(name); if (item.AlbumArtist && item.Type == "Audio") { $('#albumArtist', page).html('' + item.AlbumArtist + '').show().trigger('create'); } else { $('#albumArtist', page).hide(); } if (item.SeriesName) { $('#seriesName', page).html('' + item.SeriesName + '').show().trigger('create'); } else if (item.Album && item.Type == "Audio" && item.ParentId) { $('#seriesName', page).html('' + item.Album + '').show().trigger('create'); } else if (item.AlbumArtist && item.Type == "MusicAlbum") { $('#seriesName', page).html('' + item.AlbumArtist + '').show().trigger('create'); } else if (item.Album) { $('#seriesName', page).html(item.Album).show(); } else { $('#seriesName', page).hide(); } var context = getContext(item); setInitialCollapsibleState(page, item, context); renderDetails(page, item, context); if (MediaPlayer.canPlay(item)) { $('#btnPlayMenu', page).show(); $('#playButtonShadow', page).show(); if (MediaPlayer.isPlaying()) $('#btnQueueMenu', page).show(); else $('#btnQueueMenu', page).hide(); } else { $('#btnPlayMenu', page).hide(); $('#playButtonShadow', page).hide(); $('#btnQueueMenu', page).hide(); } Dashboard.hideLoadingMsg(); }); } function getContext(item) { // should return either movies, tv, music or games if (item.Type == "Episode" || item.Type == "Series" || item.Type == "Season") { return "tv"; } if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "BoxSet") { return "movies"; } if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "Artist") { return "music"; } if (item.MediaType == "Game") { return "games"; } return ""; } function enableCustomHeader(page, text) { var elem = $('.libraryPageHeader', page).show(); $('span', elem).html(text); } function renderHeader(page, item) { if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "BoxSet") { enableCustomHeader(page, "Movies"); $('#standardLogo', page).hide(); } else if (item.Type == "Episode" || item.Type == "Season" || item.Type == "Series") { enableCustomHeader(page, "TV Shows"); $('#standardLogo', page).hide(); } else if (item.Type == "Audio" || item.Type == "MusicAlbum") { enableCustomHeader(page, "Music"); $('#standardLogo', page).hide(); } else if (item.MediaType == "Game") { enableCustomHeader(page, "Games"); $('#standardLogo', page).hide(); } else { $('.libraryPageHeader', page).hide(); $('#standardLogo', page).show(); } if (item.Type == "MusicAlbum") { $('#albumTabs', page).show(); } else { $('#albumTabs', page).hide(); } if (item.Type == "Audio") { $('#songTabs', page).show(); } else { $('#songTabs', page).hide(); } if (item.Type == "Movie") { $('#movieTabs', page).show(); } else { $('#movieTabs', page).hide(); } if (item.MediaType == "Game") { $('#gameTabs', page).show(); } else { $('#gameTabs', page).hide(); } if (item.Type == "BoxSet") { $('#boxsetTabs', page).show(); } else { $('#boxsetTabs', page).hide(); } if (item.Type == "Trailer") { $('#trailerTabs', page).show(); } else { $('#trailerTabs', page).hide(); } if (item.Type == "Episode" || item.Type == "Season" || item.Type == "Series") { $('#tvShowsTabs', page).show(); } else { $('#tvShowsTabs', page).hide(); } } function setInitialCollapsibleState(page, item, context) { if (item.ChildCount && item.Type == "MusicAlbum") { $('#itemSongs', page).show(); $('#childrenCollapsible', page).hide(); renderChildren(page, item); } else if (item.ChildCount) { $('#itemSongs', page).hide(); $('#childrenCollapsible', page).show(); renderChildren(page, item); } else { $('#itemSongs', page).hide(); $('#childrenCollapsible', page).hide(); } if (LibraryBrowser.shouldDisplayGallery(item)) { $('#galleryCollapsible', page).show(); renderGallery(page, item); } else { $('#galleryCollapsible', page).hide(); } if (!item.MediaStreams || !item.MediaStreams.length) { $('#mediaInfoCollapsible', page).hide(); } else { $('#mediaInfoCollapsible', page).show(); renderMediaInfo(page, item); } if (!item.Chapters || !item.Chapters.length) { $('#scenesCollapsible', page).hide(); } else { $('#scenesCollapsible', page).show(); renderScenes(page, item); } if (!item.LocalTrailerCount || item.LocalTrailerCount == 0) { $('#trailersCollapsible', page).hide(); } else { $('#trailersCollapsible', page).show(); renderTrailers(page, item); } if (!item.SpecialFeatureCount || item.SpecialFeatureCount == 0) { $('#specialsCollapsible', page).hide(); } else { $('#specialsCollapsible', page).show(); renderSpecials(page, item); } if (!item.People || !item.People.length) { $('#castCollapsible', page).hide(); } else { $('#castCollapsible', page).show(); renderCast(page, item, context); } $('#themeSongsCollapsible', page).hide(); $('#videoBackdropsCollapsible', page).hide(); ApiClient.getThemeSongs(Dashboard.getCurrentUserId(), item.Id).done(function (result) { renderThemeSongs(page, item, result); }); ApiClient.getVideoBackdrops(Dashboard.getCurrentUserId(), item.Id).done(function (result) { renderVideoBackdrops(page, item, result); }); } function renderDetails(page, item, context) { if (item.Taglines && item.Taglines.length) { $('#itemTagline', page).html(item.Taglines[0]).show(); } else { $('#itemTagline', page).hide(); } LibraryBrowser.renderOverview($('#itemOverview', page), item); if (item.CommunityRating) { $('#itemCommunityRating', page).html(LibraryBrowser.getStarRatingHtml(item)).show().attr('title', item.CommunityRating); } else { $('#itemCommunityRating', page).hide(); } LibraryBrowser.renderPremiereDate($('#itemPremiereDate', page), item); LibraryBrowser.renderBudget($('#itemBudget', page), item); LibraryBrowser.renderRevenue($('#itemRevenue', page), item); $('#itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item)); LibraryBrowser.renderGenres($('#itemGenres', page), item, context); LibraryBrowser.renderStudios($('#itemStudios', page), item, context); renderUserDataIcons(page, item); LibraryBrowser.renderLinks($('#itemLinks', page), item); } function renderChildren(page, item) { ApiClient.getItems(Dashboard.getCurrentUserId(), { ParentId: getParameterByName('id'), SortBy: "SortName", Fields: "PrimaryImageAspectRatio,ItemCounts,DisplayMediaType,DateCreated,UserData,AudioInfo" }).done(function (result) { if (item.Type == "MusicAlbum") { $('#itemSongs', page).html(LibraryBrowser.getSongTableHtml(result.Items, { showArtist: true })).trigger('create'); } else { var html = LibraryBrowser.getPosterDetailViewHtml({ items: result.Items, useAverageAspectRatio: true }); $('#childrenContent', page).html(html); } }); if (item.Type == "Season") { $('#childrenTitle', page).html('Episodes (' + item.ChildCount + ')'); } else if (item.Type == "Series") { $('#childrenTitle', page).html('Seasons (' + item.ChildCount + ')'); } else if (item.Type == "BoxSet") { $('#childrenTitle', page).html('Movies (' + item.ChildCount + ')'); } else if (item.Type == "MusicAlbum") { $('#childrenTitle', page).html('Tracks (' + item.ChildCount + ')'); } else { $('#childrenTitle', page).html('Items (' + item.ChildCount + ')'); } } function renderUserDataIcons(page, item) { $('#itemRatings', page).html(LibraryBrowser.getUserDataIconsHtml(item)); } function renderThemeSongs(page, item, result) { if (result.Items.length) { $('#themeSongsCollapsible', page).show(); $('#themeSongsContent', page).html(LibraryBrowser.getSongTableHtml(result.Items, { showArtist: true, showAlbum: true })).trigger('create'); } } function renderVideoBackdrops(page, item, result) { if (result.Items.length) { $('#videoBackdropsCollapsible', page).show(); $('#videoBackdropsContent', page).html(getVideosHtml(result.Items)).trigger('create'); } } function renderScenes(page, item) { var html = ''; var chapters = item.Chapters || {}; for (var i = 0, length = chapters.length; i < length; i++) { var chapter = chapters[i]; var chapterName = chapter.Name || "Chapter " + i; html += '
'; } $('#scenesContent', page).html(html); } function renderGallery(page, item) { var html = LibraryBrowser.getGalleryHtml(item); $('#galleryContent', page).html(html).trigger('create'); } function renderMediaInfo(page, item) { var html = ''; for (var i = 0, length = item.MediaStreams.length; i < length; i++) { var stream = item.MediaStreams[i]; if (stream.Type == "Data") { continue; } var type; if (item.MediaType == "Audio" && stream.Type == "Video") { type = "Embedded Image"; } else { type = stream.Type; } html += '' + type + '
'; html += '