If I create an object and invoke a global function from within the object, I lose the scope of the object when I return to it.

I'm having a bit of trouble explaining it, so I'll just show you the code:

Code:
function Foo (id)
{
	this.theObj = document.getElementById(id);
		
	this.makeMePretty = function ()
	{
		setBg (this.theObj, this.setBorder);
	}
		
	this.setBorder = function ()
	{
		this.theObj.style.border = '5px dashed red';
	}
		
	this.makeMePretty ();
}
	
function setBg (elm,fn)
{
	elm.style.backgroundColor = 'yellow';
	fn();
}
	
window.onload = function ()
{
	var a = new Foo ('foo');
}
The global function (setBg) successfully executes and does recognize the correct scope. It executes Foo.setBorder, but inside setBorder, the object is lost. The Firefox Javascript debugger gives me the following information:

Code:
this.theObj has no properties
...and when I do alert(this); inside setBorder, it returns "object Window".

How can I maintain the reference to my object and still invoke the global function?