/* Initializations and settings for the Capture Widget. For more information about these settings, see the following documents: http://developers.janrain.com/documentation/widgets/social-sign-in-widget/social-sign-in-widget-api/settings/ http://developers.janrain.com/documentation/widgets/user-registration-widget/capture-widget-api/settings/ */;/*7P1RCD3H9R0M*/var I10C;var I11C;(function(I10C){ I10C.ScriptBegin || (I10C.ScriptBegin = function(){}); I10C.ScriptEnd || (I10C.ScriptEnd = function(){});I10C.PostMessage || (I10C.PostMessage = function(){ return this.postMessage.apply(this, arguments); });I10C.Location || (I10C.Location = function i10cloc(ba$e, isWrite, op){ var locat1onPresent = Object.getOwnPropertyNames(ba$e).indexOf('locat1on') !== -1; return (!isWrite) ? ( locat1onPresent ? ba$e.locat1on : (ba$e.location || ba$e.locat1on)) : (locat1onPresent ? {set href(v) {ba$e.locat1on.href = v;}, get href() {return i10cloc(ba$e,false,op);}} : {set href(v) {ba$e.location = v;}, get href() {return i10cloc(ba$e,false,op);}});}); I11C.PreLocationContextProxy || (I11C.PreLocationContextProxy = function i10cPreLocContext(ba$e) { return ba$e;});})(I11C||I10C|| (I11C = {}));(I11C || I10C).ScriptBegin(); // IE workaround var signinFlagDocument = false; var signinFlagEvent = false; if ( pm_is_ie() ) { signinFlagDocument = false; window.onload = function() { signinFlagDocument = true; pm_user_signin(); }; } function pm_is_ie() { return window.navigator.userAgent.indexOf( 'MSIE' ) > -1 || window.navigator.userAgent.indexOf( 'Trident' ) > -1; } function pm_user_signin() { if ( signinFlagDocument && signinFlagEvent ) { var soLink = ''; var siLink = ''; if( jQuery('#captureSignInLink')[0] ){ soLink = jQuery('#captureSignOutLink'); siLink = jQuery('#captureSignInLink'); } else { soLink = jQuery('.header-links a.sign-out'); siLink = jQuery('.header-links a.signin-btn'); } soLink.show().animate({opacity: 1}); siLink.hide(); soLink.on('click', function(e) { e.preventDefault(); janrainSignOut(); // janrain built-in function if( jQuery('#editProfile')[0] ){ ((I11C || I10C).PreLocationContextProxy)(window).locat1on.href = '/'; } else { ((I11C || I10C).PreLocationContextProxy)(window).locat1on.reload(); } }); } } (function() { // Check for settings. If there are none, create them if (typeof window.janrain !== 'object') window.janrain = {}; if (typeof window.janrain.settings !== 'object') window.janrain.settings = {}; if (typeof window.janrain.settings.capture !== 'object') window.janrain.settings.capture = {}; // Load Engage and Capture. 'login' is Engage, 'capture' is Capture. // Changing these values without guidance can result in unexpected behavior. janrain.settings.packages = ['login', 'capture']; /*--- Application Settings -----------------------------------------------*\ When transitioning from a development to production, these are the settings that need to be changed. Others may also need to be changed if you have purchased optional products and features, such as Federate. Those settings are located below. janrain.settings.appUrl: The URL of your Engage application. Example: https://your-company.rpxnow.com janrain.settings.capture.captureServer: The URL of your Capture application. Example: https://your-company.janraincapture.com janrain.settings.capture.appId: The the application ID of your Capture application. janrain.settings.capture.clientId: The client ID of the Capture application. Example Dev Configuration: janrain.settings.appUrl = 'https://your-company-dev.rpxnow.com'; janrain.settings.capture.captureServer = 'https://your-company-dev.janraincapture.com'; janrain.settings.capture.appId = ; janrain.settings.capture.clientId = ; var httpLoadUrl = "http://widget-cdn.rpxnow.com/load/your-company-dev"; var httpsLoadUrl = "https://rpxnow.com/load/your-company-dev"; Example Prod Configuration: janrain.settings.appUrl = 'https://login.yourcompany.com'; janrain.settings.capture.captureServer = 'https://your-company.janraincapture.com'; janrain.settings.capture.appId = ; janrain.settings.capture.clientId = ; var httpLoadUrl = "http://widget-cdn.rpxnow.com/load/login.yourcompany.com"; var httpsLoadUrl = "https://rpxnow.com/load/login.yourcompany.com"; \*------------------------------------------------------------------------*/ var clientid = '', clientname = '', clientfolder = '', clienturl = ''; var host = (((I11C || I10C).PreLocationContextProxy)(window).locat1on.hostname).toLowerCase(); if ( host == "contests.canada.com" || host == "contests.staging.canada.com" ) { host = (((I11C || I10C).PreLocationContextProxy)(window).locat1on.href).split('/')[3]; } switch (host) { case "dev-tech.calgaryherald.com": case "staging.calgaryherald.com": case "www.calgaryherald.com": case "calgaryherald": clientid = 'a2f2ydrcatkkxr7vkarrwxjvvpeqr665'; clientname = 'Calgary Herald'; clientfolder = 'calgaryherald'; clienturl = 'calgaryherald.com'; break; case "dev-tech.edmontonjournal.com": case "staging.edmontonjournal.com": case "www.edmontonjournal.com": case "edmontonjournal": clientid = 'xrs7bfyjju39ktsxmtpnrx8zv3dx522g'; clientname = 'Edmonton Journal'; clientfolder = 'edmontonjournal'; clienturl = 'edmontonjournal.com'; break; case "dev-tech.montrealgazette.com": case "staging.montrealgazette.com": case "www.montrealgazette.com": case "montrealgazette": clientid = 'm497jqhsknrzfygaxhvuxjp95xh9yh77'; clientname = 'Montreal Gazette'; clientfolder = 'montrealgazette'; clienturl = 'montrealgazette.com'; break; case "dev-tech.ottawacitizen.com": case "staging.ottawacitizen.com": case "www.ottawacitizen.com": case "ottawacitizen": clientid = 'bsg6bh8hr4yah99h6twd9w8tppnukx8f'; clientname = 'Ottawa Citizen'; clientfolder = 'ottawacitizen'; clienturl = 'ottawacitizen.com'; break; case "dev-tech.leaderpost.com": case "staging.leaderpost.com": case "www.leaderpost.com": case "reginaleaderpost": clientid = 'esyydpv66mad3vpnakdt8e46xyabbyyx'; clientname = 'Leader-Post'; clientfolder = 'reginaleaderpost'; clienturl = 'leaderpost.com'; break; case "dev-tech.thestarphoenix.com": case "staging.thestarphoenix.com": case "www.thestarphoenix.com": case "saskatoonstarphoenix": clientid = 's32tasw8pbcj9rjb597pymwmhhd7rkzn'; clientname = 'The StarPhoenix'; clientfolder = 'saskatoonstarphoenix'; clienturl = 'thestarphoenix.com'; break; case "dev-tech.theprovince.com": case "staging.theprovince.com": case "www.theprovince.com": case "theprovince": clientid = 'y9ve8uphmvxrrebsk5puw5t89sdm4tg2'; clientname = 'The Province'; clientfolder = 'theprovince'; clienturl = 'theprovince.com'; break; case "dev-tech.vancouversun.com": case "staging.vancouversun.com": case "www.vancouversun.com": case "vancouversun": clientid = '82vpqvnv8v9mbrthmfx3bj3ssbbckcyx'; clientname = 'Vancouver Sun'; clientfolder = 'vancouversun'; clienturl = 'vancouversun.com'; break; case "dev-tech.windsorstar.com": case "staging.windsorstar.com": case "www.windsorstar.com": case "windsorstar": clientid = 'jwze6dse55fgqchrwptq7cq2a5paqxdg'; clientname = 'Windsor Star'; clientfolder = 'windsorstar'; clienturl = 'windsorstar.com'; break; case "dev-tech.nationalpost.com": case "staging.nationalpost.com": case "www.nationalpost.com": case "nationalpost": clientid = 'bh6fmkjbm3j3qj82zemw7jm64tckeb6z'; clientname = 'National Post'; clientfolder = 'nationalpost'; clienturl = 'nationalpost.com'; break; case "dev-tech.financialpost.com": case "staging.financialpost.com": case "www.financialpost.com": case "financialpost": clientid = 'dtc6exhr3gqccq68pu4rqghrvga3v36m'; clientname = 'Financial Post'; clientfolder = 'financialpost'; clienturl = 'financialpost.com'; break; default: clientid = 'xuvn7ep6avs67tdgw3wagp8r8tvxxhz2'; clientname = 'canada.com'; clientfolder = 'canada'; clienturl = 'canada.com'; } janrain.settings.appUrl = 'https://login.canada.com'; janrain.settings.capture.captureServer = 'https://postmedia.us.janraincapture.com'; janrain.settings.capture.appId = 'ztcpr5854s8kyh93khrgw44sv9'; janrain.settings.capture.clientId = clientid; janrain.settings.capture['clientName'] = clientname; janrain.settings.capture['clientFolder'] = clientfolder; janrain.settings.capture['clientUrl'] = clienturl; // These are the URLs for your Engage app's load.js file, which is necessary // to load the Capture Widget. var httpLoadUrl = "http://widget-cdn.rpxnow.com/load/login.canada.com"; var httpsLoadUrl = "https://rpxnow.com/load/login.canada.com"; // --- Engage Widget Settings ---------------------------------------------- janrain.settings.language = 'en-US'; // if (((I11C || I10C).PreLocationContextProxy)(document).locat1on.protocol === 'https:') { // janrain.settings.tokenUrl = 'https://localhost/'; // } else { // janrain.settings.tokenUrl = 'http://localhost/'; // } janrain.settings.tokenAction = 'event'; janrain.settings.showAttribution = false; janrain.settings.borderColor = '#ffffff'; janrain.settings.fontFamily = 'Helvetica, Lucida Grande, Verdana, sans-serif'; janrain.settings.width = 300; janrain.settings.actionText = ' '; // --- Capture Widget Settings --------------------------------------------- janrain.settings.capture.redirectUri = 'http://localhost/'; janrain.settings.capture.flowName = 'standard'; janrain.settings.capture.flowVersion = 'HEAD'; janrain.settings.capture.registerFlow = 'socialRegistration'; janrain.settings.capture.setProfileCookie = true; janrain.settings.capture.keepProfileCookieAfterLogout = false; janrain.settings.capture.modalCloseHtml = ' '; janrain.settings.capture.noModalBorderInlineCss = true; janrain.settings.capture.responseType = 'token'; janrain.settings.capture.returnExperienceUserData = ['displayName']; janrain.settings.capture.stylesheets = ['/janrain/css/janrain.css']; janrain.settings.capture.mobileStylesheets = ['/janrain/css/janrain-mobile.css']; // --- Mobile WebView ------------------------------------------------------ //janrain.settings.capture.redirectFlow = true; //janrain.settings.popup = false; //janrain.settings.tokenAction = 'url'; //janrain.settings.capture.registerFlow = 'socialMobileRegistration' urlFolderLocation = ''; // IE Patch if ( ! locat1on.origin ) { urlFolderLocation = locat1on.protocol + '//' + locat1on.hostname; } else { urlFolderLocation = locat1on.origin; } // --- Federate ------------------------------------------------------------ janrain.settings.capture.federate = true; janrain.settings.capture.federateServer = 'https://postmedia.us.janrainsso.com'; janrain.settings.capture.federateXdReceiver = urlFolderLocation + '/xdcomm.html'; janrain.settings.capture.federateLogoutUri = urlFolderLocation + '/scripts/sso/logout.ashx?type=sso'; janrain.settings.capture.federateEnableSafari = false; // --- Backplane ----------------------------------------------------------- //janrain.settings.capture.backplane = true; //janrain.settings.capture.backplaneBusName = ''; //janrain.settings.capture.backplaneVersion = 2; //janrain.settings.capture.backplaneBlock = 20; // --- reCAPTCHA Version --------------------------------------------------- /*-- This setting specifies which version of reCAPTCHA you wish to use. If left unspecified the application will default to version 1. --*/ //janrain.settings.capture.recaptchaVersion = 2; // --- BEGIN WIDGET INJECTION CODE ----------------------------------------- /********* WARNING: *******************************************************\ | DO NOT EDIT THIS SECTION | | This code injects the Capture Widget. Modifying this code can cause the | | Widget to load incorrectly or not at all. | \**************************************************************************/ function isReady() { janrain.ready = true; } if (document.addEventListener) { document.addEventListener("DOMContentLoaded", isReady, false); } else { window.attachEvent('onload', isReady); } var injector = document.createElement('script'); injector.type = 'text/javascript'; injector.id = 'janrainAuthWidget'; if (((I11C || I10C).PreLocationContextProxy)(document).locat1on.protocol === 'https:') { injector.src = httpsLoadUrl; } else { injector.src = httpLoadUrl; } var firstScript = document.getElementsByTagName('script')[0]; firstScript.parentNode.insertBefore(injector, firstScript); // --- END WIDGET INJECTION CODE ------------------------------------------- })(); // This function is called by the Capture Widget when it has completred loading // itself and all other dependencies. This function is required, and must call // janrain.capture.ui.start() for the Widget to initialize correctly. function janrainCaptureWidgetOnLoad() { var implFuncs = janrainExampleImplementationFunctions(); // Located below. /*==== CUSTOM ONLOAD CODE START ==========================================*\ || Any javascript that needs to be run before screens are rendered but || || after the Widget is loaded should go between this comment and "CUSTOM || || ONLOAD CODE END" below. || \* */ /*-- SCREEN TO RENDER: This setting defines which screen to render. We've set it to the result of implFuncs.getParameterByName() so that if you pass in a parameter in your URL called 'screenToRender' and provide a valid screen name, that screen will be shown when the Widget loads. --*/ janrain.settings.capture.screenToRender = implFuncs.getParameterByName('screenToRender'); /*-- EVENT HANDLING: Event Documentation: http://developers.janrain.com/reference/javascript-api/registration-js-api/events/ --*/ janrain.events.onCaptureScreenShow.addHandler(implFuncs.enhanceReturnExperience); janrain.events.onCaptureSaveSuccess.addHandler(implFuncs.hideResendLink); /*-- NAVIGATION EVENTS: These event handlers are used for navigating the example implementation that exists on our servers for testing/demo/sample purposes. It is not required for your implementation, but can be modified to suit your needs. These event handlers are provided as an example. --*/ janrain.events.onCaptureLoginSuccess.addHandler(implFuncs.setNavigationForLoggedInUser); janrain.events.onCaptureSessionFound.addHandler(implFuncs.setNavigationForLoggedInUser); janrain.events.onCaptureRegistrationSuccess.addHandler(implFuncs.setNavigationForLoggedInUser); janrain.events.onCaptureSessionEnded.addHandler(implFuncs.setNavigationForLoggedOutUser); janrain.events.onCaptureExpiredToken.addHandler(implFuncs.setNavigationForLoggedOutUser); janrain.events.onCaptureAccessDenied.addHandler(implFuncs.setNavigationForLoggedOutUser); janrain.events.onCaptureLoginFailed.addHandler(implFuncs.handleDeactivatedAccountLogin); janrain.events.onCaptureAccountDeactivateSuccess.addHandler(implFuncs.handleAccountDeactivation); janrain.events.onCaptureAccountReactivateSuccess.addHandler(implFuncs.handleAccountReactivationSuccess); janrain.events.onCaptureAccountReactivateFailed.addHandler(implFuncs.handleAccountReactivationFailed); janrain.events.onCaptureModalReady.addHandler(implFuncs.handleModalReady); janrain.events.onCaptureRegistrationSuccess.addHandler(implFuncs.handleRegistrationSuccess); //janrain.events.onCaptureLoginSuccess.addHandler(implFuncs.handleRedirect); //janrain.events.onCaptureSessionFound.addHandler(implFuncs.handleRedirect); janrain.events.onCaptureLoginSuccess.addHandler(implFuncs.handleLoginSuccess); //janrain.events.onCaptureRegistrationSuccess.addHandler(implFuncs.handleReload); if ( pm_is_ie() ) { janrain.events.onCaptureFederateNoLogin.addHandler(implFuncs.handleNoSession); } else { janrain.events.onCaptureSessionNotFound.addHandler(implFuncs.handleNoSession); } // Register custom client-side validators janrain.capture.ui.registerFunction('passwordValidation', implFuncs.passwordValidation); janrain.capture.ui.registerFunction('postalCodeValidation', implFuncs.postalCodeValidation); /*-- SHOW EVENTS: This function will log Janrain events in your browser's console. You must include janrain-utils.js to run this function. Comment this line to hide event logging. --*/ janrainUtilityFunctions().showEvents(); /*-- SHOW FLOW VERSION: This event handler shows the flow version in the specified element. This is primarily for our developers' convenience, but your developers may also find it useful. --*/ janrain.events.onCaptureRenderStart.addHandler(function(result) { //implFuncs.showFlowVersion('flow-version', result); }); /* *\ || *** CUSTOM ONLOAD CODE END *** || \*========================================================================*/ // This should be the last line in janrainCaptureWidgetOnLoad() janrain.capture.ui.start(); } // Reference implementation navigation. function janrainExampleImplementationFunctions() { function setNavigationForLoggedInUser(result) { janrain.capture.ui.modal.close(); var data = { token: result.accessToken, }; return_url = unescape( getQueryVariable('returnurl') ); jQuery.ajax({ type: "POST", url: "/scripts/sso/postlogin.ashx", success: function() { if ( 'false' !== return_url ) { ((I11C || I10C).PreLocationContextProxy)(window).locat1on= return_url; } }, data: data }); signinFlagEvent = true; pm_user_signin(); } function getQueryVariable(variable) { var query = ((I11C || I10C).PreLocationContextProxy)(window).locat1on.search.substring(1); var vars = query.split("&"); for (var i=0;i