﻿// Async Google Analytics Implementation
var analyticsManager = {

    // e.g. analyticsManager.trackPage('<%= this.Page.Request.Path %>?view=GTAIV');
    // if optional opt_page param is passed it should start with a leading /
    //      e.g. '/games/gtaiv/index.html'
    trackPage: function(opt_page) {
        _gaq.push(['_trackPageview', opt_page]);
    },

    // e.g. analyticsManager.trackEvent(analyticsManager.category.buddy, analyticsManager.action.inviteFriend);
    trackEvent: function(category, action, opt_label, opt_int_value) {
        if (category && action) {
            return _gaq.push(['_trackEvent', category, action, opt_label, opt_int_value]);
        }
        return false;
    },

    // Supported categories
    category: {
        buddy: 'Buddy'
        , beaterator: 'Beaterator'
        , multiplayer: 'Multiplayer-Event'
        , profile: 'Profile'
        , error: 'Error'
        , rdr: 'RDR'
        , mp1: 'MaxPayne'
    },

    // Supported actions (each must be unique)
    action: {

        // Buddy Actions
        inviteFriend: 'Friend_Invite_Sent'
        , acceptFriend: 'Friend_Invite_Accepted'
        , declineFriend: 'Friend_Invite_Declined'
        , cancelFriend: 'Friend_Invite_Cancelled'
        , addFriend: 'Friend_Added'
        , removeFriend: 'Friend_Removed'
        , blockFriend: 'Friend_Blocked'
        , addFan: 'Fan_Become'
        , removeFan: 'Fan_Stop'

        // Beaterator Actions
        , rate: 'Song_Rate'
        , favOn: 'Song_Favourite_On'
        , favOff: 'Song_Favourite_Off'
        , downloadOn: 'Song_Download_On'
        , downloadOff: 'Song_Download_Off'
        , shareOn: 'Song_Share_On'
        , shareOff: 'Song_Share_Off'
        , listen: 'Song_Listen'
        , publish: 'Song_Publish'
        , removeSong: 'Song_Delete'
        , songDetails: 'Song_Details'
        , reportSong: 'Song_Abuse_Reported'
        , reportComment: 'Comment_Abuse_Reported'
        , postComment: 'Comment_Post'

        // Multiplayer-Event Actions
        , mpe_postMessage: 'Message_Posted'

        // Profile Actions
        , p_logout: 'Logout'
        , p_signup: 'SignUp'
        , p_signupNotEligible: 'SignUp_NotEligible'

        // RDR Actions
        , viewOutfit: 'View_Outfit'
        , viewMpRank: 'View_MP_Rank'
        
        // MP1 Actions
        , viewLevel: 'View_Level'
        , compareStats: 'Compare_Stats'
        , compareAchievements: 'Compare_Achievements'
    }
};
function trackLogout() {
    analyticsManager.trackEvent(analyticsManager.category.profile, analyticsManager.action.p_logout);
}
