$(document).ready(function ()
{
    if (typeof(yapyap) == 'undefined')
    {
        if (typeof(console) != 'undefined' && typeof(console.log) == 'function')
        {
            console.log("Warning: yapyap.profile.js was included without or before yapyap.js");
        }
        window.yapyap = {};
    }

    if (typeof(yapyap.profile) == 'undefined')
    {
        yapyap.profile =
        {
            request: function(profileUserId, callbackSuccess, callbackError, callbackBefore, callbackAfter)
            {
                return yapyap.ajax.request(
                    yapyap.config.urls.profile.request,
                    {
                        profile_user_id: profileUserId
                    },
                    callbackSuccess,
                    callbackError,
                    callbackBefore,
                    callbackAfter,
                    {
                        type: 'GET',
                        cache: true
                    }
                );
            },

            update: function(fieldsData, callbackSuccess, callbackError, callbackBefore, callbackAfter)
            {
                return yapyap.ajax.request(
                    yapyap.config.urls.profile.update,
                    {
                        fieldsData: $.toJSON(fieldsData)
                    },
                    callbackSuccess,
                    callbackError,
                    callbackBefore,
                    callbackAfter
                );
            },

            updateAvatar: function(avatarFsId, callbackSuccess, callbackError, callbackBefore, callbackAfter)
            {
                return yapyap.ajax.request(
                    yapyap.config.urls.profile.updateAvatar,
                    {
                        avatarFsId: avatarFsId
                    },
                    callbackSuccess,
                    callbackError,
                    callbackBefore,
                    callbackAfter
                );
            }
        };
    }
});