/**
 * An indicator that moves a pointer element to show the current select and hover positions.
 *
 * Requires:
 *	AbstractPositionIndicator.js
 */
function PointerIndicator()
{
	var itsPointerIDSuffix;
	var itsHoverPointerIDSuffix;
	var itsPointer;
	var itsHoverPointer;


	AbstractPositionIndicator(this);
	this.overrides = new Object();


	this.overrides.initialize = this.initialize;
	this.initialize = function()
	{
		this.overrides.initialize();
		itsPointer = document.getElementById(this.getIDPrefix() + itsPointerIDSuffix);
		itsHoverPointer = document.getElementById(this.getIDPrefix() + itsHoverPointerIDSuffix);
	};


	this.changePosition = function(inOldElement,inNewElement)
	{
		if (inNewElement)
		{
			inNewElement.appendChild(itsPointer);
			itsPointer.style.display = "";
		}
		else
			itsPointer.style.display = "none";
	};


	this.changeHoverPosition = function(inOldElement,inNewElement)
	{
		if (inNewElement)
		{
			inNewElement.appendChild(itsHoverPointer);
			itsHoverPointer.style.display = "";
		}
		else
			itsHoverPointer.style.display = "none";
	};


	this.getPointerIDSuffix = function()
	{
		return (itsPointerIDSuffix);
	};


	this.setPointerIDSuffix = function(inPointerIDSuffix)
	{
		itsPointerIDSuffix = inPointerIDSuffix;
	};


	this.getHoverPointerIDSuffix = function()
	{
		return (itsHoverPointerIDSuffix);
	};


	this.setHoverPointerIDSuffix = function(inHoverPointerIDSuffix)
	{
		itsHoverPointerIDSuffix = inHoverPointerIDSuffix;
	};
}
