var img1,img2, galeria; //Componentes
var widthImagem, heightImagem; //Tamanhos
var dataBound; //Endereço de bound
var arrayImagens; //Array de imagens que aparecerão no slideshow
var indiceImagem = 0, indiceAntigo, quantidadeImagens;
var timer;
var isFirst = true;
var isChanging = false;

var ID_GALERIA = "Galeria";
var CLASSE_IMAGEM = "imgGaleria";
var TAG_WIDTH = "WidthImagem";
var TAG_HEIGHT = "HeightImagem";
var TAG_DATABOUND = "Databound";
var TEMPO_TRANSICAO = 8000;

$(document).ready(function()
{
	OnLoad();
});

/// <summary>
/// Evento de load do script
/// </summary>
/// <owner>Victor</owner>
function OnLoad()
{
	galeria = document.getElementById(ID_GALERIA);
	
	widthImagem = galeria.getAttribute(TAG_WIDTH);
	heightImagem = galeria.getAttribute(TAG_HEIGHT);
	dataBound = galeria.getAttribute(TAG_DATABOUND);
	
	img1 = document.createElement("div");
	img2 = document.createElement("div");
	
	img1.className = img2.className = CLASSE_IMAGEM;
	img1.style.width = img2.style.width = widthImagem;
	img1.style.height = img2.style.height = heightImagem;
	img1.style.top = img2.style.top = galeria.style.top;
	img1.style.left = img2.style.left = galeria.style.left;
	img1.style.zIndex = 2;
	img2.style.zIndex = 1;
	galeria.appendChild(img1);
	galeria.appendChild(img2);
	
	GetImagens();
	
	RotateSlideshow();
	timer = setTimeout(RotateSlideshow,TEMPO_TRANSICAO);
}

function SlideshowOnClick()
{
	if (!isChanging)
	{
		RotateSlideshow();
	}
}

/// <summary>
/// Atualiza a imagem mostrada
/// </summary>
/// <owner>Victor</owner>
function RotateSlideshow()
{
	clearTimeout(timer);
	isChanging = true;
	
	if (isFirst)
	{
		SetImagem(img1, arrayImagens[indiceImagem]);
		isFirst = false;
	}
	else
	{
		SetImagem(img2, arrayImagens[indiceImagem]);
		$(img1).fadeOut("slow", function()
										 {
											 SetImagem(img1, arrayImagens[indiceAntigo]);
											 $(img1).show();
											 isChanging = false;
										 });
	}
	
	indiceAntigo = indiceImagem;
	indiceImagem++;
	if (indiceImagem == quantidadeImagens)
	{
		indiceImagem = 0;
	}
	
	timer = setTimeout(RotateSlideshow,TEMPO_TRANSICAO);
}

/// <summary>
/// Seta a imagem na div
/// </summary>
/// <owner>Victor</owner>
function SetImagem(control, imageAddress)
{
	control.style.backgroundImage = "url('" + imageAddress + "')";
}

/// <summary>
/// Retorna a imagem mostrada na div
/// </summary>
/// <owner>Victor</owner>
function GetImagem(control)
{
	return control.style.backgroundImage;
}

/// <summary>
/// Retorna todas as imagens do databound em formato de html puro
/// </summary>
/// <owner>Victor</owner>
function GetImagens()
{
	$.ajax(
		   {
			   url: dataBound,
			   async: false,
			   success: function(html)
			   {
				   PreencherArray(html);
			   }
		   }
	);
}

/// <summary>
/// Preenche o array com as imagens em split
/// </summary>
/// <owner>Victor</owner>
function PreencherArray(html)
{
	arrayImagens = html.split("@");
	quantidadeImagens = arrayImagens.length;
}
