if(typeof(Controls) == "undefined")
	var Controls = {};
if(typeof(Controls.DOMHelper) == "undefined"){
	Controls.DOMHelper = {};

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.DOMHelper.GetCoordinates = function(oElement, bToNearestPositionedElement, stopAtElement){
		if(typeof(bToNearestPositionedElement) == 'undefined')
			bToNearestPositionedElement = false;
		var X, Y, oParent;
		X = oElement.offsetLeft;
		Y = oElement.offsetTop;
		oParent = oElement;
		while(oParent = oParent.offsetParent){
			if(typeof(stopAtElement) != "undefined" && stopAtElement != null && stopAtElement == oParent) break;
			if(bToNearestPositionedElement && (oParent.style.position == 'absolute' || oParent.style.position == 'relative')) break;
			if(oParent == null)
				break;
			X += oParent.offsetLeft;
			Y += oParent.offsetTop;
		}
		return new Array(X, Y);
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.DOMHelper.RemoveNode = function(oNode){
		if(document.all)
			oNode.removeNode(true);
		else	
			oNode.parentNode.removeChild(oNode);
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.DOMHelper.GetParentTag = function(node, tagName){
		while(node != null && (node = node.parentNode) != null){
			if(node == null)
				return null;
			else if(node.tagName == tagName)
				return node;
		}
		return null;
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.DOMHelper.MoveChildren = function(fromNode, toNode){
		var childrenCount = fromNode.childNodes.length;
		if(childrenCount == 0)
			return;
		for(var i = 0; i < childrenCount; i++){
			toNode.appendChild(fromNode.childNodes[0]);
		}
	}
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	Controls.DOMHelper.IsParentOf = function(parent, child){
		if(parent == null || child == null)
			return false;
		if(parent == child){
			return true;
		}else if(document.all){
			return parent.contains(child);
		}else{
			var parentNode = child;
			while((parentNode = parentNode.parentNode) != null){
				if(parentNode == parent)
					return true;
			}
			return false;
		}
	}
}
