function DomUtility(){
	this.Init = DomUtility.prototype.Init;
	this.getElementsByClassName = DomUtility.prototype.GetElementsByClassName;
}

DomUtility.prototype.Init = function (element) {
	if (document.all || window.opera) {
		element.textContent = element.innerText;
	}
	else {
		element.innerText = element.textContent;
	}
	return element;
}

DomUtility.prototype.hasChild = function (parent, child) {
	for (var i in parent.childNodes) {
		if (parent.childNodes[i] == child) {
			return true;
		}
	}
	return false;
}

DomUtility.prototype.GetElementsGroupByClassName = function () {
	var ret = {};
	var class_name = '';
	var elements = document.getElementsByTagName('*');
	for (var i = 0;i < elements.length;i++) {
		var class_list = elements[i].className.split(' ');
		for (var n = 0;n < class_list.length;n++) {
			class_name = class_list[n];
			if (ret[class_name] == null) {
				ret[class_name] = [];
			}
			ret[class_name].push(elements[i]);
		}
	}
	return ret;
}

DomUtility.prototype.GetElementsByClassName = function (class_name) {
	var ret = DomUtility.prototype.GetElementsGroupByClassName();
	return (ret[class_name] != null) ? ret[class_name] : null;s
}

DomUtility.prototype.appendClass = function (element, class_name) {
	element.className += ' '+ class_name;
}

DomUtility.prototype.removeClass = function (element, class_name) {
	var regex = new RegExp("(?:^| )"+ class_name +"(?: |$)", 'g');
	element.className = StringUtility.prototype.trim(element.className.replace(regex, ' ').replace('/ +/', ' '));
}

DomUtility.prototype.existClass = function (element, class_name) {
	return (element.className.indexOf(class_name, 0) > -1);
}
