
// Google Analytics Code
var _gaq = _gaq || [];
(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

// Track It All Analytics Adapter
// Provides an simplified abstraction for google analytics, and handles multiple account seamlessly.
TrackItAll = function (){
    var self = this;
    this.accounts = [],

    this.addAccount = function ( accNumber, type ) {
        //todo make accounts an array of objects, and store the type of account, google, webTrend etc
        var numAccounts = self.accounts.push( { AccountType:type, AccountNumber:accNumber } );
        met = 'acc' + numAccounts + '._setAccount';
        if ( type == 'google' ) {
            _gaq.push( [met, accNumber] );
        }
    },

    this.SocialTrack = function( network, socialAction, pageTitle, pageHref ) {
        if ( pageTitle == '' ) {
            pageTitle = jQuery('title').eq(0).text();
        }
        if ( pageHref == '' ) {
            pageHref = window.location.href;
        }
        for ( i in self.accounts ) {
            accNumber = Number(i) + 1;
            if ( self.accounts[i].AccountType == 'google' ) {
                met = 'acc' + accNumber + '._trackSocial';
                _gaq.push([met, network, socialAction, pageTitle, pageHref]);
            }
        }
    }

    this.trackPage = function() {
        for ( i in self.accounts ) {
            accNumber = Number(i) + 1;
            if ( self.accounts[i].AccountType == 'google' ) {
                met = 'acc' + accNumber + '._trackPageview';
                _gaq.push([ met ]);
            }
        }
    }

    this.trackEvent = function( category, action, label ) {
        for ( i in self.accounts ) {
            accNumber = Number(i) + 1;
            if ( self.accounts[i].AccountType == 'google' ) {
                met = 'acc' + accNumber + '._trackEvent';
                _gaq.push([ met, category, action, label ]);
            }
        }
    }

}

trackitall = new TrackItAll();
for ( i in analyticsAccounts ) {
    trackitall.addAccount(analyticsAccounts[i].accountNumber, analyticsAccounts[i].accountType);
}
trackitall.trackPage();

jQuery(document).ready(function (){

    // Follow:
    var $socialFollow = jQuery('#social-follow');

    jQuery('.facebook', $socialFollow ).click(function (){
        trackitall.SocialTrack('Facebook', 'Follow');
    })

    jQuery('.twitter', $socialFollow ).click(function (){
        trackitall.SocialTrack('Twitter', 'Follow');
    })

    jQuery('.orkut', $socialFollow ).click(function (){
        trackitall.SocialTrack('Orkut', 'Follow');
    })

    jQuery('.youtube', $socialFollow ).click(function (){
        trackitall.SocialTrack('YouTube', 'Follow');
    })

    //Share:
    var $socialShare = jQuery('#social-share');
    jQuery('.facebook', $socialShare ).click(function (){
        trackitall.SocialTrack('Facebook', 'Share');
    })

    jQuery('.twitter', $socialShare ).click(function (){
        trackitall.SocialTrack('Twitter', 'Share');
    })

    jQuery('.orkut', $socialShare ).click(function (){
        trackitall.SocialTrack('Orkut', 'Share');
    })

})

