;(function($){
$.flexiPagination = {
defaults: {
url:"",
currentPage:0,
totalResults:100,
perPage:25,
container:"body",
pagerVar:"p",
loaderImgPath:"images/wait3.gif",
debug:0
}};
$.fn.extend({
flexiPagination:function(config) {
var config = $.extend({}, $.flexiPagination.defaults, config);
var plurals = "";
var loading = false;
$("body").append("<div id='jqpageflow-block' align='center'><img src='"+config.loaderImgPath+"' /><br><span id='jqpageflow-text'></span></div>");
$("#jqpageflow-block").addClass("jqpageflow-loader");
$("#jqpageflow-text").addClass("jqpageflow-loadertext");
config.container = (config.container!="")?config.container:"body";
$(window).scroll(function(){
if (config.currentPage>=0&&(config.perPage*(config.currentPage+1)<config.totalResults)&&!loading&&$(this).scrollTop()==$(document).height()-$(this).height()) {
loading = true;
if (config.url!="") config.url += (config.url.indexOf("?")!==-1?"&":"?")+config.pagerVar+"="+(config.currentPage+1);
else config.url = window.location + (window.location.search!=''?"&":"?")+config.pagerVar+"="+(config.currentPage+1);
plurals = (config.totalResults==1)?"item":"items";
$("#jqpageflow-text").text('Loading '+(config.perPage*((config.currentPage>0)?config.currentPage:1))+' of '+config.totalResults+' '+plurals+'.');
$("#jqpageflow-block").show();
$.ajax({
type:"GET",
dataType:"html",
url:config.url,
success:function(html){
html = $.trim( html );
if (html) {
$(config.container).append(html);
config.currentPage++;
} else {
config.currentPage=-1;
}},
complete:function(){
loading = false;
$("#jqpageflow-block").hide();
}});
}});			
return this;
}
});	
})(jQuery);
