function AddEventHandler( pageElement, theEvent, eventFunction )
{
if ( typeof(eventFunction) != "function" )
	{ throw ("AddEventHandler: eventFunction is not a function"); return false; }
if ( pageElement.indexOf )
	{ pageElement = document.getElementById(pageElement); }
if ( pageElement && pageElement.addEventListener )
	{ pageElement.addEventListener(theEvent, eventFunction, false); return true; }
if ( pageElement && pageElement.attachEvent )
	{ pageElement.attachEvent("on" + theEvent, eventFunction, false); return true; }
return false;
}

function InitSwapSet( setContainer )
{
if ( setContainer.indexOf )
	{ setContainer = document.getElementById( setContainer ); }
setContainer.currentSetItem = null;
setContainer.swap = function( target )
	{
		if ( setContainer.currentSetItem != null )
			{
				setContainer.currentSetItem.style.display = "none";
				setContainer.currentSetItem.controlElement.className = setContainer.currentSetItem.controlElement.className.replace( "active", "inactive" );
			}
		setContainer.currentSetItem = target;
		setContainer.currentSetItem.style.display = "block";
		setContainer.currentSetItem.controlElement.className = setContainer.currentSetItem.controlElement.className.replace( "inactive", "active" );
	}
}

function AddItemToSwapSet( setContainer, pageElement, controlElement )
{
if ( setContainer.indexOf )
	{ setContainer = document.getElementById( setContainer ); }
if ( pageElement.indexOf )
	{ pageElement = document.getElementById( pageElement ); }
if ( controlElement.indexOf )
	{ controlElement = document.getElementById( controlElement ); }
	controlElement.swapTarget = pageElement;
	controlElement.style.cursor = "pointer";
	controlElement.setContainer = setContainer;
	pageElement.controlElement = controlElement;
if ( pageElement.style.display != "none" )
	{ setContainer.currentSetItem = pageElement; }
AddEventHandler( controlElement, "click", function() { setContainer.swap( controlElement.swapTarget ); } );
}