///auto pager
var engine = {

	posts : [],
	
	target : null,
	
	busy : false,

  count : 10,
        
	render : function(obj){
		var xhtml = '<div class="portfolio" id=post_'+obj.id+'>';
		if (obj.spic) {
			xhtml += '<div style="float:left"><a href="/img/'+obj.bpic+'" class="i"><img src="/img/'+obj.spic+'" alt="'+obj.name+'" /></div>';
		}
		if (obj.link) {
			xhtml += '<div><h2><a href="'+obj.link+'" target="_blank">'+obj.name+'</a></h2>'+obj.txt+'</div>';
		}

		xhtml += '</div><div class="clear"><!-- --></div>';

		return xhtml;
	},

	init : function(posts, target){
	
		if (!target)
			return;
		
		this.target = $(target);
		
		this.append(posts);

            var that = this;
            $(window).scroll(function(){
                if ($(document).height() - $(window).height() <= $(window).scrollTop() + 50) {
                    that.scrollPosition = $(window).scrollTop();
                    that.get();
                }
            });
	},
	
	append : function(posts){
		posts = (posts instanceof Array) ? posts : [];
		this.posts = this.posts.concat(posts);

		for (var i=0, len = posts.length; i<len; i++) {
			this.target.append(this.render(posts[i]));
		}

            if (this.scrollPosition !== undefined && this.scrollPosition !== null) {
                $(window).scrollTop(this.scrollPosition);
            }
	},
	
	get : function() {
			
			if (!this.target || this.busy) return;
			
                if (this.posts && this.posts.length) { 
					         //var lastId = this.posts[this.posts.length-1].id;
					         var lastId = this.posts.length;
                } else {
                    var lastId = 0;
                }


			this.setBusy(true);

                var that = this;

			$.getJSON('/includes/_folio.php', {count:this.count, last:lastId},
				function(data){
					if (data.length > 0) {
						that.append(data);
					}
					that.setBusy(false);
				}
               );
	},

        showLoading : function(bState){
            var loading = $('#loading');

            if (bState) {
                $(this.target).append(loading);
                loading.show('slow');
            } else {
                $('#loading').hide();
            }
        },

        setBusy : function(bState){
            this.showLoading(this.busy = bState);
        }
};
