function PerformAutoLogout()
{
	//alert("Your session has timed out. Please log in again to continue working.");
	OpenLink("/DOMINO/logout.aspx?");
}

function GetUserAgentBrowser()
{
	var userAgent = navigator.userAgent.toLowerCase();
	
	if (userAgent.indexOf("opera") != -1)		return 'Opera';
	if (userAgent.indexOf("phoenix") != -1)		return 'Phoenix';
	if (userAgent.indexOf("firefox") != -1)		return 'Firefox';
	if (userAgent.indexOf("safari") != -1)		return 'Safari';
	if (userAgent.indexOf("konqueror") != -1)	return 'Konqueror';
	if (userAgent.indexOf("msie") != -1)		return 'IE';
	if (userAgent.indexOf("netscape") != -1)	return 'Netscape';
	if (userAgent.indexOf("mozilla/5.0") != -1) return 'Mozilla';
	if (userAgent.indexOf('\/') != -1) 
	{
		if (userAgent.substr(0, userAgent.indexOf('\/')) != 'mozilla') 
		{
			return navigator.userAgent.substr(0, userAgent.indexOf('\/'));
		}
		else 
		{
			return 'Netscape';
		}
	}
	else if (userAgent.indexOf(' ') != -1)
	{
		return navigator.userAgent.substr(0, userAgent.indexOf(' '));
	}
	else 
	{
		return navigator.userAgent;
	}
}

// NAME: GetTagFromID
// PURPOSE: Gets the element object by searching
// the document for a tag with the given ID.
// RETURNS: object of tag element, null if not found
function GetTagFromID(tagID)
{
    var oTag = null;
	if (tagID != null && tagID != '')
	{
		oTag = document.getElementById(tagID);	  
	}
	
	return oTag;
}

function GetAttrValueFromTagID(tagID, attrName)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		return GetAttrValueFromTag(oTag, attrName);
	}
	else
	{
		return '';
	}
}

function GetAttrValueFromTag(oTag, attrName)
{
	var oAttr = oTag.getAttribute(attrName);
	if (oAttr != null && oAttr != 'undefined')
	{
		return oAttr;
	}
	else
	{
		return '';
	}
}

function SetElementClass(tagID, clsID)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		oTag.className = clsID;
	}
}

function SetRowCellsClass(tagID, clsID)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null && oTag.tagName == 'TR')
	{
		var cCells = oTag.cells;
		var cell;
		for (var i=0; i<cCells.length; i++)
		{
			cell = cCells[i];
			cell.className = clsID;
		}
	}
}

function OpenLink(urlPath)
{
	if (urlPath != null && urlPath != 'undefined')
		window.location.href = urlPath;
}

function SetSampleTextBox(sampleText, txtID)
{
	var oTxt = GetTagFromID(txtID);
	if (oTxt != null)
	{
		if (oTxt.value == "")
		{
			oTxt.value = sampleText;
		}
	}
}

function ClearSampleTextBox(sampleText, txtID)
{
	var oTxt = GetTagFromID(txtID);
	if (oTxt != null)
	{
		if (oTxt.value == sampleText)
		{
			oTxt.value = "";
		}
	}
}

// NAME: ToggleDisplay
// PURPOSE: Toggles the display of an html
// element, properly accounting for tr,
// tbody, thead, and tfoot uniqueness.
// RETURNS: true if displayed, false if not
function ToggleDisplay(tagID)
{
	var bState = false;
	
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		var sNewState = '';
		var sCurState = oTag.style.display;
		
		if (sCurState == 'none')
		{	
			if (GetUserAgentBrowser() == "IE")
			{
				sNewState = 'block';
			}
			else
			{
				switch (oTag.tagName.toLowerCase())
				{
					case 'tr':
					{
						sNewState = 'table-row';
						break;
					}
					case 'thead':
					{
						sNewState = 'table-header-group';
						break;
					}
					case 'tfoot':
					{
						sNewState = 'table-footer-group';
						break;
					}
					case 'tbody':
					{
						sNewState = 'table-row-group';
						break;
					}
					default:
					{
						sNewState = 'block';
						break;
					}
				}
			}
		
			//sNewState = 'block';
			
			bState = true;
		}
		else
		{
			sNewState = 'none';
			bState = false;
		}
		
		oTag.style.display = sNewState;
	}
	
	return bState;
}

function SetDisplay(tagID, show)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		oTag.style.display = (show ? 'block' : 'none');
	}
}

// NAME: ToggleVisibility
// PURPOSE: Toggles the visibility of an html
// element.
// RETURNS: true if visible, false if not
function ToggleVisibility(tagID)
{
	var bState = false;
	
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		var sNewState = '';
		var sCurState = oTag.style.visibility;
		
		if (sCurState == 'hidden')
		{
			sNewState = 'visible';
			bState = true;
		}
		else
		{
			sNewState = 'hidden';
		}
		
		oTag.style.visibility = sNewState;
	}
	
	return bState;
}

function MakeVisible(tagID)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		oTag.style.visibility = 'visible';
	}
}

function MakeHidden(tagID)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		oTag.style.visibility = 'hidden';
	}
}

function CheckContentsExists(tagID)
{
	var bState = false;
	
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		switch (oTag.tagName.toLowerCase())
		{
			case 'input':
			{
				bState = (oTag.value != '');
				break;
			}
			default:
			{
				bState = (oTag.innerText != '');
				break;
			}
		}
	}
	
	return bState;
}

function SetInnerText(tagID, txtVal)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		oTag.innerText = txtVal;
	}
}

function SetInnerHtml(tagID, htmlVal)
{
	var oTag = GetTagFromID(tagID);
	if (oTag != null)
	{
		oTag.innerHTML = htmlVal;
	}
}

// NAME: SwapImageState
// PURPOSE: To change the visible image of an IMG element
// to one of many predefined images. Utilizes custom
// imgstateXX attributes, where XX is a uniqe state
// number.
function SwapImageState(tagID, stateID)
{
	//alert("img tag: " + tagID);
	var oTag = GetTagFromID(tagID);
	//alert(oTag.tagName.toLowerCase());
	if (oTag != null && oTag.tagName.toLowerCase() == 'img')
	{
		//alert(oTag.tagName.toLowerCase());
		var vAttr;
		vAttr = oTag.getAttribute('imgstate' + stateID);
		if (vAttr != null)
		{
			oTag.src = vAttr;
		}
	}
}