// Dean Edwards/Matthias Miller/John Resig

function init() {
	// quit if this function has already been called
	if (arguments.callee.done) return;

	// flag this function so we don't do the same thing twice
	arguments.callee.done = true;

	// kill the timer
	if (_timer) clearInterval(_timer);

	// execute all functions in queue
	var exec = null;
	for (var i = 0, l = init.queue.length; i < l; i++) {
		exec = init.queue[i];
		exec.fn.apply(exec.context ? exec.context : this, exec.params)
	}
};

/* allow function references with parameters
   to be pushed to an init queue via
   init.add(fn, context, param1, param2, param3, etc) */
init.queue = [];
init.add = function(fn, context) {
	if (typeof fn != 'function') return;
	var args = [];
	for (var i = 2, l = arguments.length; i < l; i++) args.push(arguments[i]);
	init.queue.push({'fn': fn, 'context' : context, 'params' : args});
}

/* for Mozilla/Opera9 */
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
	document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
	var script = document.getElementById("__ie_onload");
	script.onreadystatechange = function() {
		if (this.readyState == "complete") {
			init(); // call the onload handler
		}
	};
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
	var _timer = setInterval(function() {
			if (/loaded|complete/.test(document.readyState)) {
			init(); // call the onload handler
		}
	}, 10);
}

/* for other browsers */
window.onload = init;

