function addEvent(elem, event, func)
{
	if (elem.addEventListener)
	{
		elem.addEventListener(event, func, false);
	}
	else if (elem.attachEvent)
	{
		elem.attachEvent("on"+event, func);
	}
}

function getElementStyle(a)
{
	return window.getComputedStyle?window.getComputedStyle(a,null):a.currentStyle?a.currentStyle:null
}

function getNormalChildNode(elem)
{
	for (var i = 0; i < elem.childNodes.length; i++)
	{
		if (elem.childNodes[i].nodeName != '#text')
		{
			return elem.childNodes[i];
		}
	}
	return null;
}

function findElementPosition(elem)
{
	var curleft = curtop = 0;
	if (elem.offsetParent)
	{
		do
		{
			curleft += elem.offsetLeft;
			curtop 	+= elem.offsetTop;
		} while (elem = elem.offsetParent);
	}
	return {x : curleft, y : curtop};
}

