//////////////////////////////////////////////////////////////////////////////////
// SamScroll V 0.1
// (c) 2011 by Samuel Hervás. <http://www.samuelhervas.com>
// MIT License
// Please retain this copyright header in all versions of the software
//////////////////////////////////////////////////////////////////////////////////

(function($) {

	var Controller = function(container, options)
	{	
		var alturaRecorte =  options.container.height()+10;					
		var altura =  $("#interior").height();
		var inicio = 0;
		var posActual = 0;
		var pagActual = 1;
		
		var dibujar_paginas= function (){
			
			var lista="<ul>";
			
			if( parseInt(altura/alturaRecorte) < (altura/alturaRecorte) )
			{
				var num_paginas=parseInt(altura/alturaRecorte)+1;
			}else
			{
				var num_paginas=parseInt(altura/alturaRecorte);			
			}
			
			for (i=1;i<=num_paginas;i=i+1)
			{	
				lista+="<li>"+i+"</li>";
				
			}
			
			lista+="</ul>";
			
			options.navegador.html(lista);
			options.navegador.find('li').hide();
			options.navegador.find('li:first-child').show();
			
			
		}
		
		var botones= function() {
			
			if( Math.abs(posActual-alturaRecorte) > altura )
			{
				options.up.fadeOut('fast');
				
				
			}else
			{
				options.up.fadeIn('fast');
			}
			
			if( posActual>=0 )
			{
				options.down.fadeOut('fast');
			}else
			{
				options.down.fadeIn('fast');
			}
		}
		
		var actualizarPagina= function() {
			
			options.navegador.find('li').hide();
			
			options.navegador.find('li:nth-child('+pagActual+')').fadeIn();
			
		}					
			
		botones();
		dibujar_paginas();	
		
		options.up.bind('click',this,function(event){
			
			if( Math.abs(posActual-alturaRecorte)<=altura )
			{	
				options.container.animate( {"top": "-="+alturaRecorte+"px"},1000,options.easing ).fadeIn();
				posActual-=alturaRecorte;
				pagActual+=1;
				actualizarPagina();
				
			}
			botones();	
		});

		options.down.bind('click',this,function(event)
		{
			if(posActual<0)
			{
			 options.container.animate({"top": "+="+alturaRecorte+"px"},1000,options.easing).fadeIn();
			 posActual+=alturaRecorte;
			 pagActual-=1;
			 actualizarPagina();
			 
			}
			
			botones();	
			
		});
	}; // END Controller object
	
	
	$.fn.SamScroll = function(options) {
			
		this.each( function() {			
			
			options = $.extend({}, {
							   up:"",
							   down:"",
							   navegador:"",
							   easing:'easeInOutQuint',
							   container:$(this)						   
			},options );									
			// Create a Controller.		
			$(this).data('samscroll', new Controller( this, options) );
		});				
		return this;
	};

})(jQuery);
