var gxBallonList = new Array();
var timerRunning = false;

function isUnset( id)
{
  this.element = document.getElementById( id);
  if (element.innerHTML == "unset")
    return true;
  if (element.innerHTML == "")
    return true;
  return false;
}

function GXgetMessage( Code)
{
	if (Code == "inex")
		return "Inexistente";
		
	switch (Code) 
	{
   		case "inex" : message = "Codigo inexistente";
	      	break;
	   	
	   	default : message = "Error";
	}
	return message;	
}

function gxBalloon()
{
	this.init = function( id)
	{
		this.hide();
		this.id = id;	
		this.balloonid = id + "_Balloon";
		this.hasMessage = false;
		this.messageErr = '';
		this.messageWar = '';
		this.isError = false;
	}
	
	this.setMessage = function(message)
	{
		this.messageWar += message+'<BR>';
		this.hasMessage = true;
	}

	this.setError = function(message)
	{
		this.messageErr += message+'<BR>';
		this.isError = true;
		this.hasMessage = true;
	}

	this.show = function()
	{
		if (document.readyState != undefined && document.readyState != 'complete')
			return;
		try
		{
			if (this.hasMessage == false)
				return true;
			var BalloonControl = document.getElementById( this.balloonid);
			Control = GXgetControlRef_impl( this.id);
			if (BalloonControl == null)
			{
				BalloonControl = document.createElement("SPAN");
				BalloonControlShadow = document.createElement("SPAN");
				BalloonControlShadow2 = document.createElement("SPAN");
				IFrameControl = document.createElement("IFRAME");
				BalloonControl.id = this.balloonid;
				BalloonControlShadow.id = this.balloonid + "Shadow";
				BalloonControlShadow2.id = this.balloonid + "Shadow2";
				IFrameControl.id= this.balloonid + "GXiFrameIEHack";
				IFrameControl.src = "about:blank";
				IFrameControl.style.zIndex = 1;
				IFrameControl.style.visibility = "hidden";
				IFrameControl.style.position = "absolute";
				IFrameControl.frameBorder= "0";
			
				document.body.appendChild( BalloonControl);
				document.body.appendChild( BalloonControlShadow);
				document.body.appendChild( BalloonControlShadow2);
				document.body.appendChild( IFrameControl);
				
			}
			var Coord = GXgetPosition( Control);
			var CoordTop = parseInt(Coord.top);
			var CoordLeft = parseInt(Coord.left);
			
			var sHTML;
			sHTML = "<span style='white-space:nowrap;position: absolute; top:" +  CoordTop + "px; left:" + CoordLeft + "px;z-index:3' >"
			if (this.messageErr.length > 0)
			{
				sHTML += "<div class='ErrorMessages'>";
				sHTML += this.messageErr;
				sHTML +="</div><span style='height:4px;overflow:hidden'></span>";
			}
			if (this.messageWar.length > 0)
			{
				sHTML += "<div class='WarningMessages'>";
				sHTML += this.messageWar;
				sHTML +="</div>";
			}
			sHTML +="</span>";

			BalloonControl.innerHTML = sHTML;
			
			var shadowWidth = 2;
			
			CoordTop -= BalloonControl.lastChild.offsetHeight - shadowWidth;
			
			sHTML = "<span style='white-space:nowrap;position: absolute; top:" +  CoordTop + "px; left:" + CoordLeft + "px;z-index:3' >"
			if (this.messageErr.length > 0)
			{
				sHTML += "<div class='ErrorMessages'>";
				sHTML += this.messageErr;
				sHTML +="</div><span style='height:4px;overflow:hidden'></span>";
			}
			if (this.messageWar.length > 0)
			{
				sHTML += "<div class='WarningMessages'>";
				sHTML += this.messageWar;
				sHTML +="</div>";
			}
			sHTML +="</span>";

			BalloonControl.innerHTML = sHTML;
			
			IFrameControl.style.visibility = "visible";		
			IFrameControl.style.height = BalloonControl.firstChild.firstChild.offsetHeight;
			IFrameControl.style.width = BalloonControl.lastChild.offsetWidth;
			IFrameControl.style.top	= CoordTop;
			IFrameControl.style.left = CoordLeft;
			
			CoordTop += shadowWidth;
			CoordLeft += shadowWidth;
			
			if (this.messageErr.length > 0)
			{
				sHTML ="<span style='position: absolute;border-style:none;";
				sHTML += "top:" +  CoordTop + "px; left:" + CoordLeft + "px;";
				sHTML += "width:" + BalloonControl.lastChild.offsetWidth + "px;" + " height:" + BalloonControl.firstChild.firstChild.offsetH