/// <summary>
 /// Kollar om valt avsnitt har en asterisk. Har det inte en asterisk så konkateneras en till det avsnittet.
 /// </summary>
 /// <param name="bibliotek"></param>
 /// <param name="index"></param>
 /// <returns></returns>
 public bool isListened(FeedBibliotek bibliotek, int index)
 {
     if (!bibliotek.Feed[index].Title.Contains("*"))
     {
         bibliotek.Feed[index].Title += "*";
         return true;
     }
     return false;
 }
        /// <summary>
        /// Lägger till ett feedbibliotek i en kategorilista
        /// </summary>
        /// <param name="kategori"></param>
        /// <param name="bibliotek"></param>
        /// <param name="samlingsBibliotek"></param>
        public void LäggTillFeedBibliotekTillKategoriLista(ComboBox kategori, FeedBibliotek bibliotek, SamlingsBibliotek samlingsBibliotek)
        {
            try
            {
                int index = kategori.SelectedIndex;

                KategoriBibliotek bibliotekAvFeeds = samlingsBibliotek.SamlingsLista[index];

                bibliotekAvFeeds.LäggTillFeed(bibliotek);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// Loopar igenom RSS-feeden och hämtar titeln på podcastprogrammet.
        /// Sätter angivet feedbiblioteks titel med den hämtade titeln.
        /// </summary>
        /// <param name="inUrl"></param>
        /// <param name="bibliotek"></param>
        /// <param name="samlingsBibliotek"></param>
        public void InstansieraPodcastTitel(string inUrl, FeedBibliotek bibliotek, SamlingsBibliotek samlingsBibliotek)
        {
            try
            {
                XmlNodeList feedTitle = hämtning.LaddaPodcasts(inUrl, "//channel");

                for (int j = 0; j < feedTitle.Count; j++)
                {
                    listaTitel = Convert.ToString(feedTitle[j].SelectSingleNode("title").InnerText);
                    bibliotek.FeedBibliotekTitel = listaTitel;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// Skapar ett nytt feedbibliotek. Skapar nya Feed-objekt beroende på hur många avsnitt angiven RSS-feed har.
        /// Lägger till dessa Feed-objekt i det nyskapade feedbiblioteket.
        /// </summary>
        /// <param name="cbIntervall"></param>
        /// <param name="inUrl"></param>
        /// <returns></returns>
        public FeedBibliotek SkapaFeed(ComboBox cbIntervall, string inUrl)
        {
            XmlNodeList podcastItems = hämtning.LaddaPodcasts(inUrl, "//item");

            FeedBibliotek bibliotek = new FeedBibliotek();

            bibliotek.RSSUrl = inUrl;

            for (int i = 0; i < podcastItems.Count; i++)
            {
                Feed feed = new Feed();

                podcastTitel = Convert.ToString(podcastItems[i].SelectSingleNode("title").InnerText); //Titeln på varje avsnitt.
                inUrl = Convert.ToString(podcastItems[i].SelectSingleNode("enclosure").Attributes["url"].Value); //URL på varje avsnitt.
                description = Convert.ToString(podcastItems[i].SelectSingleNode("description").InnerText); //Beskrivning på varje avsnitt.

                string nyDescription = WebUtility.HtmlDecode(description); //Snyggar upp eventuell HTML-formatering i beskrivningen.

                string trimmedTitel = podcastTitel.Trim('\t', '\n', '\v', '\f', '\r', '"'); //Ser till så att titeln inte innehåller onödiga tecken.

                feed.Title = trimmedTitel;
                feed.Url = inUrl;
                feed.Description = nyDescription;

                //Nedan så kollar koden vilken tid användaren valt och anger en int-variabel med motsvarande tid i millisekunder.
                if (cbIntervall.SelectedIndex == 0)
                {
                    uppdateringsIntervall = 5400000; //90 minuter.
                }
                if (cbIntervall.SelectedIndex == 1)
                {
                    uppdateringsIntervall = 10800000; //180 minuter.
                }
                if (cbIntervall.SelectedIndex == 2)
                {
                    uppdateringsIntervall = 21600000; //360 minuter.
                }

                bibliotek.UppdateringsIntervall = uppdateringsIntervall;
                bibliotek.LäggTillPodcast(feed);

            }
            return bibliotek;
        }
        /// <summary>
        /// Tömmer angivet feedbibliotek på feed-objekt och lägger in nya feed-objekt.
        /// </summary>
        /// <param name="inUrl"></param>
        /// <param name="samlingsBibliotek"></param>
        public void LaddaOmPrenumeration(string inUrl, SamlingsBibliotek samlingsBibliotek)
        {
            url = inUrl;

            for (int i = 0; i < samlingsBibliotek.Antal; i++)
            {
                for (int j = 0; j < samlingsBibliotek.SamlingsLista[i].Antal; j++)
                {
                    if (samlingsBibliotek.SamlingsLista[i].KategoriLista[j].RSSUrl == url)
                    {
                        feedBibliotekFörAttLaddaOm = samlingsBibliotek.SamlingsLista[i].KategoriLista[j];
                    }
                }
            }

            feedBibliotekFörAttLaddaOm.Feed.Clear();
            feedBibliotekFörAttLaddaOm = LaddaOmBibliotek(feedBibliotekFörAttLaddaOm, url);
        }
        /// <summary>
        /// Skapar ett feedbibliotek basererat på det som är angett i parameterlistan. Skapar nya Feed-objekt beroende på hur många avsnitt angiven RSS-feed har.
        /// Lägger till dessa Feed-objekt i feedbiblioteket. Väldigt lik metoden ovan.
        /// </summary>
        /// <param name="feedBibliotek"></param>
        /// <param name="inUrl"></param>
        /// <returns></returns>
        public FeedBibliotek LaddaOmBibliotek(FeedBibliotek feedBibliotek, string inUrl)
        {
            XmlNodeList podcastItems = hämtning.LaddaPodcasts(inUrl, "//item");

            FeedBibliotek bibliotek = feedBibliotek;

            for (int i = 0; i < podcastItems.Count; i++)
            {
                Feed feed = new Feed();

                podcastTitel = Convert.ToString(podcastItems[i].SelectSingleNode("title").InnerText);
                inUrl = Convert.ToString(podcastItems[i].SelectSingleNode("enclosure").Attributes["url"].Value);
                description = Convert.ToString(podcastItems[i].SelectSingleNode("description").InnerText);

                string nyDescription = WebUtility.HtmlDecode(description);

                string trimmedTitel = podcastTitel.Trim('\t', '\n', '\v', '\f', '\r', '"');

                feed.Title = trimmedTitel;
                feed.Url = inUrl;
                feed.Description = nyDescription;

                bibliotek.LäggTillPodcast(feed);

            }
            return bibliotek;
        }
 public void LäggTillFeed(FeedBibliotek f)
 {
     KategoriLista.Add(f);
 }