// Define main namespace
var POKE = {};

// Define init object that 
// handles on load events
POKE.init = function() {
	
	// First make sure we can debug using console
	if(!window.console){ 
		window.console = { };
		methods = ['trace', 'log', 'info', 'debug', 'warn', 'error'];
		for (var key in methods){
			window.console[methods[key]] = function(msg){};
		};
	};
		
	// private variables
	var _dom_ready_callbacks = [];
	var _dom_ready = false;
	
	// on dom ready fires when jQuery document.ready fires.
	var on_dom_ready = function () {
		console.log('DOM ready');
		_dom_ready = true;
		obj.dispatch_ready(_dom_ready_callbacks);
	};	
	
	// This is the object what will represent POKE.init	
	var obj = {
		
		add_on_dom_ready : function (fn) {
			if(_dom_ready) return fn();
			_dom_ready_callbacks.push(fn);
		},
		
		// utility method that fires the callbacks.
		dispatch_ready : function (callbacks) {
			callbacks.reverse();
			while(callbacks.length){
				callbacks.pop()();
			}
		}
	};
	
	$(document).ready(on_dom_ready);
	
	return obj;

}();