
function submit_login_form (myForm)
{
    if ($(myForm.username).getValue().blank()) {
        alert('Please enter a username.');
        return;
    }

    if ($(myForm.password).getValue().blank()) {
        alert('Please enter a password.');
        return;
    }

    // Display the mask message and leave it up, since we are just
    // going to wait for the new page to load:
    //
    Ext.getBody().mask('Logging in, please wait...');

    myForm.submit();
}

document.observe('dom:loaded', function (e) {

    // Login with the enter key
    if ($('user_login_form')) {
        $('user_login_form').observe('keypress', function (event) {
                if (event.keyCode == Event.KEY_RETURN) {
                    submit_login_form($('user_login_form'));
                }
            }
        );
    }

    if ($('login_button_div')) {
        $('login_button_div').observe('click', function () {
                submit_login_form($('user_login_form'));
            }
        );
    }
});

//----------------------------------------------------------

document.observe('dom:loaded', function (e) {

    // Open the User Prefs popup and close the login popup
    if ($('header_userpref_link')) {

        $('header_userpref_link').observe('click', function () {
            if ($('prefoptions')) {
                if ($('pref_content')) {

                    // Get just the path part of the current request,
                    // in case we have to redirect if the language changes:
                    var len = ALBase.make_uri('/').length;
                    var currentPath = currentRequestURL.substr(len);

                    var url = ALBase.make_uri('/userprefs/'
                                            + AtomicUserId
                                            + '/edit')
                                            + '?current_request_path='
                                            + escape(currentPath);

                    new Ajax.Updater('pref_content', url,
                                     { method: 'post', evalScripts: 'true' }
                    );
                }
            }
            $(this).addClassName('userpref_link_bg').removeClassName('dotted');
            userheaderHideLoginOptions();
        });
    }

    // Login with the enter key
    if ($('user_login_form')) {
        $('user_login_form').observe('keypress', function (event) {
                if (event.keyCode == Event.KEY_RETURN) {
                    submit_login_form($('user_login_form'));
                }
            }
        );
    }

    if ($('login_button_div')) {
        $('login_button_div').observe('click', function () {
                submit_login_form($('user_login_form'));
            }
        );
    }
});

//----------------------------------------------------------

function userprefsSubmit (my_form)
{
    makeAjaxRequest(
        {
            url: '/userprefs/' + AtomicUserId + '/ajaxsave',
            parameters: $(my_form).serialize(true),
            onSuccess: function (json) {
                if (json.new_url) {
                    document.location.href = json.new_url;
                }
                else {
                    userheaderHidePrefOptions();
                }
            }
        }
    );
}

//----------------------------------------------------------

function userprefsChangePasswordSubmit (form)
{
    var pass1 = $(form.pass1).getValue().strip();
    var pass2 = $(form.pass2).getValue().strip();
    if (pass1.length == 0 || pass2.length == 0)
    {
        alert('Please enter your new password in both fields');
        return false;
    }
    if (pass1 != pass2) {
        alert('New password entries do not match');
        return false;
    }

    makeAjaxRequest(
        {
            url: '/user/' + AtomicUserId + '/ajaxpasswordchange',
            parameters: $(form).serialize(true),
            onSuccess: function (json) {
                al_alert('Your password has been changed.');
            },
            failureMessage: 'The attempt to change your password failed'
        }
    );
}


