Index: Applications/StreamedMPEditor/functions.cs
===================================================================
--- Applications/StreamedMPEditor/functions.cs	(revision 3356)
+++ Applications/StreamedMPEditor/functions.cs	(working copy)
@@ -362,6 +362,7 @@
           cboParameterViews.DataSource = theOnlineVideosViews;
           break;
         default:
+          cboParameterViews.DataSource = null;
           cboParameterViews.Text = string.Empty;
           break;
       }
Index: Applications/StreamedMPEditor/StreamedMPEditor.cs
===================================================================
--- Applications/StreamedMPEditor/StreamedMPEditor.cs	(revision 3356)
+++ Applications/StreamedMPEditor/StreamedMPEditor.cs	(working copy)
@@ -186,6 +186,7 @@
     public const string mvCentralSkinID = "112011";
     //myweather/BBCWeather/WorldWeather/yrWeather
     public const string weatherSkinID = "2600|7977|8192|3231";
+    public const string emulatorsSkinId = "7942";
     public const bool hyperlinkParameterEnabled = true;
     public const bool hyperlinkParameterDisabled = false;
     const string quote = "\"";
@@ -526,6 +527,7 @@
       parametersValid.Add(tvseriesSkinID, true);
       parametersValid.Add(onlineVideosSkinID, true);
       parametersValid.Add(movingPicturesSkinID, true);
+      parametersValid.Add(emulatorsSkinId, true);
 
       if (isBeta)
       {
@@ -813,20 +815,25 @@
           item.disableBGSharing = true;
           
         item.showMostRecent = getMostRecentDisplayOption();
-        if ((pluginTakesParameter(item.hyperlink) && cboParameterViews.SelectedIndex != -1) || (MovPicsCategoryVisibility && MovPicsCategorySelectedIndex != -1))
+        if ((pluginTakesParameter(item.hyperlink) && !string.IsNullOrEmpty(cboParameterViews.Text)) || (MovPicsCategoryVisibility && MovPicsCategorySelectedIndex != -1))
         {
           switch (item.hyperlink)
           {
             case tvseriesSkinID:
-              item.hyperlinkParameter = getTVSeriesViewKey(cboParameterViews.SelectedItem.ToString());
+              if (cboParameterViews.SelectedIndex != -1)
+                item.hyperlinkParameter = getTVSeriesViewKey(cboParameterViews.SelectedItem.ToString());
               break;
             case musicSkinID:
-              item.hyperlinkParameter = getMusicViewKey(cboParameterViews.SelectedItem.ToString());
+              if (cboParameterViews.SelectedIndex != -1)
+                item.hyperlinkParameter = getMusicViewKey(cboParameterViews.SelectedItem.ToString());
               break;
             case onlineVideosSkinID:
-              item.hyperlinkParameter = getOnlineVideosViewKey(cboParameterViews.SelectedItem.ToString());
-              item.hyperlinkParameterSearch = ovTxtSearch.Text;
-              item.hyperlinkParameterCategory = cboOnlineVideosCategories.Text;
+              if (cboParameterViews.SelectedIndex != -1)
+              {
+                item.hyperlinkParameter = getOnlineVideosViewKey(cboParameterViews.SelectedItem.ToString());
+                item.hyperlinkParameterSearch = ovTxtSearch.Text;
+                item.hyperlinkParameterCategory = cboOnlineVideosCategories.Text;
+              }
               break;
             case movingPicturesSkinID:
               if (MovingPicturesInstalled)
@@ -850,6 +857,7 @@
               }
               break;
             default:
+              item.hyperlinkParameter = cboParameterViews.Text;
               break;
           }
         }
@@ -943,52 +951,60 @@
         fhRBUserDef.Checked = true;
       }
 
-      switch (mnuItem.hyperlink)
+      if (pluginTakesParameter(mnuItem.hyperlink))
       {
-        case tvseriesSkinID:
-          cboParameterViews.DataSource = theTVSeriesViews;
-          if (mnuItem.hyperlinkParameter != "false")
-            cboParameterViews.Text = getTVSeriesViewValue(mnuItem.hyperlinkParameter);
-          else
-            cboParameterViews.Text = string.Empty;
-          break;
-        case musicSkinID:
-          cboParameterViews.DataSource = theMusicViews;
-          if (mnuItem.hyperlinkParameter != "false")
-            cboParameterViews.Text = getMusicViewValue(mnuItem.hyperlinkParameter);
-          else
-            cboParameterViews.Text = string.Empty;
-          break;
-        case onlineVideosSkinID:
-          cboParameterViews.DataSource = theOnlineVideosViews;
-          cboOnlineVideosCategories.Visible = true;
-          ovTxtSearch.Text = mnuItem.hyperlinkParameterSearch;
-          if (mnuItem.hyperlinkParameter != "false")
-            cboParameterViews.Text = getOnlineVideosViewValue(mnuItem.hyperlinkParameter);
-          else
-            cboParameterViews.Text = string.Empty;
-          break;
-        case movingPicturesSkinID:
-          if (MovingPicturesInstalled)
-          {
+        switch (mnuItem.hyperlink)
+        {
+          case tvseriesSkinID:
+            cboParameterViews.DataSource = theTVSeriesViews;
+            if (mnuItem.hyperlinkParameter != "false")
+              cboParameterViews.Text = getTVSeriesViewValue(mnuItem.hyperlinkParameter);
+            else
+              cboParameterViews.Text = string.Empty;
+            break;
+          case musicSkinID:
+            cboParameterViews.DataSource = theMusicViews;
+            if (mnuItem.hyperlinkParameter != "false")
+              cboParameterViews.Text = getMusicViewValue(mnuItem.hyperlinkParameter);
+            else
+              cboParameterViews.Text = string.Empty;
+            break;
+          case onlineVideosSkinID:
+            cboParameterViews.DataSource = theOnlineVideosViews;
+            cboOnlineVideosCategories.Visible = true;
+            ovTxtSearch.Text = mnuItem.hyperlinkParameterSearch;
+            if (mnuItem.hyperlinkParameter != "false")
+              cboParameterViews.Text = getOnlineVideosViewValue(mnuItem.hyperlinkParameter);
+            else
+              cboParameterViews.Text = string.Empty;
+            break;
+          case movingPicturesSkinID:
+            if (MovingPicturesInstalled)
+            {
               linkClearCategories.Visible = true;
               if (mnuItem.hyperlinkParameter != "false" && !string.IsNullOrEmpty(mnuItem.hyperlinkParameter))
               {
-                  int id = 0;
-                  Int32.TryParse(mnuItem.hyperlinkParameter, out id);
-                  SetMovPicsCategorySelectedNode(id);
+                int id = 0;
+                Int32.TryParse(mnuItem.hyperlinkParameter, out id);
+                SetMovPicsCategorySelectedNode(id);
               }
               else
-                  ClearMovingPicturesCategories();
-          }
-          else
-          {
+                ClearMovingPicturesCategories();
+            }
+            else
+            {
               lbParameterView.Visible = false;
               linkClearCategories.Visible = false;
-          }
-          break;
-        default:
-          break;
+            }
+            break;
+          default:
+            cboParameterViews.DataSource = null;
+            if (mnuItem.hyperlinkParameter != "false")
+              cboParameterViews.Text = mnuItem.hyperlinkParameter;
+            else
+              cboParameterViews.Text = string.Empty;
+            break;
+        }
       }
 
       if (cboFanartProperty.Text.ToLower() == "false")
@@ -1035,37 +1051,51 @@
         item.hyperlink = selectedWindowID.Text;
         
         item.hyperlinkParameter = "false";
-        if (cboParameterViews.SelectedIndex != -1)
+        if (pluginTakesParameter(item.hyperlink))
         {
-          if (item.hyperlink == tvseriesSkinID)
-            item.hyperlinkParameter = getTVSeriesViewKey(cboParameterViews.SelectedItem.ToString());
-
-          if (item.hyperlink == musicSkinID)
-            item.hyperlinkParameter = getMusicViewKey(cboParameterViews.SelectedItem.ToString());
-
-          if (item.hyperlink == onlineVideosSkinID)
+          switch (item.hyperlink)
           {
-            item.hyperlinkParameter = getOnlineVideosViewKey(cboParameterViews.SelectedItem.ToString());
-            item.hyperlinkParameterSearch = ovTxtSearch.Text;
-            item.hyperlinkParameterCategory = cboOnlineVideosCategories.Text;
+            case tvseriesSkinID:
+              if (cboParameterViews.SelectedIndex != -1)
+                item.hyperlinkParameter = getTVSeriesViewKey(cboParameterViews.SelectedItem.ToString());
+              else
+                cboParameterViews.Text = string.Empty;
+              break;
+            case musicSkinID:
+              if (cboParameterViews.SelectedIndex != -1)
+                item.hyperlinkParameter = getMusicViewKey(cboParameterViews.SelectedItem.ToString());
+              else
+                cboParameterViews.Text = string.Empty;
+              break;
+            case onlineVideosSkinID:
+              if (cboParameterViews.SelectedIndex != -1)
+              {
+                item.hyperlinkParameter = getOnlineVideosViewKey(cboParameterViews.SelectedItem.ToString());
+                item.hyperlinkParameterSearch = ovTxtSearch.Text;
+                item.hyperlinkParameterCategory = cboOnlineVideosCategories.Text;
+              }
+              else
+                cboParameterViews.Text = string.Empty;
+              break;
+            case movingPicturesSkinID:
+              if (MovPicsCategorySelectedIndex != -1)
+              {
+                // store the ID of the selected node
+                if (item.hyperlink == movingPicturesSkinID)
+                {
+                  int? id = GetMovPicsSelectedCategoryNodeID();
+                  if (id != null)
+                    item.hyperlinkParameter = id.ToString();
+                }
+              }
+              break;
+            default:
+              if (!string.IsNullOrEmpty(cboParameterViews.Text))
+                item.hyperlinkParameter = cboParameterViews.Text;
+              break;
           }
         }
-        else
-        {
-          cboParameterViews.Text = string.Empty;
-        }
 
-        if (MovPicsCategorySelectedIndex != -1)
-        {
-          // store the ID of the selected node
-          if (item.hyperlink == movingPicturesSkinID)
-          {
-            int? id = GetMovPicsSelectedCategoryNodeID();
-            if (id != null)
-              item.hyperlinkParameter = id.ToString();
-          }
-        }
-
         item.disableBGSharing = disableBGSharing.Checked;
         // If using 3D backgrounds disable BG sharing for item.
         if (!item.fanartHandlerEnabled && (bgBox.Text.ToLower() == "3dbackgrounds"))
@@ -1299,6 +1329,14 @@
             }
             break;
           default:
+            cboParameterViews.DataSource = null;
+            if (mnuItem.hyperlinkParameter != "false")
+              cboParameterViews.Text = mnuItem.hyperlinkParameter;
+            else
+            {
+              cboParameterViews.Text = string.Empty;
+              cboParameterViews.SelectedIndex = -1;
+            }
             break;
         }
       }
Index: Applications/StreamedMPEditor/SubItemPropertiesDialog.cs
===================================================================
--- Applications/StreamedMPEditor/SubItemPropertiesDialog.cs	(revision 3356)
+++ Applications/StreamedMPEditor/SubItemPropertiesDialog.cs	(working copy)
@@ -37,9 +37,6 @@
       gbHyperlinkParameter.Enabled = false;
       currentSkinID = skinFileID;
 
-      if (showHyperlinkParameterDialog)
-        gbHyperlinkParameter.Enabled = true;
-
       cboViews.Visible = false;
       cbOnlineVideosReturn.Visible = false;
       cboOnlineVideosCategories.Visible = false;
@@ -48,46 +45,53 @@
       lblCategory.Visible = false;
       txtSearch.Visible = false;
 
-      switch (skinFileID)
+      if (showHyperlinkParameterDialog)
       {
-        case formStreamedMpEditor.tvseriesSkinID:
-          cboViews.Visible = true;
-          foreach (KeyValuePair<string, string> tvv in formStreamedMpEditor.tvseriesViews)
-          {
-            cboViews.Items.Add(tvv.Value);
-          }
-          break;
-        case formStreamedMpEditor.musicSkinID:
-          cboViews.Visible = true;
-          foreach (KeyValuePair<string, string> mvv in formStreamedMpEditor.musicViews)
-          {
-            cboViews.Items.Add(mvv.Value);
-          }
-          break;
-        case formStreamedMpEditor.onlineVideosSkinID:
-          cboViews.Visible = true;
-          cbOnlineVideosReturn.Visible = true;
-          cboOnlineVideosCategories.Visible = true;
-          lblSearch.Visible = true;
-          lblCategory.Visible = true;
-          txtSearch.Visible = true;          
-          foreach (KeyValuePair<string, string> mvv in formStreamedMpEditor.onlineVideosSites)
-          {
-            cboViews.Items.Add(mvv.Value);
-          }
-          break;
-        case formStreamedMpEditor.movingPicturesSkinID:
-          if (formStreamedMpEditor.MovingPicturesInstalled)
-          {
+        gbHyperlinkParameter.Enabled = true;
+        switch (skinFileID)
+        {
+          case formStreamedMpEditor.tvseriesSkinID:
+            cboViews.Visible = true;
+            foreach (KeyValuePair<string, string> tvv in formStreamedMpEditor.tvseriesViews)
+            {
+              cboViews.Items.Add(tvv.Value);
+            }
+            break;
+          case formStreamedMpEditor.musicSkinID:
+            cboViews.Visible = true;
+            foreach (KeyValuePair<string, string> mvv in formStreamedMpEditor.musicViews)
+            {
+              cboViews.Items.Add(mvv.Value);
+            }
+            break;
+          case formStreamedMpEditor.onlineVideosSkinID:
+            cboViews.Visible = true;
+            cbOnlineVideosReturn.Visible = true;
+            cboOnlineVideosCategories.Visible = true;
+            lblSearch.Visible = true;
+            lblCategory.Visible = true;
+            txtSearch.Visible = true;
+            foreach (KeyValuePair<string, string> mvv in formStreamedMpEditor.onlineVideosSites)
+            {
+              cboViews.Items.Add(mvv.Value);
+            }
+            break;
+          case formStreamedMpEditor.movingPicturesSkinID:
+            if (formStreamedMpEditor.MovingPicturesInstalled)
+            {
               MovPicsCategoryVisibility = true;
               LoadMovingPicturesCategories();
-          }
-          else
-          {
+            }
+            else
+            {
               gbHyperlinkParameter.Visible = false;
-          }
-          break;
-      }      
+            }
+            break;
+          default:
+            cboViews.Visible = true;
+            break;
+        }
+      }
     }
 
     /// <summary>
@@ -136,6 +140,21 @@
       }
     }
 
+    public string genericHyperlinkParameter
+    {
+      get
+      {
+        if (!string.IsNullOrEmpty(cboViews.Text))
+          return cboViews.Text;
+        return "false";
+      }
+      set
+      {
+        if (value != "false")
+          cboViews.Text = value;
+      }
+    }
+
     public string onlineVideosSearchString
     {
       get
Index: Applications/StreamedMPEditor/SubMenuDesigner.cs
===================================================================
--- Applications/StreamedMPEditor/SubMenuDesigner.cs	(revision 3356)
+++ Applications/StreamedMPEditor/SubMenuDesigner.cs	(working copy)
@@ -404,6 +404,9 @@
           case formStreamedMpEditor.movingPicturesSkinID:
             itemProperties.movingPicturesHyperlinkParmeter = subMenuLevel1[index].hyperlinkParameter;
             break;
+          default:
+            itemProperties.genericHyperlinkParameter = subMenuLevel1[index].hyperlinkParameter;
+            break;
         }
 
         itemProperties.BaseName = subMenuLevel1[index].baseDisplayName;
@@ -437,7 +440,7 @@
             }
           }
           //Music
-          if (subMenuLevel1[index].hyperlink == formStreamedMpEditor.musicSkinID)
+          else if (subMenuLevel1[index].hyperlink == formStreamedMpEditor.musicSkinID)
           {
             if (string.IsNullOrEmpty(itemProperties.musicHypelinkParameter) || itemProperties.musicHypelinkParameter == "false")
             {
@@ -453,7 +456,7 @@
             }
           }
           //Onlinevideos
-          if (subMenuLevel1[index].hyperlink == formStreamedMpEditor.onlineVideosSkinID)
+          else if (subMenuLevel1[index].hyperlink == formStreamedMpEditor.onlineVideosSkinID)
           {
             if (string.IsNullOrEmpty(itemProperties.onlineVideosHypelinkParameter) || itemProperties.onlineVideosHypelinkParameter == "false")
             {
@@ -472,7 +475,7 @@
             }
           }
           //MovingPictures
-          if (subMenuLevel1[index].hyperlink == formStreamedMpEditor.movingPicturesSkinID)
+          else if (subMenuLevel1[index].hyperlink == formStreamedMpEditor.movingPicturesSkinID)
           {
             if (string.IsNullOrEmpty(itemProperties.movingPicturesHyperlinkParmeter) || itemProperties.movingPicturesHyperlinkParmeter == "false")
             {
@@ -487,6 +490,21 @@
               formStreamedMpEditor.changeOutstanding = true;
             }
           }
+          else
+          {
+            if (string.IsNullOrEmpty(itemProperties.genericHyperlinkParameter) || itemProperties.genericHyperlinkParameter == "false")
+            {
+              subMenuLevel1[index].hyperlinkParameter = "false";
+              if (!formStreamedMpEditor.changeOutstanding)
+                subMenuLevel1[index].displayName = subMenuLevel1[index].baseDisplayName;
+              formStreamedMpEditor.changeOutstanding = true;
+            }
+            else if (formStreamedMpEditor.pluginTakesParameter(subMenuLevel1[index].hyperlink))
+            {
+              subMenuLevel1[index].hyperlinkParameter = itemProperties.genericHyperlinkParameter;
+              formStreamedMpEditor.changeOutstanding = true;
+            }
+          }
         }
         // Refresh the listbox, only way to do this is clear re-populate.
         if (formStreamedMpEditor.changeOutstanding)
@@ -527,6 +545,9 @@
           case formStreamedMpEditor.movingPicturesSkinID:
             itemProperties.movingPicturesHyperlinkParmeter = subMenuLevel2[index].hyperlinkParameter;
             break;
+          default:
+            itemProperties.genericHyperlinkParameter = subMenuLevel2[index].hyperlinkParameter;
+            break;
         }
         itemProperties.BaseName = subMenuLevel2[index].baseDisplayName;
         itemProperties.initialIndex = index;
@@ -560,7 +581,7 @@
             }
           }
           //Music
-          if (subMenuLevel2[index].hyperlink == formStreamedMpEditor.musicSkinID)
+          else if (subMenuLevel2[index].hyperlink == formStreamedMpEditor.musicSkinID)
           {
             if (string.IsNullOrEmpty(itemProperties.musicHypelinkParameter) || itemProperties.musicHypelinkParameter == "false")
             {
@@ -576,7 +597,7 @@
             }
           }
           //Onlinevideos
-          if (subMenuLevel2[index].hyperlink == formStreamedMpEditor.onlineVideosSkinID)
+          else if (subMenuLevel2[index].hyperlink == formStreamedMpEditor.onlineVideosSkinID)
           {
             if (string.IsNullOrEmpty(itemProperties.onlineVideosHypelinkParameter) || itemProperties.onlineVideosHypelinkParameter == "false")
             {
@@ -595,7 +616,7 @@
             }
           }
           //MovingPictures
-          if (subMenuLevel2[index].hyperlink == formStreamedMpEditor.movingPicturesSkinID)
+          else if (subMenuLevel2[index].hyperlink == formStreamedMpEditor.movingPicturesSkinID)
           {
             if (string.IsNullOrEmpty(itemProperties.movingPicturesHyperlinkParmeter) || itemProperties.movingPicturesHyperlinkParmeter == "false")
             {
@@ -610,6 +631,21 @@
               formStreamedMpEditor.changeOutstanding = true;
             }
           }
+          else
+          {
+            if (string.IsNullOrEmpty(itemProperties.genericHyperlinkParameter) || itemProperties.genericHyperlinkParameter == "false")
+            {
+              subMenuLevel2[index].hyperlinkParameter = "false";
+              if (!formStreamedMpEditor.changeOutstanding)
+                subMenuLevel2[index].displayName = subMenuLevel2[index].baseDisplayName;
+              formStreamedMpEditor.changeOutstanding = true;
+            }
+            else if (formStreamedMpEditor.pluginTakesParameter(subMenuLevel2[index].hyperlink))
+            {
+              subMenuLevel2[index].hyperlinkParameter = itemProperties.genericHyperlinkParameter;
+              formStreamedMpEditor.changeOutstanding = true;
+            }
+          }
         }
         // Refresh the listbox, only way to do this is clear re-populate.
         if (formStreamedMpEditor.changeOutstanding)
Index: Applications/StreamedMPEditor/xmlFiles/QuickSelectList.xml
===================================================================
--- Applications/StreamedMPEditor/xmlFiles/QuickSelectList.xml	(revision 3356)
+++ Applications/StreamedMPEditor/xmlFiles/QuickSelectList.xml	(working copy)
@@ -266,8 +266,10 @@
     <folder>emulator</folder>
     <fanartproperty>games</fanartproperty>
     <fanarthandlerenabled>False</fanarthandlerenabled>
-    <xmlfile>myEmulators</xmlfile>
-    <id>2497</id>
+    <xmlfile>Emulators2</xmlfile>
+    <id>7942</id>
+    <takesparmeter>true</takesparmeter>
+    <pluginparmeter></pluginparmeter>
   </item>
 
   <item>
