//Facebook Tracking
window.fbAsyncInit = function() {
            FB.init({xfbml: true});
            FB.Event.subscribe('edge.create', function(targetUrl){
                _gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
            });
            FB.Event.subscribe('edge.remove', function(targetUrl){
                _gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
            });
            FB.Event.subscribe('message.send', function(targetUrl) {
              _gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);
            });
            FB.Event.subscribe('comment.create', function(obj) {
                //note that with a comment we get an object back
              _gaq.push(['_trackSocial', 'facebook', 'comment', obj.href]);
            });
            FB.Event.subscribe('comment.remove', function(obj) {
              _gaq.push(['_trackSocial', 'facebook', 'remove comment', obj.href]);
            });
            
          };

//Twitter Tracking

twttr.events.bind('tweet', function(event) {
                        if (event) {
                            var targetUrl;
                            if (event.target && event.target.nodeName == 'IFRAME') {
                                targetUrl = extractParamFromUri(event.target.src, 'url');
                                _gaq.push(['_trackSocial', 'twitter', 'tweet', targetUrl]); 
                            }
                          }
                    });
                    twttr.events.bind('follow', function(event) {
                        if (event) {
                            _gaq.push(['_trackSocial', 'twitter', 'follow']);
                        }
                    });
                    
                    
                    function extractParamFromUri(uri, paramName){
                        if(!uri){
                            return;
                        }
                        var uri = uri.split('#')[0]; //remove anchor
                        var parts = uri.split('?'); //check for query params
                        if(parts.length == 1){
                            return; //no params
                        }
                        
                        var query = decodeURI(parts[1]);
                        
                        //find the url param
                        paramName += '=';
                        var params = query.split('&');
                        for(var i = 0, param; param = params[i]; ++i){
                            if(param.indexOf(paramName) === 0){
                                return unescape(param.split('=')[1]);
                            }
                        }
                    }

