// Register DOM-load event
if (document.addEventListener) document.addEventListener("DOMContentLoaded", init, false);
else {
/*@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(); } };
/*@end @*/
if (/WebKit/i.test(navigator.userAgent)) {
	var _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) {clearInterval(_timer); init(); } }, 10);
} }
window.onload = init;

var initfns = [];

function register_initfn(fn) {
	for (var i = 0; i < initfns.length; i++)
		if (initfns[i] == fn)
			return;

	initfns.push(fn);
}

function init() {
	if (arguments.callee.done) return;
	arguments.callee.done = true;

	for (var i = 0; i < initfns.length; i++)
		initfns[i]();
}

function setInitialFocus(id) {
	initfns.push(function() {document.getElementById(id).focus();});
}


// document prototype functions
document.getElementsByClassName = function(c) {
	var ret = [];
	var myclass = new RegExp('\\b'+c+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) ret.push(elem[i]);
	}
	return ret;
};


// prototype functions:
Date.prototype.getMonthStr = function() {
	var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
	return months[this.getMonth()];
}

Date.prototype.addDays = function(n) {
	this.setDate(this.getDate() + n);
}

Date.prototype.addMonths = function(n) {
	this.setMonth(this.getMonth() + n);
}

Date.prototype.equalTo = function(d) {
	return (this.getFullYear() == d.getFullYear() && this.getMonth() == d.getMonth() && this.getDate() == d.getDate());
}
