/*---------------------------------------------------------------------
	File to contain general functions
-----------------------------------------------------------------------*/

/*-------------------------------
	Positioning Functions
---------------------------------*/
function MoveToByID(ID, x, y) {
	var oNode = document.getElementById(ID);
	MoveToByNode(oNode, x, y);
}
function MoveToByNode(oNode, x, y) {
	SetAbsPos(oNode, x, y);
}

function GetAbsXPosByID(ID) {
	var oNode = document.getElementById(ID);
	return GetAbsXPosByNode(oNode);
}
function GetAbsYPosByID(ID) {
	var oNode = document.getElementById(ID);
	return GetAbsYPosByNode(oNode);
}

function GetAbsXPosByNode(oNode){
	var iLeft = 0;
	if (oNode.offsetParent){
		while (oNode.offsetParent) {
			iLeft += oNode.offsetLeft;
			oNode = oNode.offsetParent;
		}
	}
	return iLeft;
}

function GetAbsYPosByNode(oNode){
	var iTop = 0;
	if (oNode.offsetParent){
		while (oNode.offsetParent) {
			iTop += oNode.offsetTop;
			oNode = oNode.offsetParent;
		}
	}
	return iTop;
}


function SetAbsPos(oNode, x, y) {
	SetAbsXPos(oNode, x);
	SetAbsYPos(oNode, y);
}
function SetAbsXPos(oNode, x) {
	oNode.style.position = "absolute";
	oNode.style.left = x + "px";
}
function SetAbsYPos(oNode, y) {
	oNode.style.position = "absolute";
	oNode.style.top = y + "px";
}

function GetHeightByID(ID) {
	var oNode = document.getElementById(ID);
	GetHeightByNode(oNode);
}
function GetWidthByID(ID) {
	var oNode = document.getElementById(ID);
	GetWidthByNode(oNode);
}

function GetHeightByNode(oNode) {
	return oNode.offsetHeight;
}
function GetWidthByNode(oNode) {
	return oNode.offsetWidth;
}

/*-------------------------------
	DOM Whitespace Functions
---------------------------------*/

function getFirstChild(oCurrentNode) { 
	var oCheckNode = oCurrentNode.firstChild;
	while (oCheckNode && oCheckNode.nodeType != 1) {
		oCheckNode = oCheckNode.nextSibling;
	}
	return oCheckNode;
}

function getNextSibling(oCurrentNode)
{
	var oCheckNode = oCurrentNode.nextSibling;
	while (oCheckNode && oCheckNode.nodeType != 1) {
		oCheckNode = oCheckNode.nextSibling;
	}
	return oCheckNode;
}

