﻿var textTemplate='<TextBlock Name="" Foreground="#FF000000" FontFamily="Trebuchet MS" FontSize="14" Text="" Width="250" Height="30" Canvas.Top="" Canvas.Left="" TextWrapping="Wrap" />';
var videoTemplate = '<MediaElement Name="videoPlayer" Canvas.Left="50" Canvas.Top="" Source="" Width="400" Height="300" />';
var imageTemplate = '<Image Source="" />';
var xamlElement = "";
var pluginPlayList;
var category = "";
var isMouseOver = 0;

var canvasMainVideo;
var rootPlayListCanvas;
source_passeios = new Array();
source_diversao = new Array();
source_festival = new Array();
var containerData;
var column;
var contColumn;
var left;
var top;
var strThumb;
var storyboard="";
	
function LoadData(sender, eventArgs)
{
	pluginPlayList = sender.getHost();
	rootPlayListCanvas = pluginPlayList.content.findName("rootPlaylistCanvas");
	var download = pluginPlayList.createObject("downloader");
	LoadDataPasseios(download);
}

function setVideoControlCanvas(objCanvasVideo)
{
	canvasMainVideo = objCanvasVideo;
}
/**** PASSEIOS ****/

function LoadDataPasseios(objDownloader)
{
	objDownloader.addEventListener("Completed", getVideoDataPasseios);
	objDownloader.open("GET", "xml/passeios.xml");
	objDownloader.send();
}

function getVideoDataPasseios(sender, eventArgs)
{
	column = 4;
	contColumn = 0;
	left = 108;
	top = 90;
	strThumb = "";

	var xmldoc = createFromXML(sender.ResponseText);
	
	containerData = pluginPlayList.content.findName("containerDataPasseios");

	for(var i=0;i<xmldoc.getElementsByTagName("video").length;i++)
	{
		containerData = pluginPlayList.content.findName("containerDataPasseios");

		var videoAttributes = xmldoc.getElementsByTagName("video")[i];
				
		var title = videoAttributes.getAttribute("title");
		var id = videoAttributes.getAttribute("id");
		var description = videoAttributes.getAttribute("description");
		var thumb = videoAttributes.getAttribute("thumb");
		source_passeios[i] = videoAttributes.getAttribute("source");
		
		var destaque = videoAttributes.getAttribute("destaque");

		var img = pluginPlayList.content.createFromXaml('<Image Name="passeios_'+id+'" Source="" Width="100" Height="74" Cursor="Hand" Canvas.ZIndex="0"><Image.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><TranslateTransform X="0" Y="0"/></TransformGroup></Image.RenderTransform></Image>');
		var rect = pluginPlayList.content.createFromXaml('<Rectangle Name="rect_passeios_'+id+'" Opacity="0.6" Cursor="Hand" Width="100" Height="74" Stroke="#ffffff" Canvas.ZIndex="0"><Rectangle.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/></TransformGroup></Rectangle.RenderTransform></Rectangle>');
		
		var txt = pluginPlayList.content.createFromXaml('<TextBlock Name="txt_passeios_'+id+'" Foreground="#ffffff" FontFamily="Trebuchet MS" FontSize="12" Text="" Width="450" Height="30" Canvas.Top="" Canvas.Left="" TextWrapping="Wrap" Visibility="Collapsed" />');
		txt.Text = description.substring(0,120) + '...';

		/* Propriedades da Imagem*/
		img.Source = thumb;
		img.addEventListener("mouseLeftButtonDown", openVideo);
		img.addEventListener("mouseEnter", handleMouseEnter);
		img.addEventListener("mouseLeave", handleMouseLeave);
		if (contColumn == column)
		{
			countColumn = 0;
			img["Canvas.Top"] = (top*contColumn)+5;
			img["Canvas.Left"] = 5;
		}
		else
		{
			img["Canvas.Top"] = 45;
			img["Canvas.Left"] = (left*contColumn)+13;
			rect["Canvas.Top"] = 45;
			rect["Canvas.Left"] = (left*contColumn)+13;
		}
				
		containerData.children.add(img);
		containerData.children.add(rect);
		containerData.children.add(txt);
		contColumn++;
		
	}
		
	var downloader = pluginPlayList.createObject("downloader");
	containerData = pluginPlayList.content.findName("containerDataDiversao");
	LoadDataDiversao(downloader);
}

/**** DIVERSAO ****/
function LoadDataDiversao(objDownloader)
{
	objDownloader.addEventListener("Completed", getVideoDataDiversao);
	objDownloader.open("GET", "xml/diversao.xml");
	objDownloader.send();
}

function getVideoDataDiversao(sender, eventArgs)
{	
	column = 4;
	contColumn = 0;
	left = 108;
	top = 90;
	strThumb = "";

	var xmldoc = createFromXML(sender.ResponseText);
	
	containerData = pluginPlayList.content.findName("containerDataDiversao");

	for(var i=0;i<xmldoc.getElementsByTagName("video").length;i++)
	{
		var videoAttributes = xmldoc.getElementsByTagName("video")[i];
				
		var title = videoAttributes.getAttribute("title");
		var id = videoAttributes.getAttribute("id");
		var description = videoAttributes.getAttribute("description");
		var thumb = videoAttributes.getAttribute("thumb");
		source_diversao[i] = videoAttributes.getAttribute("source");
		
		var destaque = videoAttributes.getAttribute("destaque");

		var img = pluginPlayList.content.createFromXaml('<Image Name="diversao_'+id+'" Source="" Width="100" Height="74" Cursor="Hand" Canvas.ZIndex="0"><Image.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><TranslateTransform X="0" Y="0"/></TransformGroup></Image.RenderTransform></Image>');
		var rect = pluginPlayList.content.createFromXaml('<Rectangle Name="rect_diversao_'+id+'" Opacity="0.6" Cursor="Hand" Width="100" Height="74" Stroke="#ffffff" Canvas.ZIndex="0"><Rectangle.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/></TransformGroup></Rectangle.RenderTransform></Rectangle>');
		
		var txt = pluginPlayList.content.createFromXaml('<TextBlock Name="txt_diversao_'+id+'" Foreground="#ffffff" FontFamily="Trebuchet MS" FontSize="12" Text="" Width="450" Height="30" Canvas.Top="" Canvas.Left="" TextWrapping="Wrap" Visibility="Collapsed" />');
		txt.Text = description.substring(0,120) + '...';

		/* Propriedades da Imagem*/
		img.Source = thumb;
		img.addEventListener("mouseLeftButtonDown", openVideo);
		img.addEventListener("mouseEnter", handleMouseEnter);
		img.addEventListener("mouseLeave", handleMouseLeave);
		if (contColumn == column)
		{
			countColumn = 0;
			img["Canvas.Top"] = (top*contColumn)+5;
			img["Canvas.Left"] = 5;
		}
		else
		{
			img["Canvas.Top"] = 45;
			img["Canvas.Left"] = (left*contColumn)+13;
			rect["Canvas.Top"] = 45;
			rect["Canvas.Left"] = (left*contColumn)+13;
		}
			
		containerData.children.add(img);
		containerData.children.add(rect);
		containerData.children.add(txt);
		contColumn++;
	}
	
	var downloader = pluginPlayList.createObject("downloader");
	containerData = pluginPlayList.content.findName("containerDataFestival");
	LoadDataMarketPlaza(downloader);
}


/**** MARKET PLAZA ****/
function LoadDataMarketPlaza(objDownloader)
{
	objDownloader.addEventListener("Completed", getVideoDataMarketPlaza);
	objDownloader.open("GET", "xml/marketplaza.xml");
	objDownloader.send();
}

function getVideoDataMarketPlaza(sender, eventArgs)
{	
	column = 4;
	contColumn = 0;
	left = 108;
	top = 90;
	strThumb = "";

	var xmldoc = createFromXML(sender.ResponseText);
	
	containerData = pluginPlayList.content.findName("containerDataMarketPlaza");

	for(var i=0;i<xmldoc.getElementsByTagName("video").length;i++)
	{
		containerData = pluginPlayList.content.findName("containerDataMarketPlaza");

		var videoAttributes = xmldoc.getElementsByTagName("video")[i];
				
		var title = videoAttributes.getAttribute("title");
		var id = videoAttributes.getAttribute("id");
		var description = videoAttributes.getAttribute("description");
		var thumb = videoAttributes.getAttribute("thumb");
		source_festival[i] = videoAttributes.getAttribute("source");
		
		var destaque = videoAttributes.getAttribute("destaque");

		var img = pluginPlayList.content.createFromXaml('<Image Name="marketplaza_'+id+'" Source="" Width="100" Height="74" Cursor="Hand" Canvas.ZIndex="0"><Image.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><TranslateTransform X="0" Y="0"/></TransformGroup></Image.RenderTransform></Image>');
		var rect = pluginPlayList.content.createFromXaml('<Rectangle Name="rect_marketplaza_'+id+'" Opacity="0.6" Cursor="Hand" Width="100" Height="74" Stroke="#ffffff" Canvas.ZIndex="0"><Rectangle.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/></TransformGroup></Rectangle.RenderTransform></Rectangle>');
		
		var txt = pluginPlayList.content.createFromXaml('<TextBlock Name="txt_marketplaza_'+id+'" Foreground="#ffffff" FontFamily="Trebuchet MS" FontSize="12" Text="" Width="450" Height="30" Canvas.Top="" Canvas.Left="" TextWrapping="Wrap" Visibility="Collapsed" />');
		txt.Text = description.substring(0,120) + '...';

		/* Propriedades da Imagem*/
		img.Source = thumb;
		img.addEventListener("mouseLeftButtonDown", openVideo);
		img.addEventListener("mouseEnter", handleMouseEnter);
		img.addEventListener("mouseLeave", handleMouseLeave);
		if (contColumn == column)
		{
			countColumn = 0;
			img["Canvas.Top"] = (top*contColumn)+5;
			img["Canvas.Left"] = 5;
		}
		else
		{
			img["Canvas.Top"] = 45;
			img["Canvas.Left"] = (left*contColumn)+13;
			rect["Canvas.Top"] = 45;
			rect["Canvas.Left"] = (left*contColumn)+13;
		}
	
		containerData.children.add(img);
		containerData.children.add(rect);
		containerData.children.add(txt);
		contColumn++;
	}
}


/**** FESTIVAL DE INVERNO
function LoadDataFestival(objDownloader)
{
	objDownloader.addEventListener("Completed", getVideoDataFestival);
	objDownloader.open("GET", "xml/festival.xml");
	objDownloader.send();
}

function getVideoDataFestival(sender, eventArgs)
{	
	column = 4;
	contColumn = 0;
	left = 108;
	top = 90;
	strThumb = "";

	var xmldoc = createFromXML(sender.ResponseText);
	
	containerData = pluginPlayList.content.findName("containerDataFestival");

	for(var i=0;i<xmldoc.getElementsByTagName("video").length;i++)
	{
		
		containerData = pluginPlayList.content.findName("containerDataFestival");

		var videoAttributes = xmldoc.getElementsByTagName("video")[i];
				
		var title = videoAttributes.getAttribute("title");
		var id = videoAttributes.getAttribute("id");
		var description = videoAttributes.getAttribute("description");
		var thumb = videoAttributes.getAttribute("thumb");
		source_festival[i] = videoAttributes.getAttribute("source");
		
		var destaque = videoAttributes.getAttribute("destaque");

		var img = pluginPlayList.content.createFromXaml('<Image Name="festival_'+id+'" Source="" Width="100" Height="74" Cursor="Hand" Canvas.ZIndex="0"><Image.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><TranslateTransform X="0" Y="0"/></TransformGroup></Image.RenderTransform></Image>');
		var rect = pluginPlayList.content.createFromXaml('<Rectangle Name="rect_festival_'+id+'" Opacity="0.6" Cursor="Hand" Width="100" Height="74" Stroke="#ffffff" Canvas.ZIndex="0"><Rectangle.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/></TransformGroup></Rectangle.RenderTransform></Rectangle>');
		
		var txt = pluginPlayList.content.createFromXaml('<TextBlock Name="txt_festival_'+id+'" Foreground="#ffffff" FontFamily="Trebuchet MS" FontSize="12" Text="" Width="450" Height="30" Canvas.Top="" Canvas.Left="" TextWrapping="Wrap" Visibility="Collapsed" />');
		txt.Text = description.substring(0,120) + '...';

		img.Source = thumb;
		img.addEventListener("mouseLeftButtonDown", openVideo);
		img.addEventListener("mouseEnter", handleMouseEnter);
		img.addEventListener("mouseLeave", handleMouseLeave);
		if (contColumn == column)
		{
			countColumn = 0;
			img["Canvas.Top"] = (top*contColumn)+5;
			img["Canvas.Left"] = 5;
		}
		else
		{
			img["Canvas.Top"] = 45;
			img["Canvas.Left"] = (left*contColumn)+13;
			rect["Canvas.Top"] = 45;
			rect["Canvas.Left"] = (left*contColumn)+13;
		}
	
		containerData.children.add(img);
		containerData.children.add(rect);
		containerData.children.add(txt);
		contColumn++;
	}
}

****/

function handleMouseEnter(sender, eventArgs)
{
	
	if(isMouseOver == 0)
	{
		isMouseOver = 1;
		sender["Canvas.ZIndex"] = 1;
		var mainStoryboard = sender.findName("mouseEnter");

		var animationLeft = sender.findName("EnterLeft");
		animationLeft.From = sender["Canvas.Left"];
		animationLeft.To = sender["Canvas.Left"]-10;

		if(mainStoryboard["Storyboard.TargetName"] != sender.name)
		{
			mainStoryboard["Storyboard.TargetName"] = sender.name;
		}
		/*var animationLeft = '<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(Canvas.Left)"><SplineDoubleKeyFrame KeyTime="00:00:00" Value="5"/><SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0"/></DoubleAnimationUsingKeyFrames>';
		var animationLeft = sender.content.createFromXaml(animationLeft);
		mainStoryboard.children.add(animationLeft);*/
		
		mainStoryboard.begin();
		//sender["Canvas.Left"] = sender["Canvas.Left"]-5;
		var rectStoryboard = sender.findName("mouseEnterRectangle");
		
		var animationLeft = sender.findName("EnterLeftRectangle");
		animationLeft.From = sender["Canvas.Left"];
		animationLeft.To = sender["Canvas.Left"]-10;
		
		if(rectStoryboard["Storyboard.TargetName"] != "rect_"+sender.name)
		{
			rectStoryboard["Storyboard.TargetName"] = "rect_"+sender.name;
		}
		rectStoryboard.begin();
		sender.findName("rect_"+sender.name)["Canvas.ZIndex"] = 1;
		//rect.width = 360;
		//rect.Fill = "#ffffff";
		
		var txt = sender.findName("txt_"+sender.name);
		txt["Canvas.ZIndex"] = 3;
		txt["Canvas.Top"] = 120;//rect["Canvas.Top"];
		txt["Canvas.Left"] = 5;
		txt.Visibility = "Visible";
	}

}

function handleMouseLeave (sender, eventArgs)
{
	if(isMouseOver = 1)
	{
		isMouseOver = 0;
		sender["Canvas.ZIndex"] = 0;
		sender["Canvas.Left"] = sender["Canvas.Left"]+5;
		var mainStoryboard = sender.findName("mouseEnter");
		/*if(mainStoryboard["Storyboard.TargetName"] != sender.name)
		{
			mainStoryboard["Storyboard.TargetName"] = sender.name;
		}
		mainStoryboard.begin();*/
		mainStoryboard.stop();

		var rectStoryboard = sender.findName("mouseEnterRectangle");
		/*if(rectStoryboard["Storyboard.TargetName"] != "rect_"+sender.name)
		{
			rectStoryboard["Storyboard.TargetName"] = "rect_"+sender.name;
		}
		rectStoryboard.begin();*/
		rectStoryboard.stop();
		/*var rect = sender.findName("rect_"+sender.name);
		rect.width = 100;*/

		var txt = sender.findName("txt_"+sender.name);
		txt.Visibility = "Collapsed";
	}
}


function handleMouseUp(sender, eventArgs)
{
    
}

function openVideo(videoSource)
{
	var videoPlayer = canvasMainVideo.findName("videoElement");
	var titlePlayer = canvasMainVideo.findName("txtTitleVideo");

	var category_video = videoSource.Name.split("_");

	if(videoPlayer != null)
	{
		if(category_video[0] == "passeios")
		{
			videoPlayer.Stop();
			videoPlayer.Source = source_passeios[parseInt(category_video[1])];
			titlePlayer.Text = pluginPlayList.content.findName("txt_" + videoSource.Name).Text;
			titlePlayer["Canvas.ZIndex"]=5;
			videoPlayer.Play();
		}
		else if(category_video[0] == "diversao")
		{
			videoPlayer.Stop();
			videoPlayer.Source = source_diversao[parseInt(category_video[1])];
			titlePlayer.Text = pluginPlayList.content.findName("txt_" + videoSource.Name).Text;
			titlePlayer["Canvas.ZIndex"]=5;
			videoPlayer.Play();
		}
		else if(category_video[0] == "marketplaza")
		{
			videoPlayer.Stop();
			videoPlayer.Source = source_festival[parseInt(category_video[1])];
			titlePlayer.Text = pluginPlayList.content.findName("txt_" + videoSource.Name).Text;
			titlePlayer["Canvas.ZIndex"]=5;
			videoPlayer.Play();
		}
	}
	/*else
	{
		var videoData = pluginPlayList.content.findName("videoData");
		var videoWindow = pluginPlayList.content.createFromXaml(videoTemplate);	
		if(category_video[0] == "passeios")
		{
			videoWindow.Source = source_passeios[parseInt(category_video[1])];
		}
		else
		{
			videoWindow.Source = source_diversao[parseInt(category_video[1])];
		}
		videoData.children.add(videoWindow);
	}*/
	
}

function createFromXML(dl)

{
	var xmlstring = dl;
	var doc;
	if(window.ActiveXObject)
	{
        doc = new ActiveXObject("Microsoft.XMLDOM");
        if(!doc.loadXML(xmlstring))
        {
            throw doc.parseError.reason;
        }
    }
	else
	{
        var parser = new DOMParser();
        doc = parser.parseFromString(xmlstring, "text/xml");
		parser=null;
    }
    return doc;
}