/*
**	Anderson Ferminiano
**	contato@andersonferminiano.com -- feel free to contact me for bugs or new implementations.
**	jQuery ScrollPagination
**	28th/March/2011
**	http://andersonferminiano.com/jqueryscrollpagination/
**	You may use this script for free, but keep my credits.
**	Thank you.
*/
var inicio = 1;
var carregando = false;
(function( $ ){
	 
		 
 $.fn.scrollPagination = function(options) {
  	
		var opts = $.extend($.fn.scrollPagination.defaults, options);  
		var target = opts.scrollTarget;
		if (target == null){
			target = obj; 
	 	}
		opts.scrollTarget = target;
	 
		return this.each(function() {
		  $.fn.scrollPagination.init($(this), opts);
		});

  };
  
  $.fn.stopScrollPagination = function(){
	  return this.each(function() {
	 	$(this).attr('scrollPagination', 'disabled');
	  });
	  
  };
  
  $.fn.scrollPagination.loadContent = function(obj, opts){
      var target = opts.scrollTarget;
      
      opts.contentPage= opts.pagina + '?inicio=' + inicio + '&registros=19&tipo='+opts.tipo;
      document.getElementById("txt").value = $(opts.idDivRolagem).scrollTop() + opts.heightOffset + 70
      document.getElementById("txt1").value =  $(document).height() //- $(opts.idDivRolagem).scrollTop()
      document.getElementById("txt2").value =  $(opts.idDiv).height() -400 //- $(opts.idDivRolagem).scrollTop()
      
	 var mayLoadContent = $(opts.idDivRolagem).scrollTop() + opts.heightOffset +70 >= $(opts.idDiv).height() -400 //- $(opts.idDivRolagem).scrollTop();
     
	 if (mayLoadContent == true && carregando == false && inicio > 5 ){
		 if (opts.beforeLoad != null){
         carregando = true;
          inicio = inicio + opts.pageSize;
			opts.beforeLoad(); 
		 }



		 $(obj).children().attr('rel', 'loaded');
		 $.ajax({
			  type: 'POST',
			  url: opts.contentPage,
			  data: opts.contentData,
			  success: function(data){
              
				$(opts.idDiv).append(data); 
				var objectsRendered = $(obj).children('[rel!=loaded]');
				
				if (opts.afterLoad != null){
					opts.afterLoad(objectsRendered);	
                    carregando = false;
				}
			  },
			  dataType: 'html'
		 });
	 }
    
	

     
  };
  
  $.fn.scrollPagination.init = function(obj, opts){
	 var target = opts.scrollTarget;
	 $(obj).attr('scrollPagination', 'enabled');
	
	 $(target).scroll(function(event){
		if ($(obj).attr('scrollPagination') == 'enabled'){
	 		$.fn.scrollPagination.loadContent(obj, opts);		
		}
		else {
			event.stopPropagation();	
		}
	 });
	 
	 $.fn.scrollPagination.loadContent(obj, opts);
	 
 };
	
 $.fn.scrollPagination.defaults = {
      	 'contentPage' : null,
     	 'contentData' : {},
		 'beforeLoad': null,
		 'afterLoad': null	,
		 'scrollTarget': null,
		 'heightOffset': 0,
         'pageSize': 0,
         'tipo': 0,
         'pagina': null,
         'idDiv': null,
         'idDivRolagem': null,
         'total': 0
 };	
})( jQuery );
