/*
// Infinite Scroll jQuery plugin
// copyright Paul Irish, licensed GPL & MIT
// version 1.2.090804

// home and docs: http://www.infinite-scroll.com
*/
(function(a){a.fn.infinitescroll=function(n,l){function e(){if(b.debug){window.console&&console.log.call(console,arguments)}}function g(p){for(var o in p){if(o.indexOf&&o.indexOf("Selector")&&a(p[o]).length===0){e("Your "+o+" found no elements.");return false}return true}}function k(o){o.match(c)?o.match(c)[2]:o;if(o.match(/^(.*?)\b2\b(.*?$)/)){o=o.match(/^(.*?)\b2\b(.*?$)/).slice(1)}else{if(o.match(/^(.*?)2(.*?$)/)){if(o.match(/^(.*?page=)2(\/.*|$)/)){o=o.match(/^(.*?page=)2(\/.*|$)/).slice(1);return o}e("Trying backup next selector parse technique. Treacherous waters here, matey.");o=o.match(/^(.*?)2(.*?$)/).slice(1)}else{e("Sorry, we couldn't parse your Next (Previous Posts) URL. Verify your the css selector points to the correct A tag. If you still get this error: yell, scream, and kindly ask for help at infinite-scroll.com.");h.isInvalidPage=true}}return o}function i(){return b.localMode?(a(h.container)[0].scrollHeight&&a(h.container)[0].scrollHeight):a(document).height()}function f(q,p){var o=i()-(q.localMode?a(p.container).scrollTop():(a(p.container).scrollTop()||a(p.container.ownerDocument.body).scrollTop()))-a(q.localMode?p.container:window).height();e("math:",o,p.pixelsFromNavToBottom);return(o-q.bufferPx<p.pixelsFromNavToBottom)}function j(){h.loadingMsg.find("img").hide().parent().find("div").html(b.donetext).animate({opacity:1},2000).fadeOut("normal");b.errorCallback()}function d(r,q,o,s){if(q.switcher){if(a.cookie("infscr-switcher")=="off"){return}}if(o.isDuringAjax||o.isInvalidPage||o.isDone){return}if(!f(q,o)){return}o.isDuringAjax=true;o.loadingMsg.appendTo(q.contentSelector).show();a(q.navSelector).hide();o.currPage++;e("heading into ajax",r);var p=a(q.contentSelector).is("table")?a("<tbody/>"):a("<div/>");p.attr("id","infscr-page-"+o.currPage).addClass("infscr-pages").appendTo(q.contentSelector).load(r.join(o.currPage)+" "+q.itemSelector,null,function(){if(o.isDone){j();return false}else{if(p.children().length==0){a.event.trigger("ajaxError",[{status:404}])}o.loadingMsg.fadeOut("normal");if(q.analytics){pageTracker._trackPageview(window.location.pathname+q.pageUri+o.currPage)}if(a("#infscr-current").html()!=""){a("#infscr-current").html(o.currPage)}if(q.animate){var t=a(window).scrollTop()+a("#infscr-loading").height()+q.extraScrollPx+"px";a("html,body").animate({scrollTop:t},800,function(){o.isDuringAjax=false})}s.call(p[0]);if(!q.animate){o.isDuringAjax=false}}})}var b=a.extend({},a.infinitescroll.defaults,n);var h=a.infinitescroll;l=l||function(){};if(!g(b)){return false}h.container=b.localMode?this:document.documentElement;b.contentSelector=b.contentSelector||this;var c=/(.*?\/\/).*?(\/.*)/;var m=a(b.nextSelector).attr("href");if(!m){e("Navigation selector not found");return}m=k(m);if(b.localMode){a(h.container)[0].scrollTop=0}h.pixelsFromNavToBottom=i()+a(h.container).offset().top-a(b.navSelector).offset().top;h.loadingMsg=a('<div id="infscr-loading" style="text-align: center;"><img alt="Loading..." src="'+b.loadingImg+'" /><div>'+b.loadingText+"</div></div>");(new Image()).src=b.loadingImg;a(document).ajaxError(function(p,q,o){e("Page not found. Self-destructing...");if(q.status==404){j();h.isDone=true;a(b.localMode?this:window).unbind("scroll.infscr")}});a(b.localMode?this:window).bind("scroll.infscr",function(){d(m,b,h,l)}).trigger("scroll.infscr");return this};a.infinitescroll={defaults:{debug:false,preload:false,nextSelector:"div.navigation a:first",loadingImg:"http://www.infinite-scroll.com/loading.gif",loadingText:"<em>Loading the next set of posts...</em>",donetext:"<em>Congratulations, you've reached the end of the internet.</em>",navSelector:"div.navigation",contentSelector:null,extraScrollPx:150,itemSelector:"div.post",animate:false,analytics:false,pageUri:"page",switcher:false,localMode:false,bufferPx:40,errorCallback:function(){}},loadingImg:undefined,loadingMsg:undefined,container:undefined,currPage:1,currDOMChunk:null,isDuringAjax:false,isInvalidPage:false,isDone:false}})(jQuery);
