﻿if (!window.malcolmsheppard_v4)
	window.malcolmsheppard_v4 = {};

malcolmsheppard_v4.Scene = function() 
{
}

malcolmsheppard_v4.Scene.prototype =
{
	handleLoad: function(plugIn, userContext, rootElement) 
	{
		this.plugIn = plugIn;


		// Sample button event hookup: Find the button and then attach event handlers
		// this.button = rootElement.children.getItem(0);

		// this.button.addEventListener("MouseDown", Silverlight.createDelegate(this, this.handleMouseDown));
    }
	
	// Sample event handler
	//handleMouseDown: function(sender, eventArgs) 
	//{
	//}
}




//
//var isMouseOverGary = false;
//var isMouseOverGary2 = false;



//
function LayoutRootLoaded(sender)
{

    var plugin = sender.getHost();


    //
    var BuiltXaml = document.getElementById("BuiltXaml").innerHTML;
    var newCanvas = plugin.content.createFromXaml(BuiltXaml, false);
    plugin.content.findName("AnimationCanvas").children.add(newCanvas);


    
    
    //
//    var RandomTextBlockgary = plugin.content.findName("RandomTextBlockgary");
//    RandomTextBlockgary.AddEventListener("MouseEnter", RandomTextBlockgary_MouseEnter);
//    RandomTextBlockgary.AddEventListener("MouseLeave", RandomTextBlockgary_MouseLeave);

//    var RandomTextBlockgary2 = plugin.content.findName("RandomTextBlockgary2");
//    RandomTextBlockgary2.AddEventListener("MouseEnter", RandomTextBlockgary2_MouseEnter);
//    RandomTextBlockgary2.AddEventListener("MouseLeave", RandomTextBlockgary2_MouseLeave);





    //
    var containerWidth = plugin.content.findName("AnimationCanvas").Width;
    var containerHeight = plugin.content.findName("AnimationCanvas").Height;





    // Moire
    var LineTemplate = "<Path Canvas.Left='0' Canvas.Top='0' Stroke='#20808080' StrokeThickness='1' ><Path.Data><LineGeometry StartPoint='0,0' EndPoint='_EndPointX_,_EndPointY_' /></Path.Data></Path>";

    for (var i = 0; i <= 90; i += 2)
    {
        var thisX = Math.cos(i * Math.PI / 180.0) * 800;
        var thisY = Math.sin(i * Math.PI / 180.0) * 800;


        var thisLine = LineTemplate;
        thisLine = thisLine.replace("_EndPointX_", thisX.toString());
        thisLine = thisLine.replace("_EndPointY_", thisY.toString());

    //    thisPath.Opacity = 0;

        var newCanvas = plugin.content.createFromXaml(thisLine, false);
        plugin.content.findName("AnimationCanvas").children.add(newCanvas);
    }




    // Concentric circles
    var ConcentricCircleTemplate = "<Ellipse Canvas.Left='_LEFT_' Canvas.Top='_TOP_' Width='_WIDTH_' Height='_HEIGHT_' Stroke='#20808080' StrokeThickness='1' />";
    for (var eSize = 0; eSize < 1600; eSize += 50)
    {
        var thisCC = ConcentricCircleTemplate;
        var thisCenter = -eSize / 2;
        thisCC = thisCC.replace("_LEFT_", thisCenter.toString());
        thisCC = thisCC.replace("_TOP_", thisCenter.toString());
        thisCC = thisCC.replace("_WIDTH_", eSize.toString());
        thisCC = thisCC.replace("_HEIGHT_", eSize.toString());

        var newCanvas = plugin.content.createFromXaml(thisCC, false);
        plugin.content.findName("AnimationCanvas").children.add(newCanvas);
    }




    // Spawn Random Ellipses
    //var RandomEllipseTemplate = "<Ellipse Canvas.Left='_LEFT_' Canvas.Top='_TOP_' Width='_WIDTH_' Height='_HEIGHT_' Stroke='#20808080' StrokeThickness='1' Fill='#10808080' />";

    var RandomEllipseTemplate = "";
    
//    RandomEllipseTemplate += "<Ellipse xmlns='http://schemas.microsoft.com/client/2007' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' x:Name='_ELLIPSENAME_' Canvas.Left='_LEFT_' Canvas.Top='_TOP_' Width='_WIDTH_' Height='_HEIGHT_' Stroke='_STROKE_' StrokeThickness='1' Fill='_FILL_' RenderTransformOrigin='0.5,0.5' >";

//    RandomEllipseTemplate += "  <Ellipse.RenderTransform>";
//    RandomEllipseTemplate += "		<TransformGroup>";
//    RandomEllipseTemplate += "			<TranslateTransform X='0' Y='0' />";
//    //RandomEllipseTemplate += "			<RotateTransform Angle='0' />";
//    //RandomEllipseTemplate += "			<ScaleTransform ScaleX='1' ScaleY='1'/>";
//    //RandomEllipseTemplate += "			<SkewTransform AngleX='0' AngleY='0'/>";
//    //RandomEllipseTemplate += "			<RotateTransform Angle='0'/>";
//    RandomEllipseTemplate += "		</TransformGroup>";
//    RandomEllipseTemplate += "	</Ellipse.RenderTransform>";

//    RandomEllipseTemplate += "    <Ellipse.Triggers>";
//    RandomEllipseTemplate += "        <EventTrigger RoutedEvent='Ellipse.Loaded'>";
//    RandomEllipseTemplate += "            <BeginStoryboard>";
//    RandomEllipseTemplate += "                <Storyboard Storyboard.TargetName='_ELLIPSENAME_' RepeatBehavior='Forever'>";

//    //RandomEllipseTemplate += "                    <DoubleAnimation Storyboard.TargetName='_ELLIPSENAME_' Storyboard.TargetProperty='(Canvas.Top)' BeginTime='0:0:_BeginTime_' Duration='0:0:_DURATION_' To='_TO_' />";
//    RandomEllipseTemplate += "                    <DoubleAnimation Storyboard.TargetProperty='(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)' BeginTime='0:0:_BeginTime_' Duration='0:0:_DURATION_' To='_TRANSLATEYTO_' />";
//    //RandomEllipseTemplate += "                    <DoubleAnimation Storyboard.TargetProperty='(UIElement.RenderTransform).(TransformGroup.Children)[1].(RotateTransform.Angle)' BeginTime='0:0:0' Duration='0:0:2' To='360' RepeatBehavior='Forever' />";

//    RandomEllipseTemplate += "                </Storyboard>";
//    RandomEllipseTemplate += "            </BeginStoryboard>";
//    RandomEllipseTemplate += "        </EventTrigger>";
//    RandomEllipseTemplate += "    </Ellipse.Triggers>";
//    RandomEllipseTemplate += "</Ellipse>";

    RandomEllipseTemplate += "<Canvas xmlns='http://schemas.microsoft.com/client/2007' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' x:Name='_ELLIPSENAME_' Canvas.Left='_LEFT_' Canvas.Top='_TOP_' Width='_WIDTH_' Height='_HEIGHT_' RenderTransformOrigin='0.5,0.5' >";
    
    RandomEllipseTemplate += "  <Canvas.RenderTransform>";
    RandomEllipseTemplate += "		<TransformGroup>";
    RandomEllipseTemplate += "			<TranslateTransform X='0' Y='0' />";
    //RandomEllipseTemplate += "			<RotateTransform Angle='0' />";
    //RandomEllipseTemplate += "			<ScaleTransform ScaleX='1' ScaleY='1'/>";
    //RandomEllipseTemplate += "			<SkewTransform AngleX='0' AngleY='0'/>";
    //RandomEllipseTemplate += "			<RotateTransform Angle='0'/>";
    RandomEllipseTemplate += "		</TransformGroup>";
    RandomEllipseTemplate += "	</Canvas.RenderTransform>";

    RandomEllipseTemplate += "    <Canvas.Triggers>";
    RandomEllipseTemplate += "        <EventTrigger RoutedEvent='Canvas.Loaded'>";
    RandomEllipseTemplate += "            <BeginStoryboard>";
    RandomEllipseTemplate += "                <Storyboard Storyboard.TargetName='_ELLIPSENAME_' RepeatBehavior='Forever'>";

    //RandomEllipseTemplate += "                    <DoubleAnimation Storyboard.TargetName='_ELLIPSENAME_' Storyboard.TargetProperty='(Canvas.Top)' BeginTime='0:0:_BeginTime_' Duration='0:0:_DURATION_' To='_TO_' />";
    RandomEllipseTemplate += "                    <DoubleAnimation Storyboard.TargetProperty='(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)' BeginTime='0:0:_BeginTime_' Duration='0:0:_DURATION_' To='_TRANSLATEYTO_' />";
    //RandomEllipseTemplate += "                    <DoubleAnimation Storyboard.TargetProperty='(UIElement.RenderTransform).(TransformGroup.Children)[1].(RotateTransform.Angle)' BeginTime='0:0:0' Duration='0:0:2' To='360' RepeatBehavior='Forever' />";

    RandomEllipseTemplate += "                </Storyboard>";
    RandomEllipseTemplate += "            </BeginStoryboard>";
    RandomEllipseTemplate += "        </EventTrigger>";
    RandomEllipseTemplate += "    </Canvas.Triggers>";

    //RandomEllipseTemplate += "  <Ellipse Width='_WIDTH_' Height='_HEIGHT_' Stroke='_STROKE_' StrokeThickness='1' Fill='_FILL_' />";
    RandomEllipseTemplate += "  <Image Width='_WIDTH_' Height='_HEIGHT_' Source='SL1_RMS_Home1/SL_CFEVA_Logo.png' Stretch='UniformToFill' Opacity='_IMAGEOPACITY_' /> ";

    RandomEllipseTemplate += "</Canvas>";

    
    for (var i = 0; i < 40; i++)
    {
        var thisRE = RandomEllipseTemplate;

        var ellipseName = "RandomEllipse" + i.toString()
        thisRE = thisRE.replace(/_ELLIPSENAME_/g, ellipseName);

        var randomSize = (Math.random() * 20) + 10;
        var randomLeft = Math.random() * (containerWidth - randomSize);
        var randomTop = Math.random() * containerHeight;
        
        thisRE = thisRE.replace("_LEFT_", randomLeft.toString());
        //thisRE = thisRE.replace("_TOP_", randomTop.toString());
        thisRE = thisRE.replace(/_WIDTH_/g, randomSize.toString());
        thisRE = thisRE.replace(/_HEIGHT_/g, randomSize.toString());

        if (Math.random() > .5)
        {
            thisRE = thisRE.replace("_TOP_", containerHeight.toString());
            //thisRE = thisRE.replace("_TO_", -randomSize.toString());
            var TranslateYTarget = -(containerHeight + randomSize);
            thisRE = thisRE.replace("_TRANSLATEYTO_", TranslateYTarget.toString());
        }
        else
        {
            thisRE = thisRE.replace("_TOP_", -randomSize.toString());
            //thisRE = thisRE.replace("_TO_", containerHeight.toString());
            var TranslateYTarget = containerHeight + randomSize;
            thisRE = thisRE.replace("_TRANSLATEYTO_", TranslateYTarget.toString());
        }

        var randomBeginTime = (Math.random() * 20.0) + 1;
        randomBeginTime = Math.ceil(randomBeginTime);
        thisRE = thisRE.replace("_BeginTime_", randomBeginTime.toString());

        var randomDuration = (Math.random() * 10.0) + 10;
        randomDuration = Math.ceil(randomDuration);
        thisRE = thisRE.replace("_DURATION_", randomDuration.toString());


        thisRE = thisRE.replace("_STROKE_", "sc#.2," + RandomScColor().toString());

        thisRE = thisRE.replace("_FILL_", "sc#.1," + RandomScColor().toString());

        thisRE = thisRE.replace("_IMAGEOPACITY_", ((Math.random() * .2) + .3).toString());


        var newCanvas = plugin.content.createFromXaml(thisRE, false);
        plugin.content.findName("AnimationCanvas").children.add(newCanvas);


        //thisRE = null;
        delete thisRE;

    }

}




function RandomScColor()
{
    return Math.random().toString() + "," + Math.random().toString() + "," + Math.random().toString();
}





//function RandomTextBlockgary_MouseEnter(sender, mouseEventArgs) {

//    //alert("GARY!");

//    if (!isMouseOverGary) {
//        isMouseOverGary = true;

//        //alert("Mouse over Gary");

//        // Begin the flash animation
//        sender.findName("Gary1PixCanvasFlashStoryboard").begin();

//    }
//}



//function RandomTextBlockgary_MouseLeave(sender, mouseEventArgs) {
//    isMouseOverGary = false;
//}





//function RandomTextBlockgary2_MouseEnter(sender, mouseEventArgs) {

//    //alert("GARY2!");

//    if (!isMouseOverGary2) {
//        isMouseOverGary2 = true;

//        //alert("Mouse over Gary2");

//        // Begin the flash animation
//        sender.findName("Gary2PixCanvasFlashStoryboard").begin();

//    }
//}



//function RandomTextBlockgary2_MouseLeave(sender, mouseEventArgs) {
//    isMouseOverGary2 = false;
//}
