diff --git a/dashboard-ui/scripts/tvseries.js b/dashboard-ui/scripts/tvseries.js
new file mode 100644
index 0000000000..86fccce4fa
--- /dev/null
+++ b/dashboard-ui/scripts/tvseries.js
@@ -0,0 +1,345 @@
+var tvSeriesPage = {
+
+ onPageShow: function () {
+
+ tvSeriesPage.reload();
+ },
+
+ onPageHide: function () {
+
+ tvSeriesPage.item = null;
+ },
+
+ reload: function () {
+ var id = getParameterByName('id');
+
+ Dashboard.showLoadingMsg();
+
+ ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(tvSeriesPage.renderItem);
+ },
+
+ renderItem: function (item) {
+
+ tvSeriesPage.item = item;
+
+ var page = $.mobile.activePage;
+
+ tvSeriesPage.item = item;
+
+ var name = item.Name;
+
+ if (item.IndexNumber != null) {
+ name = item.IndexNumber + " - " + name;
+ }
+ if (item.ParentIndexNumber != null) {
+ name = item.ParentIndexNumber + "." + name;
+ }
+
+ Dashboard.setPageTitle(name);
+
+ tvSeriesPage.renderImage(item);
+ tvSeriesPage.renderOverviewBlock(item);
+
+ $('#itemName', page).html(name);
+
+ if (item.SeriesName || item.Album) {
+ var series_name = item.SeriesName || item.Album;
+ $('#seriesName', page).html(series_name).show();
+ }
+
+ tvSeriesPage.renderFav(item);
+ LibraryBrowser.renderLinks(item);
+
+ Dashboard.hideLoadingMsg();
+ },
+
+ renderImage: function (item) {
+
+ var page = $.mobile.activePage;
+
+ var imageTags = item.ImageTags || {};
+
+ var html = '';
+
+ var url;
+ var useBackgroundColor;
+
+ if (imageTags.Primary) {
+
+ url = ApiClient.getImageUrl(item.Id, {
+ type: "Primary",
+ width: 800,
+ tag: item.ImageTags.Primary
+ });
+ }
+ else if (item.BackdropImageTags && item.BackdropImageTags.length) {
+
+ url = ApiClient.getImageUrl(item.Id, {
+ type: "Backdrop",
+ width: 800,
+ tag: item.BackdropImageTags[0]
+ });
+ }
+ else if (imageTags.Thumb) {
+
+ url = ApiClient.getImageUrl(item.Id, {
+ type: "Thumb",
+ width: 800,
+ tag: item.ImageTags.Thumb
+ });
+ }
+ else if (imageTags.Disc) {
+
+ url = ApiClient.getImageUrl(item.Id, {
+ type: "Disc",
+ width: 800,
+ tag: item.ImageTags.Disc
+ });
+ }
+ else if (item.MediaType == "Audio") {
+ url = "css/images/items/detail/audio.png";
+ useBackgroundColor = true;
+ }
+ else if (item.MediaType == "Game") {
+ url = "css/images/items/detail/game.png";
+ useBackgroundColor = true;
+ }
+ else {
+ url = "css/images/items/detail/video.png";
+ useBackgroundColor = true;
+ }
+
+ if (url) {
+
+ var style = useBackgroundColor ? "background-color:" + LibraryBrowser.getMetroColor(item.Id) + ";" : "";
+
+ html += "";
+ }
+
+ $('#itemImage', page).html(html);
+ },
+
+ renderOverviewBlock: function (item) {
+
+ var page = $.mobile.activePage;
+
+ if (item.Taglines && item.Taglines.length) {
+ $('#itemTagline', page).html(item.Taglines[0]).show();
+ } else {
+ $('#itemTagline', page).hide();
+ }
+
+ if (item.Overview || item.OverviewHtml) {
+ var overview = item.OverviewHtml || item.Overview;
+
+ $('#itemOverview', page).html(overview).show();
+ $('#itemOverview a').each(function () {
+ $(this).attr("target", "_blank");
+ });
+ } else {
+ $('#itemOverview', page).hide();
+ }
+
+ if (item.CommunityRating) {
+ $('#itemCommunityRating', page).html(tvSeriesPage.getStarRating(item)).show().attr('title', item.CommunityRating);
+ } else {
+ $('#itemCommunityRating', page).hide();
+ }
+
+ var miscInfo = [];
+
+ if (item.ProductionYear) {
+ miscInfo.push(item.ProductionYear);
+ }
+
+ if (item.OfficialRating) {
+ miscInfo.push(item.OfficialRating);
+ }
+
+ if (item.RunTimeTicks) {
+
+ var minutes = item.RunTimeTicks / 600000000;
+
+ minutes = minutes || 1;
+
+ miscInfo.push(parseInt(minutes) + "min");
+ }
+
+ if (item.DisplayMediaType) {
+ miscInfo.push(item.DisplayMediaType);
+ }
+
+ if (item.VideoFormat && item.VideoFormat !== 'Standard') {
+ miscInfo.push(item.VideoFormat);
+ }
+
+ $('#itemMiscInfo', page).html(miscInfo.join(' '));
+
+ tvSeriesPage.renderGenres(item);
+ tvSeriesPage.renderStudios(item);
+ },
+
+ renderGenres: function (item) {
+
+ var page = $.mobile.activePage;
+
+ if (item.Genres && item.Genres.length) {
+ var elem = $('#itemGenres', page).show();
+
+ var html = 'Genres: ';
+
+ for (var i = 0, length = item.Genres.length; i < length; i++) {
+
+ if (i > 0) {
+ html += ' / ';
+ }
+
+ html += '' + item.Genres[i] + '';
+ }
+
+ elem.html(html).trigger('create');
+
+
+ } else {
+ $('#itemGenres', page).hide();
+ }
+ },
+
+ renderStudios: function (item) {
+
+ var page = $.mobile.activePage;
+
+ if (item.Studios && item.Studios.length) {
+ var elem = $('#itemStudios', page).show();
+
+ var html = 'Studios: ';
+
+ for (var i = 0, length = item.Studios.length; i < length; i++) {
+
+ if (i > 0) {
+ html += ' / ';
+ }
+
+ html += '' + item.Studios[i] + '';
+ }
+
+ elem.html(html).trigger('create');
+
+
+ } else {
+ $('#itemStudios', page).hide();
+ }
+ },
+
+ getStarRating: function (item) {
+ var rating = item.CommunityRating;
+
+ var html = "";
+ for (var i = 1; i <= 10; i++) {
+ if (rating < i - 1) {
+ html += "