if (!window.VideoFlow)
	window.VideoFlow = {};

VideoFlow.Page = function() 
{
}

VideoFlow.Page.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;
		root = rootElement;
		
        var n = "video";
        var w = 240;
        var h = 240;
        var d = "0:0:0.2";
        
        for (var i = 0; i < 44; i++)
        {
            var ni = n + i.toString();
		    rootElement.findName("videoflow").children.add(control.content.CreateFromXaml('<Canvas Name="' + ni + '" RenderTransformOrigin="0.5,0.5" Width="' + w + '" Height="' + h + '" Cursor="Hand" MouseLeftButtonDown="ChangeVideo"><Canvas.Resources><Storyboard Name="' + ni + '_anim"><DoubleAnimation To="1" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" /><DoubleAnimation To="1" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" /><DoubleAnimation To="0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleY)" /><DoubleAnimation To="0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(TranslateTransform.X)" /><PointAnimation To="0,0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.Clip).(PathGeometry.Figures)[0].(PathFigure.Segments)[0].(LineSegment.Point)" /><PointAnimation To="' + w + ',0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.Clip).(PathGeometry.Figures)[0].(PathFigure.Segments)[1].(LineSegment.Point)" /></Storyboard></Canvas.Resources><Canvas.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1" /><SkewTransform AngleX="0" AngleY="0" /><TranslateTransform X="0" Y="0" /></TransformGroup></Canvas.RenderTransform><Canvas.Clip><PathGeometry><PathFigure StartPoint="0,' + h + '" IsClosed="True"><PathFigure.Segments><LineSegment Point="0,0"/><LineSegment Point="' + w + ',0"/><LineSegment Point="' + w + ',' + h + '"/></PathFigure.Segments> </PathFigure></PathGeometry></Canvas.Clip><Image Width="' + w + '" Height="' + h + '" Stretch="UniformToFill" Source="' + videothumblist[i % 5] + '" /></Canvas>'));
		    
		    ni = ni + "_reflection"
		    rootElement.findName("videoflow_reflection").children.add(control.content.CreateFromXaml('<Canvas Name="' + ni + '" RenderTransformOrigin="0.5,0.5" Width="' + w + '" Height="' + h + '"><Canvas.Resources><Storyboard Name="' + ni + '_anim"><DoubleAnimation To="1" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" /><DoubleAnimation To="1" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" /><DoubleAnimation To="0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleY)" /><DoubleAnimation To="0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(TranslateTransform.X)" /><DoubleAnimation To="0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(TranslateTransform.Y)" /><PointAnimation To="0,0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.Clip).(PathGeometry.Figures)[0].(PathFigure.Segments)[0].(LineSegment.Point)" /><PointAnimation To="' + w + ',0" Duration="' + d + '" Storyboard.TargetName="' + ni + '" Storyboard.TargetProperty="(UIElement.Clip).(PathGeometry.Figures)[0].(PathFigure.Segments)[1].(LineSegment.Point)" /></Storyboard></Canvas.Resources><Canvas.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1" /><SkewTransform AngleX="0" AngleY="0" /><TranslateTransform X="0" Y="0" /></TransformGroup></Canvas.RenderTransform><Canvas.Clip><PathGeometry><PathFigure StartPoint="0,' + h + '" IsClosed="True"><PathFigure.Segments><LineSegment Point="0,0"/><LineSegment Point="' + w + ',0"/><LineSegment Point="' + w + ',' + h + '"/></PathFigure.Segments> </PathFigure></PathGeometry></Canvas.Clip><Image Width="' + w + '" Height="' + h + '" Stretch="UniformToFill" Source="' + videothumblist[i % 5] + '" /></Canvas>'));
	    }
	    
	    SelectCover(22);
	    SelectCoverReflection(22);
	    
	    var label = root.findName("label");
        label.text = videonamelist[selectedindex % 5];
        label["Canvas.Left"] = (640 - label.actualWidth) / 2;
        label["Canvas.Top"] = (100 - label.actualHeight) / 2;
	}
}

var root = null;
var videolist = new Array("business/index.html", "ingenieria/index.html", "it/index.html", "licensing/index.html", "contacto/index.html");
var videothumblist = new Array("png_cf/bp.png", "png_cf/ing.png", "png_cf/it.png", "png_cf/ls.png", "png_cf/contacto.png");
var videonamelist = new Array("", "", "", "", "");
var timer = null;
var selectedindex = 20;

function ChangeVideo(sender, args)
{
    var newselectedindex = sender.Name.replace("video", "");
    
    if(newselectedindex == selectedindex)
    {
	location.href = videolist[selectedindex % 5]
 //  document.write("Target : " + document.links[i].target + "<br>");
  // document.write("Host : " + document.links[i].host + "<br>");
 //  document.write("Href : " + document.links[i].href + "<br>");
  // }

    //    root.findName("videoplayer").visibility = "Visible";
    //    root.findName("videocontext").source = videolist[selectedindex % 3];
    }
    else
    {
        selectedindex = newselectedindex;
        
        SelectCover(selectedindex);
        SelectCoverReflection(selectedindex);
        
	    var label = root.findName("label");
        label.text = videonamelist[selectedindex % 5];
        label["Canvas.Left"] = (640 - label.actualWidth) / 2;
        label["Canvas.Top"] = (100 - label.actualHeight) / 2;
    }
}

function CloseVideoPlayer(sender, args)
{
    root.findName("videoplayer").visibility = "Collapsed";
    root.findName("videocontext").source = null;
}

function SelectCover(index)
{
    var coverflow = root.findName("videoflow");
    var sb = null;
    
    // Setup
    var coverwidth = 240;
    var coverwidth2 = coverwidth / 2;
    var center = (coverflow.width - coverwidth) / 2;
    
    var perspectivetop = 10; //proyeccion superior
    var perspectivebotton = 10; //proyeccion inferior
    var scaley = 0.8;
    var scalex = scaley * (1.0 - perspectivetop / coverwidth);
    var offset = coverwidth * 0.8;

    // Layout
    for (var i = 0; i < coverflow.children.count; i++)
    {
        var cover = coverflow.children.getItem(i);
        
        if (i < index)
        {
            cover["Canvas.ZIndex"] = i;
            
            sb = cover.findName(cover.Name + "_anim");
            sb.children.getItem(0).to = scalex;
            sb.children.getItem(1).to = scaley;
            sb.children.getItem(2).to = -perspectivebotton;
            sb.children.getItem(3).to = center - (offset + ((index - 1) - i) * coverwidth2);
            sb.children.getItem(4).to = "0,0";
            sb.children.getItem(5).to = coverwidth + "," + perspectivetop;
            sb.begin();
        }
        else if (i > index)
        {
            var ii = (i - index - 1);
            cover["Canvas.ZIndex"] = (coverflow.children.count - 1) - ii;
            
            sb = cover.findName(cover.Name + "_anim");
            sb.children.getItem(0).to = scalex;
            sb.children.getItem(1).to = scaley;
            sb.children.getItem(2).to = perspectivebotton;
            sb.children.getItem(3).to = center + (offset + ii * coverwidth2);
            sb.children.getItem(4).to = "0," + perspectivetop;
            sb.children.getItem(5).to = coverwidth + ",0";
            sb.begin();
        }
        else
        {
            cover["Canvas.ZIndex"] = coverflow.children.count + 0;
            
            sb = cover.findName(cover.Name + "_anim");
            sb.children.getItem(0).to = 1;
            sb.children.getItem(1).to = 1;
            sb.children.getItem(2).to = 0;
            sb.children.getItem(3).to = center;
            sb.children.getItem(4).to = "0,0";
            sb.children.getItem(5).to = coverwidth + ",0";
            sb.begin();
        }
    }
}
function SelectCoverReflection(index)
{
    var coverflowreflection = root.findName("videoflow_reflection");
    var sb = null;
    
    // Setup
    var coverwidth = 240;
    var coverwidth2 = coverwidth / 2;
    var center = (coverflowreflection.width - coverwidth) / 2;
    
    var perspectivetop = 60;
    var perspectivebotton = 10;
    var scaley = 0.8;
    var scalex = scaley * (1.0 - perspectivetop / coverwidth);
    var offset = coverwidth * 0.8;

    // Layout
    for (var i = 0; i < coverflowreflection.children.count; i++)
    {
        var cover = coverflowreflection.children.getItem(i);
        
        if (i < index)
        {
            cover["Canvas.ZIndex"] = i;
            
            sb = cover.findName(cover.Name + "_anim");
            sb.children.getItem(0).to = scalex;
            sb.children.getItem(1).to = scaley;
            sb.children.getItem(2).to = perspectivebotton;
            sb.children.getItem(3).to = center - (offset + ((index - 1) - i) * coverwidth2);
            sb.children.getItem(4).to = 50;
            sb.children.getItem(5).to = "0,0";
            sb.children.getItem(6).to = coverwidth + "," + perspectivetop;
            sb.begin();
        }
        else if (i > index)
        {
            var ii = (i - index - 1);
            cover["Canvas.ZIndex"] = (coverflowreflection.children.count - 1) - ii;
            
            sb = cover.findName(cover.Name + "_anim");
            sb.children.getItem(0).to = scalex;
            sb.children.getItem(1).to = scaley;
            sb.children.getItem(2).to = -perspectivebotton;
            sb.children.getItem(3).to = center + (offset + ii * coverwidth2);
            sb.children.getItem(4).to = 50;
            sb.children.getItem(5).to = "0," + perspectivetop;
            sb.children.getItem(6).to = coverwidth + ",0";
            sb.begin();
        }
        else
        {
            cover["Canvas.ZIndex"] = coverflowreflection.children.count + 0;
            
            sb = cover.findName(cover.Name + "_anim");
            sb.children.getItem(0).to = 1;
            sb.children.getItem(1).to = 1;
            sb.children.getItem(2).to = 0;
            sb.children.getItem(3).to = center;
            sb.children.getItem(4).to = 0;
            sb.children.getItem(5).to = "0,0";
            sb.children.getItem(6).to = coverwidth + ",0";
            sb.begin();
        }
    }
}