/*****************************************************************************
*
* File     : ToggleButton.js
* 
* Project  : WMS Viewer Client
* 
* Contents : This class implements the toggle toolbar button behaviour. 
* 
* Author: Milan Trninic
*
* Copyright 1999-2005 Galdos Systems, Inc.
* All rights reserved.
* 
***|***************************|***********************|*******************|*/

/************************************************************************
*
*	Global declarations
*
*	
*
*************************************************************************/

/************************************************************************
*
*	function:	ToggleButton
*
*	purpose:	Constructor
*
*************************************************************************/
function ToggleButton(uiElement, toolbar)
{
	// superclass
	this._superClass = AbstractButton;
	this._superClass(uiElement, toolbar);

	// method assignments
	this.init = ToggleButton.init;
	this.onNormal = ToggleButton.onNormal;
	this.onInflated = ToggleButton.onInflated;
	this.onEngaged = ToggleButton.onEngaged;
	this.onOnHold = ToggleButton.onOnHold;
	this.onClicked = ToggleButton.onClicked;
	this.setSelected = ToggleButton.setSelected;
	
	// instance field declarations
	
	// initialization
	this.init(uiElement, toolbar);
}

/************************************************************************
*
*	function:	init
*
*	purpose:	initializes the globals
*
*************************************************************************/
function ToggleButton.init(uiElement, toolbar)
{
	this._selected = false;
}

/************************************************************************
*
*	function:	onNormal
*
*	purpose:	
*
*************************************************************************/
function ToggleButton.onNormal()
{
	if (this._selected == false) className = this._normalClassName;
	else className = this._selectedClassName;
	this.setClassName(className);

}

/************************************************************************
*
*	function:	onInflated
*
*	purpose:	
*
*************************************************************************/
function ToggleButton.onInflated()
{
	if (this._selected == false) this.setClassName(this._inflatedClassName);
}

/************************************************************************
*
*	function:	onEngaged
*
*	purpose:	
*
*************************************************************************/
function ToggleButton.onEngaged()
{
	if (this._selected == false) this.setClassName(this._engagedClassName);
}

/************************************************************************
*
*	function:	onOnHold
*
*	purpose:	
*
*************************************************************************/
function ToggleButton.onOnHold()
{
	if (this._selected == false) this.setClassName(this._onHoldClassName);
}

/************************************************************************
*
*	function:	onClicked
*
*	purpose:	
*
*************************************************************************/
function ToggleButton.onClicked()
{
	if (this._selected == false) this.setSelected(true);
}

/************************************************************************
*
*	function:	setSelected
*
*	purpose:	
*
*************************************************************************/
function ToggleButton.setSelected(selected)
{
	if (this._selected == selected) return;
	if (selected) this._toolbar.toggleButtonSelected(this);

	// For explanation of the purpose of the temp variable, see the documentation
	this.temp = this._superClass.setSelected;
	this.temp(selected);
}


