function addEvent(obj, evType, fn){ 
	if(obj.addEventListener){ 
		obj.addEventListener(evType, fn, false);
		return true; 
	} else if(obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else {
		return false; 
	} 
};

var DomLoaded = {
	onload: [],
	loaded: function() {
		if(arguments.callee.done) {return;}
		arguments.callee.done = true;
		for (i = 0;i < DomLoaded.onload.length;i++) {DomLoaded.onload[i]();}
	},
	load: function(fireThis) {
		this.onload.push(fireThis);
		if(document.addEventListener) {document.addEventListener("DOMContentLoaded", DomLoaded.loaded, null);}
		if(/KHTML|WebKit/i.test(navigator.userAgent)) { 
			var _timer = setInterval(function() {
				if(/loaded|complete/.test(document.readyState)) {
					clearInterval(_timer);
					delete _timer;
					DomLoaded.loaded();
				}
			}, 10);
		}
		/*@cc_on @*/
		/*@if (@_win32)
		var proto = "src='javascript:void(0)'";
		if (location.protocol == "https:") proto = "src=//0";
		document.write("<scr"+"ipt id=__ie_onload defer " + proto + "><\/scr"+"ipt>");
		var script = document.getElementById("__ie_onload");
		script.onreadystatechange = function() {
		    if(this.readyState == "complete") {
		        DomLoaded.loaded();
		    }
		};
		/*@end @*/
		addEvent(window, "load", DomLoaded.loaded);
	}
};
