var item_xsl = null;
var last_item = null;
var temp_div = document.createElement('div');

AjaxRequest.get(
	{
		'url':'/client/games_stats/wowstats-item-' + wowlang + '.xsl',
		'onSuccess':function (req)
		{
			item_xsl = req.responseXML;
		}
	});

function showTip(e)
{
	if (!e) e = window.event;
	if (!e) return;

	var item = e.target;
	if (!item) item = e.srcElement;
	
	last_item = item;
	if (item.getAttribute("itemid") == 0)
		return;

	var toolBox = document.getElementById('toolBox');
	toolBox.innerHTML = loadingStr;
	if (item.getAttribute("tipText"))
		toolBox.innerHTML = item.getAttribute("tipText");
	else
		AjaxRequest.get(
		{
			'url':'/client/games_stats/wow.php',
			'parameters':
			{
				'mode':'item',
				'char':item.getAttribute('char'),
				'realm':item.getAttribute('realm'),
				'region':item.getAttribute('region'),
				'itemid':item.getAttribute('itemid')
			},
			'onSuccess':function(req)
			{
				if (item_xsl && req.responseXML.childNodes.length != 0)
				{
					var frag;
					if (navigator.appName == "Netscape")
					{
						var xslt =  new XSLTProcessor();
						xslt.importStylesheet(item_xsl);
						frag = xslt.transformToFragment(req.responseXML, document);
						temp_div.innerHTML = "";
						temp_div.appendChild(frag);
						frag = temp_div.innerHTML;
					}
					else		// IE
					{
						frag = req.responseXML.transformNode(item_xsl);
					}
					
					if (last_item == item)
					{
						toolBox.innerHTML = frag;
						item.setAttribute("tipText", frag);
					}
					else
					{
						item.setAttribute("tipText", frag);
					}
				}
			}
		});
	
	
	var tipBox = document.getElementById('tooltip');
	tipBox.style.display = "";
	if (e.pageX)
	{
		tipBox.style.top = (e.pageY + 10) + "px";
		tipBox.style.left = (e.pageX + 10) + "px";
	}
	else
	{
		tipBox.style.top = (e.offsetY + getYPosition(item) + 13) + "px";
		tipBox.style.left = (e.offsetX + getXPosition(item) + 18) + "px";
	}
}

function hideTip()
{
	var tipBox = document.getElementById('tooltip');
	tipBox.style.display = "none";
	last_item = null;
}

function getXPosition(element)
{
	if (element)
		return element.offsetLeft + getXPosition(element.offsetParent);
	return 0;
}

function getYPosition(element)
{
	if (element)
		return element.offsetTop + getYPosition(element.offsetParent);
	return 0;
}
