/** constructor **/
function Description( descriptionID, descriptionGroup )
{
	if( document.getElementById && document.getElementById( descriptionID ) )
	{
		var controlPrefix = 'control_';

		this.ID               = descriptionID;
		this.controlID        = controlPrefix + descriptionID;
		this.control          = document.getElementById( this.controlID );
		this.contents         = document.getElementById( this.ID );
		this.descriptionGroup = descriptionGroup;

		this.init();
	}
}




/** class field **/
Description.currentDescription = new Object();
Description.controlStyle       = new Object();
Description.isTargetUA         = false;




/** class method **/
function Description_setStyle( stylePath, targetID )
{
	Description.isTargetUA = ( document.getElementById ) ? ( ( typeof document.getElementById( targetID ).style.display != 'undefined' ) ? true : false ) : false;

	if( Description.isTargetUA )
	{
		document.write( '<link rel="stylesheet" href="' + stylePath + '" media="screen,print">' );
	}
}
Description.setStyle = Description_setStyle;




/** instance method **/
// method 'init'
function Description_init()
{
	this.setEvent( 'onclick', 'contentsFocus' );
	this.control.href = 'javascript:void(0)';
}
Description.prototype.init = Description_init;



// method 'setEvent'
function Description_setEvent( event, method )
{
	var objectName = this.ID;

	this.control[ event ] = function()
	{
		eval( objectName + '.' + method + '();' );
	}
}
Description.prototype.setEvent = Description_setEvent;



// method 'contentsFocus'
function Description_contentsFocus()
{
	this.setDisplay();
	this.setControlCondition();
	this.changeCurrent();

}
Description.prototype.contentsFocus = Description_contentsFocus;




/** method for this site **/
// method setDisplay
function Description_setDisplay()
{
	if( Description.currentDescription[ this.descriptionGroup ] != this )
	{
		var currentContents = Description.currentDescription[ this.descriptionGroup ].contents;
		var changedContents = this.contents;

		currentContents.style.display = 'none';
		changedContents.style.display = 'block';
	}
}
Description.prototype.setDisplay = Description_setDisplay;



// method 'setControlCondition'
function Description_setControlCondition()
{
	if( Description.controlStyle[ this.descriptionGroup ] )
	{
		if( Description.currentDescription[ this.descriptionGroup ] != this )
		{
			var currentContentsControl = Description.currentDescription[ this.descriptionGroup ].control;
			var changedContentsControl = this.control;

			currentContentsControl.style.backgroundColor = '#ffffff';
			changedContentsControl.style.backgroundColor = 'transparent';
		}
	}
}
Description.prototype.setControlCondition = Description_setControlCondition;



// method 'changeCurrent'
function Description_changeCurrent()
{
	if( Description.currentDescription[ this.descriptionGroup ] != this )
	{
		Description.currentDescription[ this.descriptionGroup ] = this;
	}
}
Description.prototype.changeCurrent = Description_changeCurrent;
