/*
//DESCRIÇÃO:
	Os métodos seguintes dependem da existência da tag abaixo inserida no documento ou do div com o id "oHint":
		<div id="oHint" style="position: absolute; top: 0px; left: 0px; visibility: hidden; background-color: #FCFEDE; border-style: solid; border-width: 1px; border-color: #000000; padding: 2px;"><p class="cssText">&nbsp;</p></div>
		
	Também fazem uso das seguintes propriedades do documento:
		self.hintList ([Array] - lista com conteúdo de hints padrãos)
		self.hintStyleDef ([String] - estilo definido para o texto do hint. exemplo: cssText)
	Que devem ser nulas ou possuir valor compatível.

//ATENÇÃO: no lugar de qualquer aspas ("), utilize (\") ao adicionar um hint no self.hintList.
*/

self.showHint = function (lWhich){
	var loHint = self.findObj("oHint");
	var lHintText = "";
	var lHintIndex = -1;
	if(loHint != null) {
		if (loHint.visible == null || loHint.visible == false) {
			if (lWhich == null) lWhich = "-1";
			if (String(parseInt(lWhich, 10)) != "NaN") lHintIndex = parseInt(lWhich, 10);
			if (self.hintList == null) self.hintList = new Array();
			if (self.hintStyleDef == null) self.hintStyleDef = "cssText";
			if (lHintIndex >= self.hintList.length) lHintIndex = -1;
			if (lHintIndex >= 0) lHintText = self.hintList[lHintIndex];
			if (lHintText == "" && lWhich != "-1") lHintText = String(lWhich);
			if (lHintText != "") {
				lHintText = "<p class=\"" +self.hintStyleDef+ "\">" + lHintText;
				lHintText += "</p>";
			}
			loHint.innerHTML = lHintText;
			//setando largura pra livre ou dois tamanhos dependendo do texto.
			loHint.style.height = "";
			loHint.style.width = ""; //maxWidth = 338;
			if (lHintText.length >= 60) loHint.style.width = "169px";
			if (lHintText.length >= 180) loHint.style.width = "338px";
			//fim da largura
			//setando posicionando...left...
			if ((event.offsetX - loHint.clientWidth) < 0) {
				if ((event.offsetX  + loHint.clientWidth) >= 338) {
					loHint.style.left = "0px";
				} else {
					loHint.style.left = event.offsetX + "px";
				}
			} else {
				loHint.style.left = (event.offsetX - loHint.clientWidth) + "px";
			}
			//setando top...
			var lBottomGap = document.body.clientHeight - (event.y +22); //=> espaço disponível em baixo da nota
			var lTopGap = document.body.clientHeight - (lBottomGap +44); //=> espaço disponível em cima da nota
			
			if ((lTopGap - loHint.clientHeight) < 0) {
				loHint.style.top = (event.offsetY +22) + "px";
			} else {
				loHint.style.top = (event.offsetY - loHint.clientHeight) + "px";
			}
			//fim posicionamento.
			loHint.style.visibility = "visible";
			loHint.visible = true;
		}
	}
}
self.hideHint = function (){
	var loHint = self.findObj("oHint");
	if(loHint != null) {
		loHint.style.visibility = "hidden";
		loHint.visible = false;
	}
}