function fixDocument(xml)
{

	walkDown(xml);

}



function walkDown(node)
{
	var i;
	var curr;
	for(i=0; i<node.childNodes.length; i++)
	{
		curr = node.childNodes[i];
        
        if(curr.nodeName == "#text")
		{
			node.removeChild(curr);
			i--;
		}
		else
		{
			if(curr.childNodes.length > 0)
				walkDown(curr);
		}
	}
}


function isAncestor(c, p)
{
	if(c)
	{
		if(c == p)
			return true;
            
		while(c.tagName != "HTML")
		{
			c = c.parentNode;
			if(c == p)
				return true;
		}
		return false;
	}
	else
	{
		return false;
	}
}


function brinEvent(e)
{
	if(e)
		return e;
	else
		return window.event;
}

function brinTarget(e)
{
	var targ;

	if(e.srcElement)
		targ =  e.srcElement;
	else
		targ = e.target;
        
	if(targ.nodeType == 3)
		targ = targ.parentNode;

	return targ;
}

function brinTo(e)
{

	if(e.relatedTarget)
		return e.relatedTarget;
	else
		return e.toElement;
}

function brinFrom(e)
{
	if(e.relatedTarget)
		return e.relatedTarget;
	else
		return e.fromElement;
}



function BaseObject()
{
	var obj = new Object();

	obj.root = document.createElement("div");
    obj.onrollover = function(e){};
	obj.onrollout = function(e){};

	obj.showIn = function(node)
	{
		node.appendChild(obj.root);
	};
	
	obj.appendChild = function(node)
	{
		obj.root.appendChild(node);
	};

	obj.setStyle = function(styleObject)
	{
		obj.root.style = styleObject;
	};

	obj.root.onmouseover = function(e)
	{
        
		var rel = brinFrom(brinEvent(e));
        
        
		if(!isAncestor(rel, obj.root))
		{
			obj.onrollover(rel);
		}

	};

	obj.root.onmouseout = function(e)
	{

        var rel = brinTo(brinEvent(e));

		if(!isAncestor(rel, obj.root))
		{
			obj.onrollout(rel);
		}

	};

	return obj;

}