// Scroll Vert 1.0
// @Author Gabriel Guerreiro
// http://www.gabrielguerreiro.com.br
// Scroll Vert é um plugin para Jquery que cria uma rolagem para qualquer conteúdo.
// Através da utilização de 2 botoões (para cima e para baixo), a navegação é vertical somente.
// 

/* 

Ex: $(document).scrollVert(
						  areaText, #ÁREA QUE IRÁ CONTER O CONTEÚDO. PODER SER UM 'ID' OU UMA 'CLASS'
						  areaView, #ÁREA QUE SERVIRÁ DE MÁSCARA, COM TAMANHO FIXO, ONDE O ELEMENTO DO CONTEÚDO SERÁ INSERIDO. PODER SER UM 'ID' OU UMA 'CLASS'
						  btnUp, #BOTÃO QUE CLICA PARA SBIR
						  btnDown #BOTÃO QUE CLICA PARA DESCER
						  );
*/

jQuery.fn.extend({
				 
	//indica o nome do plugin que será criado
	scrollVert: function(areaText, areaView, btnUp, btnDown){
		
		$(btnUp).css("display", "none");
		$(btnDown).css("display", "none");
		$(areaView).css("overflow", "hidden");
		
		
		//CORPO DO PLUGIN
		var heightView = $(areaView).height();// ÁREA QUE SERVE DE MÁSCARA PARA O TEXTO
		var heightText = $(areaText).height();// ÁREA QUE CONTÉM O TEXTO
		
		
		if(heightText >= heightView){
			
					
			$(btnUp).show();// BOTÃO PARA SUBIR O CONTEÚDO
			$(btnDown).show();// BOTÃO PARA DESCER O CONTEÚDO
			
			var limiteDown = $(areaText).offset().top;
			var limiteUp = limiteDown - (heightText - heightView);
						
		}
		//alert(heightText);	
		
		/* FUNÇÕES DE MOVIMENTO */	
		function up(){
			if($(areaText).offset().top < limiteDown){
				$(areaText).animate({marginTop: "+=5"}, 50);
			}
		}
		
		function down(){
			if($(areaText).offset().top > limiteUp){
				$(areaText).animate({marginTop: "-=5"}, 50);
			}
		}
		/* FUNÇÕES DE MOVIMENTO */
		
		
		/* EVENTOS NOS BOTOES */
		$(btnUp).mouseover(function(){
			$(this).css("cursor", "pointer");
			
			intervaloUp = setInterval(up, 50);
		});
		
		$(btnDown).mouseover(function(){
			$(this).css("cursor", "pointer");
			
			intervaloDown = setInterval(down, 50);
		});
		/* EVENTOS NOS BOTOES */
		
		
		/* PARANDO INTERVALOS */
		$(btnDown).mouseout(function(){
			clearInterval(intervaloDown);
		});
		
		$(btnUp).mouseout(function(){
			clearInterval(intervaloUp);
		});
		/* PARANDO INTERVALOS */
	}
	
});

