var sharingCacheTimeout = 1000
var USER;
var onUserStateChange;
var janrain;

// Initialize Janrain plugin
(function() {
        if (typeof window.janrain !== 'object') window.janrain = {};
        if (typeof window.janrain.settings !== 'object') window.janrain.settings = {};
        
        /* _______________ can edit below this line _______________ */
        var protocol = location.protocol;
        var host = location.host;
        var domain_url = protocol +"//"+host

        janrain.settings.tokenUrl = domain_url + '/social/';
        janrain.settings.tokenAction = 'event';
        janrain.settings.type = 'modal';
        janrain.settings.appId = 'lnompcgmoofohhbpmned';
        janrain.settings.appUrl = 'https://washingtontimes.rpxnow.com';
        janrain.settings.providers = ["twitter","googleplus"];
        janrain.settings.providersPerPage = '6';
        //janrain.settings.popup = false;  // Need to add this only for mobile.
        janrain.settings.format = 'two column';
        janrain.settings.actionText = 'Sign in using your account with';
        janrain.settings.showAttribution = true;
        janrain.settings.fontColor = '#333333';
        janrain.settings.fontFamily = 'arial';
        janrain.settings.backgroundColor = '#FFFFFF';
        janrain.settings.width = '392';
        janrain.settings.modalBorderColor = '#000000';
        janrain.settings.modalBorderRadius = '10';
        janrain.settings.modalBorderWidth = '10';
        janrain.settings.modalBorderOpacity = '0.5';
        janrain.settings.buttonBorderColor = '#CCCCCC';
        janrain.settings.buttonBorderRadius = '5';
        janrain.settings.buttonBackgroundStyle = 'gradient';
        janrain.settings.language = '';
        janrain.settings.linkClass = 'janrainEngage';

        /* _______________ can edit above this line _______________ */

        function isReady() { janrain.ready = true; };
        if (document.addEventListener) {
          document.addEventListener("DOMContentLoaded", isReady, false);
        } else {
          window.attachEvent('onload', isReady);
        }

        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.id = 'janrainAuthWidget';

        if (document.location.protocol === 'https:') {
          e.src = 'https://rpxnow.com/js/lib/washingtontimes/engage.js';
        } else {
          e.src = 'http://widget-cdn.rpxnow.com/js/lib/washingtontimes/engage.js';
        }

        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(e, s);
})();

// I think this needs window load, not doc ready because of janrains mucking. May be easier ways to do this.
$(window).load(function() {
    // Check for dependency (so that page doesn't break where social login isn't needed/used.
    if(!janrain) {
        if(console && console.error) {
            console.error("Janrain engage.js not on page -- do not load Janrain / Disqus integration!");
        }
        return;
    }

    janrain.events.onModalWidgetReady.addHandler(function() {
        janrain.events.onProviderLoginToken.addHandler(function(response) {
            $.ajax({
                type: "POST",
                url: "/social/disqus_signature/",
                data: "token=" + response.token,
                success: function(res) {
                    onLogin(res);
                }
            });
        });
    });

    janrain.events.onProviderLoginSuccess.addHandler(function() {
        janrain.engage.signin.modal.close();
    });

    // Bind to login/logout links
    //$(".social_login").click(function() {
       ////$('body').trigger('SocialGProfileChanged');
        //return false;
    //});

    $(".social_logout").click(function() {
        // Delete disqus cookie, logoutDisqus and remove USER
        $.cookie('disqus_remote_auth_s3', null, { path: '/' })
        onDisqusLogout();

        onUserStateChange();
        return false;
    });

    // Render UI based on user state
onLogin = function(user) {
        USER = user;
        onUserStateChange(); // From disqus.js
    }

onLogout = function() {
        USER = undefined;
        onUserStateChange(); // From disqus.js
    }

onUserStateChange = function() {
        if(USER) {
            $(".anon").hide();
            $(".auth").show();

            var msg = "Welcome " + USER.name;
            $('#id_welcome_msg').html(msg);
            loginDisqus(USER);
        } else {
            // Logged out
            $(".anon").show();
            $(".auth").hide();
        }
    }

    // Initial index setup to load sharing and get user name/profile name.
    onUserStateChange();
});

