	GJF.Delegate =	{
		context: {},

		create: function(obj, func, args) {
			return function() {
				func.call(obj, args);
			}
		},
		
		createAsString: function(obj, func, args) {
			var rand = Math.floor(Math.random() * 1000000000);
			while(this.context[rand]) {
				rand = Math.floor(Math.random() * 1000000000);
			}
			this.context[rand] = this.create(obj, func, args);
			return "GJF.Delegate.context["+rand+"]();";
		}
	}

