function memberSignOff()
{
	var myAjax = new Ajax.Request( 
		"/Resources/AjaxRequestHandlers/Member/SignOff.asp", 
		{
			method: 'post', 
			onComplete: complete
		}
	);
	
	function complete( response )
	{
		alert( response.responseText );
		window.location = "/"
	}
}

function validateForm( form )
{
	if( form )
	{
		var requiredFields = form[ "requiredRules" ];
		if( requiredFields && webFormControl )
		{
			return webFormControl( form );
		}
	}
	return;
}

// Login Object Functions

function resetLogin()
{
	Element.show( "LoginFormContainer" );
	Element.hide( "LoginFormLoadingContainer" );
	Element.hide( "LoginErrorContainer" );
}

function validateMemberLogin( form )
{
	if( form )
	{
		var requiredFields = form[ "requiredRules" ];
		if( requiredFields && webFormControl )
		{
			var isValid = webFormControl( form );
			
			if( !isValid ) return isValid;
			
			try
			{
				var loginFormContainer = $( "LoginFormContainer" );
				var loginFormLoadingContainer = $( "LoginFormLoadingContainer" );
				var LoginErrorContainer = $( "LoginErrorContainer" );
				
				Element.hide( loginFormContainer );
				Element.show( loginFormLoadingContainer );
				
				// Attemp user login
				var myAjax = new Ajax.Request(
					"/Resources/AjaxRequestHandlers/Member/Login.asp", 
					{
						method: 'get', 
						parameters: 'Username=' + form[ "Username" ].value + "&Password=" + form[ "Password" ].value, 
						onComplete: loginResponse
					}
				);
				
				return false;
			}
			catch( err )
			{
				alert( err );
				return false;
			}
		}
	}
}

function loginResponse( response )
{
	var responseCode = response.responseText;
	var loginFormContainer = $( "LoginFormContainer" );
	var loginFormLoadingContainer = $( "LoginFormLoadingContainer" );
	var loginErrorContainer = $( "LoginErrorContainer" );
	
	if( responseCode == '2' )
	{
		window.location.reload();
	}
	else
	{
		$( "LoginErrorSpan" ).innerHTML = ( responseCode == '0' ? "Required arguments where not specified" : "Incorrect username and/or password. Please try again" )
		Element.hide( loginFormLoadingContainer );
		Element.show( loginErrorContainer );
	}
}

// ------------------------------------------------------------------------------------------------
// FORM Handlers
//

function memberFormInit()
{
	var passwordField = $( "Password" );
	if( passwordField )
		Event.observe( passwordField, "keydown", changePassword, false );
}
Event.observe( window, "load", memberFormInit, false );

var change_initiated = false;

function changePassword()
{
	if( !change_initiated )
	{
		change_initiated = true;
		var passwordFieldValue = $F( "Password" );
		var confirmPasswordRow = $( "ConfirmPasswordRow" );
	
		Element.show( confirmPasswordRow );
	}
}

function validatePasswords()
{
	var passwordField = $F( "Password" );
	var confirmPasswordField = $F( "ConfirmPassword" );
	var confirmPasswordRow = $( "ConfirmPasswordRow" );
	
	if( !change_initiated )
	{
		return true;
	}
	
	if( passwordField.length == 0 || confirmPasswordField.length == 0 )
	{
		alert( "You must enter your password into both password and confirm password fields" );
		return false;
	}
	
	if( passwordField == confirmPasswordField )
		return true;
	else
	{
		alert( "Your passwords do not match" );
		return false;
	}
}

// ------------------------------------------------------------------------------------------------
// Send Password Handlers
//

function sendPassword()
{
	var username = $( "SendUsername" );
	var sendValue = $( "SendValue" ).value;
	var errorMessages = "";
	var queryStringParameters = "";
	var sendPasswordForm = $( "SendPasswordForm" );
	var sendPasswordComplete = $( "SendPasswordComplete" );
	var sendToEmailAddressSpan = $( "SendToEmailAddressSpan" );
	var sendPasswordButton = $( "SendPasswordButton" );
	
	if( sendValue.length == 0 )
	{
		errorMessages = "You must enter either your username.\n";
	}
	
	if( errorMessages && errorMessages.length > 0 )
	{
		alert( "Sorry, somethings wrong.\n\n" + errorMessages );
		return false;
	}
	
	sendPasswordButton.disabled = true;

	var myAjax = new Ajax.Request( 
		"/Resources/AjaxRequestHandlers/Member/SendPassword.asp", 
		{
			method: 'post',
			parameters: "Username=" + sendValue,
			onComplete: responseHandler
		}
	);
	
	function responseHandler( response )
	{
		sendPasswordButton.disabled = false;
		
		var responseMessage = response.responseText;
		if( responseMessage.indexOf( "@" ) == -1 )
		{
			alert( responseMessage.replace( "nn", "\n" ) );
			return;
		}
		
		sendToEmailAddressSpan.innerHTML = response.responseText;
		Element.hide( sendPasswordForm );
		Element.show( sendPasswordComplete );
	}
}
