User:Gerbrant/gui/toolbox.js

loadModule("Gerbrant.gui.lilink", function(li) {	module("Gerbrant.gui.toolbox", new function {		var self = this; var docLoaded = false; var waiting = [];

this.objects = [];

// no this function reallyAddObject(obj) {			li.addToolboxLink("javascript:void(Gerbrant.gui.toolbox.objects[" + self.objects.length + "].show)", obj.caption); self.objects.push(obj); }

// no this this.addObject = function(obj) {			if(docLoaded) reallyAddObject(obj); else waiting.push(obj); }

hookEvent("load", function		{			var i;			docLoaded = true;			for(i in waiting) reallyAddObject(waiting[i]);			delete waiting;		});

try {			var i, l = Gerbrant.gui.toolbox.load, x, n;			for(i in l)				if((n = (x = l[i])[0]) == undefined) loadModule(x, this.addObject); else (function(args)					{						loadModule(n, function(c) {							var o = {}; c.apply(o, args); self.addObject(o); });					})(x.slice(1)); }		catch(e) {		}	}); });