$(document).ready(function(){
	fb.init("#flipperbox");
});

fb = {
	"timescalled" : 0,
	"instanceinterval" : [],
	"init" : function() {
		fb.timescalled++;
		thiselem = arguments[0];
		$(thiselem).attr("rel",fb.timescalled).removeClass("nojs").children(".pagecontainer").children().hide();
		$(thiselem).children(".pagecontainer").attr("rel",0);
		fb.manualflippers(thiselem);
		fb.flip(thiselem,"0");
		return fb.autoflip(thiselem);
	},
	"manualflippers" : function(thiselem) {
		$(thiselem).append("<div class=\"flippercontrols\"><div class=\"flipcontrol prev\" rel=\"prev\"><span>&laquo; prev</span></div><div class=\"flipcontrol next\" rel=\"next\"><span>next &raquo;</span></div></div>");
		$(thiselem + " .flipcontrol").click(function(){
			fb.flip(thiselem,$(this).attr("rel"));
			fb.clearinterval(thiselem);
		});
	},
	"flip" : function() {
		var cursel = $(arguments[0]).children(".pagecontainer").attr("rel")-1;
		var thislen = $(arguments[0]).children(".pagecontainer").children().length-1;
		if (arguments[1]) {
			intest = parseInt(arguments[1]);
			if (isNaN(intest)) {
				var togo = (arguments[1] == "next") ? cursel+1 : cursel-1;
			} else { var togo = arguments[1]; }
		} else { var togo = cursel+1; }
		if (togo > thislen) { togo = 0; }
		if (togo < 0) { togo = thislen; }
		$(arguments[0]).children(".pagecontainer").attr("rel",togo+1);
		$(arguments[0] + " .selected").removeClass("selected").fadeOut();
		$(arguments[0]).children(".pagecontainer").children(":eq(" + togo + ")").addClass("selected").fadeIn();
	},
	"autoflip" : function(thiselem) {
		fb.instanceinterval[fb.timescalled] = setInterval("fb.flip(thiselem,'next')",5000);
	},
	"clearinterval" : function(thiselem){
		var getinterval = $(thiselem).attr("rel");
		clearInterval(fb.instanceinterval[getinterval]);
	}
}