var onloadEvents = "";

function addOnloadEventHandler(code)
{
	onloadEvents += " ; " + code;
	
	window.onload = new Function(onloadEvents);
}

function attachListener( what, when, how, phase )
{
	phase = phase || false;
	
	if ( what.addEventListener )
	{
		what.addEventListener( when.replace('on', ''), how, phase );
	}
	else if ( what.attachEvent )
	{
		what.attachEvent ( when, how );
	}
	else
	{
		what[when] = how;
	}
}

function getOffset( element, offset )
{
	if( offset == null ) offset = { x: 0, y: 0 };
	
	if( element.parentNode == document.body )
	{
		offset['x'] += element.scrollLeft;
		offset['y'] += element.scrollTop;
		
		return offset;
	}
	
	if( element.nodeName.toUpperCase() == 'TBODY' || element.nodeName.toUpperCase() == 'TR' )
	{
		return getOffset( element.parentNode, offset );
	}
	else
	{	
		offset['x'] += element.offsetLeft + element.scrollLeft;
		offset['y'] += element.offsetTop + element.scrollTop;
		
		return getOffset( element.parentNode, offset );
	}
}
