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 = $("#infoBubble").get(0); //$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 = '<div id="bubble-shadow"><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><\/div>';
		positionBubble(icon_obj);
		bubble.obj.style.display = "block";
		if (!bubble.lock && content.match(/<a\s/i))
		{
			lockBubble(icon_obj);
			var lock_obj = $("#bubble-lock").get(0);
			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 p = $(icon_obj).offset();
	var w = $(icon_obj).width();
	var close_icon = $('#bubble-close').get(0);
	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  = ((p.top - w) + 5 - ((navigator.appName == 'Microsoft Internet Explorer') ? 0 : 5)) + 'px';
	bubble.obj.style.left = (p.left + 22 - bubble.pad) + 'px';
	bubble.obj.style.paddingLeft = bubble.pad + 'px';
	bubble.obj.style.paddingBottom = bubble.pad + 'px';
}

