
var onDomReady = {
	add: function() {
		var a = arguments;
		for(var x = 0, al = a.length; x < al; x++) {
			if(typeof a[x] === 'function') {
				if (onDomReady.done ) {
					a[x]();
				} else {
					onDomReady.f.push(a[x]);
				}
			}
		}
	},
	fire: function() {
		if(!onDomReady.done){
			onDomReady.done = true;
			for(var x = 0, al = onDomReady.f.length; x < al; x++) {
				onDomReady.f[x]();
			}
			//Clean up after the DOM is ready
			if(document.removeEventListener)
				document.removeEventListener("DOMContentLoaded", onDomReady.respond, false);
			document.onreadystatechange = null;
			window.onload = null;
			clearInterval(onDomReady.timer);
			onDomReady.timer = null;
		}
	},
	respond: function(e) {
		//Mozilla & Opera
		if(e && e.type == "DOMContentLoaded"){
			onDomReady.fire();
		//Legacy	
		}else if(e && e.type == "load"){
			onDomReady.fire();
		//Safari & IE
		}else if(document.readyState){
			if((/loaded|complete/).test(document.readyState)){
				onDomReady.fire();
			//
			}else if(!!document.documentElement.doScroll){
				try{
					onDomReady.done || document.documentElement.doScroll('left');
				}catch(e){
					return;
				}
				onDomReady.fire();
			}
		}
	},
	init: function() {
		//Mozilla & Opera
		if(document.addEventListener)
			document.addEventListener("DOMContentLoaded", onDomReady.respond, false);
		//IE
		document.onreadystatechange = onDomReady.respond;
		//Safari & IE
		onDomReady.timer = setInterval(onDomReady.respond, 5);
		//Legacy
		window.onload = onDomReady.respond;
	},
	f:[],done:false,timer:null
};
onDomReady.init();

