fb = {
	"listargs" : {},
	"defaultoutputpage" : "<div id=\"galleria_output_logostrip\"><div id=\"galleria_output_logo\"></div></div><div id=\"galleria_output_hliststrip\" class=\"style1\"></div><div id=\"galleria_output_vliststrip\" class=\"style1\"></div><div id=\"galleria_output_paragraphs\"><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis nibh id augue laoreet eu lacinia metus interdum. Suspendisse lacus augue, interdum eu bibendum ullamcorper, pellentesque malesuada augue. Fusce ante dui, tincidunt quis vehicula non, cursus in ligula. Sed mattis accumsan neque vel porta. Nam ut congue elit. Duis leo risus, dictum nec congue vel, suscipit id sapien. Etiam vitae venenatis eros.</p><p>Proin consectetur posuere felis vitae fermentum. Cras rutrum, eros eget molestie tristique, risus dui ullamcorper metus, nec feugiat nulla libero sed diam. Quisque vitae metus eleifend arcu viverra pretium ut id lorem. Maecenas mollis interdum eros sed scelerisque. Nunc at risus augue.</p></div>",
	"galleria_init" : function() {
		$(".galleria_global_block:first").before("<ul id=\"galleria_jstab_list\"></ul>");
		$(".galleria_global_block").each(function(){
			var entryhead = $(this).children("h3").html();
			$("#galleria_jstab_list").append("<li>" + entryhead + "</li>");
		});
		$(".galleria_global_block").hide();
		$("#galleria_jstab_list li").click(function(){
			if (!($(this).hasClass("open"))) {
				$("#galleria_jstab_list li.open").removeClass("open");
				$(this).addClass("open");
				$(".galleria_global_block:visible").slideUp();
				var thisindex = $(this).parent().children().index(this);
				$(".galleria_global_block:eq(" + thisindex + ")").slideDown();
			}
		});
		$(".portablelist li ul").parent().children("span").addClass("menuparent");
		$(".galleria_submit").click(function(){
			fb.setminheight($(this).closest(".galleria_parent_block"));
			if ($(this).attr("name")=="galleria_submit_menu") {
				fb.buildlistargs($(this).closest(".optionsform"));
				fb.portlist($(this).closest(".galleria_parent_block"));
			}
			fb.hidechoiceblock($(this).closest(".galleria_parent_block"));
			fb.addcloselink($(this).closest(".galleria_parent_block"));
			return false;
		});
		$(".editablelist li span").click(function(){
			fb.initeditli(this);
		});
	},
	"hidechoiceblock" : function(elem) {
		$(elem).children(".galleria_choice_block").fadeOut();
	},
	"portlist" : function(elem) {
		if ($(".editablelist li span.editing").length > 0) {
			fb.finalizeeditli($(".editablelist li span.editing"));
		}
		var portcode = $(elem).find(".portablelist").html();
		var outputlistargs = "";
		for(key in fb.listargs) {
		   outputlistargs += " " + fb.listargs[key];
		}
		$(".galleria_result_block").addClass(fb.listargs.listorientation);
		var portto = (fb.listargs.listorientation == "horizontal") ? "#galleria_output_hliststrip" : "#galleria_output_vliststrip";
		$(elem).children(".galleria_result_block").empty().prepend(fb.defaultoutputpage);
		$(portto).append("<div id=\"galleria_result_output\"><ul class=\"portedlist" + outputlistargs + "\">" + portcode + "</ul></div>");
		$(elem).children(".galleria_result_block").before("<div id=\"output_tracing\"></div>");
		if (fb.listargs.revealtype == "js") {
			fb.setupjsevent();
		}
	},
	"buildlistargs" : function(elem) {
		fb.listargs = {};
		
		if ($("#listorientation_h").attr("checked")) {
			$("#listbehavior_a").attr("checked",true);
		}
		if ($("#revealtype_b").attr("checked")) {
			$("#actionevent_a").attr("checked",true);
		}
		
		$(elem).find("input:checked").each(function(){
			var thiskey = $(this).attr("name").toString();
			var thisval = $(this).val().toString();
			fb.listargs[thiskey] = thisval;
		});
	},
	"setupjsevent" : function() {
		$(".portedlist li ul").parent().each(function(){
			if (fb.listargs.actionevent == "hover") {
				fb.setupjshoverevent(this);
			} else {
				fb.setupjsclickevent(this);
			}
		});
	},
	"setupjsclickevent" : function(elem) {
		$(elem).click(function(){
			fb.performeffect(this);
		});
	},
	"setupjshoverevent" : function(elem) {
		$(elem).hover(function(){
			fb.performeffect(this);
		},function(){
			fb.performeffect(this);
		});
	},
	"setminheight" : function(elem) {
		var curheight = $(elem).height();
		$(elem).css({"min-height" : curheight, "position" : "relative"});
		$(elem).children().css({"position" : "absolute"});
	},
	"addcloselink" : function(elem) {
		$("#output_tracing").append("<p><a class=\"closeresults\">Back to Options</a> | Output List</p>");
		$("#output_tracing .closeresults").click(function(){
			fb.reset($(this).closest(".galleria_parent_block"));
		});
	},
	"reset" : function(elem) {
		$(elem).children(".galleria_choice_block").fadeIn(function(){
			$("#galleria_result_output").remove();
			$("#output_tracing").remove();
			$(".galleria_result_block").removeClass("horizontal").removeClass("vertical");
			$(elem).removeAttr("style").children().removeAttr("style");
		});
		fb.listargs = "";
	},
	"initeditli" : function(elem) {
		$(elem).addClass("editing").unbind("click");
		var curcontent = $(elem).html();
		$(elem).html("<input type=\"text\" class=\"editli\" value=\"" + curcontent + "\"/><input type=\"button\" value=\"Set\" class=\"editli_set\"/>");
		$(elem).find(".editli").select();
		$(".editli").blur(function(){ fb.finalizeeditli($(".editablelist li span.editing")); });
	},
	"finalizeeditli" : function(elem) {
		var grabbedcontent = fb.sanitizestring($(elem).children(".editli").val(),"<,>,\"");
		$(elem).removeClass("editing").html(grabbedcontent);
		$(elem).unbind("click");
		$(elem).click(function(){ fb.initeditli(this); });
	},
	"sanitizestring" : function(string,args) {
		args = args.split(",");
		for (i=0;i<args.length;i++) {
			string = string.replace(args[i],"");
		}
		return string;
	},
	"performeffect" : function(elem) {
		if ($(elem).hasClass("opened")) {
			$(elem).removeClass("opened").removeAttr("style").children("ul").removeAttr("style").hide();
		} else {
			$(elem).addClass("opened");
			switch (fb.listargs.jseffect) {
				case "fadein" :
					$(elem).children("ul").fadeIn();
					break;
				case "slidedown" :
					$(elem).children("ul").slideDown(200,function(){fb.checkstillopen(elem)});
					break;
				case "dropin" :
					if (fb.listargs.listorientation == "horizontal") {
						var startingoffset = 0;
						var finalplace = 100;
					} else {
						var startingoffset = -100;
						var finalplace = 0;
					}
					$(elem).css({"z-index" : 50}).children("ul").css({"display" : "block", "opacity" : 0, "top" : startingoffset + "%", "z-index" : 49}).animate({"opacity" : .75, "top" : finalplace + "%"},{"duration" : 100, "queue" : true}).animate({"opacity" : 1, "top" : finalplace-10+"%"},{"duration" : 100, "queue" : true}).animate({"top" : finalplace+"%"},{"duration" : 80, "queue" : true});
					break;
				case "complex" :
					$(elem).css({"z-index" : 50}).children("ul").css({"display" : "block", "opacity" : 0, "top" : "25%", "z-index" : 49}).animate({"opacity" : .75, "top" : "100%"},{"duration" : 200, "queue" : true}).animate({"opacity" : 1, "top" : "75%"},{"duration" : 50, "queue" : true}).animate({"top" : "100%"},{"duration" : 50, "queue" : true});
					break;
			}
		}
	},
	"checkstillopen" : function(elem) {
		if (!($(elem).hasClass("opened"))) {
			$(elem).children("ul").hide();
		}
	}
}
