$.fn.pontoscroll = function(settings) {

	var defaults = {
		pos:'h',
		visivel:3,
		alturaFoto:115,
		larguraFoto:194,
		scrollContainer:"#fotos-thumbs .box",
		arrowTop:"#arrow-top",
		arrowBot:"#arrow-bot",
		arrowLeft:"#arrow-left",
		arrowRight:"#arrow-right"
	}
	
	settings = $.extend(defaults, settings);
	
	var $element = $(this);
	
	var atual = 0;
	var total = $element.length;
	
	$.scrollTo.defaults.axis = 'xy';
	$(settings.scrollContainer).scrollTo(0);
	
	this.init = function() {
		atual = settings.visivel;
	}
	
	$.fn.pontoscroll.bindTop = function() {
		$(settings.arrowTop).bind('click',function() { $.fn.pontoscroll.moveTop() });
	};
	
	$.fn.pontoscroll.bindBot = function() {
		$(settings.arrowBot).bind('click',function() { $.fn.pontoscroll.moveBot() });
	};
	
	$.fn.pontoscroll.bindLeft = function() {
		$(settings.arrowLeft).bind('click',function() { $.fn.pontoscroll.moveLeft() });
	};
	
	$.fn.pontoscroll.bindRight = function() {
		$(settings.arrowRight).bind('click',function() { $.fn.pontoscroll.moveRight() });
	};
	
	switch(settings.pos) {
		case 'v':
			$.fn.pontoscroll.bindTop();
			$.fn.pontoscroll.bindBot();
			
			$.fn.pontoscroll.moveTop = function() {
				if (atual > settings.visivel) {
					atual--;
					$(settings.scrollContainer).scrollTo({top:'-='+settings.alturaFoto, left:0}, 600);
				} else {
					$(settings.scrollContainer).scrollTo(settings.alturaFoto*(total-settings.visivel), 1000);
					atual = total;
				}
			};

			$.fn.pontoscroll.moveBot = function() {
				if ((total > settings.visivel) && (atual < total)) {
					atual++;
					$(settings.scrollContainer).scrollTo({top:'+='+settings.alturaFoto, left:0}, 600);
				} else {
					atual = settings.visivel;
					$(settings.scrollContainer).scrollTo(0, 1000);
				}
			};
		break;
		
		case 'h':
			$.fn.pontoscroll.bindLeft();
			$.fn.pontoscroll.bindRight();
			
			$.fn.pontoscroll.moveLeft = function() {
				if (atual > settings.visivel) {
					atual--;
					$(settings.scrollContainer).scrollTo({left:'-='+settings.larguraFoto, top:0}, 600);
				} else {
					$(settings.scrollContainer).scrollTo(settings.larguraFoto*(total-settings.visivel), 1000);
					atual = total;
				}
			};

			$.fn.pontoscroll.moveRight = function() {
				if ((total > settings.visivel) && (atual < total)) {
					atual++;
					$(settings.scrollContainer).scrollTo({left:'+='+settings.larguraFoto, top:0}, 600);
				} else {
					atual = settings.visivel;
					$(settings.scrollContainer).scrollTo(0, 1000);
				}
			};
		break;
	}
	
	this.init();
}
