diff --git a/UI/.idea/dictionaries/Keivan.xml b/UI/.idea/dictionaries/Keivan.xml
index 9dc8e0ee1..a60291283 100644
--- a/UI/.idea/dictionaries/Keivan.xml
+++ b/UI/.idea/dictionaries/Keivan.xml
@@ -2,8 +2,15 @@
   <dictionary name="Keivan">
     <words>
       <w>deps</w>
+      <w>mixins</w>
       <w>nzbdrone</w>
+      <w>rootdir</w>
       <w>rootfolder</w>
+      <w>rootfolders</w>
+      <w>thetvdb</w>
+      <w>tvdb</w>
+      <w>xlarge</w>
+      <w>yyyy</w>
     </words>
   </dictionary>
 </component>
\ No newline at end of file
diff --git a/UI/.idea/inspectionProfiles/Project_Default.xml b/UI/.idea/inspectionProfiles/Project_Default.xml
index c5d2c1499..7165e5520 100644
--- a/UI/.idea/inspectionProfiles/Project_Default.xml
+++ b/UI/.idea/inspectionProfiles/Project_Default.xml
@@ -6,9 +6,11 @@
     <inspection_tool class="AssignmentToForLoopParameterJS" enabled="true" level="ERROR" enabled_by_default="true" />
     <inspection_tool class="AssignmentToFunctionParameterJS" enabled="true" level="ERROR" enabled_by_default="true" />
     <inspection_tool class="ChainedEqualityJS" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="CheckEmptyScriptTag" enabled="false" level="WARNING" enabled_by_default="false" />
     <inspection_tool class="ConditionalExpressionWithIdenticalBranchesJS" enabled="true" level="ERROR" enabled_by_default="true" />
     <inspection_tool class="ConstantOnLHSOfComparisonJS" enabled="true" level="ERROR" enabled_by_default="true" />
     <inspection_tool class="ContinueStatementWithLabelJS" enabled="true" level="ERROR" enabled_by_default="true" />
+    <inspection_tool class="CssUnusedSymbolInspection" enabled="false" level="WARNING" enabled_by_default="false" />
     <inspection_tool class="CyclomaticComplexityJS" enabled="true" level="WARNING" enabled_by_default="true">
       <option name="m_limit" value="10" />
     </inspection_tool>
@@ -25,11 +27,38 @@
       <option name="m_maxLength" value="32" />
     </inspection_tool>
     <inspection_tool class="HtmlFormInputWithoutLabel" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
+    <inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="myValues">
+        <value>
+          <list size="1">
+            <item index="0" class="java.lang.String" itemvalue="name" />
+          </list>
+        </value>
+      </option>
+      <option name="myCustomValuesEnabled" value="true" />
+    </inspection_tool>
+    <inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="myValues">
+        <value>
+          <list size="7">
+            <item index="0" class="java.lang.String" itemvalue="nobr" />
+            <item index="1" class="java.lang.String" itemvalue="noembed" />
+            <item index="2" class="java.lang.String" itemvalue="comment" />
+            <item index="3" class="java.lang.String" itemvalue="noscript" />
+            <item index="4" class="java.lang.String" itemvalue="embed" />
+            <item index="5" class="java.lang.String" itemvalue="script" />
+            <item index="6" class="java.lang.String" itemvalue="icon" />
+          </list>
+        </value>
+      </option>
+      <option name="myCustomValuesEnabled" value="true" />
+    </inspection_tool>
     <inspection_tool class="IfStatementWithIdenticalBranchesJS" enabled="true" level="WARNING" enabled_by_default="true" />
     <inspection_tool class="IfStatementWithTooManyBranchesJS" enabled="true" level="WARNING" enabled_by_default="true">
       <option name="m_limit" value="3" />
     </inspection_tool>
     <inspection_tool class="JSHint" enabled="true" level="ERROR" enabled_by_default="true" />
+    <inspection_tool class="JSUnusedGlobalSymbols" enabled="false" level="INFO" enabled_by_default="false" />
     <inspection_tool class="LabeledStatementJS" enabled="true" level="ERROR" enabled_by_default="true" />
     <inspection_tool class="LocalVariableNamingConventionJS" enabled="true" level="WARNING" enabled_by_default="true">
       <option name="m_regex" value="[a-z][A-Za-z]*" />
@@ -50,11 +79,6 @@
     </inspection_tool>
     <inspection_tool class="ReplaceAssignmentWithOperatorAssignmentJS" enabled="true" level="WARNING" enabled_by_default="true" />
     <inspection_tool class="ReuseOfLocalVariableJS" enabled="true" level="WARNING" enabled_by_default="true" />
-    <inspection_tool class="SpellCheckingInspection" enabled="true" level="WARNING" enabled_by_default="true">
-      <option name="processCode" value="true" />
-      <option name="processLiterals" value="true" />
-      <option name="processComments" value="true" />
-    </inspection_tool>
     <inspection_tool class="StatementsPerFunctionJS" enabled="true" level="WARNING" enabled_by_default="true">
       <option name="m_limit" value="30" />
     </inspection_tool>
diff --git a/UI/AddSeries/Existing/FolderMatchResultViewTemplatate.html b/UI/AddSeries/Existing/FolderMatchResultViewTemplate.html
similarity index 100%
rename from UI/AddSeries/Existing/FolderMatchResultViewTemplatate.html
rename to UI/AddSeries/Existing/FolderMatchResultViewTemplate.html
diff --git a/UI/AddSeries/Existing/ImportSeriesView.js b/UI/AddSeries/Existing/ImportSeriesView.js
index dd3a029fc..217271f2d 100644
--- a/UI/AddSeries/Existing/ImportSeriesView.js
+++ b/UI/AddSeries/Existing/ImportSeriesView.js
@@ -4,7 +4,7 @@ define([
 
 
     NzbDrone.AddSeries.Existing.FolderMatchResultView = Backbone.Marionette.ItemView.extend({
-        template: 'AddSeries/Existing/FolderMatchResultViewTemplatate',
+        template: 'AddSeries/Existing/FolderMatchResultViewTemplate',
 
         events: {
             'click .x-btn-add': 'addSeries'
@@ -49,7 +49,7 @@ define([
 
     NzbDrone.AddSeries.Existing.UnmappedFolderCompositeView = Backbone.Marionette.CompositeView.extend({
 
-        template         : 'AddSeries/Existing/UnmappedFolderCompositeViewTemplatate',
+        template         : 'AddSeries/Existing/UnmappedFolderCompositeViewTemplate',
         itemViewContainer: '.x-folder-name-match-results',
         itemView         : NzbDrone.AddSeries.Existing.FolderMatchResultView,
 
diff --git a/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplatate.html b/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplate.html
similarity index 85%
rename from UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplatate.html
rename to UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplate.html
index 9d07d5938..e26778a56 100644
--- a/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplatate.html
+++ b/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplate.html
@@ -1,7 +1,8 @@
-<div class="row unmapped-folder-view">
+"use strict";
+<div class="row unmapped-folder-view">
     <div class="span11">
         <div class="row folder-header">
-            <input class="x-txt-search input-xlarge" type="text" value="{{folder.name}}" placeholder="{{folder.name}}"></input>
+            <input class="x-txt-search input-xlarge" type="text" value="{{folder.name}}" placeholder="{{folder.name}}">
             <select class="span2 x-lst-quality-profile">
                 {{#each quality.models}}
                 <option value="{{id}}">{{attributes.name}}</option>
diff --git a/UI/AddSeries/RootFolders/RootFolderModel.js b/UI/AddSeries/RootFolders/RootFolderModel.js
index 282011998..e3f6b40b3 100644
--- a/UI/AddSeries/RootFolders/RootFolderModel.js
+++ b/UI/AddSeries/RootFolders/RootFolderModel.js
@@ -8,7 +8,7 @@ define(['app'], function () {
         },
 
         defaults: {
-            freeSpace: 0,
+            freeSpace: 0
         }
     });
 });
\ No newline at end of file
diff --git a/UI/AddSeries/SearchResultModel.js b/UI/AddSeries/SearchResultModel.js
index ab81c334d..e17685bf6 100644
--- a/UI/AddSeries/SearchResultModel.js
+++ b/UI/AddSeries/SearchResultModel.js
@@ -1,4 +1,5 @@
-define(['app', 'AddSeries/RootFolders/RootFolderCollection', 'Quality/QualityProfileCollection'],
+"use strict";
+define(['app', 'AddSeries/RootFolders/RootFolderCollection', 'Quality/QualityProfileCollection'],
     function (app, rootFolderCollection, qualityProfileCollection) {
 
         NzbDrone.AddSeries.SearchResultModel = Backbone.Model.extend({
diff --git a/UI/Calendar/CalendarCollection.js b/UI/Calendar/CalendarCollection.js
index a3f3c9d4e..f88459e09 100644
--- a/UI/Calendar/CalendarCollection.js
+++ b/UI/Calendar/CalendarCollection.js
@@ -1,4 +1,5 @@
-define(['app', 'Calendar/CalendarModel'], function () {
+"use strict";
+define(['app', 'Calendar/CalendarModel'], function () {
     NzbDrone.Calendar.CalendarCollection = Backbone.Collection.extend({
         url       : NzbDrone.Constants.ApiRoot + '/calendar',
         model     : NzbDrone.Calendar.CalendarModel,
diff --git a/UI/Calendar/CalendarCollectionView.js b/UI/Calendar/CalendarCollectionView.js
index 17a07de0d..a970f1552 100644
--- a/UI/Calendar/CalendarCollectionView.js
+++ b/UI/Calendar/CalendarCollectionView.js
@@ -1,6 +1,6 @@
 'use strict';
 
-define(['app', 'Calendar/CalendarItemView'], function (app) {
+define(['app', 'Calendar/CalendarItemView'], function () {
     NzbDrone.Calendar.CalendarCollectionView = Backbone.Marionette.CompositeView.extend({
         itemView         : NzbDrone.Calendar.CalendarItemView,
         itemViewContainer: '#events',
@@ -47,10 +47,10 @@ define(['app', 'Calendar/CalendarItemView'], function (app) {
                         trigger  : 'manual'
                     });
                 },
-                eventMouseover: function (event, jsEvent, view) {
+                eventMouseover: function () {
                     $(this).popover('show');
                 },
-                eventMouseout : function (event, jsEvent, view) {
+                eventMouseout : function () {
                     $(this).popover('hide');
                 }
             });
diff --git a/UI/Calendar/CalendarItemView.js b/UI/Calendar/CalendarItemView.js
index 6b74d4a54..1ef9208f5 100644
--- a/UI/Calendar/CalendarItemView.js
+++ b/UI/Calendar/CalendarItemView.js
@@ -13,5 +13,5 @@ define([
         onRender: function () {
             NzbDrone.ModelBinder.bind(this.model, this.el);
         }
-    })
-})
\ No newline at end of file
+    });
+});
\ No newline at end of file
diff --git a/UI/Calendar/CalendarModel.js b/UI/Calendar/CalendarModel.js
index b124f8465..e0bf71447 100644
--- a/UI/Calendar/CalendarModel.js
+++ b/UI/Calendar/CalendarModel.js
@@ -1,4 +1,5 @@
-define(['app'], function (app) {
+"use strict";
+define(['app'], function () {
     NzbDrone.Calendar.CalendarModel = Backbone.Model.extend({
         mutators: {
             title              : function () {
@@ -47,7 +48,7 @@
             },
             bestDateString     : function () {
                 return bestDateString(this.get('start'));
-            },
+            }
         },
         defaults: {
             status: 0