var myHost=null;
var images_loaded = false;
var storyboard_created = false; 

if (!window.CineteatroHeading)
	CineteatroHeading = {};

CineteatroHeading.Page = function() 
{
}

CineteatroHeading.Page.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;

		myHost = rootElement.getHost();		

		for (i=10; i<=40; i++)
		{
			initFilmstripFrame(i);
			var rnd_no = Math.floor( 1000 * Math.random() );
                        
                        this.control.content.findName("frame_" + i).AddEventListener("DownloadProgressChanged", progressChanged);
		}
		images_loaded = true;

		// storyboard FadeIn
		for (i=10; i<=40; i++)
		{
			var xamlFragment2 = '<Storyboard Name="frameFadeIn_'+i+'" Completed="completedFadeIn">';
			xamlFragment2 += '<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="frame_'+i+'" Storyboard.TargetProperty="(UIElement.Opacity)">';
			xamlFragment2 += '<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/><SplineDoubleKeyFrame KeyTime="00:00:02" Value="1"/>';
			xamlFragment2 += '</DoubleAnimationUsingKeyFrames>';
			xamlFragment2 += '</Storyboard>';
			var xamlObj2 = control.content.CreateFromXaml(xamlFragment2);
			rootElement.resources.add(xamlObj2);
			xamlObj2.Begin();

			// l'immagine appare subito
			var rnd_time = Math.floor( 15000 * Math.random() ) + 5000;
			setTimeout(function(){fadeIn(i)},rnd_time);

			var xamlFragment = '<Storyboard Name="frameFadeOut_'+i+'" Completed="completedFadeOut">';
			xamlFragment += '<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="frame_'+i+'" Storyboard.TargetProperty="(UIElement.Opacity)">';
			xamlFragment += '<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/><SplineDoubleKeyFrame KeyTime="00:00:02" Value="0"/>';
			xamlFragment += '</DoubleAnimationUsingKeyFrames></Storyboard>';
			var xamlObj = control.content.CreateFromXaml(xamlFragment);
			rootElement.resources.add(xamlObj);
		}
		
		storyboard_created = true;
	},
	
	// Gestore evento di esempio
	handleMouseDown: function(sender, eventArgs) 
	{
		// La riga di codice seguente illustra come trovare un elemento in base al nome e chiamare un metodo su tale elemento.
		// this.control.content.findName("Storyboard1").Begin();
	}
}

// inizializza con una immagine a caso il fotogramma IDX-esimo
// della pellicola dell'intestazione
function initFilmstripFrame(idx){
	var rnd_no = Math.floor( total_filmstrip_images * Math.random() );
	if (myHost!=null)
		myHost.content.findName("frame_" + idx)["Source"]="../servlet/downloadImageServlet?small=Y&fromList=Y&list=FILMSTRIP_IMAGES&idx=" + rnd_no;
//	alert(idx + " - " +rnd_no);
}

// l'immagine sta per essere scaricata

function progressChanged(sender, eventArgs)
{
	if (storyboard_created == false)
		return;

	var name = sender.Name;
	var idx = name.substring(name.length-2);
	//alert(myHost.content.findName("frame_" + idx).DownloadProgress);
	if (myHost.content.findName("frame_" + idx).DownloadProgress>0.8)
	{
		//var storyb = myHost.content.findName("frameFadeIn_"+idx);
		fadeIn(idx);
	}
}

function chgFilmstripFrame(idx){
	initFilmstripFrame(idx);
}

function completedFadeOut(sender,eventargs){
	var name = sender.Name;
	var idx = name.substring(name.length-2);
	chgFilmstripFrame(idx);
}

function completedFadeIn(sender,eventargs){
	var name = sender.Name;
	var idx = name.substring(name.length-2);
	var rnd_time = Math.floor( 15000 * Math.random() ) + 5000;
	setTimeout(function(){fadeOut(idx)},rnd_time);
}

function fadeOut(idx)
{
	var storyb=myHost.content.findName("frameFadeOut_"+idx);
	if (storyb!=null)
		storyb.Begin();
}

function fadeIn(idx)
{
	var storyb = myHost.content.findName("frameFadeIn_"+idx);
	if (storyb!=null)
	   storyb.Begin();
	else
           setTimeout(function(){fadeIn(idx)},5000);
}
