Syn.ComponentMgr={instancesByClass:{},instancesByUid:{},initialize:function(){$('pre.config').each(function(){Syn.ComponentMgr.instantiate($(this))})},instantiate:function(config){if(config.children().length){return}var conf=config.html();var re=new RegExp('<!--((.|\n)+)-->','mgi');var json=re.exec(conf);json=json?json[1]:false;if(!json){return}var config=window["eval"]("("+json+")");var exists=Syn.ComponentMgr.instancesByUid[config['uid']];if(exists&&exists.config['class']==config['class']){return exists}var instance=new(window["eval"](config['class']))(config);var inst_class_cache=Syn.ComponentMgr.instancesByClass[config['class']]||[];Syn.ComponentMgr.instancesByClass[config['class']]=inst_class_cache;inst_class_cache.push(instance);Syn.ComponentMgr.instancesByUid[instance.uid]=instance;return instance},getInstancesByClass:function(cclass){return Syn.ComponentMgr.instancesByClass[cclass]},getInstanceByUid:function(uid){return Syn.ComponentMgr.instanceByUid[uid]},remove:function(instance){var class_arr=Syn.ComponentMgr.instancesByClass[instance.config['class']];if(!class_arr){return}for(var i=0;i<class_arr.length;i++){if(class_arr[i]==instance){class_arr.splice(i,1);break}}delete Syn.ComponentMgr.instancesByUid[instance.uid];if(window['dd_writeCookie']){dd_writeCookie()}}};$(document).ready(Syn.ComponentMgr.initialize);