
function AbstractComponentManager(localApplication){this._localApplication=localApplication;this._nComponents=[];this.toString=null;this.componentClass="AbstractComponent";this.registerComponent=function registerComponent(id,props){};this.initComponents=function initComponents(){for(var i=0;i<this._nComponents.length;i++){this._nComponents[i].init();}};}

function AbstractComponent(id,props){this._id=id;this._domElement=null;this._props=props||null;}
AbstractComponent.INIT_BEFORE="init-before";AbstractComponent.INIT_AFTER="init-after";AbstractComponent.prototype.init=null;AbstractComponent.prototype.setDomElementById=function(id){this._domElement=document.getElementById(id);};AbstractComponent.prototype.requireInit=function(){var selector="#"+this._id+" > .init-before";return(0!=$jq(selector).length);};AbstractComponent.prototype.isInitialized=function(){var selector="#"+this._id+" > .init-after";var elms=$jq(selector);return Boolean(elms&&elms.length);};AbstractComponent.prototype.setInitialized=function(initDone){var selector="#"+this._id+" > .",newClassName="";if(initDone){selector+=AbstractComponent.INIT_BEFORE;newClassName=AbstractComponent.INIT_AFTER;}else{selector+=AbstractComponent.INIT_AFTER;newClassName=AbstractComponent.INIT_BEFORE;}
$jq(selector,this._domElement.parentNode).removeClass().addClass(newClassName);};
