var DOM2 = document.getElementById;
var ie4  = document.all ? true : false;
var ns4  = window.Event ? true : false;
var ie5, ie6, ie7, ie8;

if (ie4)
{
	if (navigator.userAgent.indexOf('MSIE 5') > 0)
		ie5 = true;
	if (navigator.userAgent.indexOf('MSIE 6') > 0)
		ie6 = true;
	if (navigator.userAgent.indexOf('MSIE 7') > 0)
		ie7 = true;
	if (navigator.userAgent.indexOf('MSIE 8') > 0)
		ie8 = true;
}
else
{
	ie5 = false;
	ie6 = false;
}

var ie  = ie4 || ie5 || ie6 || ie7 || ie8;
var ns6 = (DOM2&&!ie) ? true : false;
var ns  = ns4 || ns6;

var Mouse = 
{
	// public
	currentX  : 0,
	currentY  : 0,
	
	// events
	onmove    : new Array(),
	
	moved : function(_x, _y)
	{
		for (var e in Mouse.onmove)
		{
			Mouse.onmove[e](_x, _y);
		}
	},
	
	mouseMove : function(e)
	{
		if (ie)
		{
			currentX = event.x + document.body.scrollLeft;
			currentY = event.y + document.body.scrollTop;
		}
		else if (ns)
		{
			currentX = e.pageX;
			currentY = e.pageY;
		}
		else
		{
			currentX = event.x + document.body.scrollLeft;
			currentY = event.y + document.body.scrollTop;
		}

		Mouse.moved(currentX, currentY);
	}
};

document.onmousemove = Mouse.mouseMove;

var Tooltip = 
{
	// private
	_doc         : null,
	_offsetX     : 0,
	_offsetY     : 0,
	
	_setPosition : function(newX, newY)
	{
		newX += 5;
		newY += 1;

		newX += Tooltip._offsetX;
		newY += Tooltip._offsetY;

		$(Tooltip._doc).find("#tipdiv").css({ "left": newX, "top": newY});
	},
		
	// public
	Show : function(doc, code)
	{
		Tooltip._doc         = doc;
		
		// setting up event capture
		Mouse.onmove.push(Tooltip._setPosition);
		
		// setting up code
		if (DOM2)
		{
			$(doc).find("#tipdiv").html(code);
		}
		else if (ns)
		{
			var d = doc.layers['tipdiv'].document;
			d.open();
			d.write(code);
			d.close();
		}
		else
		{
			doc.all['tipdiv'].innerHTML = code;
		}
		
		// showing div
		$(doc).find("#tipdiv").show();
	},
	
	Hide : function()
	{
		Mouse.onmove.length = 0;
		
		var td = $(Tooltip._doc).find("#tipdiv");
		
		if (td)
		{
			Tooltip._setPosition(-1000, -1000);
			$(Tooltip._doc).find("#tipdiv").hide();
			Tooltip._doc = null;
		}
	}
};

function getDetailsCode(details, _width)
{
	if (_width)
	{
		return "<table cellSpacing=1 cellPadding=1 border=0><tr><td width=" + _width + " align=center class='tipdetailsheader'>" + translates.details + "</td></tr><tr><td class='tipdetails'>" + details + "</td></tr></table>";
	}
	else
	{
		return "<table cellSpacing=1 cellPadding=1 border=0><tr><td align=center class='tipdetailsheader'>" + translates.details + "</td></tr><tr><td class='tipdetails'>" + details + "</td></tr></table>";
	}
};

function showDetails(details)
{
	var code = getDetailsCode(details);

	Tooltip.Show(document, code);
};

function stopShow()
{
	Tooltip.Hide();
};
