$j(document).ready(function() {
    $j('input.inputTxt').focus(function() {
        var id = $j(this).attr('id');
        if ($j(this).val().length == 0) {
            setToInfo(id);
        } 

        $j('#note-' + id).css('visibility', 'visible');
        $j('#note-gender, #note-birthday').css('visibility', 'hidden');
    });

    $j('input.inputTxt').blur(function() {
        if ($j(this).val().length == 0) {
            $j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
        }
    });

    $j('input.nocheck, #gender, #country').blur(function() {
        if ($j(this).val().length > 0) {
            $j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
        } 
    });

    $j('#verify').blur(function() {
        if ($j(this).val() != $j('#password').val()) {
            setToError($j(this).attr('id'), '<font color="red">Passwords do not match</font>');
        } else {
            $j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
        }
    });

    $j('#gender, #country').focus(function() {
        setToInfo($j(this).attr('id'));
    });

    $j('#birthday-mm, #birthday-dd, #birthday-yyy').focus(function() {
        setToInfo('birthday');
    });

    $j('#username').validate('usernameAvailable', function(err) {
        setToError('username', err.error);
    }, function(json) {
        setToSuccess('username', 
                     'Yay! The username ' + json.username + ' is available');
    });

    $j('#email').validate('emailAvailable', function(err) {
        setToError('email', err.error);
    }, function(json) {
        setToSuccess('email',
                     'Your email address appears valid. This is a good thing.');
    });

    $j('#emailverify').blur(function() {
        if ($j(this).val() != $j('#email').val()) {
            setToError($j(this).attr('id'), 'Email addresses do not match');
        } else {
            $j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
        }
    });

    $j('#password').validate('password', function(err) {
        setToError('password', err.error);
    }, function(json) {
        setToSuccess('password',
                     'Your password looks good. Remember to remember it.');
    });

    $j('#invite-skip').click(function() {
        window.location = '/register/done';
    });
});

function setToInfo(id) {
    $j('#note-' + id).removeClass('form-note form-error form-success');
    $j('#note-' + id).addClass('form-note');
    $j('#note-' + id).text(info[id]);
    $j('#note-' + id).css('visibility', 'visible');
}

function setToError(id, error) {
    $j('#note-' + id).removeClass('form-note form-error form-success');
    $j('#note-' + id).addClass('form-error');
    $j('#note-' + id).html(error);
}

function setToSuccess(id, success) {
    $j('#note-' + id).removeClass('form-note form-error form-success');
    $j('#note-' + id).addClass('form-success');
    $j('#note-' + id).text(success);
}

