From 46cd85299ea790f6cb4c34b870913e25b52a2119 Mon Sep 17 00:00:00 2001
From: JackDandy <JackDandy@users.noreply.github.com>
Date: Thu, 6 Nov 2014 04:55:43 +0000
Subject: [PATCH] Change improve Add Show/Add Trending Show page.

Fix white screen of death when trying to add a show that is already in library by replacing "Add Show" button with "In library".
Add show sorting options.
Add handler for when Trakt returns no results.
Fix image links when anchor child images are not found at Trakt.
Add image to be used when Trakt posters are void.
---
 CHANGES.md                                    |   7 +-
 gui/slick/css/style.css                       | 850 +++++++++---------
 gui/slick/images/poster-dark.jpg              | Bin 0 -> 2903 bytes
 .../default/home_trendingShows.tmpl           | 133 ++-
 sickbeard/webserve.py                         |  87 +-
 5 files changed, 582 insertions(+), 495 deletions(-)
 create mode 100644 gui/slick/images/poster-dark.jpg

diff --git a/CHANGES.md b/CHANGES.md
index 04e82b8d..3e564015 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,4 +1,4 @@
-### 0.x.x (2014-11-05 xx:xx:xx UTC)
+### 0.x.x (2014-11-07 xx:xx:xx UTC)
 
 * Add Bootstrap for UI features
 * Change UI to resize fluidly on different display sizes, fixes the issue where top menu items would disappear on smaller screens
@@ -42,6 +42,11 @@
 * Made all init scripts executable
 * Fix invalid responses when using sickbeard.searchtvdb api command
 * Fixes unicode issues during searches on newznab providers when rid mapping occur
+* Fix white screen of death when trying to add a show that is already in library on Add Show/Add Trending Show page
+* Add show sorting options to Add Show/Add Trending Show page
+* Add handler for when Trakt returns no results for Add Show/Add Trending Show page
+* Fix image links when anchor child images are not found at Trakt on Add Show/Add Trending Show page
+* Add image to be used when Trakt posters are void on Add Show/Add Trending Show page
 
 [develop changelog]
 * Change improve display of progress bars in the Downloads columns of the show list page
diff --git a/gui/slick/css/style.css b/gui/slick/css/style.css
index 17cb500b..4f31b558 100644
--- a/gui/slick/css/style.css
+++ b/gui/slick/css/style.css
@@ -4,139 +4,139 @@ fonts
 /* Open Sans */
 /* Regular */
 @font-face {
-    font-family: 'Open Sans';
-    
-    src: url('fonts/OpenSans-Regular-webfont.eot');
-    src: url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
-    font-weight: normal;
-    font-weight: 400;
-    font-style: normal;
+	font-family: 'Open Sans';
+
+	src:url('fonts/OpenSans-Regular-webfont.eot');
+	src:url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
+		url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
+	font-weight: normal;
+	font-weight: 400;
+	font-style: normal;
 }
 
 /* Italic */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Italic-webfont.eot');
-    src: url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
-    font-weight: normal;
-    font-weight: 400;
-    font-style: italic;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-Italic-webfont.eot');
+	src:url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
+		url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
+	font-weight: normal;
+	font-weight: 400;
+	font-style: italic;
 }
 
 /* Light */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Light-webfont.eot');
-    src: url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Light-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
-    font-weight: 200;
-    font-style: normal;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-Light-webfont.eot');
+	src:url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-Light-webfont.woff') format('woff'),
+		url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
+	font-weight: 200;
+	font-style: normal;
 }
 
 /* Light Italic */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-LightItalic-webfont.eot');
-    src: url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
-    font-weight: 200;
-    font-style: italic;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-LightItalic-webfont.eot');
+	src:url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
+		url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
+	font-weight: 200;
+	font-style: italic;
 }
 
 /* Semibold */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Semibold-webfont.eot');
-    src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
-    font-weight: 600;
-    font-style: normal;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-Semibold-webfont.eot');
+	src:url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
+		url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
+	font-weight: 600;
+	font-style: normal;
 }
 
 /* Semibold Italic */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
-    font-weight: 600;
-    font-style: italic;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot');
+	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
+		url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
+	font-weight: 600;
+	font-style: italic;
 }
 
 /* Bold */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Semibold-webfont.eot');
-    src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
-    font-weight: bold;
-    font-weight: 700;
-    font-style: normal;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-Semibold-webfont.eot');
+	src:url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
+		url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
+	font-weight: bold;
+	font-weight: 700;
+	font-style: normal;
 }
 
 /* Bold Italic */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
-    font-weight: bold;
-    font-weight: 700;
-    font-style: italic;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot');
+	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
+		url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
+	font-weight: bold;
+	font-weight: 700;
+	font-style: italic;
 }
 
 /* Extra Bold */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Bold-webfont.eot');
-    src: url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
-    font-weight: 900;
-    font-style: normal;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-Bold-webfont.eot');
+	src:url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
+		url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
+	font-weight: 900;
+	font-style: normal;
 }
 
 /* Extra Bold Italic */
 @font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-BoldItalic-webfont.eot');
-    src: url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
-    font-weight: 900;
-    font-style: italic;
+	font-family: 'Open Sans';
+	src:url('fonts/OpenSans-BoldItalic-webfont.eot');
+	src:url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
+		url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
+		url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
+	font-weight: 900;
+	font-style: italic;
 }
 
 /* Droid Sans */
 @font-face {
-    font-family: 'droid_sans_mono';
-    src: url('fonts/droidsansmono-webfont.eot');
-    src: url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/droidsansmono-webfont.woff') format('woff'),
-         url('fonts/droidsansmono-webfont.ttf') format('truetype'),
-         url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
-    font-weight: normal;
-    font-style: normal;
+	font-family: 'droid_sans_mono';
+	src:url('fonts/droidsansmono-webfont.eot');
+	src:url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
+		url('fonts/droidsansmono-webfont.woff') format('woff'),
+		url('fonts/droidsansmono-webfont.ttf') format('truetype'),
+		url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
+	font-weight: normal;
+	font-style: normal;
 }
 
 
@@ -277,27 +277,27 @@ inc_top.tmpl
 }
 
 .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
-    color: #140F06;
-    text-decoration: none;
+	color: #140F06;
+	text-decoration: none;
 }
 .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
-    color: #222;
-    text-decoration: none;
+	color: #222;
+	text-decoration: none;
 }
 
 .ui-tabs {
-    padding: 0px;
-    background: none;
-    border-width: 0px;
+	padding: 0px;
+	background: none;
+	border-width: 0px;
 }
 
 .ui-tabs .ui-tabs-nav {
-    padding-left: 0px;
-    background: transparent;
-    border-width: 0px 0px 0px 0px;
-    -moz-border-radius: 0px;
-    -webkit-border-radius: 0px;
-    border-radius: 0px;
+	padding-left: 0px;
+	background: transparent;
+	border-width: 0px 0px 0px 0px;
+	-moz-border-radius: 0px;
+	-webkit-border-radius: 0px;
+	border-radius: 0px;
 }
 
 .ui-tabs .ui-tabs-panel { 
@@ -306,8 +306,8 @@ inc_top.tmpl
 }
 
 .ui-tabs .ui-tabs-nav li.ui-tabs-active {
-    border-top-left-radius: 5px;
-    border-top-right-radius: 5px;
+	border-top-left-radius: 5px;
+	border-top-right-radius: 5px;
 }
 
 .ui-tabs-nav > :not(.ui-tabs-active){ 
@@ -316,12 +316,12 @@ inc_top.tmpl
 }
 
 #content {
-    width: 95%;
-    min-width: 875px;
-    padding: 15px;
-    margin-left: auto;
-    margin-right: auto;
-    clear: both;
+	width: 95%;
+	min-width: 875px;
+	padding: 15px;
+	margin-left: auto;
+	margin-right: auto;
+	clear: both;
 }
 
 #SubMenu {
@@ -341,7 +341,7 @@ inc_top.tmpl
 }
 
 [class^="menu-icon-"], [class*=" menu-icon-"] {
-    background: url("../images/menu/menu-icons-black.png");
+	background: url("../images/menu/menu-icons-black.png");
 	height: 16px;
 	width: 16px;
 	display: inline-block;
@@ -443,7 +443,7 @@ inc_top.tmpl
 }
 
 [class^="submenu-icon-"], [class*=" submenu-icon-"] {
-    background: url("../images/menu/menu-icons-black.png");
+	background: url("../images/menu/menu-icons-black.png");
 	height: 16px;
 	width: 16px;
 }
@@ -495,13 +495,13 @@ inc_rootDirs.tmpl
 .rootdir-selectbox,
 .rootdir-selectbox #rootDirs,
 .rootdir-controls {
-    width: 430px
+	width: 430px
 }
 .rootdir-selectbox {
-    padding: 0 0 5px
+	padding: 0 0 5px
 }
 .rootdir-controls {
-    text-align: center
+	text-align: center
 }
 
 /* =======================================================================
@@ -509,24 +509,24 @@ home.tmpl
 ========================================================================== */
 
 .imgbanner .banner {
-    border: 1px solid #ccc;
-    overflow: hidden;
-    height: 66px;
-    overflow: hidden;
-    border-radius: 8px;
-    vertical-align: top;
-    width: 360px;
+	border: 1px solid #ccc;
+	overflow: hidden;
+	height: 66px;
+	overflow: hidden;
+	border-radius: 8px;
+	vertical-align: top;
+	width: 360px;
 	display: block;
 	margin-left: auto;
 	margin-right: auto;
 }
 
 .imgsmallposter .small {
-    height: 66px;
-    overflow: hidden;
-    border-radius: 3px;
-    vertical-align: middle;
-    width: 45px;
+	height: 66px;
+	overflow: hidden;
+	border-radius: 3px;
+	vertical-align: middle;
+	width: 45px;
 	border: 1px solid #ccc;
 	margin-right: 5px;
 }
@@ -541,7 +541,7 @@ home.tmpl
 }
 
 .ui-progressbar .ui-progressbar-value {
-    box-sizing: content-box !important;
+	box-sizing: content-box !important;
 }
 
 .progressbarText {
@@ -602,7 +602,7 @@ home.tmpl
 }
 
 .show {
-    margin: 12px;
+	margin: 12px;
 	width: 188px;
 	height: 352px;
 	background-color: #DFDACF;
@@ -613,7 +613,7 @@ home.tmpl
 .show-image {
 	overflow: hidden;
 	height: 273px;
-    width: 186px;
+	width: 186px;
 	border-top-left-radius: 5px;
 	border-top-right-radius: 5px;
 }
@@ -624,38 +624,38 @@ home.tmpl
 }
 
 .show .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br {
-    border-bottom-right-radius: 0px;
+	border-bottom-right-radius: 0px;
 }
 
 .show .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl {
-    border-bottom-left-radius: 0px;
+	border-bottom-left-radius: 0px;
 }
 
 .show .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {
-    border-top-right-radius: 0px;
+	border-top-right-radius: 0px;
 }
 
 .show .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {
-    border-top-left-radius: 0px;
+	border-top-left-radius: 0px;
 }
 
 .show .ui-widget-content {
-    border-top: 1px solid #111;
+	border-top: 1px solid #111;
 	border-bottom: 1px solid #111;
 	border-left: 0px;
 	border-right: 0px;
 }
 .ui-progressbar .ui-progressbar-value {
-    height:20px
+	height:20px
 }
 .ui-progressbar .progress-20 {
-    border: none;
+	border: none;
 }
 .show .progress-20,
 .show .progress-40,
 .show .progress-60,
 .show .progress-80 {
-    height: 7px
+	height: 7px
 }
 
 .show .progress-80 {
@@ -760,7 +760,7 @@ home.tmpl
 #sort-by {
 	display: inline;
 	list-style-type: none; 
- 	padding: 0;
+	padding: 0;
 	margin-left: 5px;
 }
 
@@ -775,13 +775,13 @@ home.tmpl
 }
 
 td.tvShow a {
-    color: #000;
-    text-decoration: none;
+	color: #000;
+	text-decoration: none;
 }
 
 td.tvShow a:hover {
-    cursor: pointer;
-    color: #428BCA;
+	cursor: pointer;
+	color: #428BCA;
 }
 
 /* =======================================================================
@@ -800,8 +800,8 @@ home_addShows.tmpl
 }
 
 div.button {
-    display: table-cell;
-    vertical-align: middle;
+	display: table-cell;
+	vertical-align: middle;
 	padding-left: 10px;
 }
 
@@ -848,8 +848,8 @@ div.buttontext p {
 home_newShow.tmpl
 ========================================================================== */
 #addShowForm, #recommendedShowsForm {
-    margin-left: auto;
-    margin-right: auto;
+	margin-left: auto;
+	margin-right: auto;
 }
 
 #newShowPortal {
@@ -868,7 +868,7 @@ home_newShow.tmpl
 }
 
 #searchResults input[type="radio"] {
-    vertical-align: -2px;
+	vertical-align: -2px;
 }
 
 /* =======================================================================
@@ -880,10 +880,10 @@ home_addExistingShow.tmpl
 }
 
 ul#rootDirStaticList {
-    width: 90%;
-    margin-right: auto;
-    margin-left: auto;
-    text-align: left;
+	width: 90%;
+	margin-right: auto;
+	margin-left: auto;
+	text-align: left;
 }
 
 ul#rootDirStaticList li {
@@ -895,12 +895,12 @@ ul#rootDirStaticList li {
 }
 
 ul#rootDirStaticList li label {
-    margin-top: 5px;
+	margin-top: 5px;
 	margin-bottom: 5px;
 }
 
 ul#rootDirStaticList li input[type="checkbox"] {
-    vertical-align: -2px;
+	vertical-align: -2px;
 }
 
 /* =======================================================================
@@ -908,7 +908,7 @@ home_trendingShows.tmpl
 ========================================================================== */
 
 .traktShowTitleIcons {
-    float: right;
+	float: right;
 	padding-right: 4px;
 	padding-bottom: 4px;
 }
@@ -923,7 +923,7 @@ home_trendingShows.tmpl
 }
 
 .traktContainer p, .traktContainer i { 
-    white-space: nowrap;
+	white-space: nowrap;
 	font-size: 12px;
 	overflow: hidden;
 /*	text-shadow: 1px 1px 0px #000;*/
@@ -932,7 +932,7 @@ home_trendingShows.tmpl
 }
 
 .traktContainer {
-    margin: 12px;
+	margin: 12px;
 	width: 188px;
 	background-color: #DFDACF;
 	border: 1px solid #111;
@@ -942,7 +942,7 @@ home_trendingShows.tmpl
 .trakt-image {
 	overflow: hidden;
 	height: 273px;
-    width: 186px;
+	width: 186px;
 	border-top-left-radius: 5px;
 	border-top-right-radius: 5px;
 	border-bottom: 1px solid #111;
@@ -957,7 +957,7 @@ home_postprocess.tmpl
 	width: 800px;
 	padding-top: 10px;
 	margin-right: auto;
-    margin-left: auto;
+	margin-left: auto;
 }
 
 
@@ -966,19 +966,19 @@ displayShow.tmpl
 ========================================================================== */
 
 #posterCol {
-    float: left;
+	float: left;
 	margin-right: 10px;
 	margin-bottom: 20px;
 }
 
 #showCol {
-    overflow: hidden;
+	overflow: hidden;
 	margin-bottom: 20px;
 }
 
 .navShow {
-    display: inline;
-    cursor: pointer;
+	display: inline;
+	cursor: pointer;
 }
 
 #prevShow,
@@ -991,12 +991,12 @@ displayShow.tmpl
 }
 
 h1.title {
-    padding-bottom: 12px;
-    margin-bottom: 15px;
-    line-height: 30px;
-    text-align: left;
-    text-rendering: optimizelegibility;
-    border-bottom: 1px solid #888;
+	padding-bottom: 12px;
+	margin-bottom: 15px;
+	line-height: 30px;
+	text-align: left;
+	text-rendering: optimizelegibility;
+	border-bottom: 1px solid #888;
 }
 
 .displayspecials {
@@ -1022,40 +1022,40 @@ span.imdbstars {
 }
 
 span.imdbstars, span.imdbstars > * {
-    height: 12px; 
-    background: url(../images/rating.png) 0 -12px repeat-x;
-    width: 120px;
-    display: inline-block;
+	height: 12px;
+	background: url(../images/rating.png) 0 -12px repeat-x;
+	width: 120px;
+	display: inline-block;
 	vertical-align: top;
 }
 
 span.imdbstars > * {
-    background-position: 0 0;
-    max-width:120px; 
+	background-position: 0 0;
+	max-width:120px;
 }
 
 ul.tags {
-    list-style-type: none;
+	list-style-type: none;
 	position: relative;
 	top: -5px;
 	margin-left: -40px;
 }
 
 ul.tags li {
-    margin-right: 4px;
+	margin-right: 4px;
 	margin-bottom: 5px;
-    padding: 3px 4px 3px 25px;
+	padding: 3px 4px 3px 25px;
 	background: url(../images/tag.png) no-repeat scroll 5px 4px #555;
-    border-radius: 3px;
+	border-radius: 3px;
 	border: 1px solid #111;
-    color: #FFF;
-    font: 14px/18px "Open Sans", "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
+	color: #FFF;
+	font: 14px/18px "Open Sans", "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
 	text-shadow: 0px 1px rgba(0, 0, 0, 0.8);
-    float: left;
+	float: left;
 }
 
 ul.tags li a{
-    color: #FFF;
+	color: #FFF;
 }
 
 .tvshowImg {
@@ -1093,12 +1093,12 @@ ul.tags li a{
 }
 
 #checkboxControls label {
-    white-space: nowrap;
-    display: inline-block;
+	white-space: nowrap;
+	display: inline-block;
 }
 
 #checkboxControls input[type="checkbox"] {
-    vertical-align: -2px;
+	vertical-align: -2px;
 }
 
 .unaired {
@@ -1121,27 +1121,27 @@ ul.tags li a{
 }
 
 span.unaired {
-  	color: #584b20;
+	color: #584b20;
 	border: 1px solid #584b20;
 }
 span.skipped {
-  	color: #1d5068;
+	color: #1d5068;
 	border: 1px solid #1d5068;
 }
 span.good {
-  	color: #295730;
+	color: #295730;
 	border: 1px solid #295730;
 }
 span.qual {
-  	color: #765100;
+	color: #765100;
 	border: 1px solid #765100;
 }
 span.wanted {
-  	color: #890000;
+	color: #890000;
 	border: 1px solid #890000;
 }
 span.snatched {
-  	color: #652164;
+	color: #652164;
 	border: 1px solid #652164;
 }
 
@@ -1151,22 +1151,22 @@ span.good b,
 span.qual b,
 span.wanted b,
 span.snatched b {
-  	color: #000000;
+	color: #000000;
 	font-weight: 800;
 }
 
 .plotInfo {
-    cursor: help;
-    float: right;
-    position: relative;
-    top: 2px;
+	cursor: help;
+	float: right;
+	position: relative;
+	top: 2px;
 }
 
 .plotInfoNone {
-    cursor: help;
-    float: right;
-    position: relative;
-    top: 2px;
+	cursor: help;
+	float: right;
+	position: relative;
+	top: 2px;
 	opacity: 0.4;
 }
 
@@ -1222,7 +1222,7 @@ td.col-checkbox {
 
 th.col-checkbox input[type="checkbox"],
 td.col-checkbox input[type="checkbox"] {
-    vertical-align: -2px;
+	vertical-align: -2px;
 }
 
 th.col-metadata,
@@ -1280,16 +1280,16 @@ td.col-search {
 }
 
 .input-scene {
-    height: 20px;
-    line-height: 1.5;
-    border-radius: 3px;
+	height: 20px;
+	line-height: 1.5;
+	border-radius: 3px;
 }
 
 #editShow {
-    width: 700px;
-    padding-top: 10px;
-    margin-right: auto;
-    margin-left: auto;
+	width: 700px;
+	padding-top: 10px;
+	margin-right: auto;
+	margin-left: auto;
 }
 
 /* =======================================================================
@@ -1305,10 +1305,10 @@ comingEpisodes.tmpl
 }
 
 .listing-key {
-    padding: 5px;
-    font-size: 13px;
-    font-weight: bold;
-    border-radius: 5px;
+	padding: 5px;
+	font-size: 13px;
+	font-weight: bold;
+	border-radius: 5px;
 }
 
 .listing-default {
@@ -1328,22 +1328,22 @@ comingEpisodes.tmpl
 }
 
 span.listing-default {
-  	color: #826f30;
+	color: #826f30;
 	border: 1px solid #826f30;
 }
 
 span.listing-current {
-  	color: #295730;
+	color: #295730;
 	border: 1px solid #295730;
 }
 
 span.listing-overdue {
-  	color: #890000;
+	color: #890000;
 	border: 1px solid #890000;
 }
 
 span.listing-toofar {
-  	color: #1d5068;
+	color: #1d5068;
 	border: 1px solid #1d5068;
 }
 
@@ -1360,13 +1360,13 @@ h2.day, h2.network {
 }
 
 .tvshowDiv {
-    display: block;
-    clear: both;
-    border: 1px solid #ccc;
-    margin: auto;
-    padding: 0px;
-    text-align: left;
-    width: 750px;
+	display: block;
+	clear: both;
+	border: 1px solid #ccc;
+	margin: auto;
+	padding: 0px;
+	text-align: left;
+	width: 750px;
 	border-radius: 5px;
 	background: #fff;
 	cursor: default;
@@ -1374,7 +1374,7 @@ h2.day, h2.network {
 }
 
 .tvshowDiv a:hover {
-    color: #428BCA;
+	color: #428BCA;
 }
 
 .tvshowDiv a, .tvshowDiv a:link, .tvshowDiv a:visited, .tvshowDiv a:hover  {
@@ -1383,54 +1383,54 @@ h2.day, h2.network {
 }
 
 .tvshowTitle a {
-    color: #000000;
-    float: left; 
-    line-height: 1.4em;
-    font-size: 1.4em;
-    text-shadow: -1px -1px 0 #FFF);
+	color: #000000;
+	float: left;
+	line-height: 1.4em;
+	font-size: 1.4em;
+	text-shadow: -1px -1px 0 #FFF);
 }
 
 .tvshowTitleIcons {
-    float: right;
-    padding: 3px 5px;
+	float: right;
+	padding: 3px 5px;
 }
 
 .tvshowDiv td {
-    padding: 5px 10px;
+	padding: 5px 10px;
 }
 
 .tvshowDiv td.next_episode {
-    width: 100%;
-    height: 90%;	
-    border-bottom: 1px solid #ccc;
-    vertical-align: top;
-    color: #000;
+	width: 100%;
+	height: 90%;
+	border-bottom: 1px solid #ccc;
+	vertical-align: top;
+	color: #000;
 }
 
 .bannerThumb {
-    vertical-align: top;
-    height: auto;
-    width: 748px;
+	vertical-align: top;
+	height: auto;
+	width: 748px;
 	border-bottom: 1px solid #ccc;
 }
 
 .posterThumb {
-    vertical-align: top;
-    height: auto;
-    width: 180px;
+	vertical-align: top;
+	height: auto;
+	width: 180px;
 	border-right: 1px solid #ccc;
 }
 
 .ep_listing {
-    width: auto;
-    border: 1px solid #ccc;
-    margin-bottom: 10px;
-    padding: 10px;
+	width: auto;
+	border: 1px solid #ccc;
+	margin-bottom: 10px;
+	padding: 10px;
 }
 
 .ep_summary {
-    margin-left: 5px;
-    font-style: italic;
+	margin-left: 5px;
+	font-style: italic;
 }
 
 .ep_summaryTrigger {
@@ -1446,7 +1446,7 @@ h2.day, h2.network {
 .calendarWrapper {
 	width:1000px; 
 	margin:0 auto;
-    padding:0 3px
+	padding:0 3px
 }
 
 .calendarTable {
@@ -1457,7 +1457,7 @@ h2.day, h2.network {
 }
 
 .calendarShow {
-    padding:0 !important
+	padding:0 !important
 }
 
 .calendarShow .poster {
@@ -1505,8 +1505,8 @@ config*.tmpl
 }
 
 .component-item {
-    border-bottom: 1px dotted #666;
-    min-height: 200px;
+	border-bottom: 1px dotted #666;
+	min-height: 200px;
 }
 
 .component-group-desc{
@@ -1534,7 +1534,7 @@ config*.tmpl
 }
 
 #config div.field-pair input {
-    float: left;
+	float: left;
 }
 
 #config .nocheck, #config div #customQuality, .metadataDiv {
@@ -1554,11 +1554,11 @@ config*.tmpl
 	font-weight: normal;
 	display:block;
 	width:475px;
-    margin-left:182px
+	margin-left:182px
 }
 
 #config label.space-right {
-    margin-right:10px
+	margin-right:10px
 }
 #config .metadataDiv {
 	display: none;
@@ -1579,16 +1579,16 @@ select .selected {
 }
 
 .testNotification {
-    padding: 5px;
-    margin-bottom: 10px;
-    line-height: 20px;
-    border: 1px dotted #CCC;
+	padding: 5px;
+	margin-bottom: 10px;
+	line-height: 20px;
+	border: 1px dotted #CCC;
 }
 
 #providerOrderList {
-    width: 250px;
-    padding-left: 20px;
-    list-style-type: none;
+	width: 250px;
+	padding-left: 20px;
+	list-style-type: none;
 }
 
 #provider_order_list, 
@@ -1611,14 +1611,14 @@ select .selected {
 }
 
 #config .tip_scale label span.component-title {
-    width: 85px !important;
-    font-size: 12px !important;
-    margin-top: 2px !important;
+	width: 85px !important;
+	font-size: 12px !important;
+	margin-top: 2px !important;
 }
 
 #config .tip_scale label span.component-desc {
-    margin-left: 120px !important;
-    width: 220px !important;
+	margin-left: 120px !important;
+	width: 220px !important;
 }
 
 .infoTableHeader, 
@@ -1631,30 +1631,30 @@ select .selected {
 }
 
 [class^="icon16-"], [class*=" icon16-"] {
-    background-image: url("../images/glyphicons-config-black.png");
-    background-position: -40px 0;
-    background-repeat: no-repeat;
-    display: inline-block;
-    height: 16px;
-    line-height: 16px;
-    vertical-align: text-top;
-    width: 16px;
+	background-image: url("../images/glyphicons-config-black.png");
+	background-position: -40px 0;
+	background-repeat: no-repeat;
+	display: inline-block;
+	height: 16px;
+	line-height: 16px;
+	vertical-align: text-top;
+	width: 16px;
 }
 
 .icon16-github {
-    background-position: 0 0;
+	background-position: 0 0;
 }
 .icon16-mirc {
-    background-position: -20px 0;
+	background-position: -20px 0;
 }
 .icon16-sb {
-    background-position: -40px 0;
+	background-position: -40px 0;
 }
 .icon16-web {
-    background-position: -60px 0;
+	background-position: -60px 0;
 }
 .icon16-win {
-    background-position: -80px 0;
+	background-position: -80px 0;
 }
 
 /* =======================================================================
@@ -1750,8 +1750,8 @@ div.metadataDiv .disabled {
 }
 
 .notifier-icon {
-    float: left;
-    margin: 6px 4px 0px 0px;
+	float: left;
+	margin: 6px 4px 0px 0px;
 }
 
 .warning {
@@ -1914,23 +1914,23 @@ option.flag {
 }
 
 #Anime {
-    clear: both;
-    overflow-x: hidden; 
-    overflow-y: hidden;
-    font-size: 14px;
+	clear: both;
+	overflow-x: hidden;
+	overflow-y: hidden;
+	font-size: 14px;
 }
 
 #Anime div.component-group-desc {
-    float: left;
-    width: 165px;
+	float: left;
+	width: 165px;
 }
 
 #Anime div.component-group-desc p {
-    margin-bottom: 0.4em;
-    margin-left: 0;
-    margin-right: 0;
-    margin-top: 0.4em;
-    width: 95%;
+	margin-bottom: 0.4em;
+	margin-left: 0;
+	margin-right: 0;
+	margin-top: 0.4em;
+	width: 95%;
 }
 
 div.blackwhitelist{
@@ -1939,15 +1939,15 @@ div.blackwhitelist{
 }
 
 div.blackwhitelist input {
-    margin: 5px 5px;
+	margin: 5px 5px;
 }
 
 div.blackwhitelist.pool select{
-    width: 300px;
+	width: 300px;
 }
 
 div.blackwhitelist.pool {
-    margin:5px;
+	margin:5px;
 }
 
 div.blackwhitelist.white select, div.blackwhitelist.black select {
@@ -1984,13 +1984,13 @@ html * {
 }
 
 input[type="checkbox"] {
-    margin: 2px 0px 0px;
-    line-height: normal;
+	margin: 2px 0px 0px;
+	line-height: normal;
 }
 
 input[type="radio"] {
-    margin: 2px 0px 0px;
-    line-height: normal;
+	margin: 2px 0px 0px;
+	line-height: normal;
 }
 
 input, textarea, select, .uneditable-input {
@@ -1999,12 +1999,12 @@ input, textarea, select, .uneditable-input {
 }
 
 .container-fluid {
-    margin-left: 10px;
+	margin-left: 10px;
 	margin-right: 10px;
 }
 
 .navbar-brand {
-    padding: 0px;
+	padding: 0px;
 }
 
 /* navbar styling */
@@ -2119,29 +2119,29 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 }
 
 .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
-    color: #262626;
-    text-decoration: none;
-    background-color: #F5F5F5;
+	color: #262626;
+	text-decoration: none;
+	background-color: #F5F5F5;
 }
 
 .dropdown-menu > li > a {
-    padding: 4px 36px 4px 20px;
+	padding: 4px 36px 4px 20px;
 }
 
 .dropdown-menu {
-    background-color: #F5F1E4;
-    border: 1px solid rgba(0, 0, 0, 0.15);
-    box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
+	background-color: #F5F1E4;
+	border: 1px solid rgba(0, 0, 0, 0.15);
+	box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
 }
 
 .form-control {
-    color: #000000;
+	color: #000000;
 }
 
 .form-control-inline {
-    min-width: 0;
-    width: auto;
-    display: inline;
+	min-width: 0;
+	width: auto;
+	display: inline;
 }
 
 .btn {
@@ -2179,8 +2179,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
 	*zoom: 1;
 	-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+	-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
 
 .btn:hover,
@@ -2208,10 +2208,10 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 	*background-color: #d9d9d9;
 	background-position: 0 -15px;
 	-webkit-transition: background-position 0.1s linear;
-    -moz-transition: background-position 0.1s linear;
-    -ms-transition: background-position 0.1s linear;
-    -o-transition: background-position 0.1s linear;
-    transition: background-position 0.1s linear;
+	-moz-transition: background-position 0.1s linear;
+	-ms-transition: background-position 0.1s linear;
+	-o-transition: background-position 0.1s linear;
+	transition: background-position 0.1s linear;
 }
 
 .btn:focus {
@@ -2227,8 +2227,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 	background-image: none;
 	outline: 0;
 	-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-    -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+	-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
 
 .btn.disabled,
@@ -2239,8 +2239,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 	opacity: 0.65;
 	filter: alpha(opacity=65);
 	-webkit-box-shadow: none;
-    -moz-box-shadow: none;
-    box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
 }
 
 .btn-large {
@@ -2248,8 +2248,8 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 	font-size: 15px;
 	line-height: normal;
 	-webkit-border-radius: 5px;
-    -moz-border-radius: 5px;
-    border-radius: 5px;
+	-moz-border-radius: 5px;
+	border-radius: 5px;
 }
 
 .btn-large [class^="icon-"] {
@@ -2478,10 +2478,10 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 }
 
 .btn-xs {
-    padding: 1px 5px;
-    font-size: 12px;
-    line-height: 1.5;
-    border-radius: 3px;
+	padding: 1px 5px;
+	font-size: 12px;
+	line-height: 1.5;
+	border-radius: 3px;
 }
 
 @media(min-width:768px){
@@ -2498,11 +2498,11 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 }
 
 label {
-    font-weight: normal;
+	font-weight: normal;
 }
 
 pre {
-    border: 1px solid;
+	border: 1px solid;
 }
 
 .alert {
@@ -2515,14 +2515,14 @@ input sizing (for config pages)
 ========================================================================== */
 
 #config select {
-    min-width: 0;
-    width: auto;
-    display: inline;
+	min-width: 0;
+	width: auto;
+	display: inline;
 	margin-top: -4px;
 }
 
 .btn-inline {
- 	margin-top: -3px;
+	margin-top: -3px;
 }
 
 .input75 {
@@ -2873,143 +2873,151 @@ token-input.css
 ========================================================================== */
 
 ul.token-input-list {
-    overflow: hidden; 
-    height: auto !important; 
-    height: 1%;
-    width: 273px;
-    border: 1px solid #ccc;
-    cursor: text;
-    font-size: 10px;
-    font-family: Verdana;
-    z-index: 999;
-    margin: 0;
-    padding: 0 0 1px 0;
-    background-color: #fff;
-    list-style-type: none;
+	overflow: hidden;
+	height: auto !important;
+	height: 1%;
+	width: 273px;
+	border: 1px solid #ccc;
+	cursor: text;
+	font-size: 10px;
+	font-family: Verdana;
+	z-index: 999;
+	margin: 0;
+	padding: 0 0 1px 0;
+	background-color: #fff;
+	list-style-type: none;
 /*    clear: left; */
-    border-top-left-radius: 3px;
-    border-top-right-radius: 3px;
-    border-bottom-left-radius: 3px;
-    border-bottom-right-radius: 3px;
+	border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
 }
 
 ul.token-input-list li {
-    list-style-type: none;
+	list-style-type: none;
 }
 
 ul.token-input-list li input {
-    border: 0;
-    padding: 3px 4px;
-    background-color: white;
+	border: 0;
+	padding: 3px 4px;
+	background-color: white;
 /*    -webkit-appearance: caret; */
 }
 
 li.token-input-token {
-    overflow: hidden; 
-    height: auto !important; 
-    height: 1%;
-    margin: 3px;
-    padding: 3px 5px 0 5px;
-    background-color: #d0efa0;
-    color: #000;
-    font-weight: bold;
-    cursor: default;
-    display: block;
+	overflow: hidden;
+	height: auto !important;
+	height: 1%;
+	margin: 3px;
+	padding: 3px 5px 0 5px;
+	background-color: #d0efa0;
+	color: #000;
+	font-weight: bold;
+	cursor: default;
+	display: block;
 }
 
 li.token-input-token img {
-    padding-top: 7px;
-    padding-right: 4px;
-    float: left;
+	padding-top: 7px;
+	padding-right: 4px;
+	float: left;
 }
 
 li.token-input-token input {
-    padding-top: 2px !important;
-    padding-right: 4px !important;
-    float: left;
+	padding-top: 2px !important;
+	padding-right: 4px !important;
+	float: left;
 }
 
 li.token-input-token p {
-    float: left;
-    padding: 0;
-    margin: 0;
-    line-height: 2.0 !important;
+	float: left;
+	padding: 0;
+	margin: 0;
+	line-height: 2.0 !important;
 }
 
 li.token-input-token span {
-    float: right;
-    color: #777;
-    cursor: pointer;
+	float: right;
+	color: #777;
+	cursor: pointer;
 }
 
 li.token-input-selected-token {
-    background-color: #08844e;
-    color: #fff;
+	background-color: #08844e;
+	color: #fff;
 }
 
 li.token-input-selected-token span {
-    color: #bbb;
+	color: #bbb;
 }
 
 li.token-input-input-token input {
-    margin: 3px 3px 3px 3px !important;
+	margin: 3px 3px 3px 3px !important;
 }
 
 div.token-input-dropdown {
-    position: absolute;
-    width: 273px;
-    overflow: hidden;
-    border-left: 1px solid;
-    border-right: 1px solid;
-    border-bottom: 1px solid;
-    cursor: default;
-    font-size: 11px;
-    font-family: Verdana;
-    z-index: 1;
+	position: absolute;
+	width: 273px;
+	overflow: hidden;
+	border-left: 1px solid;
+	border-right: 1px solid;
+	border-bottom: 1px solid;
+	cursor: default;
+	font-size: 11px;
+	font-family: Verdana;
+	z-index: 1;
 }
 
 div.token-input-dropdown p {
-    margin: 0;
-    padding: 3px;
-    font-weight: bold;
-    color: #777;
+	margin: 0;
+	padding: 3px;
+	font-weight: bold;
+	color: #777;
 }
 
 div.token-input-dropdown ul {
-    margin: 0;
-    padding: 0;
+	margin: 0;
+	padding: 0;
 }
 
 div.token-input-dropdown ul li {
-    background-color: #fff;
-    padding: 3px;
-    list-style-type: none;
+	background-color: #fff;
+	padding: 3px;
+	list-style-type: none;
 }
 
 div.token-input-dropdown ul li.token-input-dropdown-item {
-    background-color: #fafafa;
+	background-color: #fafafa;
 }
 
 div.token-input-dropdown ul li.token-input-dropdown-item2 {
-    background-color: #fff;
+	background-color: #fff;
 }
 
 div.token-input-dropdown ul li em {
-    font-weight: bold;
-    font-style: normal;
+	font-weight: bold;
+	font-style: normal;
 }
 
 div.token-input-dropdown ul li.token-input-selected-dropdown-item {
-    background-color: #6196c2;
+	background-color: #6196c2;
 }
 
 span.token-input-delete-token {
-    margin: 0 1px;
+	margin: 0 1px;
 }
 
 .red-text {color:#d33}
 .clear-left {clear:left}
 .nextline-block {display:block}
+
+.trakt-image {
+	display: block;
+	width: 100%;
+	height: 100%;
+	z-index: 0;
+	background-image: url(/images/poster-dark.jpg)
+}
 /* =======================================================================
 jquery.confirm.css
 ========================================================================== */
@@ -3034,7 +3042,7 @@ jquery.confirm.css
 	top: 50%;
 	margin: -130px 0 0 -230px;
 	border: 1px solid #111;
-    box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.175);
+	box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.175);
 }
 
 #confirmBox h1,
@@ -3043,18 +3051,18 @@ jquery.confirm.css
 }
 
 #confirmBox h1 {
-    background-color: #333;
+	background-color: #333;
 	border-bottom: 1px solid #111;
 	color: #fff;
-    margin: 0;
-    font-size: 22px;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
+	margin: 0;
+	font-size: 22px;
+	text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
 }
 
 #confirmBox p {
 	padding-top: 20px;
-    color: #000;
-    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.75);
+	color: #000;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.75);
 }
 
 #confirmButtons {
diff --git a/gui/slick/images/poster-dark.jpg b/gui/slick/images/poster-dark.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5abb0364823d82743cd02a0a5c6f1578514d45f3
GIT binary patch
literal 2903
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

literal 0
HcmV?d00001

diff --git a/gui/slick/interfaces/default/home_trendingShows.tmpl b/gui/slick/interfaces/default/home_trendingShows.tmpl
index 19d21ef7..13f37bee 100644
--- a/gui/slick/interfaces/default/home_trendingShows.tmpl
+++ b/gui/slick/interfaces/default/home_trendingShows.tmpl
@@ -4,35 +4,74 @@
 #from sickbeard.common import *
 #from sickbeard import sbdatetime
 
-#set global $title="Trending Shows"
-#set global $header="Trending Shows"
+#set global $title='Trending Shows'
+#set global $header='Trending Shows'
 
-#set global $sbPath=".."
+#set global $sbPath='..'
 
-#set global $topmenu="comingEpisodes"
+#set global $topmenu='comingEpisodes'
 #import os.path
-#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
+#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_top.tmpl')
 
 <script type="text/javascript" src="$sbRoot/js/plotTooltip.js?$sbPID"></script>
 
 <script type="text/javascript" charset="utf-8">
 <!--
 
-\$(document).ready(function(){ 
-	
-	var \$container = [\$('#container'), \$('#container-anime')];
-	
-	jQuery.each(\$container, function (j) {
+\$(document).ready(function(){
+    // initialise combos for dirty page refreshes
+    \$('#showsort').val('original');
+    \$('#showsortdirection').val('asc');
+
+    var \$container = [\$('#container')];
+    jQuery.each(\$container, function (j) {
         this.isotope({
-			itemSelector: '.trakt_show',
-			layoutMode: 'masonry',
-			masonry: {
-				columnWidth: 12,
-				isFitWidth: true
-			}
-		});
-	});
-	
+            itemSelector: '.trakt_show',
+            sortBy: 'original-order',
+            layoutMode: 'fitRows',
+            getSortData: {
+                name: function( itemElem ) {
+                    var name = \$( itemElem ).attr('data-name') || '';
+#if not $sickbeard.SORT_ARTICLE:
+                    name = name.replace(/^(The|A|An)\s/i, '');
+#end if
+                    return name.toLowerCase();
+                },
+                rating: '[data-rating] parseInt',
+                votes: '[data-votes] parseInt',
+            }
+        });
+    });
+
+    \$('#showsort').on( 'change', function() {
+        var sortCriteria;
+        switch (this.value) {
+            case 'original':
+                sortCriteria = 'original-order'
+                break;
+            case 'rating':
+                /* randomise, else the rating_votes can already
+                 * have sorted leaving this with nothing to do.
+                 */
+                \$('#container').isotope({sortBy: 'random'});
+                sortCriteria = 'rating';
+                break;
+            case 'rating_votes':
+                sortCriteria = ['rating', 'votes'];
+                break;
+            case 'votes':
+                sortCriteria = 'votes';
+                break;
+            default:
+                sortCriteria = 'name'
+                break;
+        }
+        \$('#container').isotope({sortBy: sortCriteria});
+    });
+
+    \$('#showsortdirection').on( 'change', function() {
+        \$('#container').isotope({sortAscending: ('asc' == this.value)});
+    });
 });
 
 //-->
@@ -40,44 +79,74 @@
 
 #if $varExists('header')
 	<h1 class="header">$header</h1>
-#else 
+#else
 	<h1 class="title">$title</h1>
 #end if
 
+#if $trending_shows
+<div class="pull-right" style="margin-top: -40px;">
+	<span>Sort By:</span>
+	<select id="showsort" class="form-control form-control-inline input-sm">
+		<option value="name">Name</option>
+		<option value="original" selected="selected">Original</option>
+		<option value="votes">Votes</option>
+		<option value="rating">% Rating</option>
+		<option value="rating_votes">% Rating > Votes</option>
+	</select>
+
+	<span style="margin-left:12px">Sort Order:</span>
+	<select id="showsortdirection" class="form-control form-control-inline input-sm">
+		<option value="asc" selected="selected">Asc</option>
+		<option value="desc">Desc</option>
+	</select>
+</div>
+#end if
+
 <div id="container">
 
+#if None is $trending_shows
+	<div class="trakt_show" style="width:100%; margin-top:20px">
+		<p class="red-text">Trakt API did not return results, this can happen from time to time.
+		<br /><br />This view should auto refresh every 10 mins.</p>
+	</div>
+#else
 #for $cur_show in $trending_shows:
-	
-	#set $image = re.sub(r"(.*)(\..*?)$", r"\1-300\2", $cur_show["images"]["poster"], 0, re.IGNORECASE | re.MULTILINE)
 
-	<div class="trakt_show">
+#set $image = re.sub(r'(.*)(\..*?)$', r'\1-300\2', $cur_show['images']['poster'], 0, re.IGNORECASE | re.MULTILINE)
+
+	<div class="trakt_show" data-name="$cur_show['title']" data-rating="$cur_show['ratings']['percentage']" data-votes="$cur_show['ratings']['votes']">
 		<div class="traktContainer">
 			<div class="trakt-image">
-				<a href="${cur_show["url"]}" target="_blank"><img alt="" class="trakt-image" src="${image}" /></a>
+				<a class="trakt-image" href="${cur_show['url']}" target="_blank"><img alt="" class="trakt-image" src="${image}" /></a>
 			</div>
-			
+
 			<div class="show-title">
-				$cur_show["title"]
+				<%= (cur_show['title'], '<span>&nbsp;</span>')[ '' == cur_show['title']] %>
 			</div>
-			
+
 		<div class="clearfix">
-			<p>$cur_show["ratings"]["percentage"]% <img src="$sbRoot/images/heart.png"></p>
-			<i>$cur_show["ratings"]["votes"] votes</i>
+			<p>$cur_show['ratings']['percentage']% <img src="$sbRoot/images/heart.png"></p>
+			<i>$cur_show['ratings']['votes'] votes</i>
 
 			<div class="traktShowTitleIcons">
-				<a href="$sbRoot/home/addTraktShow?indexer_id=${cur_show["tvdb_id"]}&amp;showName=${cur_show["title"]}" class="btn btn-xs">Add Show</a>
+#if 'ExistsInLibrary' in $cur_show['tvdb_id']:
+				<p style="line-height: 1.5; padding: 2px 5px 3px">In library</p>
+#else
+				<a href="$sbRoot/home/addTraktShow?indexer_id=${cur_show['tvdb_id']}&amp;showName=${cur_show['title']}" class="btn btn-xs">Add Show</a>
+#end if
 			</div>
 		</div>
 		</div>
 	</div>
 
 #end for
+#end if
 </div>
 
 <script type="text/javascript" charset="utf-8">
 <!--
-window.setInterval( "location.reload(true)", 600000); // Refresh every 10 minutes
+window.setInterval('location.reload(true)', 600000); // Refresh every 10 minutes
 //-->
 </script>
 
-#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_bottom.tmpl")
\ No newline at end of file
+#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')
diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py
index 63722675..7f10e9a3 100644
--- a/sickbeard/webserve.py
+++ b/sickbeard/webserve.py
@@ -340,7 +340,7 @@ class MainHandler(RequestHandler):
     def setComingEpsSort(self, sort):
         if sort not in ('date', 'network', 'show'):
             sort = 'date'
-        
+
         if sickbeard.COMING_EPS_LAYOUT == 'calendar':
             sort = 'date'
 
@@ -486,7 +486,7 @@ class MainHandler(RequestHandler):
                            episode['description'].splitlines()[0] + '\r\n'
                 else:
                     ical = ical + 'DESCRIPTION:' + (show['airs'] or '(Unknown airs)') + ' on ' + (show['network'] or 'Unknown network') + '\r\n'
-               
+
                 ical = ical + 'END:VEVENT\r\n'
 
         # Ending the iCal
@@ -1984,25 +1984,25 @@ class ConfigProviders(MainHandler):
         '''
         error = ""
         success = False
-        
+
         if not name:
-            error += "\nNo Provider Name specified" 
+            error += "\nNo Provider Name specified"
         if not url:
             error += "\nNo Provider Url specified"
         if not key:
             error += "\nNo Provider Api key specified"
-            
+
         if error <> "":
             return json.dumps({'success' : False, 'error': error})
-        
-        #Get list with Newznabproviders        
+
+        #Get list with Newznabproviders
         #providerDict = dict(zip([x.getID() for x in sickbeard.newznabProviderList], sickbeard.newznabProviderList))
-        
+
         #Get newznabprovider obj with provided name
         tempProvider= newznab.NewznabProvider(name, url, key)
-        
+
         success, tv_categories, error = tempProvider.get_newznab_categories()
-        
+
         return json.dumps({'success' : success,'tv_categories' : tv_categories, 'error' : error})
 
     def deleteNewznabProvider(self, nnid):
@@ -2109,13 +2109,13 @@ class ConfigProviders(MainHandler):
                     newznabProviderDict[cur_id].name = cur_name
                     newznabProviderDict[cur_id].url = cur_url
                     newznabProviderDict[cur_id].key = cur_key
-                    newznabProviderDict[cur_id].catIDs = cur_cat 
+                    newznabProviderDict[cur_id].catIDs = cur_cat
                     # a 0 in the key spot indicates that no key is needed
                     if cur_key == '0':
                         newznabProviderDict[cur_id].needs_auth = False
                     else:
                         newznabProviderDict[cur_id].needs_auth = True
-                    
+
                     try:
                         newznabProviderDict[cur_id].search_mode = str(kwargs[cur_id + '_search_mode']).strip()
                     except:
@@ -2989,6 +2989,11 @@ class NewHomeAddShows(MainHandler):
 
         t.trending_shows = TraktCall("shows/trending.json/%API%", sickbeard.TRAKT_API_KEY)
 
+        if None is not t.trending_shows:
+            for item in t.trending_shows:
+                if helpers.findCertainShow(sickbeard.showList, int(item['tvdb_id'])):
+                    item['tvdb_id'] = u'ExistsInLibrary'
+
         return _munge(t)
 
     def existingShows(self, *args, **kwargs):
@@ -4372,9 +4377,9 @@ class Home(MainHandler):
             root_ep_obj.rename()
 
         redirect("/home/displayShow?show=" + show)
-    
+
     def searchEpisode(self, show=None, season=None, episode=None):
-        
+
         # retrieve the episode object and fail if we can't get one
         ep_obj = _getEpisode(show, season, episode)
         if isinstance(ep_obj, str):
@@ -4384,7 +4389,7 @@ class Home(MainHandler):
         ep_queue_item = search_queue.ManualSearchQueueItem(ep_obj.show, ep_obj)
 
         sickbeard.searchQueueScheduler.action.add_item(ep_queue_item)  # @UndefinedVariable
-        
+
         if ep_queue_item.success:
             return returnManualSearchResult(ep_queue_item)
         if not ep_queue_item.started and ep_queue_item.success is None:
@@ -4403,35 +4408,35 @@ class Home(MainHandler):
         currentManualSearchThreadsQueued = []
         currentManualSearchThreadActive = []
         finishedManualSearchThreadItems= []
-        
+
         # Queued Searches
         currentManualSearchThreadsQueued = sickbeard.searchQueueScheduler.action.get_all_ep_from_queue(show)
         # Running Searches
         if (sickbeard.searchQueueScheduler.action.is_manualsearch_in_progress()):
             currentManualSearchThreadActive = sickbeard.searchQueueScheduler.action.currentItem
-            
+
         # Finished Searches
         finishedManualSearchThreadItems =  sickbeard.search_queue.MANUAL_SEARCH_HISTORY
-        
+
         if currentManualSearchThreadsQueued:
             for searchThread in currentManualSearchThreadsQueued:
                 searchstatus = 'queued'
-                if isinstance(searchThread, sickbeard.search_queue.ManualSearchQueueItem):    
+                if isinstance(searchThread, sickbeard.search_queue.ManualSearchQueueItem):
                     episodes.append({'episode': searchThread.segment.episode,
-                                     'episodeindexid': searchThread.segment.indexerid, 
-                                     'season' : searchThread.segment.season, 
-                                     'searchstatus' : searchstatus, 
-                                     'status' : statusStrings[searchThread.segment.status], 
+                                     'episodeindexid': searchThread.segment.indexerid,
+                                     'season' : searchThread.segment.season,
+                                     'searchstatus' : searchstatus,
+                                     'status' : statusStrings[searchThread.segment.status],
                                      'quality': self.getQualityClass(searchThread.segment)})
                 else:
                     for epObj in searchThread.segment:
                         episodes.append({'episode': epObj.episode,
                              'episodeindexid': epObj.indexerid,
-                             'season' : epObj.season, 
-                             'searchstatus' : searchstatus, 
-                             'status' : statusStrings[epObj.status], 
+                             'season' : epObj.season,
+                             'searchstatus' : searchstatus,
+                             'status' : statusStrings[epObj.status],
                              'quality': self.getQualityClass(epObj)})
-        
+
         if currentManualSearchThreadActive:
             searchThread = currentManualSearchThreadActive
             searchstatus = 'searching'
@@ -4441,11 +4446,11 @@ class Home(MainHandler):
                 searchstatus = 'searching'
             episodes.append({'episode': searchThread.segment.episode,
                              'episodeindexid': searchThread.segment.indexerid,
-                             'season' : searchThread.segment.season, 
-                             'searchstatus' : searchstatus, 
-                             'status' : statusStrings[searchThread.segment.status], 
+                             'season' : searchThread.segment.season,
+                             'searchstatus' : searchstatus,
+                             'status' : statusStrings[searchThread.segment.status],
                              'quality': self.getQualityClass(searchThread.segment)})
-            
+
         if finishedManualSearchThreadItems:
             for searchThread in finishedManualSearchThreadItems:
                 if isinstance(searchThread, sickbeard.search_queue.ManualSearchQueueItem):
@@ -4453,9 +4458,9 @@ class Home(MainHandler):
                         searchstatus = 'finished'
                         episodes.append({'episode': searchThread.segment.episode,
                                          'episodeindexid': searchThread.segment.indexerid,
-                                 'season' : searchThread.segment.season, 
-                                 'searchstatus' : searchstatus, 
-                                 'status' : statusStrings[searchThread.segment.status], 
+                                 'season' : searchThread.segment.season,
+                                 'searchstatus' : searchstatus,
+                                 'status' : statusStrings[searchThread.segment.status],
                                  'quality': self.getQualityClass(searchThread.segment)})
                 else:
                     ### These are only Failed Downloads/Retry SearchThreadItems.. lets loop through the segement/episodes
@@ -4465,18 +4470,18 @@ class Home(MainHandler):
                                 searchstatus = 'finished'
                                 episodes.append({'episode': epObj.episode,
                                                  'episodeindexid': epObj.indexerid,
-                                         'season' : epObj.season, 
-                                         'searchstatus' : searchstatus, 
-                                         'status' : statusStrings[epObj.status], 
+                                         'season' : epObj.season,
+                                         'searchstatus' : searchstatus,
+                                         'status' : statusStrings[epObj.status],
                                          'quality': self.getQualityClass(epObj)})
-        
+
         return json.dumps({'show': show, 'episodes' : episodes})
 
         #return json.dumps()
-    
+
     def getQualityClass(self, ep_obj):
         # return the correct json value
-    
+
         # Find the quality class for the episode
         quality_class = Quality.qualityStrings[Quality.UNKNOWN]
         ep_status, ep_quality = Quality.splitCompositeStatus(ep_obj.status)
@@ -4605,7 +4610,7 @@ class Home(MainHandler):
             return json.dumps({'result': 'success'})
         else:
             return json.dumps({'result': 'failure'})
-        
+
 
 class UI(MainHandler):
     def add_message(self):
-- 
GitLab