
var Dom = function () {
}

Dom.prototype.createElement = function (d) {
	return document.createElement(d);
}

Dom.prototype.createTextNode = function (d) {
	return document.createTextNode(d);
}

Dom.prototype.addEventListener = function (obj, evt, fnc) {
	if (obj.attachEvent) {
		obj.attachEvent('on'+evt, fnc);
	} else {
		obj.addEventListener(evt, fnc, true);
	}
}

Dom.prototype.removeEventListener = function (obj, evt, fnc) {
	if (obj.detachEvent) {
		obj.detachEvent('on'+evt, fnc);
	} else {
		obj.removeEventListener(evt, fnc, true);
	}
}

Dom.prototype.realTop = function (obj, lim) {
	var r = 0;
	var o = obj;
	while (o) {
		if (lim == o) {
			break;
		}
		r += o.offsetTop;
		o = o.offsetParent;
	}
	return r;
}

Dom.prototype.realLeft = function (obj, lim) {
	var r = 0;
	var o = obj;
	while (o) {
		if (lim == o) {
			break;
		}
		r += o.offsetLeft;
		o = o.offsetParent;
	}
	return r;
}

Dom.prototype.setupLoading = function () {
	this.divLoading = document.getElementById('divLoading');
}

Dom.prototype.watchLoading = function () {
	this.divLoading.style.top = Math.round(document.body.parentNode.scrollTop + ((window.innerHeight || document.documentElement.offsetHeight || 0) - this.divLoading.offsetHeight) / 2) + 'px';
	this.divLoading.style.left = Math.round(document.body.parentNode.scrollLeft + ((window.innerWidth || document.documentElement.offsetWidth || 0) - this.divLoading.offsetWidth) / 2) + 'px';
}

Dom.prototype.showLoading = function () {
	if (!this.timer) {
		if (!this.divLoading) {
			this.setupLoading();
		}
		this.divLoading.style.display = '';

		this.timer = setInterval('dom.watchLoading();', 100);
	}
}

Dom.prototype.hideLoading = function () {
	this.divLoading.style.display = 'none';
	clearInterval(this.timer);
	this.timer = false;
}

var dom = new Dom();

