/*
* Funcoes para gerar janela movel em div
* Autor: Roberto Rander <rander@randernet.com>
* Criado em 11/2005
*/

is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);

function getAbsolutePos(el) {
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
	SL = el.scrollLeft;
	if (is_div && el.scrollTop)
	ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {
		var tmp = getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

// mostra camada sob select, iframe e applet
function ocultaObjetosHtml(objCamada) {
	this.objCamada = objCamada;
	hideShowCovered();
};


function getVisib(obj){
	var value = obj.style.visibility;
	if (!value) {
		if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
		if (!is_khtml)
		value = document.defaultView.
		getComputedStyle(obj, "").getPropertyValue("visibility");
		else
		value = '';
		} else if (obj.currentStyle) { // IE
		value = obj.currentStyle.visibility;
		} else
		value = '';
	}
	return value;
};

function hideShowCovered() {
	var self = this.objCamada;
	var tags = new Array("applet", "iframe", "select");
	var el = self;

	var p = getAbsolutePos(el);
	var EX1 = p.x;
	var EX2 = el.offsetWidth + EX1;

	var EY1 = p.y;
	var EY2 = el.offsetHeight + EY1;

	for (var k = tags.length; k > 0; ) {
		var ar = document.getElementsByTagName(tags[--k]);
		var cc = null;
		for (var i = ar.length; i > 0;) {
			cc = ar[--i];
			p = getAbsolutePos(cc);
			var CX1 = p.x;
			var CX2 = cc.offsetWidth + CX1;
			var CY1 = p.y;
			var CY2 = cc.offsetHeight + CY1;

			if (self.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getVisib(cc);
				}
				cc.style.visibility = cc.__msh_save_visibility;
			} else {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility = getVisib(cc);
				}
				if(cc.style.visibility == "hidden"){
					cc.style.visibility = "visible"
				}else{
					cc.style.visibility = "hidden";
				}
			}

		};
	}
};
