function GetElementByID (elementName)
{
	if (document.getElementById && (document.getElementById(elementName) != null))
		return document.getElementById(elementName);
	
	if (document.getElementByName && (document.getElementByName(elementName) != null))
		return document.getElementByName(elementName);

	if (document.layers && (document.layers(elementName) != null))
		return document.layers(elementName);

	if (document.all && (document.all (elementName) != null))
		return document.all(elementName);
	
	return null;
}

function SettingsObject()
{
	this.contentObject	= null;
	this.stateHolder	= "";
	
	this.leftImageCollapsedStyle		= "";
	this.leftImageCellCollapsedStyle 	= "";
	this.leftImageCollapsedUrl			= "";
	this.leftImageExpandedUrl			= "";
	this.leftImageExpandedStyle			= "";
	this.leftImageCellExpandedStyle 	= "";
	
	this.titleCellCollapsedStyle		= "";
	this.titleCellExpandedStyle			= "";
	this.collapsedText 					= "";
	this.expandedText					= "";
	
	this.rightImageCollapsedStyle		= "";
	this.rightImageCellCollapsedStyle 	= "";
	this.rightImageCollapsedUrl			= "";
	this.rightImageExpandedUrl			= "";
	this.rightImageExpandedStyle		= "";
	this.rightImageCellExpandedStyle 	= "";
}

function CollapseExpand (titleObjects, settingsObject)
{
	if (titleObjects != null)
	{
		var leftCell	= titleObjects[0];
		var leftImage	= titleObjects[1];
		var titleCell 	= titleObjects[2];		
		var rightCell	= titleObjects[3];
		var rightImage	= titleObjects[4];

		var collapsed = true;		
		
		if (titleCell != null)
		{
			collapsed = !(titleCell.innerHTML == settingsObject.collapsedText);
		}
				
		SetState (collapsed, settingsObject);
		SetContentVisibility (collapsed, settingsObject);
		SetTitle (collapsed, titleCell, settingsObject);
		SetLeftTitle (collapsed, leftCell, leftImage, settingsObject);
		SetRightTitle (collapsed, rightCell, rightImage, settingsObject);
	}
}

function SetLeftTitle (collapsed, leftCell, leftImage, settingsObject)
{
	if (collapsed)
	{		
		if (leftCell != null)
		{
			leftCell.className = settingsObject.leftImageCellCollapsedStyle;
		}
		
		if (leftImage != null)
		{
			leftImage.className = settingsObject.leftImageCollapsedStyle;
			leftImage.src		= settingsObject.leftImageCollapsedUrl;
			leftImage.title		= settingsObject.collapsedText;
		}
	}
	else
	{		
		if (leftCell != null)
		{
			leftCell.className = settingsObject.leftImageCellExpandedStyle;
		}

		if (leftImage != null)
		{
			leftImage.className = settingsObject.leftImageExpandedStyle;
			leftImage.src		= settingsObject.leftImageExpandedUrl;
			leftImage.title		= settingsObject.expandedText;
		}
	}
}

function SetTitle (collapsed, titleCell, settingsObject)
{
	if (collapsed)
	{
		if (titleCell != null)
		{
			titleCell.innerHTML = settingsObject.collapsedText;			
			titleCell.className = settingsObject.titleCellCollapsedStyle;			
		}
	}
	else
	{		
		if (titleCell != null)
		{
			titleCell.innerHTML = settingsObject.expandedText;
			titleCell.className = settingsObject.titleCellExpandedStyle;
		}
	}
}

function SetRightTitle (collapsed, rightCell, rightImage, settingsObject)
{
	if (collapsed)
	{		
		if (rightCell != null)
		{
			rightCell.className = settingsObject.rightImageCellCollapsedStyle;
		}
		
		if (rightImage != null)
		{
			rightImage.className 	= settingsObject.rightImageCollapsedStyle;
			rightImage.src			= settingsObject.rightImageCollapsedUrl;
			rightImage.title		= settingsObject.collapsedText;
		}
	}
	else
	{		
		if (rightCell != null)
		{
			rightCell.className = settingsObject.rightImageCellExpandedStyle;
		}

		if (rightImage != null)
		{
			rightImage.className 	= settingsObject.rightImageExpandedStyle;	
			rightImage.src			= settingsObject.rightImageExpandedUrl;
			rightImage.title		= settingsObject.expandedText;
		}		
	}
}

function SetState (collapsed, settingsObject)
{
	if (collapsed)
	{
		if (settingsObject.stateHolder != null)
		{
			settingsObject.stateHolder.value = settingsObject.collapsedText;
		}
	}
	else
	{			
		if (settingsObject.stateHolder != null)
		{				
			settingsObject.stateHolder.value = settingsObject.extendedText;
		}
	}
}

function SetContentVisibility (collapsed, settingsObject)
{
	if (collapsed)
	{
		if (settingsObject.contentObject != null)
		{
			settingsObject.contentObject.style.display = "none";
		}
	}
	else
	{
		if (settingsObject.contentObject != null)
		{
			settingsObject.contentObject.style.display = '';
		}
	}
}
