var z_blnDebug	= true;
var z_lstErrors	= new Array();





function GetFunctionName( _objFunction )
{
	strFunction = _objFunction.toString();
	lstKeywords = strFunction.split( " " );
	lstName		= lstKeywords[1].split( "(" );
	
	return( lstName[0] );
}





function Error( _strMessage, _blnPrefix, _strPrefix )
{
	if (_blnPrefix || _blnPrefix == null)
	{
		if (_strPrefix == "" || _strPrefix == null)
			_strMessage = GetFunctionName( Error.caller ) + "() :  " + _strMessage;
		
		else
			_strMessage = _strPrefix + "() :  " + _strMessage;
	}
	
	if (z_blnDebug)
	{
		alert( _strMessage );
		
		z_lstErrors[z_lstErrors.length] = _strMessage;
		
		var cookErrors = new CCookie( "cookErrors" );
		cookErrors.SetValue( cookErrors.GetValue() + _strMessage + "\n" );
	}
	
	return( false );
}





function GetLayer( strID, objParent )
{
	var objLayer;
	
	if (strID == "")
		return( Error( "Missing layer ID" ) );
	
	// Microsoft Internet Explorer //
	if (document.all)
		var objLayer = document.all[strID];
	
	// Netscape Navigator 4 //
	else if (document.layers)
		var objLayer = document.layers[strID];
	
	// Netscape Navigator 6 //
	else if (document.getElementById)
		var objLayer = document.getElementById( strID );
	
	// Not supported //
	else
		return( Error( "Layer control unsupported by \"" + navigator.appName + "\"" ) );
	
	
	if (objLayer)
		return( objLayer );
		
	else
		return( Error( "Layer \"" + strID + "\" does not exist", true, GetFunctionName( GetLayer.caller ) ) );
}





function GetLink( _strID )
{
	for (indLink=0; indLink<document.links.length; indLink++)
	{
		alert(document.anchors[indLink].onmouseover)
	}
}





function Element( _frmTarget, _strPrefix, _intIndex )
{
	intCounter = 0;
	
	for (indElement=0; indElement<_frmTarget.elements.length; indElement++)
	{
		if (_frmTarget.elements[indElement].name.substr( 0, _strPrefix.length ) == _strPrefix)
		{
			if (intCounter == _intIndex)
				return( _frmTarget.elements[indElement] );
			
			intCounter++;
		}
	}
	
	return( null );
}





function ValidateSelection( _frmTarget, _strPrefix, _intMinimum, _intMaximum )
{
	var blnValid	= false;
	var intCheck	= 0;
	
	if (_intMinimum == null)
		_intMinimum = 1;
	
	for (indElement=0; indElement<_frmTarget.elements.length; indElement++)
	{
		if ((_frmTarget.elements[indElement].name.substr( 0, _strPrefix.length ) == _strPrefix) && _frmTarget.elements[indElement].checked)
		{
			intCheck++;
			if (intCheck >= _intMinimum )
			{
				if (_intMaximum == null)
				{
					blnValid = true;
					break;
				}
				else
				{
					if (intCheck > _intMaximum)
					{
						blnValid = false;
						break;
					}
				}
			}
		}
	}
	
	return( blnValid );
}





function SelectOne( _frmTarget, _strSelector, _strPrefix )
{
	var blnChecked = true;
	
	for (indElement=0; indElement<_frmTarget.elements.length; indElement++)
	{
		if (_frmTarget.elements[indElement].name.substr( 0, _strPrefix.length ) == _strPrefix)
		{
			if (!_frmTarget.elements[indElement].checked)
			{
				blnChecked = false;
				break;
			}
		}
	}
	
	eval( "_frmTarget.elements." + _strSelector + ".checked = " + blnChecked );
	
	return( true );
}





function SelectAll( frmTarget, strSelector, strPrefix )
{
	var chkSelector = eval( "frmTarget.elements." + strSelector );
	
	for (indElement=0; indElement<frmTarget.elements.length; indElement++)
	{
		if (frmTarget.elements[indElement].name.substr( 0, strPrefix.length ) == strPrefix)
		{
			frmTarget.elements[indElement].checked = chkSelector.checked;
		}
	}
	
	return( true );
}





function Stylesheet( _strPath, _strFile, _strNetscape )
{
	if (document.layers && _strNetscape != null && _strNetscape != "")
		_strFile = _strNetscape;
	
	document.write( "<link href=\"" + _strPath + (_strPath.substr( _strPath.length - 1, 1 ) != "/" ? "/" : "") + _strFile + ".css\" rel=\"stylesheet\" type=\"text/css\">" );
}