var Bumble = 
{
	UniqueId: 1,
	ELCounter: 0,
	EL: [ ],
	
	execute: function(script, params)
	{
		// copy params values into local scope
		var scopeCode = "";
		for(x in params) 
		{ 
			if(x.match(/[^\d]+\w*/))
			{
				scopeCode += "var " + x + " = params['" + x + "'];\n";
			}
		}		
		eval(scopeCode);
				
		var _output_ = "";		
		var _p = function(s) { _output_ += s; };
		var encode = function(s) { if(typeof(s) != "string") { return s; } return s.replace("&", "&amp;").replace(">", "&gt;").replace("<", "&lt;").replace("\"", "&quot;").replace("'", "&apos;"); };
		var embed = function(x) { Bumble.EL[Bumble.ELCounter] = x; return "Bumble.EL["+(Bumble.ELCounter++)+"]"; };
		var uniqueId = function() { return ("bumble" + Bumble.UniqueId++); };
		var bumble = { "print": _p, "encode": encode, "embed": embed, "uniqueId": uniqueId };

		eval(script);
		return _output_;
	}
};

