
if (!Array.indexOf) { // Caso IE, não existe esta função na classe array.
	Array.prototype.indexOf = function (o) {
		for (var i = 0; i < this.length; i++) {
			if (this[i] == o) {
				return i;
			}
		}
		return -1;
	}
}

var divPopBg;

window.divPopups = new Array();

window.divopen = function (src, w, h) {
	if (typeof popBg == 'undefined') {
		initDivOpen();
	}
	divPopBg.style.visibility = 'visible';
	divPopBg.style.top = '0px';
	divPopBg.style.left = '0px';
	divPopBg.style.width = '100%';
	divPopBg.style.height = document.body.parentNode.scrollHeight + 'px';
	divPopBg.style.zIndex = 1500;

	var dw = new divWindow();
	window.divPopups.push(dw);
	dw.iframe.src = src;
	dw.iframe.width = w + 'px';
	dw.iframe.height = h + 'px';
	dw.iframe.style.top = document.body.parentNode.scrollTop + ((window.innerHeight || document.documentElement.offsetHeight || 0) - h) / 2 + 'px';
	dw.iframe.style.left = document.body.parentNode.scrollLeft + ((window.innerWidth || document.documentElement.offsetWidth || 0) - w) / 2 + 'px';
	dw.iframe.style.zIndex = divPopBg.style.zIndex+1;
}

function divWindow() {
	var me = this;

	me.iframe = dom.createElement('IFRAME');
	me.iframe.className = 'divWindow';
	me.iframe.frameBorder = 0;

	me.document = this.iframe.document || this.iframe.documentContent;

	me.close = function () {
		me.iframe.parentNode.removeChild(me.iframe);
		var i = window.divPopups.indexOf(me);
		if (i > -1) {
			window.divPopups.splice(i, 1);
		}
		if (window.divPopups.length < 1) {
			divPopBg.style.visibility = 'hidden';
		}
	}

	me.toString = function () {
		return '#divWindow (' + me.iframe.src + ')';
	}

	document.body.appendChild(me.iframe);
}

window.closeDivPopups = function () {
	for (var i = window.divPopups.length-1; i > -1 ; i--) {
		window.divPopups[i].close();
	}
}

function initDivOpen() {
	divPopBg = dom.createElement('DIV');
	divPopBg.id = 'divPopupBg';
	divPopBg.className = 'divPopupBg';
	document.body.appendChild(divPopBg);
	dom.addEventListener(divPopBg, 'click', function (e) {
		var t = e.srcElement || e.target;
		if ((t == divPopBg) && (divPopBg.style.visibility != 'hidden')) { // Para evitar clicar em outro div sobre ele e chamar este método.
			window.closeDivPopups();
		}
	});
}
