function check_nickname() {
    // focus on nickname field
    $('#nickname').focus();
    // find field nickname and check if the entered nickname is available via ajax
    $('#nickname').blur(function() {
        // now call ajax
        if ($(this).val().length > 0)
        {
            $.getJSON('default.html?ajax=1&val=' + $(this).val(), function (data) {
                // update nickname class
                $('#nickname').attr('class', data['class']);
                if (data['class'] == 'taken')
                {
                    if ($('label[@for=nickname] .error').length == 0)
                    {
                        // show error note
                        $('#nickname').after('<span class="error">The selected <strong>nickname</strong> is already taken. Please choose another.</span>');
                    }
                    else
                    {
                        // update error note
                        $('label[@for=nickname] .error').attr('innerHTML', 'The selected <strong>nickname</strong> is already taken. Please choose another.');
                    }
                }
                else if (data['class'] == 'error') {
                    if ($('label[@for=nickname] .error').length == 0)
                    {
                        // show error note
                        $('#nickname').after('<span class="error">Please enter <strong>only</strong> letters A-Z and numbers 0-9.</span>');
                    }
                    else
                    {
                        // update error note
                        $('label[@for=nickname] .error').attr('innerHTML', 'Please enter <strong>only</strong> letters A-Z and numbers 0-9.');
                    }
                }
                else
                {
                    // make sure to remove the error note
                    $('label[@for=nickname] .error').remove();
                }
            });
        }
        else
        {
            // show error!
            if ($('label[@for=nickname] .error').length == 0)
            {
                $('#nickname').after('<span class="error">Please enter your desired nickname.</span>');
            }
            else
            {
                // update error note
                $('label[@for=nickname] .error').attr('innerHTML', 'Please enter your desired nickname.');
            }
        }
    });
    
    // disable further clicks of the submit button
    $('#main_content form').submit(function() {
        $('button[@type=submit]', this).attr('disabled', 'disabled');
    });
}

$(document).ready(function(){
    check_nickname();
});
