private void AvailableEntries_MouseDoubleClick (object sender, MouseButtonEventArgs e)
			{
			ListView Items = sender as ListView;
			ListViewItem SelectedItem = (ListViewItem) Items.SelectedItem;
			if (SelectedItem == null)
				return;
			String PackageToProcessName = SelectedItem.Tag as String;
			m_GraphicsHandling = new GraphicsHandling (IntermediateStorageDirectory);
			Pkg = new PackagingHandler ();
			if (Pkg.OpenReadWrite (PackageToProcessName) == null)
				return;
			m_GraphicsHandling.DoStartupProcessing (Pkg);
			List<double> Durations = m_GraphicsHandling.PageDurations;
			ImageTabControl.Items.Clear ();
			int PageIndex = 0;
			if (m_GraphicsHandling.PageIDsToPlay == null)
				{
				MessageBox.Show ("Fehler", "Keine Pages To Play bei \"" + PackageToProcessName + "\"");
				Pkg.ClosePackage ();
				return;
				}
			foreach (String PageID in m_GraphicsHandling.PageIDsToPlay)
				{
				Image PageImage = new Image ();
				PageImage.Tag = new CVM.RedrawInformation
					(PageID, m_GraphicsHandling.PageOrdersToPlay [PageIndex], PageImage);
				BitmapSource BitmapSourceDrawing = m_GraphicsHandling.GetCreatedFrameBitmapSource (PageImage.Tag as CVM.RedrawInformation);
				TabItem ImageTab = new TabItem ();
				ImageTabControl.Items.Add (ImageTab);
				ImageTab.Header = m_GraphicsHandling.ActuallTableName + " " + Convert.ToString (++PageIndex);
				PageImage.Width = 640;
				PageImage.Height = 360;
				ImageTab.Content = PageImage;
				PageImage.Source = BitmapSourceDrawing;

				}
			Pkg.ClosePackage ();

			}
		private void Window_Loaded (object sender, RoutedEventArgs e)
			{
			WMB.WPMediaApplicationState.Instance.Properties ["DataBase"] = DataAccess;
			DoSpecialCorrection ();
			return;
			DoDefaultCreationForOldPackages ();
			DoPictureRenaming ();
			TestDefaultFilling ();
			//LoadPkgs ();
			PackageFileNames = WMB.Basics.GetFilesFromDirectory (IntermediateStorageDirectory, new string [] {"*.pkg"}, 3);
			foreach (String PackageToProcessName in PackageFileNames)
				{
				m_GraphicsHandling = new GraphicsHandling (IntermediateStorageDirectory);
				Pkg = new PackagingHandler ();
				if (Pkg.OpenReadWrite (PackageToProcessName) == null)
					continue;
				m_GraphicsHandling.DoStartupProcessing (Pkg);
				ListViewItem Entry = new ListViewItem ();
				Entry.Tag = PackageToProcessName;
				Entry.Content = PackageToProcessName.Replace (IntermediateStorageDirectory, "");
				AvailableEntries.Items.Add (Entry);

// Copy Loop
				List<String> DocumentNames = Pkg.GetOriginalDocumentNamesInPackage ();
				foreach (String DocumentName in DocumentNames)
					{
					if (DocumentName.IndexOf ("BauchBinde") != -1)
						{
						Pkg.CopyFileElement (DocumentName, DocumentName.Replace ("\\\\", "\\")
						                  	.Replace ("BauchBinde", "Content_KP_P03_Frame_02"));
						Pkg.FlushPackage ();
						}
					if (DocumentName.IndexOf ("Bauchbinde") != -1)
						{
						Pkg.CopyFileElement (DocumentName, DocumentName.Replace ("\\\\", "\\")
											.Replace ("Bauchbinde", "Content_KP_P03_Frame_02"));
						Pkg.FlushPackage ();
						}
					if (DocumentName.IndexOf ("StandardBackGround") != -1)
						{
						Pkg.DeleteFileElement (DocumentName);
						Pkg.FlushPackage ();
						}
					if (DocumentName.IndexOf ("Intern_Kalender") != -1)
						{
						Pkg.DeleteFileElement (DocumentName);
						Pkg.FlushPackage ();
						}
					}

// Rename Loop	
				DocumentNames = Pkg.GetOriginalDocumentNamesInPackage ();
				foreach (String DocumentName in DocumentNames)
					{
					String NewName = DocumentName.Replace ("\\\\", "\\");
					int SearchIndex = 0;
					while (SearchIndex < ReplaceFileNames.Length)
						{
						NewName = NewName.Replace (ReplaceFileNames [SearchIndex], ReplaceFileNames [SearchIndex + 1]);
						SearchIndex += 2;
						}

					if (NewName != DocumentName)
						Pkg.RenameFileElement (DocumentName, NewName);
					}

				m_GraphicsHandling.RevertEntryToFileDefault ();

				m_GraphicsHandling.Close ();

				}
			CheckAllFunctionality ();
			}
		private void CheckAllFunctionality ()
			{
			int CorruptCounter = 0;
			foreach (ListViewItem ItemToProcess in AvailableEntries.Items)
				{
				String PackageToProcessName = ItemToProcess.Tag as String;
				m_GraphicsHandling = new GraphicsHandling (IntermediateStorageDirectory);
				Pkg = new PackagingHandler ();
				if (Pkg.OpenReadWrite (PackageToProcessName) == null)
					{
					ItemToProcess.Tag = "--- A -" + ItemToProcess.Tag as String;
					CorruptCounter++;
					ItemToProcess.IsEnabled = false;
					continue;
					}
				
				m_GraphicsHandling.DoStartupProcessing (Pkg);
				List<double> Durations = m_GraphicsHandling.PageDurations;
				ImageTabControl.Items.Clear ();
				int PageIndex = 0;
				if (m_GraphicsHandling.PageIDsToPlay == null)
					{
					ItemToProcess.Tag = "--- B -" + ItemToProcess.Tag as String;
					Pkg.ClosePackage ();
					CorruptCounter++;
					ItemToProcess.IsEnabled = false;
					continue;
					}
				if (m_GraphicsHandling.PageIDsToPlay.Count == 0)
					{
					ItemToProcess.Tag = "--- C -" + ItemToProcess.Tag as String;
					Pkg.ClosePackage ();
					CorruptCounter++;
					ItemToProcess.IsEnabled = false;
					continue;
					}
				m_GraphicsHandling.CheckAndRemoveUnuseableMaterials ();
				Pkg.ClosePackage ();

				}
			MessageBox.Show (CorruptCounter.ToString () + " falsche Einträge markiert");
			}
		public int CreateOrCheckInternetJPGPicturesFor (String WPMediaRoot, String TableName, String ID)
			{
			GraphicsHandling GraphicsHandler = new GraphicsHandling (WPMediaRoot);
			String PackageName = GraphicsHandler.GetPackageName (TableName, ID);
			if (!File.Exists (PackageName))
				{
				String ArchivedPackageName = PackageName.Replace
							("\\" + CVM.CommonValues.XML_AUTO_CONTENT_SOURCE + "\\",
							"\\" + CVM.CommonValues.XML_AUTO_CONTENT_OLD_SOURCE + "\\");
				if (File.Exists (ArchivedPackageName))
					PackageName = ArchivedPackageName;
				else
					{
					WMB.Basics.ReportErrorToEventViewer("Es würde ein neues Package angelegt:\r\n"
						+ PackageName + "\r\nAus Sicherheitsgründen wird die Neuanlage abgebrochen");
					return 0;
					Object Pkg = GraphicsHandler.CreateNewPackage(m_DataBase, TableName, ID);
					GraphicsHandler.RemoteWPMediaRoot = WPMediaRoot;
					GraphicsHandler.InsertDefaultPackageMaterials (m_DataBase, Pkg);
					GraphicsHandler.ActualizeInstanceDataIntoFrameDataSet (m_DataBase, TableName, ID);
					GraphicsHandler.DoStartupProcessing (m_DataBase, Pkg);
					if (Convert.ToInt32 (GraphicsHandler.ActuallReadableContentRow ["NumberOfPages"]) !=
					    GraphicsHandler.PageIDsToPlay.Count)
						{
						String UpdateStatement = "Update " + TableName + " set NumberOfPages = "
						                         + Convert.ToString (GraphicsHandler.PageIDsToPlay.Count) + " where ID = '" + ID + "'";
						m_DataBase.RunSQLBatch (UpdateStatement);
						}
					PackageName = GraphicsHandler.Close ();

					if ((!File.Exists (PackageName))
						&& (!File.Exists (ArchivedPackageName)))
						{
						WMB.Basics.ReportErrorToEventViewer ("WPMediaCentralServices.WriteOrRewritePicturesFor",
						                                     "Weder der File\r\n\"" + PackageName + "\" noch der File\r\n\""
						                                     + ArchivedPackageName + "\" wurden vorerst nicht gefunden und "
																+ "konnten danach auch nicht erzeugt werden");
						return 0;
						}
					GraphicsHandler = new GraphicsHandling (WPMediaRoot);
					}
					
				}
			GraphicsHandler.GetInstatiatedPackage (PackageName);
			int NumberOfCreatedPictures = 0;
			if (GraphicsHandler.CheckPackageConsistence () == true)
				{
				NumberOfCreatedPictures = CreateOrCheckInternetJPGPicturesFor (WPMediaRoot, GraphicsHandler);
				}
			GraphicsHandler.Close ();
			return NumberOfCreatedPictures;
			}