HC.app = {
	
	_dep_ready : false,
	on_dep_ready : function () {
		//console.log('Dependencies ready');
		HC.app._dep_ready = true;
		HC.app.dispatch_ready(HC.app._dep_ready_callbacks);
		$(document).ready(HC.app.on_dom_ready);
	},
	
	_dom_ready : false,
	on_dom_ready : function () {
		//console.log('DOM ready');
		HC.app._dom_ready = true;
		HC.app.dispatch_ready(HC.app._dom_ready_callbacks);
	},
	
	dispatch_ready : function (callbacks) {
		while(callbacks.length){
			callbacks.pop()();
		}
	},
	
	_dep_ready_callbacks : [],
	add_on_dep_ready : function (fn){
		if(HC.app._dep_ready) return fn();
		HC.app._dep_ready_callbacks.push(fn);
	},
	
	_dom_ready_callbacks : [],
	add_on_dom_ready : function (fn){
		if(HC.app._dom_ready) return fn();
		HC.app._dom_ready_callbacks.push(fn);
	}
}

HC.app.on_dep_ready();