function checkRedirect(authReasonCode)
{
	if (location.search.indexOf("miniauth") > -1)
	{
		var redirectToValue = getQueryStringValue("RedirectTo");

		if (redirectToValue.indexOf('?') == -1)
		{
			redirectToValue += "?";
			
			if (redirectToValue.indexOf(".nsf") > -1)
			{
				redirectToValue += "OpenDatabase&";
			}
		}
		else
		{
			redirectToValue += "&";
		}

		document.location = redirectToValue + "authReasonCode=" + authReasonCode;
	}
}

function getRedirect()
{
	var redir = document.referrer;
	
	if (typeof redirectOverride != "undefined")
	{
		redir = redirectOverride;
	}
	else if (document.cookie.indexOf("STAdminRedirect") == -1)
	{
		var redirectToValue = getQueryStringValue("RedirectTo");
		
		if (redirectToValue == "") 
		{
			redir = location.href;
			
			if ((redir.indexOf(".nsf") < 0) && (typeof homeDatabaseName != "undefined"))
			{
				redir = redir + homeDatabaseName;
			}
		}
		else 
		{
			redir = redirectToValue;
		}
	}
	else
	{
		var redir = '/servlet/auth/admin';
	}
	
	return redir;
}

function getQueryStringValue(name)
{
	var value = "";
	
	var startIndex = location.search.indexOf(name + "=");
	
	if (startIndex > -1) 
	{
		value = location.search.substring(startIndex + name.length + 1);
	
		var nextValueIndex = value.indexOf("&");
		
		if (nextValueIndex == 0)
		{
			value = "";
		}
		else if (nextValueIndex > 0)
		{
			value = value.substring(0, nextValueIndex);
		}
	}
	
	return value;
}

function createMiniLoginError()
{
	var authReasonCode = getQueryStringValue("authReasonCode");

	var errorText = "";
	
	if (authReasonCode == "1") 
	{
		errorText = js_keyNotAuthorizedForOperation;
	}
	else if (authReasonCode == "2") 
	{
		errorText = js_keyInvalidUsernamePassword;
	}
	else if (authReasonCode == "3") 
	{
		errorText = js_keySessionExpired;
	}

	var htmlError = "";
	
	if (errorText != "")
	{
		htmlError += '    <TR>';
		htmlError += '    <TD>';
		htmlError += '      <table><tr>';
		htmlError += '			<TD align="' + bidiLeft + '" valign="top" style="width:99%;padding-bottom:5px;padding-' + bidiLeft + ':2px;"><img src="' + pathRelRoot + 'sametime/images/WC_X_Mark.GIF"/><span style="padding-left:5px;"/><FONT class="TableText">' + errorText + '</FONT></TD>';
		htmlError += '      </tr></table>';
		htmlError += '    </TD>';
		htmlError += '    </TR>';
	}
	
	return htmlError;
}

function checkKey(event)
{
	var keyCode = -1;
	
	if (event != null)
	{
		if (typeof event.which != "undefined")
		{
			keyCode = event.which;
		}
		else if (typeof event.keyCode != "undefined")
		{
			keyCode = event.keyCode;
		}
	}
	else if (typeof window.event != "undefined")
	{
		keyCode = window.event.keyCode;
	}
	
	if (keyCode == 13)
	{
		submitMiniLogin();
	}
}

function submitMiniLogin()
{
	document.getElementsByName('STLogonForm')[0].submit();
}

function writeMiniLoginForm()
{
	var loginFormHtml = '';

	if (authUsername == "Anonymous")
	{
		loginFormHtml += '<FORM METHOD=post ACTION="' + pathRelRoot + 'names.nsf?Login' + '&miniauth&RedirectTo=' + encodeURI(getRedirect()) + '" NAME="STLogonForm">';
	
		loginFormHtml += '<TABLE border="0" cellspacing="0" cellpadding="0">';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD align="' + bidiLeft + '" valign="top" style="padding-bottom:5px;"><FONT class="TableHeader">' + js_keyLogOnToSametime + '</FONT></TD>';
		loginFormHtml += '    </TR>';

		loginFormHtml += createMiniLoginError();
		
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD align="' + bidiLeft + '" valign="top"><FONT class="TableText"><LABEL for="username">' + js_keyEnterUserName + '</LABEL>:</FONT></TD>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD valign="top" align="' + bidiLeft + '"><FONT class="TableText"><input type="text" maxlength=256 style="width:100%" id="username" name="Username"/></font></TD>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD align="' + bidiLeft + '" valign="top"><FONT class="TableText"><LABEL for="passwd">' + js_keyEnterPassword + '</LABEL>:</FONT></TD>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD valign="top" align="' + bidiLeft + '" style="padding-bottom:5px;"><FONT class="TableText"><input onkeypress="checkKey(event)" type="password" maxlength=256 style="width:100%" id="passwd" name="Password"/></font></td>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD valign="top" align="' + bidiLeft + '"><font class="TableText"><input type="button" value="' + js_keyLogOn + '" onclick="submitMiniLogin(this);"></font></td>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '</TABLE>';
	}
	else
	{
		loginFormHtml += '<FORM METHOD=post ACTION="' + pathRelRoot + 'names.nsf?Logout' + '&miniauth&RedirectTo=' + encodeURI(getRedirect()) + '" NAME="STLogonForm">';
		
		loginFormHtml += '<TABLE border="0">';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD align="' + bidiLeft + '" valign="top" style="padding-bottom:5px;"><FONT class="TableText">' + js_keyLoggedOnAs + ' <nobr>' + authUsername + '</nobr></FONT></TD>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD valign="top" align="' + bidiLeft + '"><font class="TableText"><input type="button" value="' + js_keyLogOut + '" onclick="submitMiniLogin(this);"></font></td>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '</TABLE>';	
	}  

	loginFormHtml += '<input type="hidden" name="RedirectTo" value="' + getRedirect() + '"/>';

	loginFormHtml += '</FORM>';
	loginFormHtml += '';

	document.write(loginFormHtml);
}

function writeBasicAuthenticationForm()
{
	var loginFormHtml = '';

	if (authUsername == "Anonymous")
	{
		var redirectUrl = getRedirect();
		
		if (redirectUrl.indexOf(".nsf") > -1)
		{
			if (redirectUrl.indexOf("?") > -1)
			{
				redirectUrl += "&Login";
			}
			else
			{
				redirectUrl += "?OpenDatabase&Login";				
			}
		}
		
		loginFormHtml += '<TABLE border="0" cellspacing="0" cellpadding="0">';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD align="' + bidiLeft + '" valign="top" style="padding-bottom:5px;"><FONT class="TableHeader"><a class="bluelink" href="' + redirectUrl + '">' + js_keyLogOnToSametime + '</a></FONT></TD>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '</TABLE>';
	}
	else
	{
		loginFormHtml += '<TABLE border="0" cellspacing="0" cellpadding="0">';
		loginFormHtml += '    <TR>';
		loginFormHtml += '      <TD align="' + bidiLeft + '" valign="top" style="padding-bottom:5px;"><FONT class="TableText">' + js_keyLoggedOnAs + ' <nobr>' + authUsername + '</nobr></FONT></TD>';
		loginFormHtml += '    </TR>';
		loginFormHtml += '</TABLE>';	
	}  

	loginFormHtml += '';

	document.write(loginFormHtml);
}

if (typeof authUsername != "undefined")
{
	if (typeof dominoSessionAuthentication != "undefined")
	{
		if (dominoSessionAuthentication == "0")
		{
			writeBasicAuthenticationForm();
		}
		else
		{
			writeMiniLoginForm();
		}
	}
	else
	{
		writeMiniLoginForm();
	}
}


