if(typeof LITHIUM=='undefined'){var LITHIUM={};};

LITHIUM.Loader=function(){var functionCache=[];var loaded=false;return{"onLoad":function(func){functionCache.push(func);},getOnLoadFunctions:function(){return functionCache;},setLoaded:function(){loaded=true;},isLoaded:function(){return loaded;}}}();

if(typeof LITHIUM.Components=='undefined'){LITHIUM.Components={};};LITHIUM.Components.render=function(componentId,parameters,optionsParam){var runner=function(){var url=LITHIUM.Components.renderUrl(componentId);var options={method:"GET"}
Object.extend(options,optionsParam||{});options.parameters=$H(parameters).update(options.parameters);new Ajax.CachedRequest(url,options);}
if(LITHIUM.Loader.isLoaded()==true){runner();}else{LITHIUM.Loader.onLoad(runner);}}
LITHIUM.Components.renderUrl=function(componentId,parameters){var url=new Template(LITHIUM.Components.RENDER_URL).evaluate({"component-id":componentId});if(!Object.isUndefined(parameters)){url+="?"+$H(parameters).toQueryString();}
return url;}
LITHIUM.Components.renderInPlace=function(componentId,parametersParam,optionsParam){if(LITHIUM.Loader.isLoaded()==false){var parameters=parametersParam||{};var options=optionsParam||{};var placeHolderId=new Date().getTime().toString();document.write("<div id='"+placeHolderId+"'></div>");options.onSuccess=function(transport){$(placeHolderId).replace(transport.responseJSON.content);}
this.render(componentId,parameters,options);}else{throw new Error("LITHIUM.Components.renderInPlace can only be used during page loading.")}}
LITHIUM.Components.renderTemplateInPlace=function(template,options){LITHIUM.Components.renderInPlace("common.widget.template-content",{value:template},options);}
LITHIUM.Components.renderTemplate=function(template,options){return this.render("common.widget.template-content",{value:template,asMarkup:true},options);}
