﻿if (!window.SLWebGallery)
	window.SLWebGallery = {};

var mainCanvas = null;

SLWebGallery.Page = function() 
{
}

SLWebGallery.Page.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;
		rootElement.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
	},
	handleMouseDown: function(sender, eventArgs) 
	{
	
		// The following line of code shows how to find an element by name and call a method on it.
		// this.control.content.findName("Storyboard1").Begin();
	}
}
var tmediaType;
var loaderintro;
var loader;
var currPage;
var maxPage;
var imageNavType = "Next";
var activeTop = 0;
var imageTop = 0;
var imageCenter = 0;
var activeHeight = 0;
var screenWidth;
var ActiveImage;
var activeMovie;
var MovieControls;
var ImageNav;
var ActiveImageName;
var debug;
var sortBtnUHL;
var sortBtnHL;
var ImageCanvas;
var pagesCanvas;
var ImageFadeIn;
var sortHighlight;
var sortUnHighlight;
var AnimationNextPage;
var NextPage;
var pageIndex = 1;
var currentPage = 1;
var activeLeft = 0;
var leftAdjust = 0;
var leftPos = 0;
var imgData;
var loading =0;
var baseline_height=68
var plugin;
var activeIndex = 0;
var captionText;
var imageWidth;
var imageHeight;
var albumTitle;
var pageState;
var pageNumLeft = 0;
var imageBorder;
var imageBorder_Shadow;
var imagePlacement;
var NextOver_In;
var NextOver_Out;
var PrevOver_In;
var PrevOver_Out;
var imageChange_Start;
var imageChange_End;
var nextPage;
var prevPage;
var lastPage;
var firstPage;
var sortAnim;
var sortAnim_Back;
var imageOpen;
var pageOne = -1;
var pageSound;
var controlArray;
var totalCount = 0;
var finalCount = 0;
var animationloop;


function CanvasLoaded(sender, args)
{

   plugin = sender.getHost();
    

    
   pageState = "scatter";
   mainCanvas = sender;   
   debug = mainCanvas.findName("debug");
   debug.Visibility = "Collapsed";
   pageSound = mainCanvas.findName("pageSound_mp3");
   pageSound.Stop();
   loaderintro = mainCanvas.findName("loaderintro");
   animationloop = mainCanvas.findName("animationloop");
   loader = mainCanvas.findName("loader");
   sortText = mainCanvas.findName("sortText");
   currPage = mainCanvas.findName("currPage");
   maxPage = mainCanvas.findName("maxPage");
   nextPage = mainCanvas.findName("nextPage");
   prevPage = mainCanvas.findName("prevPage");
   firstPage = mainCanvas.findName("firstPage");
   lastPage = mainCanvas.findName("lastPage");
   imageChange_Start = mainCanvas.findName("imageChange_Start");
   imageChange_End = mainCanvas.findName("imageChange_End");
   imageBorder = mainCanvas.findName("imageBorder");
   imageBorder_Shadow = mainCanvas.findName("imageBorder_Shadow");
   imagePlacement = mainCanvas.findName("imagePlacement");
   pagesAnim = mainCanvas.findName("pagesAnim");
   pagesAnimBack = mainCanvas.findName("pagesAnimBack");
   PrevOver_In = mainCanvas.findName("PrevOver_In");
   PrevOver_Out = mainCanvas.findName("PrevOver_Out");
   NextOver_In = mainCanvas.findName("NextOver_In");
   NextOver_Out = mainCanvas.findName("NextOver_Out");
   sortHighlight = mainCanvas.findName("sortHighlight");
   sortUnHighlight = mainCanvas.findName("sortUnHighlight");
   sortBtnUHL = mainCanvas.findName("sortBtnUHL");
   sortBtnHL = mainCanvas.findName("sortBtnHL");
   ImageCanvas = mainCanvas.findName("ImageCanvas");
   ImageFadeIn = sender.findName("ImageFadeIn");
   ImageFadeOut = sender.findName("ImageFadeOut");
   NextPage = sender.findName("NextPage");
   AnimationNextPage = sender.findName("AnimationNextPage");
   sortAnim = sender.findName("sortAnim");
   sortAnim_Back = sender.findName("sortAnim_Back");
   screenWidth = mainCanvas.findName("ThumbCanvas").Width;
   screenHeight = mainCanvas.findName("ThumbCanvas").Height;
   activeMovie = mainCanvas.findName("activeMovie");
   MovieControls = mainCanvas.findName("MovieControls");
   ImageNav = mainCanvas.findName("ImageNav");
   ActiveImage = mainCanvas.findName("ActiveImage");
   ActiveImageName = mainCanvas.findName("selectImage");
   captionText = mainCanvas.findName("captionText");
   imgData = get_mediainfo(0);
   captionText.Text = "";
   albumTitle = mainCanvas.findName("albumTitle");
   pagesCanvas = mainCanvas.findName("pagesCanvas");
   currPage.Text = currentPage.toString();
   imageOpen = false;
   controlArray = new Array(imgData.chapters.length);
   loader.Visibility = "Collapsed";
   
   
   
   for (var i = 0; i < imgData.chapters.length; i++) 
   {
       addControl(sender, i);   
       
       totalCount = i;
   }
  
}

function addControl(sender, activeIndex)
{
    try
  {
    var imageControl = sender.getHost().content.createFromXaml(controlXaml(), true);
        
    controlArray[activeIndex] = imageControl;
    
    maxPage.Text = pageIndex.toString();
    var ext = "";
    var path = imgData.chapters[activeIndex].imageUrl;
    var extGif = path.substring(path.lastIndexOf(".")+1,path.length).toLowerCase();
    if (extGif == "jpg" || extGif == "wmv" || extGif == "png")
    {
        ext = imgData.chapters[activeIndex].type;
    }
    else
    {
        return;
    }
    
    var rectangle = imageControl.findName("rectangle");
    var Shadow = imageControl.findName("Shadow");
    var moviePNG = imageControl.findName("moviePNG");
    var movieIcon = imageControl.findName("movieIcon");
    var imageElement = imageControl.findName("ImageElement"); 
    var imageLabel = imageControl.findName("ImageName");
    imageLabel.Text = imgData.chapters[activeIndex].filename;
    var caption = imageControl.findName("caption");
    caption.Text = imgData.chapters[activeIndex].Caption;
    var page = imageControl.findName("page");
    
    albumTitle.Text = imgData.chapters[activeIndex].Catalog;
        
    mainCanvas.FindName("pagesCanvas").children.add(imageControl);
    
    imageElement.Source = imgData.chapters[activeIndex].previewUrl;
    
    Shadow.Height = imgData.chapters[activeIndex].thumbHeight;
    Shadow.Width = imgData.chapters[activeIndex].thumbWidth;
    moviePNG.Height = imgData.chapters[activeIndex].thumbHeight;
    moviePNG.Width = imgData.chapters[activeIndex].thumbWidth;
    imageElement.Height = imgData.chapters[activeIndex].thumbHeight;
    imageElement.Width = imgData.chapters[activeIndex].thumbWidth;
    rectangle.Height = imgData.chapters[activeIndex].thumbHeight;
    rectangle.Width = imgData.chapters[activeIndex].thumbWidth;
    imageControl.Height = imgData.chapters[activeIndex].thumbHeight;
    imageControl.Width = imgData.chapters[activeIndex].thumbWidth;
    
    
    
    pagesCanvas.Width  = pageIndex * mainCanvas.findName("ThumbCanvas").Width;
    
    var thumbRotate = imageControl.findName("canvasRotateThumb");
    var rotateScene = imageControl.findName("rotateScene");
    
    if(activeLeft + imageControl.Width > screenWidth)
    {
        activeTop = activeTop + activeHeight + 24;
        activeLeft = 0;
    }
    if(activeTop > screenHeight)
    {
        pageIndex = pageIndex +1;
        activeTop = 0;
        
    }
    if(pageIndex > 1)
    {
        leftAdjust = 975 * (pageIndex - 1);
    }
    if (activeHeight != 0)
    {
        imageTop = activeHeight - imageElement.Height;
        imageElement["Canvas.Top"] = imageTop;
        rectangle["Canvas.Top"] = imageTop;
        Shadow["Canvas.Top"] = imageTop +5;
        movieIcon["Canvas.Top"] = activeHeight - 20;
        movieIcon["Canvas.Left"] = imgData.chapters[activeIndex].thumbWidth - 20;
    }
    
    if(imageControl.Height > activeHeight) activeHeight = imageControl.Height;
    
    imageCenter = (imageControl.Width - imageElement.Width)/2;
    imageElement["Canvas.Left"] = imageCenter;
    rectangle["Canvas.Left"] = imageCenter;
    Shadow["Canvas.Left"] = imageCenter +5;
    
    
    imageControl["Canvas.Left"] = activeLeft + leftAdjust;
    imageControl["Canvas.Top"] = activeTop;
    
    var rand_no = (Math.random()*90)-45;
    
    thumbRotate.Angle = rand_no;
    
    activeIndex = activeIndex + 1;
    activeLeft = activeLeft + imageControl.Width + 5;
    
    var adjustedIndex = activeIndex - 1;
    var imageIndex = imageControl.findName("imageIndex");
    imageIndex.Text = adjustedIndex.toString();
    
    var mediaType = imageControl.findName("mediaType");
    mediaType.Text = ext.toString();
    if(ext != "Video")
    {
        movieIcon.Visibility = "Collapsed";
    }
    page.Text = pageIndex.toString();
    debug.Text = totalCount.toString() + " + " + imgData.chapters.length.toString();
      }
  catch(err)
  {
  return;
  }
  finalCount = totalCount;
  
}




function controlXaml()
{
        var rand = (Math.random()*90)-45;
        var xaml_str = '';            
        xaml_str += '<Canvas Name="Scene" Width="100" Height="100" Cursor="Hand" MouseEnter="RollOver_In" Canvas.ZIndex="1" MouseLeave="RollOver_Out" MouseLeftButtonUp="onImageClick" RenderTransformOrigin="0.5,0.5">';
        xaml_str += '         <Canvas.RenderTransform>';
        xaml_str += '           <TransformGroup>';
        xaml_str += '                   <ScaleTransform ScaleX="1" ScaleY="1"/>';
		xaml_str += '	                <SkewTransform AngleX="0" AngleY="0"/>';
        xaml_str += '                   <RotateTransform Name = "canvasRotateThumb" CenterX="0" CenterY="0" Angle="-15"/>';
		xaml_str += '	                <TranslateTransform X="0" Y="0"/>';
        xaml_str += '           </TransformGroup>';
        xaml_str += '         </Canvas.RenderTransform>';
		xaml_str += '<Canvas.Resources>';
		xaml_str += '<Storyboard Name="RollOver_InScatter">';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Scene" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="0" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '</Storyboard>';
		xaml_str += '<Storyboard Name="RollOver_OutScatter">';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Scene" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="' + rand + '" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '</Storyboard>';
		xaml_str += '<Storyboard Name="RollOver_In">';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1.2" KeySpline="0.016,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1.2" KeySpline="0.016,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ImageElement" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1.2" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ImageElement" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1.2" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">';
		xaml_str += '		<SplineColorKeyFrame KeyTime="00:00:01" Value="#00000000"/>';
		xaml_str += '	</ColorAnimationUsingKeyFrames>';
		xaml_str += '<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Shadow" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1.2" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Shadow" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1.2" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '</Storyboard>';
		xaml_str += '<Storyboard Name="RollOver_Out">';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ImageElement" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ImageElement" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">';
		xaml_str += '		<SplineColorKeyFrame KeyTime="00:00:01" Value="#25000000"/>';
		xaml_str += '	</ColorAnimationUsingKeyFrames>';
		xaml_str += '<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Shadow" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '	<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Shadow" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">';
		xaml_str += '		<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" KeySpline="0,1,1,1"/>';
		xaml_str += '	</DoubleAnimationUsingKeyFrames>';
		xaml_str += '</Storyboard>';
		xaml_str += '<Storyboard Name="ThumbFade_In">';
		xaml_str += '	<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">';
		xaml_str += '		<SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="#AB000000" KeySpline="0,1,1,1"/>';
		xaml_str += '	</ColorAnimationUsingKeyFrames>';
		xaml_str += '	<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Stroke).(SolidColorBrush.Color)">';
		xaml_str += '		<SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="#7FFFFFFF" KeySpline="0,1,1,1"/>';
		xaml_str += '	</ColorAnimationUsingKeyFrames>';
		xaml_str += '</Storyboard>';
		xaml_str += '<Storyboard Name="ThumbFade_Out">';
		xaml_str += '	<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">';
		xaml_str += '		<SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="#23000000"/>';
		xaml_str += '	</ColorAnimationUsingKeyFrames>';
		xaml_str += '	<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Stroke).(SolidColorBrush.Color)">';
		xaml_str += '		<SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="#FFFFFFFF"/>';
		xaml_str += '	</ColorAnimationUsingKeyFrames>';
		xaml_str += '</Storyboard>';
	    xaml_str += '</Canvas.Resources>	';	
	    xaml_str += '<Rectangle Width="100" Height="100" Fill="#AA1C1C1C" Canvas.Top="5.119" Canvas.Left="5.119" Name="Shadow" RenderTransformOrigin="0.5,0.5">';	
		xaml_str += '	<Rectangle.RenderTransform>';	
		xaml_str += '		<TransformGroup>';	
		xaml_str += '			<ScaleTransform ScaleX="1" ScaleY="1"/>';	
		xaml_str += '			<SkewTransform AngleX="0" AngleY="0"/>';	
		xaml_str += '			<RotateTransform Angle="0"/>';	
		xaml_str += '			<TranslateTransform X="0" Y="0"/>';	
		xaml_str += '		</TransformGroup>';	
		xaml_str += '	</Rectangle.RenderTransform>';	
		xaml_str += '</Rectangle>';	
		xaml_str += '<Image Name="ImageElement" Width="100" Height="100" RenderTransformOrigin="0.5,0.5">';	
		xaml_str += '	<Image.RenderTransform>';     	                    
        xaml_str += '		<TransformGroup>';
		xaml_str += '			<ScaleTransform ScaleX="1" ScaleY="1"/>';
		xaml_str += '			<SkewTransform AngleX="0" AngleY="0"/>';
		xaml_str += '			<RotateTransform Angle="0"/>';	
		xaml_str += '			<TranslateTransform X="0" Y="0"/>';
		xaml_str += '		</TransformGroup>';
		xaml_str += '	</Image.RenderTransform>';
		xaml_str += '</Image>';
		xaml_str += '<TextBlock Width="100" Height="100" Text="ImageName" TextWrapping="Wrap" Foreground="#FFFFFFFF" Name="ImageName" Visibility="Collapsed"/>';
		xaml_str += '<Rectangle Width="100" Height="100" Fill="#24000000" Stroke="#FFFFFFFF" Opacity="1" StrokeThickness=".5" RenderTransformOrigin="0.5,0.5" Name="rectangle">';
		xaml_str += '	<Rectangle.RenderTransform>';     	                    
        xaml_str += '		<TransformGroup>';
		xaml_str += '			<ScaleTransform ScaleX="1" ScaleY="1"/>';
		xaml_str += '			<SkewTransform AngleX="0" AngleY="0"/>';
		xaml_str += '			<RotateTransform Angle="0"/>';	
		xaml_str += '			<TranslateTransform X="0" Y="0"/>';
		xaml_str += '		</TransformGroup>';
		xaml_str += '	</Rectangle.RenderTransform>';
		xaml_str += '</Rectangle>';
		xaml_str += '<TextBlock Width="100" Height="100" Text="TESTXAMLIMAGE" TextWrapping="Wrap" Name="imageIndex" Visibility="Collapsed"/>';
		xaml_str += '<TextBlock Width="100" Height="100" Text="TESTXAMLIMAGE" TextWrapping="Wrap" Name="mediaType" Visibility="Collapsed"/>';
		xaml_str += '<TextBlock Width="100" Height="100" Text="TESTXAMLIMAGE" TextWrapping="Wrap" Name="caption" Visibility="Collapsed"/>';
        xaml_str += '<TextBlock Width="100" Height="100" Text="TESTXAMLIMAGE" TextWrapping="Wrap" Name="page" Visibility="Collapsed"/>';
        xaml_str += '<Canvas Width="100" Height="100" Name="moviePNG">';
		xaml_str += '	<Image Width="13.332" Height="14.665" Name="movieIcon" Source="assets/movie-icon.png" Stretch="Fill" Canvas.Top="77.335" Canvas.Left="78.668"/>';
		xaml_str += '</Canvas>';
		xaml_str += '</Canvas> ';    
        return xaml_str;

}

function Control_Send(host, control_path)
{
    var downloader = host.createObject("downloader");        
    downloader.addEventListener("completed", Control_DownloaderCompleted);
    downloader.open("GET", control_path);
    downloader.send();
}

function Control_DownloaderCompleted(sender, e)
{
    var xamlItem = sender.getResponseText("");
    var host = sender.getHost();
    var page = host.content.findName("ThumbCanvas");   
}
function RollOver_In(sender, args)
{
    sender.findName("RollOver_In").Begin();
    sender["Canvas.ZIndex"] = 2;
    ActiveImageName.Text = sender.findName("ImageName").Text;
    if(pageState == "scatter")sender.findName("RollOver_InScatter").Begin();
}
function RollOver_Out(sender, args)
{
    sender.findName("RollOver_Out").Begin();
    sender["Canvas.ZIndex"] = 0;
    if(pageState == "scatter")sender.findName("RollOver_OutScatter").Begin();
    if (imageOpen == false)
    {
    captionText.Text = "";
    ActiveImageName.Text = "";
    }
}

function onImageClick(sender, args)
{
    tmediaType = "";
    loader.Visibility = "Visible";
    loaderintro.Begin();
    imageOpen = true;
    var imageIndex = sender.findName("imageIndex").Text;
    var width = imgData.chapters[imageIndex].imageWidth;
    var height = imgData.chapters[imageIndex].imageHeight;
    
    if (sender.findName("mediaType").Text =="Video")
    { 
        MovieControls.Visibility = "Visible";
        activeMovie.Visibility = "Visible";
        activeMovie.Height = height;
        activeMovie.Width = width;
        ImageNav["Canvas.Top"] = parseInt(height) + 8;
        ImageNav["Canvas.Left"] = (parseInt(width)/2) - (ImageNav.Width /2);
        var imageIndex = sender.findName("imageIndex").Text;
        activeMovie.Source = imgData.chapters[imageIndex].imageUrl;
        activeMovie.Stop();
        tmediaType = "movie";
    }else
    {
        tmediaType = "image";
        ActiveImage.Source = imgData.chapters[imageIndex].imageUrl;// "source/image/oceanboat.307.jpg";
        ActiveImageName.Text = sender.findName("ImageName").Text;
        captionText.Text = sender.findName("caption").Text;
        activeMovie.Visibility = "Collapsed";
        MovieControls.Visibility = "Collapsed";
        ImageNav["Canvas.Top"] = parseInt(height) + 8;
        ImageNav["Canvas.Left"] = (parseInt(width)/2) - (ImageNav.Width /2);
    }
        
    ImageCanvas.Height = height;
    ImageCanvas.Width = width;
    ImageCanvas.Visibility = "Visible";
    
    ActiveImage.Height = height;
    ActiveImage.Width  = width;
    imageBorder.Height = parseInt(height)+ 12;
    imageBorder.Width  = parseInt(width)+ 12;
    imageBorder_Shadow.Height = parseInt(height)+ 10;
    imageBorder_Shadow.Width  = parseInt(width)+ 22;
    MovieControls["Canvas.Top"] = height - MovieControls.Height + 12;
    imagePlacement["Canvas.Top"] = 1000 - parseInt(height) - 520;
    imagePlacement["Canvas.Left"] = ((mainCanvas.Height - parseInt(width))/2) - (ImageCanvas["Canvas.Left"]/2);
    activeIndex = imageIndex;
    var nCount = pagesCanvas.children.count;
           for (i = 0; i < nCount; i++) 
           {
               var child = pagesCanvas.children.getItem(i);
               if (child.ToString() == "Canvas")
               {
                  child.findName("ThumbFade_In").Begin();
               }
                
           }
    
    if(activeIndex == 0)
    {
         mainCanvas.findName("prevCanvas").Visibility = "Collapsed";
         PrevOver_Out.Begin();
    }else 
    {  
        mainCanvas.findName("prevCanvas").Visibility = "Visible";
    }
    if(parseInt(activeIndex) == finalCount + 1)
    {
         mainCanvas.findName("nextCanvas").Visibility = "Collapsed";
         NextOver_Out.Begin();
    }else 
    {  
        mainCanvas.findName("nextCanvas").Visibility = "Visible";
    }
    if (pagesCanvas.children.count == 1)
    {
        mainCanvas.findName("nextCanvas").Visibility = "Collapsed";
        mainCanvas.findName("prevCanvas").Visibility = "Collapsed";
    }
    
    debug.Text = finalCount.toString() + "+" + totalCount.toString();
}

function onImageOut(sender, args)
{
    imageOpen = false;
    ImageFadeOut.Begin();
    sender.findName("backRectangle").IsHitTestVisible = false;
    mainCanvas.IsHitTestVisible = false;
    activeMovie.Stop();
    tmediaType = "";
    var nCount = pagesCanvas.children.count;
           for (i = 0; i < nCount; i++) 
           {
               var child = pagesCanvas.children.getItem(i);
               if (child.ToString() == "Canvas")
               {
                  child.findName("ThumbFade_Out").Begin();
               }
                
           }
}

function FadeOut( sender , args ) 
{ 
    ImageCanvas.Visibility = "Collapsed";
    sender.findName("backRectangle").IsHitTestVisible = true;
    mainCanvas.IsHitTestVisible = true;
    ActiveImage.Source = "";
    ActiveImageName.Text = "";
    
}


function onPlay()
{
    activeMovie.Play();
}
function onPause()
{
    activeMovie.Pause();
}
function onStop()
{
    activeMovie.Stop();
}    
function nextOver_In()
{
    NextOver_In.Begin();
}
function nextOver_Out()
{
    NextOver_Out.Begin();
}
function prevOver_In()
{
    if(activeIndex != 0)
    {
        PrevOver_In.Begin();
    }
}
function prevOver_Out()
{
    PrevOver_Out.Begin();
}

function changeImage(sender, args)
{
        loader.Visibility = "Visible";
        loaderintro.Begin();
        
        

    if (imageNavType =="Next")
    {
        
        var ext;
        var path = imgData.chapters[parseInt(activeIndex)].imageUrl;
        var extGif = path.substring(path.lastIndexOf(".")+1,path.length).toLowerCase();
        if (extGif == "jpg" || extGif == "wmv" || extGif == "png")
        {
            ext = imgData.chapters[activeIndex].type;
        }
        else
        {
            imageFailed();
        }
        var width = imgData.chapters[parseInt(activeIndex)].imageWidth;
        var height = imgData.chapters[parseInt(activeIndex)].imageHeight;
        if(ext == "Video")
        {   
            tmediaType = "movie";
            activeMovie.Height = height;
            activeMovie.Width = width;
            ActiveImage.Visibility = "Collapsed";
            MovieControls.Visibility = "Visible";
            activeMovie.Visibility = "Visible";
            activeMovie.Source = imgData.chapters[parseInt(activeIndex)].imageUrl;
            activeIndex = (parseInt(activeIndex)).toString();
            activeMovie.Stop();
        }else{
        tmediaType = "image";
        activeMovie.Visibility = "Collapsed";
        MovieControls.Visibility = "Collapsed";
        activeMovie.Stop();
        ActiveImage.Visibility = "Visible";
        ActiveImage.Source = imgData.chapters[parseInt(activeIndex)].imageUrl;
        activeIndex = (parseInt(activeIndex)).toString();
        }
        if (controlArray[(activeIndex)].findName("page").Text != "TESTXAMLIMAGE")
        {
            if (currentPage != pageIndex)
            {
                if(currentPage != parseInt(controlArray[ parseInt(activeIndex)].findName("page").Text))
                {
                   onNextPage();
                }
                
            }
        }
        
        if(activeIndex == 0)
        {
         mainCanvas.findName("prevCanvas").Visibility = "Collapsed";
         PrevOver_Out.Begin();
        }else 
        {  
        mainCanvas.findName("prevCanvas").Visibility = "Visible";
        }
        
        if(parseInt(activeIndex) == finalCount + 1)
        {
            mainCanvas.findName("nextCanvas").Visibility = "Collapsed";
            NextOver_Out.Begin();
        }else{
            mainCanvas.findName("nextCanvas").Visibility = "Visible";
        }
        
        captionText.Text = imgData.chapters[parseInt(activeIndex)].Caption;
        ActiveImageName.Text = imgData.chapters[parseInt(activeIndex)].filename;
        ImageCanvas.Height = height;
        ImageCanvas.Width = width;
        MovieControls["Canvas.Top"] = height - MovieControls.Height + 12;
        ImageNav["Canvas.Top"] = parseInt(height) + 8;
        ImageNav["Canvas.Left"] = (parseInt(width)/2) - (ImageNav.Width /2);
        ActiveImage.Height = height;
        ActiveImage.Width  = width;
        imageBorder_Shadow.Height = parseInt(height)+ 10;
        imageBorder_Shadow.Width  = parseInt(width)+ 22;
        imageBorder.Height = parseInt(height)+ 12;
        imageBorder.Width  = parseInt(width)+ 12;
        imagePlacement["Canvas.Top"] = 1000 - parseInt(height) - 520;
        imagePlacement["Canvas.Left"] = ((mainCanvas.Height - parseInt(width))/2) - (ImageCanvas["Canvas.Left"]/2);
       
    }
    else
    {
        var ext;
        var path = imgData.chapters[parseInt(activeIndex)].imageUrl;
        var extGif = path.substring(path.lastIndexOf(".")+1,path.length).toLowerCase();
        if (extGif == "jpg" || extGif == "wmv" || extGif == "png")
        {
            ext = imgData.chapters[activeIndex].type;        }
        else
        {
            imageFailed();
        }
        
        var width = imgData.chapters[parseInt(activeIndex)].imageWidth;
        var height = imgData.chapters[parseInt(activeIndex)].imageHeight;
        if(ext == "Video")
        {
            ActiveImage.Visibility = "Collapsed";
            activeMovie.Height = height;
            activeMovie.Width = width;
            MovieControls.Visibility = "Visible";
            activeMovie.Visibility = "Visible";
            activeMovie.Source = imgData.chapters[parseInt(activeIndex)].imageUrl;
            activeIndex = (parseInt(activeIndex)).toString();
            activeMovie.Stop();
            tmediaType = "movie";
        }else{
        tmediaType = "image";
        activeMovie.Visibility = "Collapsed";
        MovieControls.Visibility = "Collapsed";
        activeMovie.Stop();
        ActiveImage.Visibility = "Visible";
        ActiveImage.Source = imgData.chapters[parseInt(activeIndex)].imageUrl;
        activeIndex = (parseInt(activeIndex)).toString();
        }
        if (controlArray[(activeIndex)].findName("page").Text != "TESTXAMLIMAGE")
        {
            if(currentPage != parseInt(controlArray[ parseInt(activeIndex)].findName("page").Text))
            {
               onPrevPage();
            }
        }
        
        if(activeIndex == 0)
        {
         mainCanvas.findName("prevCanvas").Visibility = "Collapsed";
         PrevOver_Out.Begin();
        }else 
        {  
        mainCanvas.findName("prevCanvas").Visibility = "Visible";
        }
        if(parseInt(activeIndex) == finalCount + 1)
        {
            mainCanvas.findName("nextCanvas").Visibility = "Collapsed";
            NextOver_Out.Begin();
        }else{
            mainCanvas.findName("nextCanvas").Visibility = "Visible";
        }
        
        
        captionText.Text = imgData.chapters[parseInt(activeIndex)].Caption;
        ActiveImageName.Text = imgData.chapters[parseInt(activeIndex)].filename;
        ImageCanvas.Height = height;
        ImageCanvas.Width = width;
        MovieControls["Canvas.Top"] = height - MovieControls.Height + 12;
        ImageNav["Canvas.Top"] = parseInt(height) + 8;
        ImageNav["Canvas.Left"] = (parseInt(width)/2) - (ImageNav.Width /2);
        ActiveImage.Height = height;
        ActiveImage.Width  = width;
        imageBorder_Shadow.Height = parseInt(height)+ 10;
        imageBorder_Shadow.Width  = parseInt(width)+ 22;
        imageBorder.Height = parseInt(height)+ 12;
        imageBorder.Width  = parseInt(width)+ 12;
        imagePlacement["Canvas.Top"] = 1000 - parseInt(height) - 520;
        imagePlacement["Canvas.Left"] = ((mainCanvas.Height - parseInt(width))/2) - (ImageCanvas["Canvas.Left"]/2);
    }
}

function onNextImage()
{
    if(activeIndex + 1 != "null")
    {
        imageNavType = "Next";
        imageChange_Start.Begin();
        activeIndex = (parseInt(activeIndex)  + 1).toString();
    }   
        
}
function onPrevImage()
{
    
    if(activeIndex != 0)
    {
        imageNavType = "Prev";
        imageChange_Start.Begin();
        activeIndex = (parseInt(activeIndex)  - 1).toString();
    }
   
}


function nextOver()
{
    if(currentPage< pageIndex)
    {
        nextPage.Opacity = 1;
    }
}
function nextOut()
{
    nextPage.Opacity = .33;
}
function prevOver()
{
    if(currentPage>1)
    {
        prevPage.Opacity = 1;
    }
    
}
function prevOut()
{
    prevPage.Opacity = .33;
}
function firstOver()
{
    if(currentPage != 1)
    {
        firstPage.Opacity = 1;
    }
}
function firstOut()
{
    firstPage.Opacity = .33;
}
function lastOver()
{
    if(currentPage< pageIndex)
    {
        lastPage.Opacity = 1;
    }
}
function lastOut()
{
    lastPage.Opacity = .33;
}
function onFirstPage()
{
    if(currentPage>1)
    {
        pageSound.Stop();
        pagesAnim.findName("pageChange").By = 975 * (currentPage - 1);
        pagesAnim.Begin();
        currentPage = 1;
        mainCanvas.isHitTestVisible = false;
        currPage.Text = currentPage.toString();
        
        pageSound.Play();
    }
}
function onLastPage()
{
    if(currentPage< pageIndex)
    {
        pageSound.Stop();
        pagesAnim.findName("pageChange").By = -975 * (pageIndex - currentPage);
        pagesAnim.Begin();
        currentPage = pageIndex;
        mainCanvas.isHitTestVisible = false;
        currPage.Text = currentPage.toString();
        
        pageSound.Play();
    }
}

function onNextPage()
{
    
    
        if(pageIndex > currentPage)
        {
            pageSound.Stop();
            pagesAnim.findName("pageChange").By = -975;
            pagesAnim.Begin();
            currentPage = currentPage + 1;
            mainCanvas.isHitTestVisible = false;
            currPage.Text = currentPage.toString();
            pageSound.Play();
        }
    
}
function pagesAnimCompleted()
{
    mainCanvas.isHitTestVisible = true;
}
function onPrevPage()
{
    if(currentPage > 1)
    {
        pageSound.Stop();
        pagesAnimBack.findName("pageChangeBack").By = 975;
        pagesAnimBack.Begin();
        currentPage = currentPage - 1;
        mainCanvas.isHitTestVisible = false;
        currPage.Text = currentPage.toString();
        pageSound.Play();
    }
}
function pagesAnimBackCompleted()
{
    mainCanvas.isHitTestVisible = true;
}
function onSort()
{
    if(pageState =="scatter")
    {

        var nCount = pagesCanvas.children.count;
           for (i = 0; i < nCount; i++) 
           {
               var child = pagesCanvas.children.getItem(i);
               if (child.ToString() == "Canvas")
               {
                  child.findName("RollOver_InScatter").Begin();
               }
                
           }
           pageState = "sorted";
           sortAnim.Begin();
     }
     else
     {
        var nCount = pagesCanvas.children.count;
           for (i = 0; i < nCount; i++) 
           {
               var child = pagesCanvas.children.getItem(i);
               if (child.ToString() == "Canvas")
               {
                  child.findName("RollOver_OutScatter").Begin();
               }
                
           }
           pageState = "scatter";
           sortAnim_Back.Begin();
    }   
}
function sortMouseEnter()
{
    sortHighlight.Begin();
}
function sortMouseLeave()
{
    sortUnHighlight.Begin();
}

function downloadProgressChanged(sender, args)
{   
    
    if (sender.downloadProgress == 1.0){
        
        imageChange_End.Begin();
        ImageFadeIn.Begin();
        loaderintro.Stop();
        animationloop.Stop();
        loader.Visibility = "Collapsed";
        if (tmediaType =="movie")
        {
        activeMovie.Play();
        }
    }
}
function imageLoaded(sender, args)
{
    
}
function imageFailed(sender, args)
{
    
    
    if (imageNavType == "Next")
    {
    activeIndex = (parseInt(activeIndex) +1).toString();
    }else{
    activeIndex = (parseInt(activeIndex) -1).toString();
    }
    changeImage();
}
function loaderLoaded(sender, args)
{
    animationloop.Begin();
}
	  

