function init_ga_event_handlers(){
	setFacebookEventHandlers();
	setTwitterEventHandlers();
}

function setFacebookEventHandlers() {
	if(FB.Event.subscribe) {
		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]);
		});
	}
}

function setTwitterEventHandlers() {
	if(twttr.events.bind) {
		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]);
			}
		});
	}
}

function extractParamFromUri(uri, paramName) {
	if (!uri) {
		return;
	}
	var uri = uri.split('#')[0];
	var parts = uri.split('?');
	if (parts.length == 1) {
		return;
	}
	var query = decodeURI(parts[1]);

	paramName += '=';
	var params = query.split('&');
	for (var i = 0, param; param = params[i]; ++i) {
		if (param.indexOf(paramName) === 0) {
			return unescape(param.split('=')[1]);
		}
	}
}
