// Dependências: util.js, compat.js.
//
// Funções de apoio para DHTML.


// Retorna a 'optNum'ª "tag", de nome 'tagName', mais próxima de 'obj' e que o englobe.
function findParentTag (obj, tagName, optNum) {
	var p = obj.parentNode

	var n = 0
	tagName = tagName.toUpperCase ()
	if (!optNum) optNum = 1
	while (p) {
		if (p.tagName == tagName) {
			if (++n >= optNum)
				return p
		}

		p = p.parentNode
	}
}

// Cria e retorna um elemento '<input type="hidden">' chamado 'nm' e pronto a ser adoptado por outro elemento.
function createHidden (nm) {
	var hdn = document.createElement ("input")
	hdn.type = "hidden"
	hdn.id = hdn.name = nm
	
	return hdn
}

// Carregar a CSS 'url'.
function loadCSS (url, optDoc) {
	!optDoc && (optDoc = document)

	var el = optDoc.createElement ("link")
	el.rel	= "stylesheet"
	el.type	= "text/css"
	el.href	= url
	optDoc.getElementsByTagName ("HEAD") [0].appendChild (el)
}

// Carrega o script 'url' em 'optDoc'.
function loadScript (url, optDoc) {
	!optDoc && (optDoc = document)

	var el = optDoc.createElement ("script")
	el.type	= "text/javascript"
	el.src	= url
	optDoc.getElementsByTagName ("HEAD") [0].appendChild (el)
}

// Retorna a posição absoluta em píxeis do topo de 'el'.
getAbsTop = function (el) {
	var res = 0
	do {	res += el.offsetTop	} while ((el = el.offsetParent) != null)

	return res
}

// Retorna a posição absoluta em píxeis da esquerda de 'el'.
getAbsLeft = function (el) {
	var res = 0
	do {	res += el.offsetLeft	} while ((el = el.offsetParent) != null)

	return res
}

// Retorna 'true' se 'par' contiver 'el'.
function contains (par, el) {
	var cn = par.childNodes
	for (var i = 0; i < cn.length; ++i) {
		var e = cn [i]
		if (e == el || contains (e, el)) return true

	}

	return false
}

// Remove a selecção de texto.
var __untel
function unselText () {
	if (!__untel) {
		__untel = el = document.createElement ("input")
		el.type = "text"
		var st = el.style
		st.height = 1
		st.width = 1
		st.position = "absolute"
		st.left = st.top = -100 + "px"
		document.body.appendChild (el)
	}
	__untel.select ()
}
