 /////////////////////////////////////////////////////////////////////////
/// GALERIA VERTICAL COM SETAS ///////////////////////////////// V 1.0 //

// Sintaxis setasGaleria_V ( ID_DIV_GALERIA , NOME_OBJETO_CRIADO )
function SetasGaleria_V (galeriaDiv_id, nomeObj) {
	// Galeria - Por defeito: galeria
	var galeriaDiv_id = !galeriaDiv_id ? 'galeria' : galeriaDiv_id;
	// Conteiner  - Por defeito: itens_cont
	var itensCont_id = !galeriaDiv_id ? 'galeria_cont' : galeriaDiv_id+"_cont";
	// Velocidade da animação
	this.velocidade = 10;
	// Quantidade de itens visibles por vez
	this.qtdVisibles = 2;

	// Dependendo do Browser pegamos os elementos
	if(document.getElementById) {
		var galeriaDiv = document.getElementById(galeriaDiv_id);
		var itensCont = document.getElementById(itensCont_id);
	}
	else {
		var galeriaDiv = document.all.galeriaDiv_id;
		var itensCont = document.all.itensCont_id;
	}
	
	// Quantidade de Itens
	var qtdItens = itensCont.getElementsByTagName('li').length;
	// Altura do Item
	var altItem = itensCont.getElementsByTagName('li')[0].offsetHeight;
	
	// Altura da Galeria
	var altGaleria = galeriaDiv.offsetHeight;
	
	// Tamanho do Conteiner
	var altCont = altItem*qtdItens;
	itensCont.style.height = altCont+"px";
	
	// Distancia entre o nova posição e o itensCont
	var distancia = 0;
	
	// Coloca o Conteiner dos itens em 0px
	itensCont.style.top = "0px";
	
	// Setas UP/DOWN
	var setaUp = document.getElementById(galeriaDiv_id+"_setaUp");
	var setaDown = document.getElementById(galeriaDiv_id+"_setaDown");	
	setaUp.nomeObj = setaDown.nomeObj = nomeObj;
	
	// Ações - CLICK
	// Seta UP
	setaUp.onclick = function (e) {
		// Pega a posição Y atual
		var novaPosY = parseInt(itensCont.style.top)+altItem+9; 
		// Soma 9 pelo margem de erro que tem
		// Verifica a existença de outro intervalo
		if(galeriaDiv.t_galeria) {
			itensCont.novaPosY = novaPosY;
		}
		else {
			galeriaDiv.t_galeria = setInterval(setaUp.nomeObj+".animaGaleria("+novaPosY+")", 10);
		}
	}
	// Seta DOWN
	setaDown.onclick = function (e) {		
		// Pega a posição Y atual
		var novaPosY = itensCont.style.top.replace("px","")-altItem; 
		
		// Verifica a existença de outro intervalo
		if(galeriaDiv.t_galeria) {
			itensCont.novaPosY = novaPosY;
		}
		else {
			galeriaDiv.t_galeria = setInterval(setaDown.nomeObj+".animaGaleria("+novaPosY+")", 10);
		}
	}
	
	// Anima a galeria
	this.animaGaleria = function (posY) {
		// Pegamos a nova posY
		var novaPosY = posY == "false" ? itensCont.novaPosY : posY;
				
		// Limpa a pos anterior
		posY = false;
				
		// Posição atual
		var atualPosY = itensCont.style.top.replace("px","");

		// Distancia entre a nova posY o itens conteiner
		var distancia = atualPosY-novaPosY;
				
		// Nova posição Y
		itensCont.style.top = Math.floor(atualPosY-(distancia/this.velocidade))+"px";
		
		// Margem de erro ao clicar a setaUp
		if(novaPosY > atualPosY) {
			novaPosY -= 9;
		}
		
		// Limites da animação
		var maxPosY = 0;
		var minPosY = (altItem*this.qtdVisibles)-altCont;
		
		// Travamos ele para que não passe dos Limites
		if(novaPosY > maxPosY) {
			itensCont.style.top = "0px";
			paraAnimacao();
		}
		if(novaPosY < minPosY) {
			itensCont.style.top = minPosY+"px";
			paraAnimacao();
		}
		
		// Paramos a animação
		if(atualPosY == novaPosY) {
			paraAnimacao();
		}
		
		// Função que para a animação
		function paraAnimacao () {
			clearInterval(galeriaDiv.t_galeria);
			galeriaDiv.t_galeria = false;
		}
	}
}
//////////////////////////////////////////////////////////////