function _Login ()
{	
	var intLoginIDLength = 6;
	var intPasswordLength = 4;
	var objGlobalForm = document.__GlobalForm;
	
	// obtain login id
	var objLoginID = objGlobalForm._LoginID;
	var strLoginID = _Trim (objLoginID.value);
	
	// obtain password
	var objPassword = objGlobalForm._Password;
	var strPassword = objPassword.value;
	
	if (strLoginID == "") {
		SoundPlay (objFlashSound, FLASH_INSTANCE_INVALID_LOGIN_ID);
		alert ("Login ID must not be empty.");
		objLoginID.focus ();
		objLoginID.select ();
		return false;
	}
	
	if (!_IsString(strLoginID)) {
		SoundPlay (objFlashSound, FLASH_INSTANCE_INVALID_LOGIN_ID);
		alert ("Login ID must be a string.");
		objLoginID.focus ();
		objLoginID.select ();
		return false;
	}
	
	if (strLoginID.length < intLoginIDLength) {
		SoundPlay (objFlashSound, FLASH_INSTANCE_INVALID_LOGIN_ID);
		alert ("Login ID is too short (Minimum length is " + intLoginIDLength + ".)");
		objLoginID.focus ();
		objLoginID.select ();
		return false;
	}
	
	if (strPassword == "") {
		SoundPlay (objFlashSound, FLASH_INSTANCE_INVALID_PASSWORD);
		alert ("Password must not be empty.");
		objPassword.focus ();
		objPassword.select ();
		return false;
	}
	
	if (!_IsString(strPassword)) {
		SoundPlay (objFlashSound, FLASH_INSTANCE_INVALID_PASSWORD);
		alert ("Password must be a string.");
		objPassword.focus ();
		objPassword.select ();
		return false;
	}
	
	if (strPassword.length < intPasswordLength) {
		SoundPlay (objFlashSound, FLASH_INSTANCE_INVALID_PASSWORD);
		alert ("Password is too short (Minimum length is " + intPasswordLength + ".)");
		objPassword.focus ();
		objPassword.select ();
		return false;
	}
	
	_PostGlobalForm ("/seafarer/login/login.asp");
	return false;
}

function _Register ()
{
	_PostGlobalForm ('/seafarer/registration/registration.asp');
}

function _FindRedirectUrlElement (objForm)
{
	if (objForm)
	{
		if (objForm.RedirectUrl)
			return objForm.RedirectUrl
		else
			return null;
	}
	else
	{
		return null;
	}
}

function _PostGlobalForm (strActionLink)
{
	// Prepare post back array
	var arrPostBackStrings = new Array ();
	
	// Loop thru all the forms
	for (var i=0; i<document.forms.length; i++)
	{
		var objEachForm = document.forms [i];
		if (objEachForm.name != "__GlobalForm")
		{
			
			// Loop thru all the form elements
			for (var j=0; j<objEachForm.elements.length; j++)
			{
				var objEachElement = objEachForm.elements [j];
				
				switch (objEachElement.type)
				{
					case "text":
					case "hidden":
					case "textarea":
					case "password":
						if (objEachElement.value != "") arrPostBackStrings.push (objEachElement.name + "=" + objEachElement.value)
						break;
					case "select-one":
						if (objEachElement.options [objEachElement.selectedIndex].value != "") arrPostBackStrings.push (objEachElement.name + "=" + objEachElement.options [objEachElement.selectedIndex].value);
						break;
				}
			}
		}
	}
	
	// Add redirect url into post back string
	if (!_FindRedirectUrlElement (document.forms ['RegistrationForm']))
	{
		arrPostBackStrings.push ("RedirectUrl=" + document.URL);
	}
	
	var objGlobalForm = document.forms ["__GlobalForm"];
	var objPostBackData = objGlobalForm.__POST_BACK_DATA;
	objPostBackData.value = arrPostBackStrings.join (":::");
	
	objGlobalForm.action = strActionLink;
	objGlobalForm.submit ();
}
