var ForgotPasswordAgent = Class.create();
ForgotPasswordAgent.prototype = {
    initialize: function() { },

    requestPassword: function( url, email, successCallback ) {
        new Ajax.Request( url, {
            method: 'post',
            parameters: {
                'email' : email
            },
            onSuccess: successCallback
        });
    },

    forgotPasswordHandler : function( forgotPasswordUrl) {
        var resultsLog = $( 'forgotPasswordResults' );
        var email = $('forgotPasswordFormEmail').value;
        if ( StringUtils.isBlank( email )) {
            resultsLog.update( 'Please enter an email to begin the password recovery process.' );
            Effect.Appear( resultsLog );
            new PeriodicalExecuter( function( pe ) {
                Effect.Fade( resultsLog );
                pe.stop();
            }.bind( this ), 5);
        }
        else {
            $( 'forgotPasswordLoading' ).show();
            new ForgotPasswordAgent().requestPassword( forgotPasswordUrl , email , function( transport ) {
                var json = transport.responseText.evalJSON( true );
                if ( json != null ) {
                    var result = json.result;
                    if ( 'success' == result ) {
                        var successMessage = new Element( 'div', {
                            'style' : 'color: #05BD00'
                        }).update( 'Your password has been recovered.  You should receive an email shortly.' );
                        resultsLog.appendChild( successMessage );
                    }
                    else {
                        resultsLog.update( 'There was a problem retrieving your password.  Please verify your email and try again.' );
                    }
                    Effect.Appear( resultsLog );
                    new PeriodicalExecuter( function( pe ) {
                        pe.stop();
                        Effect.Fade( resultsLog );
                    }.bind( this ), 5);
                }
                $( 'forgotPasswordLoading' ).hide();
            }.bind( this ));
        }
    }
}

Event.observe( window, 'load', function() {
    var forgotPasswordSubmitButton = $( 'forgot-password-submit' );
    if ( forgotPasswordSubmitButton ) {
        Event.observe( 'forgot-password-submit', 'click', ForgotPasswordAgent.forgotPasswordHandler );
    }
});

