function StartRB(img, unselectedsrc, unselectedclass, hoversrc, hoverclass)
{
	img.onload = "";

	var link = img.parentNode;
	link.hoverImage = new Image();
	link.hoverImage.src = hoversrc;
	link.unselectedImage = new Image();
	link.unselectedImage.src = unselectedsrc;
	link.outImage = img.src;
	link.image = img;


	link.outClassName = link.className;
	link.overClassName = "RB " + hoverclass + "HoverRB";
	link.unselectedClassName = "RB " + unselectedclass;
	if (link.className.indexOf("UnpaddedRB") != -1)
		link.overClassName += " UnpaddedRB";

	link.onmouseover = MouseOverRB;
	link.onmouseout = MouseOutRB;
	link.SetSelected = SetSelected;
	link.MouseOverRB = MouseOverRB;
	link.SetUnselectedRB = SetUnselectedRB;
	link.forceSelected = false;
	link.hasBeenForcedUnselected = false;
}

function SetSelected(isSelected)
{
	if (isSelected) {
		this.MouseOverRB();
	} else {
		this.SetUnselectedRB();
		this.hasBeenForcedUnselected = true;
	}
	
	this.forceSelected = isSelected;
}

function MouseOverRB()
{
	this.image.onload = MouseOverLoadRB;
	this.image.src = this.hoverImage.src;
}

function MouseOverLoadRB()
{
	var link = this.parentNode;

	// Will be null if an Anthem call removes the button
	if (!link)
		return;

	link.className = link.overClassName;
}

function SetUnselectedRB()
{
	this.image.onload = UnselectedLoadRB;
	this.image.src = this.unselectedImage.src;
}

function UnselectedLoadRB()
{
	var link = this.parentNode;

	// Will be null if an Anthem call removes the button
	if (!link)
		return;

	link.className = link.unselectedClassName;
}

function MouseOutRB()
{
	if (this.forceSelected)
		return;

	if (this.hasBeenForcedUnselected) {
		this.SetUnselectedRB();
		return;
	}
		
	this.image.onload = MouseOutLoadRB;
	this.image.src = this.outImage;
}

function MouseOutLoadRB()
{
	var link = this.parentNode;

	// Will be null if an Anthem call removes the button
	if (!link)
		return;

	link.className = link.outClassName;
}

