﻿
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;
    }
    var query = decodeURI(parts[1]);

    // Find 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]);
        }
    }
}


// Twitter
window.twttr = (function (d, s, id) {
    var t, js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return; js = d.createElement(s); js.id = id;
    js.src = "//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
    return window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } });
} (document, "script", "twitter-wjs"));


// Twitter Ready
twttr.ready(function (twttr) {

    // bind for GA 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]);
        }
    });

});

// Facebook Init and GA Tracking
window.fbAsyncInit = function () {

    FB.init({
        appId: '109499082414832',
        status: true,
        cookie: true,
        xfbml: true
    });

    // Facebook bind for tracking in GA
    FB.Event.subscribe('edge.create', function (targetUrl) {
        _gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
    });

    FB.Event.subscribe('message.send', function (targetUrl) {
        _gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);
    });

    FB.Event.subscribe('edge.remove', function (targetUrl) {
        _gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
    });

};

// Facebook
(function (d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=109499082414832";
    fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));


// Google +
(function () {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();


function linkedinShare() {
    _gaq.push(['_trackSocial', 'linkedin', 'share', document.location.href]);
}
