public void loadSendetermine(Serie serie)
		{
			string urlQuelle = "http://www.fernsehserien.de/";
			string serienNameEdit = serie.Name.Replace (" ", "-");
			string url = urlQuelle + serienNameEdit + "/sendetermine/"; 

			for (int index = -1; index > -50; index--)
			{
				string page = url + string.Format("{0}", index);
				string html = "";
				try
				{
					html = getHTML (page);
				}
				catch (Exception ex)
				{
					string text = "Source:\t" + ex.Source + "\nMessage: \t" + ex.Message + "\nData:\t" + ex.Data;
					Console.Write (text);
					//LogWindow.log (LogLevel.Error, ex.Message);

				}


				HtmlDocument doc = new HtmlDocument();
				doc.LoadHtml (html);
				var temp = doc.DocumentNode.SelectNodes ("//tbody");
				int sendeterminCounter = 1;
				foreach (HtmlNode tbody in temp)
				{
					try
					{
						var liste = tbody.Descendants ().Where (x => x.Name == "td").Where(x=>x.InnerText.Length > 0);

						Sendetermin einSendetermin = new Sendetermin ();
						einSendetermin.Wochentag = liste.ElementAt(0).InnerText;
						einSendetermin.Datum =  Convert.ToDateTime(liste.ElementAt(1).InnerText);
						if(einSendetermin.Datum.Year < 2013)
						{
							index = -51;
							break;
						}

						einSendetermin.Sendezeit = liste.ElementAt (2).InnerText;

						einSendetermin.Sender = liste.ElementAt (3).InnerText;
						string nummerInSerie = liste.ElementAt(4).InnerText;

						serie.GetEpisode(nummerInSerie).AddSendetermin(sendeterminCounter, einSendetermin);
						sendeterminCounter++;
					}
					catch (Exception ex)
					{
						string text = "Source:\t" + ex.Source + "\nMessage: \t" + ex.Message + "\nData:\t" + ex.Data;
						Console.Write (text);
					}

				}
				
			}
		}
		public Serie ladeSerie(string serienname)
		{
			Serie eineSerie = new Serie();

			if (_serienGeladen.Contains(serienname))
			{
				//eineSerie = _xmlLoader.ladeSerie (serienname);
				foreach (var serie in _serienData)
				{
					if (serie.Name.CompareTo(serienname) == 0)
					{
						eineSerie = serie;
					}
				}
			}
			else
			{
				eineSerie = _webLoader.loadSerie(serienname);
				if (eineSerie != null)
				{
					_webLoader.loadSendetermine(eineSerie);

					_xmlLoader.saveSerie(eineSerie);
					_serienGeladen.Add(eineSerie.Name);
					_serienData.Add(eineSerie);
					OnSerieGeladen(eineSerie.Name);	
				}
				else
				{
					return null;
				}
			}

			return eineSerie;
		}
		public void saveSerie(Serie serie)
		{
			string rawPath = string.Format (@"{0}Data/", _Ordnerpfad);
			string path = string.Format (@"{0}Data/{1}.xml", _Ordnerpfad, serie.Name);

			if(!File.Exists(path))
			{
				try
				{
					Directory.CreateDirectory (rawPath);
				}
				catch (Exception ex)
                {
                    //LogWindow.log (LogLevel.Error, ex.Message);
					//LogWindow.log (LogLevel.Error, ex.StackTrace);
				}
			}
			try
			{
                XElement root = serie.toXElement();
                XDocument doc = new XDocument();
                doc.Add(root);
                doc.Save(path);
			}
			catch (Exception ex)
			{
				//LogWindow.log (LogLevel.Error, ex.Message);
				//LogWindow.log (LogLevel.Error, ex.StackTrace);
			}
		}
		public void initData()
		{
			_serienGeladen = _xmlLoader.erstelleDateiListe();
			foreach (var serienname in _serienGeladen)
			{
				Serie temp = new Serie();
				temp = _xmlLoader.loadSerie(serienname);
				_serienData.Add(temp);
				OnSerieGeladen(temp.Name);
			}            			
		}
		public Serie loadSerie(string name)
		{
			Serie eineSerie = new  Serie(name);
			try
			{
				string path = string.Format (@"{0}Data/{1}.xml", _Ordnerpfad, name);
                
                XDocument doc = XDocument.Load(path);
                foreach (var element in doc.Descendants("Staffel"))
                {
                    Staffel eineStaffel = new Staffel(element.Attribute("Name").ToString().Trim());
                    foreach (var elementEpisode in element.Descendants("Episode"))
                    {
                        Episode eineEpisode = new Episode();
                        eineEpisode.NummerInSerie = elementEpisode.Element("NummerInSerie").Value;
                        eineEpisode.NummerInStaffel = elementEpisode.Element("NummerInStaffel").Value;
                        eineEpisode.Name_de = elementEpisode.Element("Name_de").Value;
                        eineEpisode.Erstausstrahlung_de = Convert.ToDateTime(elementEpisode.Element("Erstausstrahulung_de").Value.ToString());
                        eineEpisode.Name_eng = elementEpisode.Element("Name_eng").Value;
                        eineEpisode.Erstausstrahlung_eng = Convert.ToDateTime(elementEpisode.Element("Erstausstrahulung_eng").Value.ToString());
                        eineEpisode.IstVorhanden = (bool)elementEpisode.Element("istVorhanden");

                        foreach (var elementSendetermin in elementEpisode.Descendants("Sendetermin"))
                        {
                            Sendetermin einSendetermin = new Sendetermin();
                            einSendetermin.Datum = Convert.ToDateTime(elementSendetermin.Element("Datum").Value.ToString());
                            einSendetermin.Wochentag = elementSendetermin.Element("Wochentag").Value;
							einSendetermin.Sendezeit = elementSendetermin.Element("Sendezeit").Value;
                            einSendetermin.Sender = elementSendetermin.Element("Sender").Value;

                            eineEpisode.AddSendetermin(Convert.ToInt32( elementSendetermin.Attribute("Key").Value), einSendetermin);
                        }
                        eineStaffel.AddEpisode(eineEpisode.NummerInSerie, eineEpisode);
                    }
                    eineSerie.AddStaffel(eineStaffel.Name, eineStaffel);  
                }
           	}
			catch (Exception ex)
			{
				//LogWindow.log (LogLevel.Error, ex.Message);
				//LogWindow.log (LogLevel.Error, ex.StackTrace);
			}
			return eineSerie;
		}
		public Serie loadSerie (string serienname)
		{

			Serie eineSerie = new Serie (serienname.Trim());

			string urlQuelle = "http://www.fernsehserien.de/";
			string serienNameEdit = serienname.Replace (" ", "-");
			urlQuelle += serienNameEdit + "/episodenguide/";
			string html = "";
			try
			{
				html = getHTML (urlQuelle);
			}
			catch (Exception ex)
			{
				//LogWindow.log (LogLevel.Error, ex.Message);
				//LogWindow.log (LogLevel.Error, ex.StackTrace);
				return null;
			}

			HtmlDocument doc = new HtmlDocument();
			doc.LoadHtml (html);

			HtmlNodeCollection htmlNodeColleczion = doc.DocumentNode.SelectNodes ("//tbody[@itemprop=\"season\"]");

			foreach (HtmlNode tbody in htmlNodeColleczion) 
			{
				try
				{
					HtmlDocument doc2 = new HtmlDocument();
					doc2.LoadHtml(tbody.InnerHtml);
					var liste = doc2.DocumentNode.SelectNodes ("//td").Select (p => p.InnerText).ToList ();

					if(liste[0].Contains("Staffel"))
					{
						Staffel eineStaffel = new Staffel (liste[0].ToString().Trim());
												
						for (int index = 1; index <= liste.Count-10; index+=10) 
						{
							Episode eineEpisode = new Episode ();
							eineEpisode.NummerInSerie = liste [index + 1].ToString () + liste [index + 2].ToString ().Trim();
							eineEpisode.NummerInStaffel = liste[index + 3].ToString()  + liste [index + 4].ToString ().Trim();
							eineEpisode.Name_de = liste[index + 6].ToString().Replace(liste[index + 8].ToString().Trim(),"").Trim();
							eineEpisode.Name_eng = liste[index + 8].ToString().Trim();

							if (liste [index + 7].ToString ().Trim().Length == 10) 
							{
								eineEpisode.Erstausstrahlung_de = Convert.ToDateTime (liste [index + 7].ToString ().Trim());
							} 
							else
							{
								string temp = liste [index + 7].ToString ().Replace (liste [index + 9].ToString ().Trim (), "");
								eineEpisode.Erstausstrahlung_de = Convert.ToDateTime (temp);
							}
							eineEpisode.Erstausstrahlung_eng = Convert.ToDateTime(liste[index + 9].ToString().Trim());
							
							eineStaffel.AddEpisode (eineEpisode.NummerInSerie, eineEpisode);
						}
						eineSerie.AddStaffel(eineStaffel.Name, eineStaffel);
					}
				}
				catch (Exception ex)
				{
					//LogWindow.log (LogLevel.Error, ex.Message);
					//LogWindow.log (LogLevel.Error, ex.StackTrace);
				}
			}
			return eineSerie;
		}
		private void OnInfoButtonClicked(Object sender, EventArgs args)
		{
			try
			{
				Serie eineSerie = new Serie();
				if (_mainView.ActiveSerie.Length > 0)
				{
					eineSerie = _dataLoder.ladeSerie(_mainView.ActiveSerie);
					if (eineSerie != null)
					{
						foreach (var staffel in eineSerie.GetStaffeln())
						{
							foreach (var episode in staffel.GetEpisoden())
							{
                                _mainView.SerienListStore.AppendValues(episode);
							}
						}
                        _mainView.showSerienData();
                        _logger.log(LogLevel.Info, string.Format("Serie \"{0}\" erfolgreich zum TreeView hinzugefügt", eineSerie.Name));
					}
				}	
			}
			catch (Exception ex)
			{
                _logger.log (LogLevel.Error, ex.Message);
                _logger.log (LogLevel.Error, ex.StackTrace);
			}

		}