Introduce in Web context
authortotetm <>
Thu, 14 Jan 2010 16:39:50 +0100
changeset 30 644e3cd48034
parent 29 5f8d275750e7
child 31 775d895e5d4d
Introduce in Web context
.hgignore
client/src/Iri.Modernisation.Controls/Iri.Modernisation.Controls.csproj
client/src/Iri.Modernisation.Controls/View/AnnotationMaker/AnnotationMaker.xaml.cs
client/src/Iri.Modernisation.Controls/View/ClickMenu/ClickMenu.xaml
client/src/Iri.Modernisation.Controls/View/ClickMenu/ClickMenu.xaml.cs
client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml.cs
client/src/Iri.Modernisation.Controls/View/NavigationBar/ConsultMenu.xaml
client/src/Iri.Modernisation.Controls/View/NavigationBar/PersonnalChutier.xaml
client/src/Iri.Modernisation.Controls/View/NavigationBar/ProductionMenu.xaml
client/src/Iri.Modernisation.Controls/View/NavigationBar/ReferencesChutier.xaml
client/src/Iri.Modernisation.Controls/View/ProductionTimeLine/CustomableVideoElement.xaml.cs
client/src/Iri.Modernisation.Controls/View/ProductionTimeLine/ProductionTimeLine.xaml.cs
client/src/Iri.Modernisation.Controls/View/ProductionView/ProductionView.xaml
client/src/Iri.Modernisation.Controls/View/VideoViewer/VideoViewer.xaml
client/src/Iri.Modernisation.Controls/View/VideoViewer/VideoViewer.xaml.cs
client/src/Iri.Modernisation.Controls/ViewModel/AnnotationMaker/AnnotationMakerVM.cs
client/src/Iri.Modernisation.Controls/ViewModel/ConsultationBookView/ConsultationBookViewVM.cs
client/src/Iri.Modernisation.Controls/ViewModel/ConsultationView/ConsultationViewVM.cs
client/src/Iri.Modernisation.Controls/ViewModel/HeaderProduction/HeaderProductionVM.cs
client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs
client/src/Iri.Modernisation.Data/Iri.Modernisation.Data.csproj
client/src/Iri.Modernisation.Data/Ldt/LDTFile.cs
client/src/Iri.Modernisation.Data/Ldt/Readers.cs
client/src/Iri.Modernisation.Data/Models/FactoryVideoLivre.cs
client/src/Iri.Modernisation.Data/Models/IVideoBookConverter.cs
client/src/Iri.Modernisation.Data/Models/Loader.cs
client/src/Iri.Modernisation.Data/Models/SettingsProject.cs
client/src/Iri.Modernisation.Data/Models/VideoBook.cs
client/src/Iri.Modernisation/App.xaml
client/test/WebTest/WebTest/WebTest.Web/ProjectConfig.xml
client/test/WebTest/WebTest/WebTest.Web/Properties/AssemblyInfo.cs
client/test/WebTest/WebTest/WebTest.Web/Silverlight.js
client/test/WebTest/WebTest/WebTest.Web/Web.Debug.config
client/test/WebTest/WebTest/WebTest.Web/Web.Release.config
client/test/WebTest/WebTest/WebTest.Web/Web.config
client/test/WebTest/WebTest/WebTest.Web/WebTest.Web.csproj
client/test/WebTest/WebTest/WebTest.Web/WebTestTestPage.aspx
client/test/WebTest/WebTest/WebTest.Web/WebTestTestPage.html
client/test/WebTest/WebTest/WebTest.sln
client/test/WebTest/WebTest/WebTest/App.xaml
client/test/WebTest/WebTest/WebTest/App.xaml.cs
client/test/WebTest/WebTest/WebTest/MainPage.xaml
client/test/WebTest/WebTest/WebTest/MainPage.xaml.cs
client/test/WebTest/WebTest/WebTest/Properties/AppManifest.xml
client/test/WebTest/WebTest/WebTest/Properties/AssemblyInfo.cs
client/test/WebTest/WebTest/WebTest/WebTest.csproj
client/test/mainInterface/Iri.Modernisation.Test.MainInterface/AvailableVideoBooks.xml
client/test/mainInterface/Iri.Modernisation.Test.MainInterface/Iri.Modernisation.Test.MainInterface.csproj
client/test/mainInterface/Iri.Modernisation.Test.MainInterface/MainPage.xaml.cs
--- a/.hgignore	Fri Jan 08 11:33:24 2010 +0100
+++ b/.hgignore	Thu Jan 14 16:39:50 2010 +0100
@@ -6,3 +6,6 @@
 glob:Backup/*
 glob:_UpgradeReport_Files/*
 glob:UpgradeLog.XML
+glob:Content/*
+glob:ClientBin/*
+glob:bin/*
--- a/client/src/Iri.Modernisation.Controls/Iri.Modernisation.Controls.csproj	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/Iri.Modernisation.Controls.csproj	Thu Jan 14 16:39:50 2010 +0100
@@ -226,6 +226,11 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
+    <Page Include="..\Iri.Modernisation.Styles\Templates_CommonTemplate.xaml">
+      <Link>Templates_CommonTemplate.xaml</Link>
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
     <Page Include="View\AnnotationMaker\AnnotationMaker.xaml">
       <Generator>MSBuild:MarkupCompilePass1</Generator>
       <SubType>Designer</SubType>
--- a/client/src/Iri.Modernisation.Controls/View/AnnotationMaker/AnnotationMaker.xaml.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/AnnotationMaker/AnnotationMaker.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -16,11 +16,12 @@
 		{
 			// Required to initialize variables
 			InitializeComponent();
-           // RectPolemic.Resources.Add("PolemicType", PolemicElementType.Polemic);
+            //RectPolemic.Resources.Add("PolemicType", PolemicElementType.Polemic);
             //RectAdhesion.Resources.Add("PolemicType", PolemicElementType.Adhesion);
             //RectQuestion.Resources.Add("PolemicType", PolemicElementType.Question);
             //RectReferences.Resources.Add("PolemicType", PolemicElementType.Reference);
             
+            
 		}
 	}
 }
\ No newline at end of file
--- a/client/src/Iri.Modernisation.Controls/View/ClickMenu/ClickMenu.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/ClickMenu/ClickMenu.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -7,6 +7,7 @@
 	xmlns:local="clr-namespace:Iri.Modernisation.Controls.View"
 	x:Class="Iri.Modernisation.Controls.View.ClickMenu" BorderThickness="2,2,0,0" Height="120" Width="152"
     xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions" 
+    Visibility="Collapsed"
     
     >
 	<UserControl.Background>
--- a/client/src/Iri.Modernisation.Controls/View/ClickMenu/ClickMenu.xaml.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/ClickMenu/ClickMenu.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -29,6 +29,8 @@
 		public ClickMenu()
 		{
 			// Required to initialize variables
+          
+            /**/
 			InitializeComponent();
             /*Animation*/
             Commands.PolemicElement.ElementSelected.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(MenuClick_Executed);
@@ -47,7 +49,6 @@
             _contextualiserPanel._polemicItem.ClickMenuItemSelected += Commands.Action.Execute;
             _contextualiserPanel._questionItem.ClickMenuItemSelected += Commands.Action.Execute;
             _contextualiserPanel._referenceItem.ClickMenuItemSelected += Commands.Action.Execute;
-            _annoterPanel._videoItem.ClickMenuItemSelected += Commands.Action.Execute;
             _annoterPanel._textItem.ClickMenuItemSelected += Commands.ClickMenu.CreateNewTextualAnnotation.Execute;
 
         }
@@ -57,11 +58,6 @@
             MessageBox.Show("Action - Command:"+((ClickMenuItem)e.Parameter).Title);
         }
 
-        void ClickMenuItemSelected(object sender, ClickMenuItemSelectedEventArgs e)
-        {
-            MessageBox.Show("Action");
-              }
-
     
 
         
--- a/client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -17,15 +17,15 @@
     {
         public ButtonHeaderControl()
         {
-            _isMouseInside = false;
+           
             InitializeComponent();
         }
-        private bool _isMouseInside;
+
         Point tempPoint = new Point();
 
         private void LayoutRoot_MouseMove(object sender, MouseEventArgs e)
         {
-            _isMouseInside = true;
+          
             Point p = e.GetPosition(this);
             tempPoint.X = 1-  (p.X / ActualWidth);
             //tempPoint.Y = p.Y / ActualHeight;
@@ -83,13 +83,13 @@
 
         private void LayoutRoot_MouseEnter(object sender, MouseEventArgs e)
         {
-            _isMouseInside = true;
+           
             animEnter.Begin();
         }
 
         private void LayoutRoot_MouseLeave(object sender, MouseEventArgs e)
         {
-            _isMouseInside = false;
+        
             animLeave.Begin();
 
         }
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/ConsultMenu.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/ConsultMenu.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -11,8 +11,14 @@
      xmlns:Input="clr-namespace:SLExtensions.Input;assembly=SLExtensions" Height="280"
 	>
     <UserControl.Resources>
+
         <ResourceDictionary>
-        <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_CommonTemplate.xaml"/>
+                <ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_Binder.xaml"/>
+
+            </ResourceDictionary.MergedDictionaries>
+			    <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
         </ResourceDictionary>
     </UserControl.Resources>
         <StackPanel x:Name="ConsultMenuPanel">
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/PersonnalChutier.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/PersonnalChutier.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -6,6 +6,9 @@
    >
     <UserControl.Resources>
         <ResourceDictionary>
+		<ResourceDictionary.MergedDictionaries>
+			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_CommonTemplate.xaml"/>
+         </ResourceDictionary.MergedDictionaries>  
             <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
         </ResourceDictionary>
     </UserControl.Resources>
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/ProductionMenu.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/ProductionMenu.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -11,6 +11,9 @@
     
 <UserControl.Resources>
         <ResourceDictionary>
+		<ResourceDictionary.MergedDictionaries>
+			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_CommonTemplate.xaml"/>
+         </ResourceDictionary.MergedDictionaries>  
             <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
         </ResourceDictionary>
     </UserControl.Resources>
--- a/client/src/Iri.Modernisation.Controls/View/NavigationBar/ReferencesChutier.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/NavigationBar/ReferencesChutier.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -11,7 +11,10 @@
 >
 <UserControl.Resources>
         <ResourceDictionary>
-            <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
+		<ResourceDictionary.MergedDictionaries>
+			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_CommonTemplate.xaml"/>
+         </ResourceDictionary.MergedDictionaries>  
+		  <Lang:LangResource x:Name="LangLabels" x:Key="LangLabels"></Lang:LangResource>
         </ResourceDictionary>
     </UserControl.Resources>
 	<StackPanel x:Name="ChutierPanel">
--- a/client/src/Iri.Modernisation.Controls/View/ProductionTimeLine/CustomableVideoElement.xaml.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/ProductionTimeLine/CustomableVideoElement.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -25,6 +25,11 @@
                 {
                     SetValue(TrimLeftProperty, value);
                     ((CustomableVideoElementVM)DataContext).BeginTrim = ((CustomableVideoElementVM)DataContext).BeginTrim.Add(new TimeSpan(0, 0, 0, 0, (int)((value) / ProductionTimeLine.ScaleTime)));
+                    if (((CustomableVideoElementVM)DataContext).Duration < 1)
+                    {
+                        ((CustomableVideoElementVM)DataContext).BeginTrim= ((CustomableVideoElementVM)DataContext).RunTime - ((CustomableVideoElementVM)DataContext).EndTrim -  TimeSpan.FromSeconds(1);
+
+                    }
                     this.Width = ((CustomableVideoElementVM)DataContext).Duration  ;
                 }
             }
@@ -44,7 +49,16 @@
                 {
                     SetValue(TrimRightProperty, value);
                     ((CustomableVideoElementVM)DataContext).EndTrim = ((CustomableVideoElementVM)DataContext).EndTrim.Add(new TimeSpan(0, 0, 0, 0, (int)((value) / ProductionTimeLine.ScaleTime)));
-                    this.Width = ((CustomableVideoElementVM)DataContext).Duration;
+
+                    if (((CustomableVideoElementVM)DataContext).Duration<1)
+                    {
+                        ((CustomableVideoElementVM)DataContext).EndTrim = ((CustomableVideoElementVM)DataContext).RunTime -((CustomableVideoElementVM)DataContext).BeginTrim - TimeSpan.FromSeconds(1);
+                    
+                    }
+
+                    
+                        this.Width = ((CustomableVideoElementVM)DataContext).Duration;
+                    
                 }
             }
         }
--- a/client/src/Iri.Modernisation.Controls/View/ProductionTimeLine/ProductionTimeLine.xaml.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/ProductionTimeLine/ProductionTimeLine.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -19,10 +19,7 @@
 	{
         public static double ScaleTime
         {
-            get
-            ;
-
-
+            get;
             set;
         }
 		public ProductionTimeLine()
@@ -32,7 +29,6 @@
 			InitializeComponent();
             Commands.ProductionTimeLine.EditorPartSelected.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(EditorPartSelected_Executed);
             Commands.ProductionView.VideoRecordUpdated.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(VideoRecordUpdated_Executed);
-            Commands.Action.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(Action_Executed);
             TimeSlider.MouseLeftButtonUp += new MouseButtonEventHandler(TimeSlider_MouseLeftButtonUp);
             //TimeSlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(TimeSlider_ValueChanged);
             TimeSlider.Maximum = TimeSlider.ActualWidth / ProductionTimeLine.ScaleTime;
@@ -67,13 +63,8 @@
         {
           UpdateElements();
         }
-     
+        private double _sumOfLengh=0;
 
-        void Action_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
-        {
-            AddSequenceButton.Content = ((MouseEventArgs)e.Parameter).GetPosition(this).X;
-        }
-        private double _sumOfLengh=0;
         public void UpdateElements()
         {
             TimeSlider.Maximum = TimeSlider.ActualWidth / ProductionTimeLine.ScaleTime;
--- a/client/src/Iri.Modernisation.Controls/View/ProductionView/ProductionView.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/ProductionView/ProductionView.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -15,7 +15,7 @@
     	<View:HeaderProduction DataContext="{Binding ViewModelHeaderProduction}" x:Name="HeaderProductionElement" HorizontalAlignment="Left" VerticalAlignment="Top" d:LayoutOverrides="VerticalAlignment"/>
     	<View:ProductionTimeLine x:Name="ProductionTimeLineElement" Height="176" VerticalAlignment="Bottom" DataContext="{Binding ViewModelProductionTimeLine}"/>
     	<View:ProductionEditor DataContext="{Binding ViewModelProductionEditor}" Margin="272,115,0,0" HorizontalAlignment="Left" Height="381" VerticalAlignment="Top"/>
-    	<View:VideoViewer DataContext="{Binding ViewModelMasterVideoViewer}" HorizontalAlignment="Right" Margin="0,115,8,204" Width="404"/>
+    	<View:VideoViewer DataContext="{Binding ViewModelMasterVideoViewer}" HorizontalAlignment="Right" Margin="0,153,10,0" Width="404" VerticalAlignment="Top" Height="343"/>
     	<StackPanel x:Name="RecordsPanel" HorizontalAlignment="Left" Margin="8,288,0,192" Width="248">
     		<TextBlock Style="{StaticResource CommonTextBlock}" Text="{Binding RecordsLabel, Source={StaticResource LangLabels}}" x:Name="RecordLabel" TextWrapping="Wrap"/>
     		<ListBox SelectedItem="{Binding SelectedVideoSequence,Mode=TwoWay}" x:Name="RecordsList" ItemsSource="{Binding RecordedVideoSequences}" Height="152">
--- a/client/src/Iri.Modernisation.Controls/View/VideoViewer/VideoViewer.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/VideoViewer/VideoViewer.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -11,11 +11,11 @@
 	<UserControl.Resources>
         <Converter:BoolToVisibility x:Key="BoolToVisibility"></Converter:BoolToVisibility>
     </UserControl.Resources>
-	<StackPanel x:Name="VideoViewerPanel" Margin="0,2,8,0" Background="#FF323232">
+	<StackPanel x:Name="VideoViewerPanel" Margin="0,2,0,0" Background="#FF323232" HorizontalAlignment="Left" Width="215">
 		<TextBlock x:Name="textBlock" Text="{Binding Info}" TextWrapping="Wrap"/>
 
 <!-- Source="{Binding Source,Mode=TwoWay}" -->
-        <MediaElement AutoPlay="{Binding AutoPlay}" x:Name="VideoScreen" Position="{Binding Position,Mode=TwoWay}" Source="{Binding USource,Mode=TwoWay}"  Margin="8,0" MediaFailed="VideoScreen_MediaFailed"  MarkerReached="VideoScreen_MarkerReached" Height="146" VerticalAlignment="Top" />
+        <MediaElement AutoPlay="{Binding AutoPlay}" x:Name="VideoScreen" Position="{Binding Position,Mode=TwoWay}" Source="{Binding USource,Mode=TwoWay}"  Margin="8,0" MediaFailed="VideoScreen_MediaFailed"  MarkerReached="VideoScreen_MarkerReached" VerticalAlignment="Top" />
             <StackPanel x:Name="VideoViewerControlPanel" Orientation="Horizontal" Margin="8,0" VerticalAlignment="Bottom" HorizontalAlignment="Center">
 			<Button Visibility="{Binding PlayControl, Converter={StaticResource BoolToVisibility}}" Input:CommandService.Command="PreviousVideo" x:Name="VideoControlPreviousChapter"  Content="&lt;&lt;"/>
 			<Button Visibility="{Binding RecordControl, Converter={StaticResource BoolToVisibility}}" Input:CommandService.Command="RecordVideo" x:Name="VideoControlRecord"  Width="43" Content="O" />
--- a/client/src/Iri.Modernisation.Controls/View/VideoViewer/VideoViewer.xaml.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/View/VideoViewer/VideoViewer.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -108,7 +108,7 @@
 
         void Play_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
         {
-            if (e.Parameter == DataContext || e.Parameter == null)
+            if ((e.Parameter == DataContext || e.Parameter == null) && VideoScreen.Source != null)
             {
                 _isPlayed = true;
                 VideoScreen.Play();
--- a/client/src/Iri.Modernisation.Controls/ViewModel/AnnotationMaker/AnnotationMakerVM.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/ViewModel/AnnotationMaker/AnnotationMakerVM.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -39,12 +39,12 @@
                 _refElement = value;
 
                 _newAnnotation = new Annotation(((PolemicElement)value).Chapter);
-                Begin = ((PolemicElement)value).TimerIn.TotalMilliseconds;
-                End = ((PolemicElement)value).TimerOut.TotalMilliseconds;
+               
                 BasicRelation = new PolemicLink() { FromElement = ((PolemicElement)value), ToElement = _newAnnotation, Type = null};
                 PolemicRelation = new PolemicLink();
                 PolemicRelation.FromElement = _newAnnotation;
-               
+                Begin = ((PolemicElement)value).TimerIn.TotalMilliseconds;
+                End = ((PolemicElement)value).TimerOut.TotalMilliseconds;
                 OnPropertyChanged(String.Empty);
                 //OnPropertyChanged("RefElement");
                 //OnPropertyChanged("IsControlEnable");
@@ -334,19 +334,15 @@
         /// <param name="refAParam">Element référant</param>
         public AnnotationMakerVM(PolemicElement refAParam)
         {
-
-
             RefElement = refAParam;
-
-
-
             _newAnnotation = new Annotation(RefElement.Chapter);
-            _begin = RefElement.TimerIn;
-            _end = RefElement.TimerOut;
+           
             _basicRelation = new PolemicLink() { FromElement = RefElement, ToElement = _newAnnotation, Type = null};
             _polemicRelation = new PolemicLink();
             PolemicRelation.FromElement = _newAnnotation;
             InitializeCommands();
+            Begin = RefElement.TimerIn.TotalMilliseconds;
+            End = RefElement.TimerOut.TotalMilliseconds;
         }
 
 
--- a/client/src/Iri.Modernisation.Controls/ViewModel/ConsultationBookView/ConsultationBookViewVM.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/ViewModel/ConsultationBookView/ConsultationBookViewVM.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -305,7 +305,7 @@
             _title = param.SelectedBook.Title;
             _author = param.SelectedBook.Author;
             _chapters = param.SelectedBook.Chapters;
-            //
+           
             if (param.SelectedBook.Chapters[0].VideoSequences.Count != 0)
             {
                 ActualVideoSourceVM = new VideoViewerVM(true,false) { Source = param.SelectedBook.MediaPath }; 
@@ -323,17 +323,20 @@
 
         private void ActualVideoSourceVM_Tick(object sender, VideoViewerVMEventArgs e)
         {
-            TimeSpan Pos = e.Position; 
-            SelectedBookVM.Position = Pos.TotalMilliseconds;
-            if (SelectedIndex.TimerOut < Pos || SelectedIndex.TimerIn > Pos)
+            if(SelectedBook!=null)
             {
-                foreach (SegmentIndex Index in SelectedIndex.Chapter.Index)
+                TimeSpan Pos = e.Position; 
+                SelectedBookVM.Position = Pos.TotalMilliseconds;
+                if (SelectedIndex.TimerOut < Pos || SelectedIndex.TimerIn > Pos)
                 {
-                    if (Index.TimerIn <= Pos && Index.TimerOut >= Pos)
+                    foreach (SegmentIndex Index in SelectedIndex.Chapter.Index)
                     {
-                        SelectedIndex = Index;
+                        if (Index.TimerIn <= Pos && Index.TimerOut >= Pos)
+                        {
+                            SelectedIndex = Index;
+                        }
+
                     }
-
                 }
             }
         }
--- a/client/src/Iri.Modernisation.Controls/ViewModel/ConsultationView/ConsultationViewVM.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/ViewModel/ConsultationView/ConsultationViewVM.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -132,16 +132,21 @@
             {
                 return _annotationMakerVM;
             }
+            set
+            {
+                _annotationMakerVM = value;
+                OnPropertyChanged("ViewModelAnnotationMaker");
+            }
         }
         private void CreateNewTextualAnnotation_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
         {
-            ViewModelAnnotationMaker.RefElement = SelectedElement;
+            ViewModelAnnotationMaker.RefElement=SelectedElement;
         }
         public ConsultationViewVM()
         {
             InitializeCommands();
             _consultationBookViewContextMenu = new ConsultationBookViewVM();
-            _annotationMakerVM = new AnnotationMakerVM();
+            ViewModelAnnotationMaker = new AnnotationMakerVM();
             SelectedVideoBooks = new SLExtensions.Collections.ObjectModel.ObservableCollection<BookTimeLineVM>();
         }
 
--- a/client/src/Iri.Modernisation.Controls/ViewModel/HeaderProduction/HeaderProductionVM.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/ViewModel/HeaderProduction/HeaderProductionVM.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -99,7 +99,7 @@
                if(_productionChapters.Count > 1)
                {
                    _productionChapters[_productionChapters.Count - 2].EditEnded+=new HeaderProductionChapterVM.EditEndedDelegate(temp.Enable);
-                  
+                   
                }
               
                 
--- a/client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -132,7 +132,7 @@
             Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(ClickAddSelectedRecord_Executed);
             ViewModelProductionTimeLine.SwitchVideo += new EventHandler<ProductionTimeLineVMEventArgs>(ViewModelProductionTimeLine_SwitchVideo);
             ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(ViewModelMasterVideoViewer_Tick);
-            
+            ViewModelHeaderProduction.Change += new EventHandler<HeaderProductionVMArgs>(ViewModelHeaderProduction_Change);
        }
         public ProductionViewVM()
         {
@@ -162,7 +162,7 @@
                     EndTrim = new TimeSpan(0, 0, 0),
                 });
             }
-            ViewModelHeaderProduction.Change += new EventHandler<HeaderProductionVMArgs>(ViewModelHeaderProduction_Change);
+           
             InitializeCommands();
             OnPropertyChanged(String.Empty);
            
@@ -187,7 +187,6 @@
             {
                 ViewModelProductionTimeLine.ActualVideoSequence = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1];
                 ViewModelMasterVideoViewer.Source = ViewModelProductionTimeLine.ActualVideoSequence.Path;
-                
                 ViewModelMasterVideoViewer.GoTo(ViewModelProductionTimeLine.ActualVideoSequence.BeginTrim);
             }
             ViewModelProductionTimeLine.Position = newPos;
@@ -195,7 +194,7 @@
 
         private void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
         {
-            if (ViewModelProductionTimeLine.SelectedChapter != -1)
+            if (ViewModelHeaderProduction.SelectedChapter != null && ViewModelHeaderProduction.SelectedChapter.IsActive)
             {
                 if (!ViewModelProductionTimeLine.IsIndexing)
                 {
--- a/client/src/Iri.Modernisation.Data/Iri.Modernisation.Data.csproj	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Data/Iri.Modernisation.Data.csproj	Thu Jan 14 16:39:50 2010 +0100
@@ -89,6 +89,8 @@
     <Compile Include="Ldt\LDTProject.cs" />
     <Compile Include="Ldt\Readers.cs" />
     <Compile Include="Models\Annotation.cs" />
+    <Compile Include="Models\IVideoBookConverter.cs" />
+    <Compile Include="Models\Loader.cs" />
     <Compile Include="Models\PolemicTypeDescription.cs" />
     <Compile Include="Models\AnnotationSession.cs" />
     <Compile Include="Models\FactoryVideoLivre.cs" />
@@ -96,6 +98,7 @@
     <Compile Include="Models\PolemicLink.cs" />
     <Compile Include="Models\SegmentElement.cs" />
     <Compile Include="Models\SegmentIndex.cs" />
+    <Compile Include="Models\SettingsProject.cs" />
     <Compile Include="Models\User.cs" />
     <Compile Include="Models\VideoBook.cs" />
     <Compile Include="Models\VideoChapter.cs" />
--- a/client/src/Iri.Modernisation.Data/Ldt/LDTFile.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Data/Ldt/LDTFile.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -56,15 +56,15 @@
         public void Load(String _path)
         {
             Path = _path;
-            Load();
+           // Load();
         }
-        public void Load()
+        public void Load(XDocument xdoc)
         {
-            if(Path == String.Empty)
+            /*if(Path == String.Empty)
             {
                 throw new Exception("Load Path Needed");
             }
-            XDocument xdoc = XDocument.Load(Path);
+            = XDocument.Load(Path);*/
 
             Project = new LDTProject(xdoc.Root.Element("project"));
             foreach (XElement Elem in xdoc.Root.Element("medias").Elements())
--- a/client/src/Iri.Modernisation.Data/Ldt/Readers.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Data/Ldt/Readers.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -9,33 +9,16 @@
 using System.Windows.Media.Animation;
 using System.Windows.Shapes;
 using Iri.Modernisation.Data.Models;
-
+using System.Xml.Linq;
 namespace Iri.Modernisation.Data.LDTClass
 {
     public class LDTFileReader
     {
-        private LDTFile _ldtFile;
-        private VideoBook _videoBook;
-        public VideoBook VideoBook
-        {
-            get
-            {
-                return _videoBook;
-            }
-        }
-        public LDTFileReader(String LDTPath)
+        public static VideoBook ConvertToVideoBook(XDocument Path)
         {
-            _ldtFile = new LDTFile();
-            _ldtFile.Load(LDTPath);
-            ConvertLdtToVideoBook();
-        }
-        public LDTFileReader(LDTFile ldtFile)
-        {
-            _ldtFile = ldtFile;
-            ConvertLdtToVideoBook();
-        }
-        private void ConvertLdtToVideoBook()
-        {
+            LDTFile _ldtFile = new LDTFile();
+            _ldtFile.Load(Path);
+            VideoBook _videoBook = new VideoBook();
             if (_ldtFile != null)
             {
                 // Initialisation du VideoBook
@@ -111,6 +94,7 @@
                       }
 
                 }
+                return _videoBook;
                 // Initialisation des Annotations
                 //Initialisation des Liens
             }
--- a/client/src/Iri.Modernisation.Data/Models/FactoryVideoLivre.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Data/Models/FactoryVideoLivre.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -33,15 +33,16 @@
 	    }
         static public void Initialize()
         {
-            LoadXMLFile();
+          //  LoadXMLFile();
         }
-        static private void LoadXMLFile()
+        public static void LoadXMLFile(String path)
         {
 
             
             
             xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XMLFileLoaded);
-            xmlClient.DownloadStringAsync(new Uri("ProjectConfig.xml",UriKind.Relative));
+            Uri uri = new Uri(path, UriKind.RelativeOrAbsolute);
+            xmlClient.DownloadStringAsync(uri);
           
             
         }
@@ -54,23 +55,33 @@
             
                 _configDoc = XDocument.Parse(e.Result);
                 List<VideoChapterDescription> temp = new List<VideoChapterDescription>();
+                List<PolemicTypeDescription> temp_an = new List<PolemicTypeDescription>();
                 int nb = 0;
                 foreach (XElement XChapter in _configDoc.Root.Element("VideoBook").Elements())
                 {
                     temp.Add(new VideoChapterDescription(nb, XChapter.Attribute("name").Value, XChapter.Attribute("color").Value));
                     nb++;
                 }
-                MessageBox.Show(nb.ToString());
+                foreach (XElement XAnnotation in _configDoc.Root.Element("PolemicTypes").Elements())
+                {
+                    temp_an.Add(new PolemicTypeDescription(XAnnotation.Attribute("name").Value, XAnnotation.Attribute("color").Value));
+                }
+             
                 VideoChapterDescriptions = temp.ToArray();
+                AnnotationDescriptions = temp_an.ToArray();
+                FactoryReady(null, new EventArgs());
             }
             else
             {
-                //MessageBox.Show(e.Error.Message);
+                MessageBox.Show(e.Error.Message);
             }
+            
 
         }
+        public static event EventHandler FactoryReady;
        static public void Load(string path)
        {
+         
            _configDoc = XDocument.Load(path);
            List<VideoChapterDescription> temp_vl = new List<VideoChapterDescription>();
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Data/Models/IVideoBookConverter.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,18 @@
+using System;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+
+namespace Iri.Modernisation.Data.Models
+{
+    public interface IVideoBookConverter
+    {
+        VideoBook ConvertToVideoBook();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Data/Models/Loader.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,66 @@
+using System;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+using System.Xml.Linq;
+using System.IO;
+using System.Collections.Generic;
+using System.Threading;
+namespace Iri.Modernisation.Data.Models
+{
+    /// <summary>
+    /// Classe permettant de charger un XML et de convertir son contenu en un type ReturnType désiré
+    /// </summary>
+    /// <typeparam name="ReturnType">Type Désiré</typeparam>
+    public class Loader<ResultType>
+    {
+        /// <summary>
+        /// WebClient qui permet de charger le XML distant
+        /// </summary>
+        private  WebClient xmlClient = new WebClient();
+        private String _path{get;set;}
+        private Func<XDocument, ResultType> ProcessFunction { get; set; }
+      
+       public Loader(Func<XDocument,ResultType> processFunction)
+        {
+            ProcessFunction = processFunction;
+           
+        }
+        public  void LoadAvailableVideoBooks(String path)
+        {
+            _path = path;
+            xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(xmlClient_DownloadStringCompleted);
+            xmlClient.DownloadStringAsync(new Uri(path,UriKind.RelativeOrAbsolute));
+       
+        }
+       
+        void xmlClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
+        {
+            ResultType result = ProcessFunction.Invoke(XDocument.Parse(e.Result));
+            if (LoaderFinished != null)
+            {
+               
+                LoaderFinished(this, new LoaderEventArgs<ResultType>(result));
+            }
+        }
+
+        public event EventHandler<LoaderEventArgs<ResultType>> LoaderFinished;
+      
+       
+    }
+    public class LoaderEventArgs<ResultType> : EventArgs
+    {
+        public ResultType CreatedObject { get; private set; }
+        public LoaderEventArgs(ResultType createdObject)
+        {
+            CreatedObject = createdObject;
+        }
+    }
+    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/Iri.Modernisation.Data/Models/SettingsProject.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,67 @@
+using System;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+using System.Collections.Generic;
+using System.Threading;
+namespace Iri.Modernisation.Data.Models
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public static class SettingsProject
+    {
+        /// <summary>
+        /// Liste des vidéoLivre Disponible
+        /// </summary>
+        static public List<VideoBook> ListVideoBook { get; set; }
+
+        static SettingsProject()
+        {
+        }
+        /// <summary>
+        /// (Télé)Chargement des données;
+        /// </summary>
+        /// <param name="configFileURI"></param>
+        static public void Load(String configFileURI)
+        {
+            FactoryVideoLivre.Initialize();
+            FactoryVideoLivre.FactoryReady += new EventHandler(FactoryVideoLivre_FactoryReady);
+            FactoryVideoLivre.LoadXMLFile(configFileURI);
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        static void FactoryVideoLivre_FactoryReady(object sender, EventArgs e)
+        {
+            /*Loader<List<VideoBook>> LoaderVideoBook = new Loader<List<VideoBook>>(VideoBook.LoadFromXml);
+            LoaderVideoBook.LoadAvailableVideoBooks("/Content/AvailableVideoBooks.xml");
+            LoaderVideoBook.LoaderFinished += new EventHandler<LoaderEventArgs<List<VideoBook>>>(LoaderVideoBook_LoaderFinished);*/
+            VideoBookLoaderHelper LoaderVideoBook = new VideoBookLoaderHelper("/Content/AvailableVideoBooks.xml");
+            LoaderVideoBook.LoaderFinished += new EventHandler<LoaderEventArgs<List<VideoBook>>>(LoaderVideoBook_LoaderFinished);
+           
+        }
+
+       
+
+        static void LoaderVideoBook_LoaderFinished(object sender, LoaderEventArgs<List<VideoBook>> e)
+        {
+            SettingsProject.ListVideoBook = e.CreatedObject;
+            if (SettingsLoaded != null)
+                SettingsLoaded(sender, e);
+        }
+        /// <summary>
+        /// Evenement prévenant quand tout est pret
+        /// </summary>
+        static public event EventHandler SettingsLoaded;
+    }
+}
--- a/client/src/Iri.Modernisation.Data/Models/VideoBook.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation.Data/Models/VideoBook.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -9,6 +9,9 @@
 using System.Windows.Media.Animation;
 using System.Windows.Shapes;
 using System.Collections.Generic;
+using System.Xml.Linq;
+using System.Threading;
+using Iri.Modernisation.Data.LDTClass;
 namespace Iri.Modernisation.Data.Models
 {
     /// <summary>
@@ -58,9 +61,66 @@
          
         }
 
+     
+     
+           
+        
         
     }
+    public class VideoBookLoaderHelper
+    {
+        private WebClient webclient;
+        private List<VideoBook> returnVideoBookList;
+        private int nbOfBook;
+        public VideoBookLoaderHelper(String path)
+        {
+            nbOfBook = 0;
+            returnVideoBookList = new List<VideoBook>();
+            webclient = new WebClient();
+            webclient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webclient_DownloadStringCompleted);
+            webclient.DownloadStringAsync(new Uri(path,UriKind.RelativeOrAbsolute ));
+        }
 
+        void webclient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
+        {
+            XDocument XDoc = XDocument.Parse(e.Result);
+            List<VideoBook> ListReturn = new List<VideoBook>();
+           
+            foreach (XElement XVideoBook in XDoc.Root.Elements())
+            {
+                Loader<VideoBook> LoaderVideoBook = new Loader<VideoBook>(LDTFileReader.ConvertToVideoBook);
+                LoaderVideoBook.LoaderFinished += new EventHandler<LoaderEventArgs<VideoBook>>(LoaderVideoBook_LoaderFinished);
+
+                LoaderVideoBook.LoadAvailableVideoBooks(XVideoBook.Attribute("metafile").Value);
+
+           
+
+                nbOfBook++;
+
+            }
+
+        
+        }
+
+        void LoaderVideoBook_LoaderFinished(object sender, LoaderEventArgs<VideoBook> e)
+        {
+            returnVideoBookList.Add(e.CreatedObject);
+            if(returnVideoBookList.Count == nbOfBook)
+            {
+                if(LoaderFinished!=null)
+                {
+                    LoaderFinished(this,new LoaderEventArgs<List<VideoBook>>(returnVideoBookList));
+                }
+            }
+        }
+        public event EventHandler<LoaderEventArgs<List<VideoBook>>> LoaderFinished;
+         /*public List<VideoBook> LoadFromXml(XDocument XDoc)
+        {
+           
+
+        }*/
+        
+    }
     /// <summary>
     /// Comparateur pour Trier les livres
     /// </summary>
@@ -71,4 +131,5 @@
             return x.Title.CompareTo(y.Title);
         }
     }
+
 }
--- a/client/src/Iri.Modernisation/App.xaml	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/src/Iri.Modernisation/App.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -7,9 +7,10 @@
     	<ResourceDictionary>
     		<ResourceDictionary.MergedDictionaries>
     			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_CommonTemplate.xaml"/>
-    			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_AnnotationMaker.xaml"/>
     			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_ConsultMenu.xaml"/>
     			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_Binder.xaml"/>
+    			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_AnnotationMaker.xaml"/>
+    			<ResourceDictionary Source="/Iri.Modernisation.Controls;Component/Templates_CommonTemplate.xaml"/>
     		</ResourceDictionary.MergedDictionaries>
     	</ResourceDictionary>
         
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/ProjectConfig.xml	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ProjectConfig>
+	<VideoBook>
+			<VideoChapter name="Modernisation" color="#FFD6A382"/>
+			<VideoChapter name="Modernité" color="#FFBFA84E"/>
+			<VideoChapter name="Post-Modernité" color="#FFB5CB29"/>
+			<VideoChapter name="Ouverture" color="#FF5BCC5B"/>
+	</VideoBook>
+  <PolemicTypes>
+    <PolemicType  name="Polémique" color="#FFFF0000"/>
+    <PolemicType  name="Adhésion" color="#FF00FF00"/>
+    <PolemicType  name="Référence" color="#FF0000FF"/>
+    <PolemicType  name="Question" color="#FFFFFF00"/>
+
+  </PolemicTypes>
+</ProjectConfig>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/Properties/AssemblyInfo.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("WebTest.Web")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Centre Georges Pompidou")]
+[assembly: AssemblyProduct("WebTest.Web")]
+[assembly: AssemblyCopyright("Copyright © Centre Georges Pompidou 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("50517894-8acc-4c68-8d30-0451c49bff73")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/Silverlight.js	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,2 @@
+//v2.0.30511.0
+if(!window.Silverlight)window.Silverlight={};Silverlight._silverlightCount=0;Silverlight.__onSilverlightInstalledCalled=false;Silverlight.fwlinkRoot="http://go2.microsoft.com/fwlink/?LinkID=";Silverlight.__installationEventFired=false;Silverlight.onGetSilverlight=null;Silverlight.onSilverlightInstalled=function(){window.location.reload(false)};Silverlight.isInstalled=function(b){if(b==undefined)b=null;var a=false,m=null;try{var i=null,j=false;if(window.ActiveXObject)try{i=new ActiveXObject("AgControl.AgControl");if(b===null)a=true;else if(i.IsVersionSupported(b))a=true;i=null}catch(l){j=true}else j=true;if(j){var k=navigator.plugins["Silverlight Plug-In"];if(k)if(b===null)a=true;else{var h=k.description;if(h==="1.0.30226.2")h="2.0.30226.2";var c=h.split(".");while(c.length>3)c.pop();while(c.length<4)c.push(0);var e=b.split(".");while(e.length>4)e.pop();var d,g,f=0;do{d=parseInt(e[f]);g=parseInt(c[f]);f++}while(f<e.length&&d===g);if(d<=g&&!isNaN(d))a=true}}}catch(l){a=false}return a};Silverlight.WaitForInstallCompletion=function(){if(!Silverlight.isBrowserRestartRequired&&Silverlight.onSilverlightInstalled){try{navigator.plugins.refresh()}catch(a){}if(Silverlight.isInstalled(null)&&!Silverlight.__onSilverlightInstalledCalled){Silverlight.onSilverlightInstalled();Silverlight.__onSilverlightInstalledCalled=true}else setTimeout(Silverlight.WaitForInstallCompletion,3e3)}};Silverlight.__startup=function(){navigator.plugins.refresh();Silverlight.isBrowserRestartRequired=Silverlight.isInstalled(null);if(!Silverlight.isBrowserRestartRequired){Silverlight.WaitForInstallCompletion();if(!Silverlight.__installationEventFired){Silverlight.onInstallRequired();Silverlight.__installationEventFired=true}}else if(window.navigator.mimeTypes){var b=navigator.mimeTypes["application/x-silverlight-2"],c=navigator.mimeTypes["application/x-silverlight-2-b2"],d=navigator.mimeTypes["application/x-silverlight-2-b1"],a=d;if(c)a=c;if(!b&&(d||c)){if(!Silverlight.__installationEventFired){Silverlight.onUpgradeRequired();Silverlight.__installationEventFired=true}}else if(b&&a)if(b.enabledPlugin&&a.enabledPlugin)if(b.enabledPlugin.description!=a.enabledPlugin.description)if(!Silverlight.__installationEventFired){Silverlight.onRestartRequired();Silverlight.__installationEventFired=true}}if(!Silverlight.disableAutoStartup)if(window.removeEventListener)window.removeEventListener("load",Silverlight.__startup,false);else window.detachEvent("onload",Silverlight.__startup)};if(!Silverlight.disableAutoStartup)if(window.addEventListener)window.addEventListener("load",Silverlight.__startup,false);else window.attachEvent("onload",Silverlight.__startup);Silverlight.createObject=function(m,f,e,k,l,h,j){var d={},a=k,c=l;d.version=a.version;a.source=m;d.alt=a.alt;if(h)a.initParams=h;if(a.isWindowless&&!a.windowless)a.windowless=a.isWindowless;if(a.framerate&&!a.maxFramerate)a.maxFramerate=a.framerate;if(e&&!a.id)a.id=e;delete a.ignoreBrowserVer;delete a.inplaceInstallPrompt;delete a.version;delete a.isWindowless;delete a.framerate;delete a.data;delete a.src;delete a.alt;if(Silverlight.isInstalled(d.version)){for(var b in c)if(c[b]){if(b=="onLoad"&&typeof c[b]=="function"&&c[b].length!=1){var i=c[b];c[b]=function(a){return i(document.getElementById(e),j,a)}}var g=Silverlight.__getHandlerName(c[b]);if(g!=null){a[b]=g;c[b]=null}else throw"typeof events."+b+" must be 'function' or 'string'";}slPluginHTML=Silverlight.buildHTML(a)}else slPluginHTML=Silverlight.buildPromptHTML(d);if(f)f.innerHTML=slPluginHTML;else return slPluginHTML};Silverlight.buildHTML=function(a){var b=[];b.push('<object type="application/x-silverlight" data="data:application/x-silverlight,"');if(a.id!=null)b.push(' id="'+Silverlight.HtmlAttributeEncode(a.id)+'"');if(a.width!=null)b.push(' width="'+a.width+'"');if(a.height!=null)b.push(' height="'+a.height+'"');b.push(" >");delete a.id;delete a.width;delete a.height;for(var c in a)if(a[c])b.push('<param name="'+Silverlight.HtmlAttributeEncode(c)+'" value="'+Silverlight.HtmlAttributeEncode(a[c])+'" />');b.push("</object>");return b.join("")};Silverlight.createObjectEx=function(b){var a=b,c=Silverlight.createObject(a.source,a.parentElement,a.id,a.properties,a.events,a.initParams,a.context);if(a.parentElement==null)return c};Silverlight.buildPromptHTML=function(b){var a="",d=Silverlight.fwlinkRoot,c=b.version;if(b.alt)a=b.alt;else{if(!c)c="";a="<a href='javascript:Silverlight.getSilverlight(\"{1}\");' style='text-decoration: none;'><img src='{2}' alt='Get Microsoft Silverlight' style='border-style: none'/></a>";a=a.replace("{1}",c);a=a.replace("{2}",d+"108181")}return a};Silverlight.getSilverlight=function(e){if(Silverlight.onGetSilverlight)Silverlight.onGetSilverlight();var b="",a=String(e).split(".");if(a.length>1){var c=parseInt(a[0]);if(isNaN(c)||c<2)b="1.0";else b=a[0]+"."+a[1]}var d="";if(b.match(/^\d+\056\d+$/))d="&v="+b;Silverlight.followFWLink("149156"+d)};Silverlight.followFWLink=function(a){top.location=Silverlight.fwlinkRoot+String(a)};Silverlight.HtmlAttributeEncode=function(c){var a,b="";if(c==null)return null;for(var d=0;d<c.length;d++){a=c.charCodeAt(d);if(a>96&&a<123||a>64&&a<91||a>43&&a<58&&a!=47||a==95)b=b+String.fromCharCode(a);else b=b+"&#"+a+";"}return b};Silverlight.default_error_handler=function(e,b){var d,c=b.ErrorType;d=b.ErrorCode;var a="\nSilverlight error message     \n";a+="ErrorCode: "+d+"\n";a+="ErrorType: "+c+"       \n";a+="Message: "+b.ErrorMessage+"     \n";if(c=="ParserError"){a+="XamlFile: "+b.xamlFile+"     \n";a+="Line: "+b.lineNumber+"     \n";a+="Position: "+b.charPosition+"     \n"}else if(c=="RuntimeError"){if(b.lineNumber!=0){a+="Line: "+b.lineNumber+"     \n";a+="Position: "+b.charPosition+"     \n"}a+="MethodName: "+b.methodName+"     \n"}alert(a)};Silverlight.__cleanup=function(){for(var a=Silverlight._silverlightCount-1;a>=0;a--)window["__slEvent"+a]=null;Silverlight._silverlightCount=0;if(window.removeEventListener)window.removeEventListener("unload",Silverlight.__cleanup,false);else window.detachEvent("onunload",Silverlight.__cleanup)};Silverlight.__getHandlerName=function(b){var a="";if(typeof b=="string")a=b;else if(typeof b=="function"){if(Silverlight._silverlightCount==0)if(window.addEventListener)window.addEventListener("onunload",Silverlight.__cleanup,false);else window.attachEvent("onunload",Silverlight.__cleanup);var c=Silverlight._silverlightCount++;a="__slEvent"+c;window[a]=b}else a=null;return a};Silverlight.onRequiredVersionAvailable=function(){};Silverlight.onRestartRequired=function(){};Silverlight.onUpgradeRequired=function(){};Silverlight.onInstallRequired=function(){};Silverlight.IsVersionAvailableOnError=function(d,a){var b=false;try{if(a.ErrorCode==8001&&!Silverlight.__installationEventFired){Silverlight.onUpgradeRequired();Silverlight.__installationEventFired=true}else if(a.ErrorCode==8002&&!Silverlight.__installationEventFired){Silverlight.onRestartRequired();Silverlight.__installationEventFired=true}else if(a.ErrorCode==5014||a.ErrorCode==2106){if(Silverlight.__verifySilverlight2UpgradeSuccess(a.getHost()))b=true}else b=true}catch(c){}return b};Silverlight.IsVersionAvailableOnLoad=function(b){var a=false;try{if(Silverlight.__verifySilverlight2UpgradeSuccess(b.getHost()))a=true}catch(c){}return a};Silverlight.__verifySilverlight2UpgradeSuccess=function(d){var c=false,b="2.0.31005",a=null;try{if(d.IsVersionSupported(b+".99")){a=Silverlight.onRequiredVersionAvailable;c=true}else if(d.IsVersionSupported(b+".0"))a=Silverlight.onRestartRequired;else a=Silverlight.onUpgradeRequired;if(a&&!Silverlight.__installationEventFired){a();Silverlight.__installationEventFired=true}}catch(e){}return c}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/Web.Debug.config	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    In the example below, the "SetAttributes" transform will change the value of 
+    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
+    finds an atrribute "name" that has a value of "MyDB".
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <!--
+      In the example below, the "Replace" transform will replace the entire 
+      <customErrors> section of your web.config file.
+      Note that because there is only one customErrors section under the 
+      <system.web> node, there is no need to use the "xdt:Locator" attribute.
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/Web.Release.config	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    In the example below, the "SetAttributes" transform will change the value of 
+    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
+    finds an atrribute "name" that has a value of "MyDB".
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <compilation xdt:Transform="RemoveAttributes(debug)" />
+    <!--
+      In the example below, the "Replace" transform will replace the entire 
+      <customErrors> section of your web.config file.
+      Note that because there is only one customErrors section under the 
+      <system.web> node, there is no need to use the "xdt:Locator" attribute.
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/Web.config	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<configuration>
+
+    <system.web>
+        <compilation debug="true" targetFramework="4.0" />
+    </system.web>
+    <system.webServer>
+      <modules runAllManagedModulesForAllRequests="true"/>
+    </system.webServer>
+
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/WebTest.Web.csproj	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>
+    </ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{34E05E7B-6D92-4E90-A719-947EBB38D77A}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>WebTest.Web</RootNamespace>
+    <AssemblyName>WebTest.Web</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <SilverlightApplicationList>{1E06DD06-54FD-4C46-893D-66EB1D52488A}|..\WebTest\WebTest.csproj|ClientBin|False</SilverlightApplicationList>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Web.DynamicData" />
+    <Reference Include="System.Web.Entity" />
+    <Reference Include="System.Web.ApplicationServices" />
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="System.EnterpriseServices" />
+    <Reference Include="System.Web.Mobile" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="ClientBin\WebTest.xap" />
+    <Content Include="Silverlight.js" />
+    <Content Include="Web.config" />
+    <Content Include="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+    <Content Include="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+    <Content Include="WebTestTestPage.aspx" />
+    <Content Include="WebTestTestPage.html" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <UseIIS>False</UseIIS>
+          <AutoAssignPort>True</AutoAssignPort>
+          <DevelopmentServerPort>2342</DevelopmentServerPort>
+          <DevelopmentServerVPath>/</DevelopmentServerVPath>
+          <IISUrl>
+          </IISUrl>
+          <NTLMAuthentication>False</NTLMAuthentication>
+          <UseCustomServer>False</UseCustomServer>
+          <CustomServerUrl>
+          </CustomServerUrl>
+          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/WebTestTestPage.aspx	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,74 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head runat="server">
+    <title>WebTest</title>
+    <style type="text/css">
+    html, body {
+	    height: 100%;
+	    overflow: auto;
+    }
+    body {
+	    padding: 0;
+	    margin: 0;
+    }
+    #silverlightControlHost {
+	    height: 100%;
+	    text-align:center;
+    }
+    </style>
+    <script type="text/javascript" src="Silverlight.js"></script>
+    <script type="text/javascript">
+        function onSilverlightError(sender, args) {
+            var appSource = "";
+            if (sender != null && sender != 0) {
+              appSource = sender.getHost().Source;
+            }
+            
+            var errorType = args.ErrorType;
+            var iErrorCode = args.ErrorCode;
+
+            if (errorType == "ImageError" || errorType == "MediaError") {
+              return;
+            }
+
+            var errMsg = "Unhandled Error in Silverlight Application " +  appSource + "\n" ;
+
+            errMsg += "Code: "+ iErrorCode + "    \n";
+            errMsg += "Category: " + errorType + "       \n";
+            errMsg += "Message: " + args.ErrorMessage + "     \n";
+
+            if (errorType == "ParserError") {
+                errMsg += "File: " + args.xamlFile + "     \n";
+                errMsg += "Line: " + args.lineNumber + "     \n";
+                errMsg += "Position: " + args.charPosition + "     \n";
+            }
+            else if (errorType == "RuntimeError") {           
+                if (args.lineNumber != 0) {
+                    errMsg += "Line: " + args.lineNumber + "     \n";
+                    errMsg += "Position: " +  args.charPosition + "     \n";
+                }
+                errMsg += "MethodName: " + args.methodName + "     \n";
+            }
+
+            throw new Error(errMsg);
+        }
+    </script>
+</head>
+<body>
+    <form id="form1" runat="server" style="height:100%">
+    <div id="silverlightControlHost">
+        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
+		  <param name="source" value="ClientBin/WebTest.xap"/>
+		  <param name="onError" value="onSilverlightError" />
+		  <param name="background" value="white" />
+		  <param name="minRuntimeVersion" value="4.0.41108.0" />
+		  <param name="autoUpgrade" value="true" />
+		  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.41108.0" style="text-decoration:none">
+ 			  <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
+		  </a>
+	    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
+    </form>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.Web/WebTestTestPage.html	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+
+<head>
+    <title>WebTest</title>
+    <style type="text/css">
+    html, body {
+	    height: 100%;
+	    overflow: auto;
+    }
+    body {
+	    padding: 0;
+	    margin: 0;
+    }
+    #silverlightControlHost {
+	    height: 100%;
+	    text-align:center;
+    }
+    </style>
+    <script type="text/javascript" src="Silverlight.js"></script>
+    <script type="text/javascript">
+        function onSilverlightError(sender, args) {
+            var appSource = "";
+            if (sender != null && sender != 0) {
+              appSource = sender.getHost().Source;
+            }
+            
+            var errorType = args.ErrorType;
+            var iErrorCode = args.ErrorCode;
+
+            if (errorType == "ImageError" || errorType == "MediaError") {
+              return;
+            }
+
+            var errMsg = "Unhandled Error in Silverlight Application " +  appSource + "\n" ;
+
+            errMsg += "Code: "+ iErrorCode + "    \n";
+            errMsg += "Category: " + errorType + "       \n";
+            errMsg += "Message: " + args.ErrorMessage + "     \n";
+
+            if (errorType == "ParserError") {
+                errMsg += "File: " + args.xamlFile + "     \n";
+                errMsg += "Line: " + args.lineNumber + "     \n";
+                errMsg += "Position: " + args.charPosition + "     \n";
+            }
+            else if (errorType == "RuntimeError") {           
+                if (args.lineNumber != 0) {
+                    errMsg += "Line: " + args.lineNumber + "     \n";
+                    errMsg += "Position: " +  args.charPosition + "     \n";
+                }
+                errMsg += "MethodName: " + args.methodName + "     \n";
+            }
+
+            throw new Error(errMsg);
+        }
+    </script>
+</head>
+<body>
+    <form id="form1" runat="server" style="height:100%">
+    <div id="silverlightControlHost">
+        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
+		  <param name="source" value="ClientBin/WebTest.xap"/>
+		  <param name="onError" value="onSilverlightError" />
+		  <param name="background" value="white" />
+		  <param name="minRuntimeVersion" value="4.0.41108.0" />
+		  <param name="autoUpgrade" value="true" />
+		  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.41108.0" style="text-decoration:none">
+ 			  <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
+		  </a>
+	    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
+    </form>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest.sln	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebTest", "WebTest\WebTest.csproj", "{1E06DD06-54FD-4C46-893D-66EB1D52488A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebTest.Web", "WebTest.Web\WebTest.Web.csproj", "{34E05E7B-6D92-4E90-A719-947EBB38D77A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{1E06DD06-54FD-4C46-893D-66EB1D52488A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1E06DD06-54FD-4C46-893D-66EB1D52488A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1E06DD06-54FD-4C46-893D-66EB1D52488A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1E06DD06-54FD-4C46-893D-66EB1D52488A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{34E05E7B-6D92-4E90-A719-947EBB38D77A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{34E05E7B-6D92-4E90-A719-947EBB38D77A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{34E05E7B-6D92-4E90-A719-947EBB38D77A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{34E05E7B-6D92-4E90-A719-947EBB38D77A}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest/App.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,12 @@
+<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
+             x:Class="WebTest.App"
+             >
+    <Application.Resources>
+       <ResourceDictionary>
+		<ResourceDictionary.MergedDictionaries>
+			<ResourceDictionary Source="/Iri.Modernisation.Styles;Component/Templates_CommonTemplate.xaml"/>
+         </ResourceDictionary.MergedDictionaries>  
+        </ResourceDictionary>
+    </Application.Resources>
+</Application>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest/App.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+using Iri.Modernisation.Data.Models;
+namespace WebTest
+{
+    public partial class App : Application
+    {
+
+        public App()
+        {
+            this.Startup += this.Application_Startup;
+            this.Exit += this.Application_Exit;
+            this.UnhandledException += this.Application_UnhandledException;
+
+           
+        }
+
+        void xmlClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
+        {
+           
+        }
+
+        private void Application_Startup(object sender, StartupEventArgs e)
+        {
+           
+           /* FactoryVideoLivre.Initialize();
+            
+            FactoryVideoLivre.FactoryReady += new EventHandler(FactoryVideoLivre_FactoryReady);
+            FactoryVideoLivre.LoadXMLFile("/ProjectConfig.xml");*/
+            SettingsProject.SettingsLoaded += new EventHandler(SettingsProject_SettingsLoaded);
+            SettingsProject.Load("/ProjectConfig.xml");
+           
+     
+        }
+
+        void SettingsProject_SettingsLoaded(object sender, EventArgs e)
+        {
+            InitializeComponent();
+            object o = FactoryVideoLivre.AnnotationDescriptions;
+            this.RootVisual = new MainPage();
+        }
+
+      /*  void FactoryVideoLivre_FactoryReady(object sender, EventArgs e)
+        {
+            InitializeComponent();
+            object o = FactoryVideoLivre.AnnotationDescriptions;
+            this.RootVisual = new MainPage();
+
+        }*/
+
+        private void Application_Exit(object sender, EventArgs e)
+        {
+
+        }
+        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
+        {
+            // If the app is running outside of the debugger then report the exception using
+            // the browser's exception mechanism. On IE this will display it a yellow alert 
+            // icon in the status bar and Firefox will display a script error.
+            if (!System.Diagnostics.Debugger.IsAttached)
+            {
+
+                // NOTE: This will allow the application to continue running after an exception has been thrown
+                // but not handled. 
+                // For production applications this error handling should be replaced with something that will 
+                // report the error to the website and stop the application.
+                e.Handled = true;
+                Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
+            }
+        }
+        private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
+        {
+            try
+            {
+                string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
+                errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
+
+                System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight 2 Application " + errorMsg + "\");");
+            }
+            catch (Exception)
+            {
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest/MainPage.xaml	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,14 @@
+<UserControl x:Class="WebTest.MainPage"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:hsl="clr-namespace:HackingSilverlightLibrary;assembly=HackingSilverlightLibrary"
+	xmlns:View="clr-namespace:Iri.Modernisation.Controls.View;assembly=Iri.Modernisation.Controls"
+    mc:Ignorable="d"
+    d:DesignHeight="300" d:DesignWidth="400">
+
+    <Grid x:Name="LayoutRoot" Background="White">
+        <View:Main x:Name="MainElement"/>
+    </Grid>
+</UserControl>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest/MainPage.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+using System.Windows.Browser;
+using Iri.Modernisation.Controls.ViewModel;
+using Iri.Modernisation.BaseMVVM.Commands;
+using Iri.Modernisation.Data.LDTClass;
+using Iri.Modernisation.Data.Models;
+namespace WebTest
+{
+    
+        public partial class MainPage : UserControl
+        {
+            public MainPage()
+            {
+                Commands.Initialize();
+               
+                //FactoryVideoLivre.xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(xmlClient_DownloadStringCompleted);
+          
+                List<VideoBook> SelectedVideoBooks = new List<VideoBook>();
+                SelectedVideoBooks = SettingsProject.ListVideoBook;
+
+                //Loader<VideoBook>.RegisterType("ldt", LDTFileReader.ConvertToVideoBook);
+
+
+
+                //    Loader.LoadAvailableVideoBooks("Content/AvailableVideoBooks.xml");
+                //  Loader.xmlClient.DownloadStringCompleted+=new DownloadStringCompletedEventHandler(xmlClient_DownloadStringCompleted);
+                //    SelectedVideoBooks = Loader.ListVideoBook;             
+
+                InitializeComponent();
+                MainElement.DataContext = new MainVM(SelectedVideoBooks);
+          
+
+
+           
+
+            }
+
+            void xmlClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
+            {
+                if (e.Error == null)
+                {
+                    
+
+                }
+                else
+                {
+                    //MessageBox.Show(e.Error.InnerException.Message);
+                }
+            }
+
+
+
+
+
+        }
+    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest/Properties/AppManifest.xml	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,6 @@
+<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+>
+    <Deployment.Parts>
+    </Deployment.Parts>
+</Deployment>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest/Properties/AssemblyInfo.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("WebTest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Centre Georges Pompidou")]
+[assembly: AssemblyProduct("WebTest")]
+[assembly: AssemblyCopyright("Copyright © Centre Georges Pompidou 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("3c4bfd98-9bac-468e-a175-eda6064e7dcf")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/WebTest/WebTest/WebTest/WebTest.csproj	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{1E06DD06-54FD-4C46-893D-66EB1D52488A}</ProjectGuid>
+    <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>WebTest</RootNamespace>
+    <AssemblyName>WebTest</AssemblyName>
+    <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
+    <SilverlightApplication>true</SilverlightApplication>
+    <SupportedCultures>fr-FR;en-US</SupportedCultures>
+    <XapOutputs>true</XapOutputs>
+    <GenerateSilverlightManifest>true</GenerateSilverlightManifest>
+    <XapFilename>WebTest.xap</XapFilename>
+    <SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
+    <SilverlightAppEntry>WebTest.App</SilverlightAppEntry>
+    <TestPageFileName>TestPage.html</TestPageFileName>
+    <CreateTestPage>true</CreateTestPage>
+    <ValidateXaml>true</ValidateXaml>
+    <EnableOutOfBrowser>false</EnableOutOfBrowser>
+    <OutOfBrowserSettingsFile>Properties\OutOfBrowserSettings.xml</OutOfBrowserSettingsFile>
+    <UsePlatformExtensions>false</UsePlatformExtensions>
+    <ThrowErrorsInValidation>true</ThrowErrorsInValidation>
+    <LinkedServerProject>
+    </LinkedServerProject>
+    <Utf8Output>true</Utf8Output>
+    <ExpressionBlendVersion>3.1.11111.0</ExpressionBlendVersion>
+  </PropertyGroup>
+  <!-- This property group is only here to support building this project using the 
+       MSBuild 3.5 toolset. In order to work correctly with this older toolset, it needs 
+       to set the TargetFrameworkVersion to v3.5 -->
+  <PropertyGroup Condition="'$(MSBuildToolsVersion)' == '3.5'">
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>Bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;TRACE;SILVERLIGHT</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>Bin\Release</OutputPath>
+    <DefineConstants>TRACE;SILVERLIGHT</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Berico.Windows.Controls">
+      <HintPath>..\..\..\..\res\lib\Berico.Windows.Controls.dll</HintPath>
+    </Reference>
+    <Reference Include="HackingSilverlightLibrary">
+      <HintPath>..\..\..\..\res\lib\HackingSilverlightLibrary.dll</HintPath>
+    </Reference>
+    <Reference Include="Iri.Modernisation.BaseMVVM">
+      <HintPath>..\..\..\..\src\Iri.Modernisation\Bin\Debug\Iri.Modernisation.BaseMVVM.dll</HintPath>
+    </Reference>
+    <Reference Include="Iri.Modernisation.Controls">
+      <HintPath>..\..\..\..\src\Iri.Modernisation\Bin\Debug\Iri.Modernisation.Controls.dll</HintPath>
+    </Reference>
+    <Reference Include="Iri.Modernisation.Data">
+      <HintPath>..\..\..\..\src\Iri.Modernisation\Bin\Debug\Iri.Modernisation.Data.dll</HintPath>
+    </Reference>
+    <Reference Include="Iri.Modernisation.Styles">
+      <HintPath>..\..\..\..\src\Iri.Modernisation\Bin\Debug\Iri.Modernisation.Styles.dll</HintPath>
+    </Reference>
+    <Reference Include="mscorlib" />
+    <Reference Include="SLExtensions">
+      <HintPath>..\..\..\..\res\lib\SLExtensions.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Windows" />
+    <Reference Include="system" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Net" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Windows.Browser" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="MainPage.xaml.cs">
+      <DependentUpon>MainPage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </ApplicationDefinition>
+    <Page Include="MainPage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Properties\AppManifest.xml" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">
+        <SilverlightProjectProperties />
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/test/mainInterface/Iri.Modernisation.Test.MainInterface/AvailableVideoBooks.xml	Thu Jan 14 16:39:50 2010 +0100
@@ -0,0 +1,10 @@
+
+
+<AvailableVideoBooks>
+	<!-- 
+		video = Lien de la video
+		metafile = Lien du metafile (format cinecast)
+		title = Titre du VideoLivre
+	-->
+	<VideoBooks video="" metafile="" title=""/>
+</AvailableVideoBooks>
--- a/client/test/mainInterface/Iri.Modernisation.Test.MainInterface/Iri.Modernisation.Test.MainInterface.csproj	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/test/mainInterface/Iri.Modernisation.Test.MainInterface/Iri.Modernisation.Test.MainInterface.csproj	Thu Jan 14 16:39:50 2010 +0100
@@ -14,7 +14,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>Iri.Modernisation.Test.MainInterface</RootNamespace>
     <AssemblyName>Iri.Modernisation.Test.MainInterface</AssemblyName>
-    <TargetFrameworkVersion>v3.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
     <SilverlightApplication>true</SilverlightApplication>
     <SupportedCultures>fr-FR;en-US</SupportedCultures>
     <XapOutputs>true</XapOutputs>
@@ -38,12 +38,13 @@
     <UpgradeBackupLocation>
     </UpgradeBackupLocation>
     <OldToolsVersion>3.5</OldToolsVersion>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>Bin\Debug</OutputPath>
+    <OutputPath>Bin\Debug\</OutputPath>
     <DefineConstants>DEBUG;TRACE;SILVERLIGHT</DefineConstants>
     <NoStdLib>true</NoStdLib>
     <NoConfig>true</NoConfig>
@@ -123,6 +124,9 @@
     </Page>
   </ItemGroup>
   <ItemGroup>
+    <Content Include="Content\AvailableVideoBooks.xml">
+      <SubType>Designer</SubType>
+    </Content>
     <Content Include="Content\ENMI08-I-bernard_stiegler-jauffret.ldt" />
     <Content Include="Content\ENMI08-II-antoine_masson-jauffret.ldt" />
     <Content Include="Content\ENMI08-III_elizabethrosse-psychologie_et_reseaux_sociaux-jauffret.ldt" />
--- a/client/test/mainInterface/Iri.Modernisation.Test.MainInterface/MainPage.xaml.cs	Fri Jan 08 11:33:24 2010 +0100
+++ b/client/test/mainInterface/Iri.Modernisation.Test.MainInterface/MainPage.xaml.cs	Thu Jan 14 16:39:50 2010 +0100
@@ -25,12 +25,18 @@
             //FactoryVideoLivre.xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(xmlClient_DownloadStringCompleted);
             FactoryVideoLivre.Load("ProjectConfig.xml");
             List<VideoBook> SelectedVideoBooks = new List<VideoBook>();
+
+            
             /*************** Content Demo ***************/
             /* Pour pouvoir tester avec des vidéos :     
              * - Placer les video dans le dossier Bin
              * - Rajouter Application.Current.Host.Source.Host devant le nom du fichier
              */
-            LDTFile file = new LDTFile();
+            Loader.RegisterType("ldt", LDTFileReader.ConvertToVideoBook);
+
+
+            //SelectedVideoBooks = Loader.LoadAvailableVideoBooks("Content/AvailableVideoBooks.xml");
+           /* LDTFile file = new LDTFile();
             // file.Load(new Uri("Modernisation.FileConvertor;component/ENMI08-I-bernard_stiegler-jauffret.ldt", UriKind.Relative).ToString());
             file.Load("Content/ENMI08-I-bernard_stiegler-jauffret.ldt");
 
@@ -45,6 +51,9 @@
             temp.MediaPath = Application.Current.Host.Source.Host + @"/video.mp4";
             SelectedVideoBooks.Add(temp);
             SelectedVideoBooks.Add(new LDTFileReader("Content/ENMI08-III_elizabethrosse-psychologie_et_reseaux_sociaux-jauffret.ldt").VideoBook);
+           */
+            
+            
             // SelectedVideoBooks.Add(new LDTFileReader("Content/ENMI08-IV-dominiquepasquier-jauffret.ldt").VideoBook);
             /********************************************/