define(["core/mustache","jquery","core/ajax","core/str","core/notification","core/url","core/config","core/localstorage","core/event","core/yui"],function(a,b,c,d,e,f,g,h,i,j){var k={},l=[],m=[],n=1,o="",p=function(a,d){var e=b.Deferred(),f=a.split("/"),g=f.shift(),i=f.shift(),j=o+"/"+a;if(j in k)return e.resolve(k[j]),e.promise();var l=h.get("core_template/"+j);if(l)return e.resolve(l),k[j]=l,e.promise();var m=c.call([{methodname:"core_output_load_template",args:{component:g,template:i,themename:o}}],d,!1);return m[0].done(function(a){h.set("core_template/"+j,a),k[j]=a,e.resolve(a)}).fail(function(a){e.reject(a)}),e.promise()},q=function(a){var b="";return p(a,!1).done(function(a){b=a}).fail(e.exception),b},r=function(b,c){var d,e=b.split(","),g="",h="",i="";e.length>0&&(g=e.shift().trim()),e.length>0&&(h=e.shift().trim()),e.length>0&&(i=e.join(",").trim());var j=f.imageUrl(g,h),l={attributes:[{name:"src",value:j},{name:"alt",value:c(i)},{name:"class",value:"smallicon"}]},m=k[o+"/core/pix_icon"];return d=a.render(m,l,q),d.trim()},s=function(a,b){return m.push(b(a,this)),""},t=function(a,b){var c=a.split(","),d="",e="",f="";c.length>0&&(d=c.shift().trim()),c.length>0&&(e=c.shift().trim()),c.length>0&&(f=c.join(",").trim()),""!==f&&(f=b(f,this)),0===f.indexOf("{")&&0!==f.indexOf("{{")&&(f=JSON.parse(f));var g=l.length;return l.push({key:d,component:e,param:f}),"{{_s"+g+"}}"},u=function(a,b){var c=b(a.trim(),this);return c=c.replace('"','\\"').replace(/([\{\}]{2,3})/g,"{{=<% %>=}}$1<%={{ }}=%>"),'"'+c+'"'},v=function(a,b){o=b,l=[],m=[],a.uniqid=n++,a.str=function(){return t},a.pix=function(){return r},a.js=function(){return s},a.quote=function(){return u},a.globals={config:g},a.currentTheme=b},w=function(a){var b="";m.length>0&&(b=m.join(";\n"));var c=0;for(c=0;c0?d.get_strings(l).done(function(a){var c;for(c=0;c").attr("type","text/javascript").html(a);b("head").append(c)}},z=function(a,c,d,e){var f=b(a);if(f.length){var g=b(c),h=null;e?(h=new j.NodeList(f.children().get()),h.destroy(!0),f.empty(),f.append(g)):(h=new j.NodeList(f.get()),h.destroy(!0),f.replaceWith(g)),y(d),i.notifyFilterContentUpdated(g)}};return{render:function(a,c,d){var e=b.Deferred();"undefined"==typeof d&&(d=g.theme),o=d;var f=p(a,!0);return f.done(function(a){var b=x(a,c,d);b.done(function(a,b){e.resolve(a,b)}).fail(function(a){e.reject(a)})}).fail(function(a){e.reject(a)}),e.promise()},runTemplateJS:y,replaceNodeContents:function(a,b,c){return z(a,b,c,!0)},replaceNode:function(a,b,c){return z(a,b,c,!1)}}});