
function getPosition(theElement)
{
    var positionX = 0;
    var positionY = 0;

    while (theElement != null)
    {
        positionX += theElement.offsetLeft;
        positionY += theElement.offsetTop;
        theElement = theElement.offsetParent;
    }
    
    return [positionX, positionY];
};




function getViewportSize()
{
	var size = [0,0];

	if (typeof window.innerWidth != 'undefined')
	{
		size = [
			window.innerWidth,
			window.innerHeight
			];
	}
	else if (typeof document.documentElement != 'undefined'
	&& typeof document.documentElement.clientWidth != 'undefined' 
	&& document.documentElement.clientWidth != 0)
	{
		size = [
			document.documentElement.clientWidth, 
			document.documentElement.clientHeight
			];
	}
	else if (document.getElementsByTagName('body')[0] != null)
	{
		size = [
			document.getElementsByTagName('body')[0].clientWidth,
			document.getElementsByTagName('body')[0].clientHeight
			];
	}

	return size;
};




function getScrollingPosition()
{
	//array for X and Y scroll position
	var position = [0, 0];

	//if the window.pageYOffset property is supported
	if(typeof window.pageYOffset != 'undefined')
	{
		//store position values
		position = [
			window.pageXOffset,
			window.pageYOffset
			];
	}

	//if the documentElement.scrollTop property is supported
	//and the value is greater than zero
	else if(typeof document.documentElement.scrollTop != 'undefined'
		&& document.documentElement.scrollTop > 0)
	{
		//store position values
		position = [
			document.documentElement.scrollLeft,
			document.documentElement.scrollTop
			];
	}

	//if the body.scrollTop property is supported
	else if(typeof document.body.scrollTop != 'undefined')
	{
		//store position values
		position = [
			document.body.scrollLeft,
			document.body.scrollTop
			];
	}

	//return the array
	return position;
};