var acCurrentlyHiddenElements;

function ShowMessageBox(strTitle, strMessage, strCssClass, fnOnClick, fIsCloseable)
{
	document.getElementById(m_strMessageControlID).className = (strCssClass != "") ? strCssClass : "";
	
	HideAllWindowedObjects();
	
	document.getElementById(m_strMessageControlID).style.visibility = "hidden";
	document.getElementById(m_strMessageControlScreenBlockerID).style.visibility = "hidden";
	document.getElementById(m_strMessageControlID).style.display = "block";
	document.getElementById(m_strMessageControlScreenBlockerID).style.display = "block";
	document.getElementById(m_strMessageControlTitleLabelID).innerHTML = strTitle;
	document.getElementById(m_strMessageControlMessageLabelID).innerHTML = strMessage;
	
	if (fIsCloseable)
	{
		document.getElementById(m_strMessageControlCancelButtonID).style.display = "block";
		document.getElementById(m_strMessageControlCloseAreaID).style.display = "block";
	
		if (fnOnClick != null)
		{
			document.getElementById(m_strMessageControlCancelButtonID).onclick = fnOnClick;
			document.getElementById(m_strMessageControlButtonClientID).onclick = fnOnClick;
		}
		else
		{
			document.getElementById(m_strMessageControlCancelButtonID).onclick = HideMessageBox;
			document.getElementById(m_strMessageControlButtonClientID).onclick = HideMessageBox;
		}
	}
	else
	{
		document.getElementById(m_strMessageControlCancelButtonID).style.display = "none";
		document.getElementById(m_strMessageControlCloseAreaID).style.display = "none";
	}
	
	document.getElementById(m_strMessageControlID).style.visibility = "visible";
	document.getElementById(m_strMessageControlScreenBlockerID).style.visibility = "visible";
	
	if (fIsCloseable)
	{
		document.getElementById(m_strMessageControlButtonClientID).focus();
	}
}

function HideMessageBox ()
{
	ShowAllWindowedObjects();
	document.getElementById(m_strMessageControlID).style.display = "none";
	document.getElementById(m_strMessageControlScreenBlockerID).style.display = "none";
}

function DisplayHelp (strTitle, strMessage)
{
	ShowMessageBox(strTitle, strMessage, "Help", null, true);
}

function DisplayProcessingBox ()
{
	ShowMessageBox("Please wait...", "Processing", "Processing", null, false);
	DisplayProcessingMessage(0);
}

function DisplayProcessingMessage (nCount)
{
	document.getElementById(m_strMessageControlMessageLabelID).innerHTML = "Processing";
	
	for (var i=0; i<nCount; i++)
	{
		document.getElementById(m_strMessageControlMessageLabelID).innerHTML += ".";
	}
	
	if (++nCount > 3)
	{
		nCount = 0
	}
	
	window.setTimeout("DisplayProcessingMessage(" + nCount + ");", 750);
}

function HideAllWindowedObjects ()
{
	var acElements = document.getElementsByTagName("select");
	acCurrentlyHiddenElements = new Array();
	for(var i=0; i<acElements.length; i++)
	{
		if (acElements[i].style.visibility == "hidden")
		{
			acCurrentlyHiddenElements.push(acElements[i]);
		}
		else
		{
			acElements[i].style.visibility = "hidden";
		}
	}
}

function ShowAllWindowedObjects()
{
	var acElements = document.getElementsByTagName("select");
	for(var i=0; i<acElements.length; i++)
	{
		acElements[i].style.visibility = "visible";
	}
	for(var i=0; i<acCurrentlyHiddenElements.length; i++)
	{
		acCurrentlyHiddenElements[i].style.visibility = "hidden";
	}
}

function MessagePopupOnLoadRetainer()
{
	this.OnLoad = window.onload;
}

var cMessagePopupOnLoadRetainer = new MessagePopupOnLoadRetainer();

function CloseErrorBox()
{
	HideMessageBox();
	
	try
	{
		cMessagePopupOnLoadRetainer.OnLoad();
	}
	catch (e){ }
}