var bubble = { "timer_id":0, "obj":false, "timeout":300, "lock":false, "pad":0 };
var bubble_icon_obj = null;
function showBubble(icon_obj, content)
{
	if (icon_obj && bubble_icon_obj !== icon_obj) 
	{	
		bubble.lock = false; 
		bubble_icon_obj = icon_obj;
	}
	if(bubble.lock || typeof(icon_obj) != "undefined") clearTimeout(bubble.timer_id);

	if(!bubble.obj) bubble.obj = $obj("infoBubble");
	if (bubble.obj)
	{
		if(typeof(icon_obj) == "undefined") return;
		if(typeof(content) == 'undefined')
		{
			var data_obj = $(icon_obj).next(".bubble").get(0);
			content = data_obj.innerHTML;
		}
		icon_obj.title = "";
		//icon_obj = (icon_obj.tagName.toLowerCase() != 'img') ? getNextChild(icon_obj,"bubble-icon") : icon_obj;
		//icon_obj = (icon_obj.tagName.toLowerCase() != 'img') ? $(icon_obj).children(".bubble-icon").get(0) : icon_obj;
		icon_obj = !($(icon_obj).hasClass("bubble-icon")) ? $(icon_obj).children(".bubble-icon").get(0) : icon_obj;
		bubble.obj.innerHTML = '<span id="bubble-lock"><\/span><table' + (($(icon_obj).hasClass("bubble-icon-kana") || (icon_obj.src && icon_obj.src.indexOf('kana.gif') > 0)) ? ' class="kana"' : '') + '><tr><td><a name="bubble-close" id="bubble-close" title="Close" onclick="closeBubble(); return false;"><\/a>' + content + '<div class="min-width"><\/div><\/td><\/tr><\/table>';
		positionBubble(icon_obj);
		bubble.obj.style.display = "block";
		if (!bubble.lock && content.match(/<a\s/i)) 
		{
			lockBubble(icon_obj);
			var lock_obj = $obj('bubble-lock');
			if (lock_obj)
			{
				lock_obj.style.display = (bubble.lock ? 'none' : 'block');
				lock_obj.style.left = parseInt(bubble.pad - 10) + 'px';
				lock_obj.innerHTML = "Click to pin";
			}
		}
	}
}

function closeBubble()
{
	bubble.lock = false;
	if (bubble.obj)
	{
		bubble.obj.style.display = "none";
		bubble.obj.innerHTML = "";
		bubble.obj.style.top = 0;
		bubble.obj.style.left = 0;
		bubble.obj = null;
	}
}

function hideBubble(icon_obj)
{
	bubble.timer_id = setTimeout("closeBubble()", (bubble.lock ? bubble.timeout : 2));
}

function lockBubble(icon_obj)
{
	bubble.lock = !bubble.lock;
	positionBubble(icon_obj);
}


function positionBubble(icon_obj)
{
	var position = findPos(icon_obj);
	var close_icon = $obj('bubble-close');
	bubble.pad = (bubble.lock) ? 5 : 0;
	if (close_icon)
	{
		close_icon.style.display = (bubble.lock ? 'block' : 'none');
		close_icon.style.left = parseInt(bubble.pad - 5) + 'px';
	}
	bubble.obj.style.top  = ((position[1] - position[3]) + 5 - ((navigator.appName == 'Microsoft Internet Explorer') ? 0 : 5)) + 'px';
	bubble.obj.style.left = (position[0] + 22 - bubble.pad) + 'px';
	bubble.obj.style.paddingLeft = bubble.pad + 'px';
	bubble.obj.style.paddingBottom = bubble.pad + 'px';
}
