$(function() {
    $('.dropdown.signedin').on('shown.bs.dropdown', function() {
        var $this = $(this);
        var loaded = $this.attr('data-profile-loaded');

        if (!_.isUndefined(loaded) && loaded) {
            return
        }

        $.ajax({
            url: $this.attr('data-load-url'),
            type: 'get',
            global: false,
            success: function(data) {
                $this.attr('data-profile-loaded', true);
                $('#profile-puzzles-created').text(data.profile.stats.puzzles_created);
                $('#profile-puzzleseries-created').text(data.profile.stats.puzzle_series_created);
                $('#profile-savedgames').text(data.profile.stats.saved_games);
                $('#profile-favoriteauthors').text(data.profile.stats.favorite_authors);
                $('#profile-followers').text(data.profile.stats.followers);
                $('#profile-medals').text(data.profile.stats.medals);
                $('#nav-player-profile-progress-player .game-progress-level').text(data.profile.progress.player.name);
                $('#nav-player-profile-progress-player .game-progress-step').text(data.profile.progress.player.step);
                $('#nav-player-profile-progress-player .account-profile-rank span').text(data.ranks.player);
                $('#nav-player-profile-progress-player .account-profile-points span').text(data.profile.progress.player.points);
                $('#nav-player-profile-progress-author .game-progress-level').text(data.profile.progress.author.name);
                $('#nav-player-profile-progress-author .game-progress-step').text(data.profile.progress.author.step);
                $('#nav-player-profile-progress-author .account-profile-rank span').text(data.ranks.author);
                $('#nav-player-profile-progress-author .account-profile-points span').text(data.profile.progress.author.points);
            }
        });
    });
});