Showing source for: https://dvagov-btsss-qa3.powerappsportals.us/ssoe-logout-redirect/
Duration: 1.658876s




<!DOCTYPE html>
<html lang="en-US" data-lang="en-US" crm-lang="en-US" dir="ltr" crm-lcid="1033"
	same-site-mode="None">
<head>
		
		<meta charset="utf-8" /><meta name="viewport" content="width=device-width,&#32;initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<script type="text/javascript" >
				
        </script>
	<title>
	
		BTSSS SSOe LogOut Redirect
		&nbsp;· BTSSS
</title>
		
		<script src="/_portal/7b138792-1090-45b6-9241-8f8d96d8c372/Resources/ResourceManager?lang=en-US"></script>
	
	<script type="text/javascript">
        // Refresh all powerBI Iframes on Login in one Iframe
        window.addEventListener('message', function (event) {
            if (event && event.data && event.data == 'refreshPowerBI') {
                $("iframe.powerbi").each(function () {
                    this.src = this.src;
                });
            }
        });

        // Fix for incorrect viewport width setting in IE 10 on Windows Phone 8.
        if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
            var msViewportStyle = document.createElement("style");
            msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}"));
            document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
        }
    </script>
		
	
		
		<link href="/bootstrap.min.css?1704904386000" rel="stylesheet" />

		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/font-awesome.bundle-3d8a58a48f.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/font-awesome.bundle-3d8a58a48f.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />

				<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/preform.bundle-b72a6ea21d.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/preform.bundle-b72a6ea21d.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />


		
		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/privatemode.bundle-049b12b66e.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/privatemode.bundle-049b12b66e.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />


		
			


		
		<link href="/thumbnail.css?1715782764000" rel="stylesheet" />
<link href="/process.css?1704904386000" rel="stylesheet" />
<link href="/theme.css?1761855522000" rel="stylesheet" />

		<style type="text/css">#log-off-message-wrapper
{
    min-height: 200px;
    padding: 25px;
}

h1
{
    color:#112e51;
}</style>
		
		
		
		
	
		
		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/pwa-style.bundle-55718a4c0d.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pwa-style.bundle-55718a4c0d.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />

		</head>
<body data-sitemap-state="/ssoe-logout-redirect/:/"
	data-dateformat="M/d/yyyy"
	data-timeformat="h:mm tt"
	data-datetimeformat="M/d/yyyy h:mm tt"
	data-app-path="/"
	data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/"
	data-case-deflection-url="/_services/search/7b138792-1090-45b6-9241-8f8d96d8c372">


	
		<link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-style.bundle-373a0f4982.css" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;link&#32;=&#32;document.createElement(&#39;link&#39;);&#32;link.crossOrigin&#32;=&#32;target.crossOrigin;&#32;link.href&#32;=&#32;&#39;/dist/pcf-style.bundle-373a0f4982.css&#39;;&#32;link.rel&#32;=&#32;&#39;stylesheet&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,link);" rel="stylesheet" />

			
	
		

	<div id="offlineNotificationBar" class="displayNone">
		<img alt="web" id="web" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/web.png&#39;;&#32;img.alt&#32;=&#32;&#39;web&#39;;&#32;img.id&#32;=&#32;&#39;web&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://gov.content.powerapps.us/resource/powerappsportal/img/web.png" />
		<div id="message">You&#8217;re offline. This is a read only version of the page.</div>
		<div id="close" onclick="this.parentElement.style.display='none';"><img alt="close" onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;img&#32;=&#32;document.createElement(&#39;img&#39;);&#32;img.src&#32;=&#32;&#39;/css/images/close.png&#39;;&#32;img.alt&#32;=&#32;&#39;close&#39;;&#32;img.id&#32;=&#32;&#39;&#39;&#32;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,img);&#32;target.remove();" src="https://gov.content.powerapps.us/resource/powerappsportal/img/close.png" /></div>
	</div>

	

	<script type="text/javascript">
        window.DisableCkEditor = window.DisableCkEditor || {};
		
		DisableCkEditor.Value = 'False';
    </script>

	<script type="text/javascript">
        var enableOmniChannelWidgetWithSiteCopilot = 'False';
        if (enableOmniChannelWidgetWithSiteCopilot === "True" || enableOmniChannelWidgetWithSiteCopilot === "true") {
            const authUrl = window.location.origin + "/_services/auth/portalusertoken";
            const fetchWithRetries = async (url, options, retries) => {
                try {
                    const authResponse = await fetch(url, options);
                    const token = await authResponse.text();
                    sessionStorage['c2Token'] = token;
                } catch (err) {
                    if (retries === 1) throw err;
                    return await fetchWithRetries(url, options, retries - 1);
                }
            };
            fetchWithRetries(authUrl, { method: "POST" }, 4);

            // Enable/disable Omnichannel session refresh on auth state change
            // When enabled, closeChat() is called when user logs in/out to start a fresh session
            var enableOmniChannelSessionRefreshSetting = 'True';
            window.enableOmniChannelSessionRefresh = enableOmniChannelSessionRefreshSetting === 'True' || enableOmniChannelSessionRefreshSetting === 'true';
        }
    </script>

	<script type="text/javascript">
		var isPvaBotAuthenticated = sessionStorage['isPvaBotAuthenticated'];
		var isPortalUserLoggedIn = 'False';

        if ((isPvaBotAuthenticated != null || isPvaBotAuthenticated != undefined) && isPvaBotAuthenticated != isPortalUserLoggedIn) {
			sessionStorage['triggerPvaBotSignOut'] = true;
			sessionStorage.removeItem('c2Token');
            sessionStorage.removeItem('directLinetoken');
            sessionStorage.removeItem('conversation_Id');

			sessionStorage.removeItem('bot_c2Token');
			sessionStorage.removeItem('botdirectLinetoken');
            sessionStorage.removeItem('botconversation_Id');
		}
		sessionStorage['isPvaBotAuthenticated'] = isPortalUserLoggedIn;
    </script>

	<script type="text/javascript">
		window["CSPSettings"] = window["CSPSettings"] || {};
		window["CSPSettings"].nonce = '';
        window["FabricConfig"] = window["FabricConfig"] || {};
        window["FabricConfig"].mergeStyles = window["FabricConfig"].mergeStyles || {};
		window["FabricConfig"].mergeStyles.cspSettings = window["CSPSettings"];
        window["Microsoft"] = window["Microsoft"] || {};
		window["Microsoft"].Dynamic365 = {
			Portal: {
				
				User: {
					userName: '',
					firstName: '',
					lastName: '',
					email: '',
					contactId: '',
					userRoles: [],
				},
				
				type: 'CustomerPortal',
				id: '86c595b1-28a6-49a5-be83-4bec45aa1274', 
				geo: 'GCC2', 
				tenant: 'e95f1b23-abaf-45ee-821d-b7ab251ab3bf', 
				correlationId: '7ded0ee1-38d0-4edb-bf9f-a2251955832f',
                orgEnvironmentId: 'a6301660-d2aa-e2fc-b0c0-419a43b661d3',
                orgId: 'a8b723d4-8488-4537-8997-3f3dc69b7d3b',
                portalProductionOrTrialType: 'Production',
                isTelemetryEnabled: 'True',
                InstrumentationSettings: {
                    instrumentationKey: '47d84c9b995341e19219d73ab0c6bcd2-e951660d-d17d-4de3-83c3-6a766bd23de8-7007',
                    collectorEndpoint: 'https://tb.events.data.microsoft.com/OneCollector/1.0/'
                },
                timerProfileForBatching: 'NEAR_REAL_TIME',
                activeLanguages: ["en-US"],
                isClientApiEnabled: 'True',
                isSpaSite: 'False'
            }
        };

		window["Microsoft"].PowerPages = window["Microsoft"].PowerPages || {};
		window["Microsoft"].PowerPages.onPagesClientApiReady = (callback) => {
			return new Promise((resolve, reject) => {
				let isComplete = false;
				let timeoutId;
				const timeoutInterval = 10000;
		
				function handleReady() {
					if (!isComplete && window.$pages) {
						isComplete = true;
						clearTimeout(timeoutId);
						try {
							if (typeof callback === "function") {
								callback(window.$pages);
							}
						} catch (e) {
							console.error("onPagesClientApiReady callback error:", e);
						}
						resolve(window.$pages); // should we reject if callback throws an error
					}
				}
		
				if (window.$pages) {
					handleReady();
					return;
				}
		
				function sdkListener() {
					handleReady();
					window.removeEventListener('pagesSDKInitialized', sdkListener);
				}
		
				window.addEventListener('pagesSDKInitialized', sdkListener);
		
				timeoutId = setTimeout(() => {
					if (!isComplete) {
						window.removeEventListener('pagesSDKInitialized', sdkListener);
						if (window.$pages) {
							handleReady();
						} else {
							isComplete = true;
							reject(new Error('window.$pages not available.'));
						}
					}
				}, timeoutInterval);
			});
		};

		// Deprecated alias: Microsoft.Dynamic365.Portal.onPagesClientApiReady.
		// Remove once telemetry shows no callers remain.
		(function () {
			var _impl = window["Microsoft"].PowerPages.onPagesClientApiReady;
			var _logged = false;

			window["Microsoft"].Dynamic365.Portal.onPagesClientApiReady = function (callback) {
				if (!_logged) {
					_logged = true;
					try {
						if (window.clientLogWrapper && typeof window.clientLogWrapper.traceWarning === "function") {
							window.clientLogWrapper.traceWarning(
								"Microsoft.Dynamic365.Portal.onPagesClientApiReady invoked (deprecated)",
								"DeprecatedApi",
								"ClientApiReady",
								"Invoke",
								"DeprecationTracker"
							);
						}
						if (typeof console !== "undefined" && console.warn) {
							console.warn(
								"[DEPRECATED] Microsoft.Dynamic365.Portal.onPagesClientApiReady is deprecated " +
								"and will be removed in a future release. Use Microsoft.PowerPages.onPagesClientApiReady instead."
							);
						}
					} catch (_) { /* never break the caller */ }
				}

				return _impl(callback);
			};
		})();

        // Mark request not cacheable if Dynamics365PortalAnalytics cookie is being refreshed by the server or if the cookie in request header is invalid
		

        // For client side telemetry intializing Dynamics365PortalAnalytics cookie object
		
        window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics = 'zKcv_jDhymFHJQXQgRemwVwFHiv7xlYoIUPcRYkEK-qOuXKGbrjeQpe63GfZ743_RVgykrccpG_8KgMo3ICtehBz1MzFYWp54teDSW7A3Utyxv6NRCaZk69SafqQHNZx5MjYi5hAkUVgkq8ftlevCg2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE 
		

	</script>
	
	<script type="text/javascript">

		
    </script>

	
		<!-- BEGIN BTSSS Header -->
<!-- BEGIN BTSSS Portal JS Library 
     SRD - This is the active one 
     -->
<script type="text/javascript">
    //<![CDATA[
    var portalUserId = ''; 
    var currentLocation = '/ssoe-logout-redirect/';
    var currentPage = 'ssoe-logout-redirect';
    var homePage = '';
    var currentQuery = ''; 
    var lastClaimId = '';

    console.log("portalUserId:"+portalUserId);

    /* Having a compatible browser does not mean sessionStorage is available. May not work if using Private Browsing. 
    Taken from https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API */
    var Btsss = Btsss || {};
    Btsss.Portal = function(window) {
    _currentLocation = '/ssoe-logout-redirect/';
    _previousLocation = '';
    _currentQuery = ''; 
    _currentPage = 'ssoe-logout-redirect';
    _currentUserId = ''; 
    _claimId = '';
    _apptId = ''; 
    return {
        sessionStorage : window.sessionStorage,

        currentUserId : this._currentUserId,

        addLocationHistory : function(newLocationEntry){
            this._previousLocation = Btsss.Portal.sessionStorage.getItem('currentLocation');
            
            console.log(' SRD - setPreviousLocation: ' + Btsss.Portal.sessionStorage.getItem('currentLocation'));

            this._currentLocation = newLocationEntry;

            console.log(' SRD - NewLocation: ' + newLocationEntry);

            this.sessionStorage.setItem('previousLocation', this._previousLocation);
            this.sessionStorage.setItem('currentLocation', this._currentLocation);
            Btsss.Portal.savePageParams();
        },

        onLocationChanged : function(eventInvoker){
            Btsss.Portal.sessionStorage.setItem('previousLocation', _previousLocation);
            Btsss.Portal.sessionStorage.setItem('currentLocation', _previousLocation);
            Btsss.Portal.savePageParams();
        },

        setPreviousLocation : function(){
            if(this._previousLocation == ''){
                console.log('Btsss.Portal.setPreviousLocation: this._previousLocation = <BLANK>');
            }
            Btsss.Portal.sessionStorage.setItem('previousLocation', _previousLocation);
        },
        
        getCurrentLocation : function(){
          var tempCurrentLocation = Btsss.Portal.sessionStorage.getItem('currentLocation');
          console.log('Btsss.Portal.getCurrentLocation: this._currentLocation = ' + tempCurrentLocation);
          return tempCurrentLocation;
        },

        setCurrentLocation : function(){
            if(this._currentLocation == ''){
                console.log('Btsss.Portal.setCurrentLocation: this._currentLocation = <BLANK>');
            }
            Btsss.Portal.sessionStorage.setItem('currentLocation', _currentLocation);
        },

        savePageParams : function(){
            this.sessionStorage.setItem(_currentPage, _currentQuery);
        },
        
        getPageParams : function(pageName){
            return this.sessionStorage.getItem(pageName);
        },
        
        getTermsValid : function(){
            var bTermsValid = false;
            var dta = null;
            bTermsValid = Btsss.Portal.sessionStorage.getItem('terms') && Btsss.Portal.sessionStorage.getItem('date_terms_accepted');
            console.log("Btsss.Portal.getTermsValid: Session terms Value = " + Btsss.Portal.sessionStorage.getItem('terms'));
            console.log("Btsss.Portal.getTermsValid: Session terms date Value = " + Btsss.Portal.sessionStorage.getItem('date_terms_accepted'));

            if (bTermsValid) {
                if (Btsss.Portal.sessionStorage.getItem('terms')) {
                    dta = Btsss.Portal.sessionStorage.getItem('date_terms_accepted');
                    var dta_dt = new Date(dta);
                    var curr_dt = new Date();     
                    bTermsValid = (dta_dt.getDate() == curr_dt.getDate()) && (dta_dt.getMonth() == curr_dt.getMonth()) && (dta_dt.getYear() == curr_dt.getYear());
                }
            }
            console.log("Btsss.Portal.getTermsValid: Terms validated. Value = " + bTermsValid);
            return bTermsValid;
        },
        
        getProfileReviewed: function(){
            var profileReviewed = Btsss.Portal.sessionStorage.getItem('profile_reviewed');
            console.log("Btsss.Portal.getTermsValid: Getting profile_reviewed session Value = " + profileReviewed);
            return profileReviewed;
        },
        
        storageAvailable : function (window, type) {
            try {
                var storage = window[type],
                    x = '__storage_test__';
                storage.setItem(x, x);
                storage.removeItem(x);
                return true;
            } catch (e) {
                return false;
            }
        },

        createSessionVar : function (key, value) {
            // check for compatability
            if (Btsss.Portal.storageAvailable(window, 'sessionStorage')) {
                // sessionStorage has a 5mb size limit which if exceeded would result in failure to store variable. Very unlikely to occur but checked all the same. 
                try {
                    Btsss.Portal.sessionStorage.setItem(key, value);
                } catch (e) {
                    if (e.name === 'QUOTA_EXCEEDED_ERR' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED' || e.name === 'QuotaExceededError' || e.name === 'W3CException_DOM_QUOTA_EXCEEDED_ERR') {
                        Btsss.Portal.createAlert("alert-danger", "Session storage exceeded");
                    } else {
                        Btsss.Portal.createAlert("alert-danger", e.name + " occurred.");
                    }
                    return false;
                }
                return true;
                } else {
                    Btsss.Portal.createAlert("alert-danger", "Unsupported Browser Detected or using Private Browsing, please update your browser");
                return false;
            }
        },
        
        initSession : function () {
            console.log("Btsss.Portal.initSession: Intitalizing session variables.");
            Btsss.Portal.sessionStorage.createSessionVar('terms', '');
            Btsss.Portal.sessionStorage.createSessionVar('date_terms_accepted', '');
            Btsss.Portal.sessionStorage.createSessionVar('profile_reviewed', '');
            Btsss.Portal.sessionStorage.createSessionVar('veteran_id', '');

            return true;
        },

        destroySession : function () {
            console.log("Btsss.Portal.destroySession: destroying session variables.");
            Btsss.Portal.sessionStorage.removeItem('terms');
            Btsss.Portal.sessionStorage.removeItem('date_terms_accepted');
            Btsss.Portal.sessionStorage.removeItem('profile_reviewed');
            Btsss.Portal.sessionStorage.removeItem('veteran_id');
            
            return true;
        },

        checkSession : function() {
            /* S E S S I O N   V A R I A B L E   C H E C K
            this code checks that the user has agreed to the terms and conditions before coming to this page
            if they have not, they will be returned to the Terms and Conditions page (Welcome page) */
            console.log('Btsss.Portal.checkSession: Current portal user id = ' + portalUserId);
            console.log('Btsss.Portal.checkSession: Current window location = ' + currentLocation);
            console.log('Btsss.Portal.checkSession: Current page = /ssoe-logout-redirect/');
            // TODO: Clean this up after testing and demo 
            var _serverPagePath = '/ssoe-logout-redirect/';
            var _clientPagePath = window.location.href;
            var isRegister = window.location.href.contains('Account');
            if (isRegister) { console.log('isRegister = true'); }
            else { console.log('isRegister = false') }
            if(isRegister === true){
              return true;
            }
            // End TODO: Clean this up after testing and demo 
                  
                
            if (!Btsss.Portal.getTermsValid()) {
          
            
            console.log("Btsss.Portal.checkSession: Terms not valid. Clearing session.");
                    Btsss.Portal.destroySession();
                    console.log("Session destroyed.");
                                 
                    
                    console.log("Checked session vars");
            }else if (Btsss.Portal.getProfileReviewed() !== "yes") {
                // check that session variable exists that indicates that profile has been reviewed 
                //Btsss.Portal.profileReviewed = "no";
                //Btsss.Portal.profileReviewed = Btsss.Portal.sessionStorage.getItem('profile_reviewed');
                console.log("Btsss.Portal.checkSession: Profile not reviewed. Clearing session profile_reviewed variable.");
                          
            }
        },
                    
        createAlert : function (type, message) {
            var alertHtml = '';
            alertHtml += '<div class="alert ' + type + ' alert-dismissible" role = "alert">';
            alertHtml   += '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
            alertHtml       += '<span aria-hidden="true">&times;</span>';
            alertHtml   += '</button>';
            alertHtml   += '<strong>Error: </strong>' + message;
            alertHtml += '</div>';
            $('#alert-placeholder').html(alertHtml);
            // scroll to top of the page
            $("html, body").animate({
                scrollTop: 0
            }, "slow");
        },

        redirect : function(pageName, clearSession){
            var nextLocation = "";
            switch(pageName) {
                case "review-profile":
                    nextLocation = "/review-profile";
                    break;
                case "my-dashboard":
                    nextLocation = "/review-profile/my-dashboard";
                    break;
                case "logout":
                    nextLocation = "/logout";
                    break;
                case "home":
                    nextLocation = "/";
                    break;
                case "signin":
                    nextLocation = "/SignIn?returnUrl=/";
                    break;
                default:
                  nextLocation = "/";
                  //do nothing editing this to force and update
            }
            // Make sure we never loop a redirect
            if(nextLocation.replace(/\//g,'') !== currentLocation.replace(/\//g,'')){
                console.log('Btsss.Portal.redirect: redirecting to ' + nextLocation);
                //window.location.replace(nextLocation);
    Btsss.Utils.navigateToUrl(nextLocation);
            }
        }
    };
    }(window);
    
    Btsss.Utils = function(window) {
        return {
            fixBreadcrumbs : function(){
                $("ul.breadcrumb > li > a").each(function(){
                    // parse and filter out empty results
                    var paths = this.pathname.split("/").filter(function(e) { return e.trim() != ''; });
                    var urlRoot = "" + $(this).attr('href').split('?')[0];
                    if(paths.length > 0) {
                        var pageName = paths[paths.length - 1];
                        var lastQuery = "" + Btsss.Portal.sessionStorage.getItem(pageName);
                        console.log('lastQuery:' + lastQuery);
                        $(this).attr('href', urlRoot + lastQuery);
                    }
                });
            },
   navigateToUrl : function(targetUrl){
    var updatedUrl = targetUrl;
    if (updatedUrl && updatedUrl.indexOf("?") > -1)
    {
     updatedUrl = targetUrl + "&_=" + Math.round(Math.random()*100000);
    }
    console.log("PortalJSLibrary-->navigateToUrl: " + updatedUrl);
    $(location).attr('href',updatedUrl);
   }
        };
    }(window);
    
    document.addEventListener("DOMContentLoaded", function(event) {
          console.log("BTSSS Portal JS Library: DOMContentLoaded event fired.");
           Btsss.Portal.addLocationHistory(currentLocation);
           Btsss.Portal.checkSession();
           Btsss.Utils.fixBreadcrumbs();
      });
//]]>
</script>
<!--END BTSSS Portal JS Library -->


<a href="#sr-content" class="sr-only">Skip to content</a>
<div class="headerMain">
  <div class="container headerContainer">
    <div class="headerSubContainer">
      <div>
        <img src="/va-logo2.png" alt="VA, logo and Seal, U.S. Department of Veterans Affairs" height="68" />
      </div>
      <div class="hidden-xs text-center">
        <span>Beneficiary Travel Self Service System</span>
      </div>

      <!-- If the user is logged in-->
      
      
      
      
      
      

      

      
          
      

      
          
      

      <div class="headerDropDown dropdown text-right">
        
      </div>

    </div>
  </div>
</div>

<!-- Shim for bootstrap 3 508 compliance -->
<script>
  
  document.addEventListener('DOMContentLoaded', () => {
      const profileButton = document.querySelector('#menuButton');
      const dropdownParent = profileButton.closest('.headerDropDown');

      if (!profileButton || !dropdownParent) return;

      // Toggle behavior for Space/Enter/Escape keys
      profileButton.addEventListener('keydown', e => {

          const key = e.key || e.keyIdentifier || e.keyCode;
          const isSpace = key === '  ' || key === 'Spacebar' || key == 32;
          const isEnter = e.key === 'Enter' || key === 13;

          // Toggle on Space or Enter
          if (isSpace || isEnter) {
              e.preventDefault();
              const isExpanded = dropdownParent.classList.contains('open');
              const newExpanded = !isExpanded;

              dropdownParent.classList.toggle('open', newExpanded);
              profileButton.setAttribute('aria-expanded', newExpanded);

              if (!newExpanded) {
                  // When collapsing, return focus to the button
                  profileButton.focus();
              }
          }
      });

      dropdownParent.addEventListener('keydown', e => {
          const key = e.key || e.keyIdentifier || e.keyCode;
          const isEscape = key === 'Escape' || key === 'Esc' || key === 27;
          if(isEscape){
            setTimeout(() => {
              const isOpen = dropdownParent.classList.contains('open');

              profileButton.setAttribute('aria-expanded', isOpen ? 'true' : 'false');

              profileButton.focus();
            });
          }

      });

      // Keep aria-expanded synced when clicked with mouse
      profileButton.addEventListener('click', () => {
          const isExpanded = dropdownParent.classList.contains('open');
          profileButton.setAttribute('aria-expanded', isExpanded);
      });

      // Close if clicking outside
      document.addEventListener('click', e => {
          if (!dropdownParent.contains(e.target)) {
              dropdownParent.classList.remove('open');
              profileButton.setAttribute('aria-expanded', 'false');
          }
      });
  });

</script>

<!-- END BTSSS Header -->
	

	<!-- add anti-forgery token-->
	<div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div>

	
			<!-- Client Telemetry init if telemetry enabled-->
			<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry.bundle-d490766e4f.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/client-telemetry.bundle-d490766e4f.js" type="text/javascript"></script>

		
	
		<!-- Client Telemetry Wrapper init -->
		<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/client-telemetry-wrapper.bundle-633e70f51b.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/client-telemetry-wrapper.bundle-633e70f51b.js" type="text/javascript"></script>

		<script>
			window.clientLogWrapper = new ClientLogWrapper();
		</script>
		<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/preform.moment_2_29_4.bundle-750b699ecd.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-750b699ecd.js" type="text/javascript"></script>

		

		<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-dependency.bundle-805a1661b7.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-dependency.bundle-805a1661b7.js" type="text/javascript"></script>

							   <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf.bundle-60440c37cb.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf.bundle-60440c37cb.js" type="text/javascript"></script>

							   <script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-extended.bundle-b0e01b5622.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-extended.bundle-b0e01b5622.js" type="text/javascript"></script>

						
		
		<div id="content-container" class="container wrapper-body" role="main">
			<div id="content">
				
    <div id="mainContent">
	    <div class="xrm-editable-html&#32;xrm-attribute&#32;page-copy"><div class="xrm-attribute-value"><div id="log-off-message-wrapper" class="col-md-10 page-copy-wrapper">
<h1>Please wait while you are logged out of BTSSS.</h1>
</div></div></div>
    </div>

			</div>
		</div>
	

	<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/pcf-loader.bundle-f4a0e619b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-loader.bundle-f4a0e619b8.js" type="text/javascript"></script>

		
		
	

	
		<div id="pp-native-controls-react-root"></div>
<script>window._nativeControlConfig = { "publicPath":"https://gov.content.powerapps.us/resource/powerappsportal/controls", "versions": {"pcf_loader":"0.0.51","pcf_controls":"3.24.8","mf_shared":"0.2.32","host":"0.15.1","data_grid":"1.12.3","controls_fluent_v9":"0.0.54"}, "pvaEmbedded": { "defaultWidgetMode": "normal", "useCustomTypingIndicator": false, "skipSingleBotWelcomeScreen": false } }</script>
<script defer="defer" src="https://gov.content.powerapps.us/resource/powerappsportal/controls/host/main.3ee2491f78.chunk.js"></script>
		
	
	
		<!-- BEGIN BTSSS Footer -->


<footer role="contentinfo" class="footerContainer">
  <div class="container footerSubContainer">
    <div>
        The U.S. Department of Veteran Affairs owns and operates Beneficiary Travel Self Service System (BTSSS).
    </div>
    <hr class="footerHR" />

    <!-- When on devices larger than mobile -->
    <div class="row hidden-xs">
        <div class="col-sm-4">
            <img src="/va-logo2.png" alt="VA, logo and Seal, U.S. Department of Veterans Affairs" height="40" />
        </div>
        <div class="col-sm-4 text-center">
            <span><a href="https://www.va.gov" class="footerLink">Visit VA.gov</a></span>
        </div>
        <div class="col-sm-4 text-right">
          <div class="footerVetCrisis">
            <span>In crisis? Talk to someone now<br /><a href="https://www.veteranscrisisline.net/" class="footerLink">Veterans Crisis Line</a></span>
          </div>
        </div>
    </div>

    <!-- When on mobile devices -->
    <div class="row visible-xs">
      <div class="col-xs-12" style="text-align: center;">
        <img src="/va-logo2.png" alt="VA, logo and Seal, U.S. Department of Veterans Affairs" height="40" />
      </div>
      <div class="col-xs-6 text-left">
          <span><a href="https://www.va.gov" target="_blank" class="footerLink">Visit VA.gov</a></span>
      </div>
      <div class="col-xs-6 text-right">
        <div class="footerVetCrisis text-left">
          <span>In crisis? Talk to someone now<br /><a href="https://www.veteranscrisisline.net/" target="_blank" class="footerLink">Veterans Crisis Line</a></span>
        </div>
      </div>
    </div>
  </div>
</footer>


<!-- END BTSSS Footer -->
<script>
    //If there is a cross site scripting error, replace it with a more user friendly message.
    let messageControl = document.getElementById('MessageLabel');
    if (messageControl) {
        messageControl.innerHTML = messageControl.innerHTML.replace("Request validation has detected potentially dangerous input value(s) such as HTML, or script. Please review the input value(s) and try again.",
        "One or more fields contain invalid data.  Characters like < and > can have unintended effects and should be removed.  Please review the value(s) entered and try again.");
    }
</script>

	

	<script type="text/javascript">

		function trackCopilotCustomUsage(botSchema) {
			const request = {
				botSchemaName: botSchema
			}
			var json = JSON.stringify(request);
			shell.ajaxSafePost({
				type: "POST",
				contentType: "application/json",
				url: "/_services/copilot/TrackUsage",
				data: json
			}).done(function () {
			}).fail(function (jqXhr) {
			});
		}

		function findAndLogCustomCopilotUsage() {
			const pageSource = document.documentElement.outerHTML;
			const customPvaBotWebchatRegex = /api\.(preprod\.|test\.)?powerplatform\.(com|us|cn|appsplatform\.us)\/powervirtualagents\/botsbyschema\/([^/]+)\/directline\/token/;
			const customPvaBotIframeRegex = /powerva\.microsoft\.com\/environments\/([0-9a-fA-F\-]+)\/bots\/([^/]+)\/webchat/;
			const omniChannelRegex = /livechatwidget\/scripts\/LiveChatBootstrapper\.js/;

			const matchPvaBotWebchat = pageSource.match(customPvaBotWebchatRegex);
			if (matchPvaBotWebchat && matchPvaBotWebchat[3]) {
				trackCopilotCustomUsage(matchPvaBotWebchat[3]);
			}

			const matchPvaBotIframe = pageSource.match(customPvaBotIframeRegex);
			if (matchPvaBotIframe && matchPvaBotIframe[2]) {
				trackCopilotCustomUsage(matchPvaBotIframe[2]);
			}

			const matchOmniChannel = pageSource.match(omniChannelRegex);
			if (matchOmniChannel && matchOmniChannel[0]) {
				trackCopilotCustomUsage("omnichannelWidget");
			}
		}

		window.addEventListener("load", function () {
			findAndLogCustomCopilotUsage();
		});
	</script>

		
			
			
			
			
		
	<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/bootstrap.bundle-105a4995b8.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/bootstrap.bundle-105a4995b8.js" type="text/javascript"></script>

	<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/postpreform.bundle-4687dda8df.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/postpreform.bundle-4687dda8df.js" type="text/javascript"></script>

	<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/app.bundle-1e948af604.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/app.bundle-1e948af604.js" type="text/javascript"></script>

	<script onerror="javascript:&#32;var&#32;target&#32;=&#32;event.target;&#32;var&#32;script&#32;=&#32;document.createElement(&#39;script&#39;);&#32;script.crossOrigin&#32;=&#32;target.crossOrigin;&#32;script.src&#32;=&#32;&#39;/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js&#39;;&#32;script.type&#32;=&#32;&#39;text/javascript&#39;;&#32;target.insertAdjacentElement(&#39;afterend&#39;,script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js" type="text/javascript"></script>

	

	
	<script type="text/javascript">document.addEventListener("DOMContentLoaded", function (event) {
    var ssoe_logout_url = '';

    var ssoe_int_logout_url = 'https://int.fed.eauth.va.gov/pkmslogout?filename=btsssint-logout.html';
    var ssoe_qa_logout_url = 'https://login-stg.va.gov/login/signout';
    var ssoe_preprod_logout_url = 'https://preprod.eauth.va.gov/pkmslogout';
    var ssoe_prod_logout_url = 'https://eauth.va.gov/pkmslogout';

    var bts3_dev_portals_url = 'https://dvagov-btsss-dev.dynamics365portals.us';
 var bts3_dev01_portals_url = 'https://dev1-benetravelclaims-va.powerappsportals.us';
 var bts3_dev02_portals_url = 'https://dev2-benetravelclaims-va.powerappsportals.us/';
 var bts3_dev03_portals_url = 'https://dvagov-btsss-dev3.powerappsportals.us/';
 var bts3_qa_portals_url = 'https://dvagov-btsss-qa.dynamics365portals.us';
var bts3_qa01_portals_url = 'https://qa1-benetravelclaims-va.powerappsportals.us';
var bts3_qa02_portals_url = 'https://dvagov-btsss-qa2.powerappsportals.us/';
var bts3_qa03_portals_url = 'https://dvagov-btsss-qa3.powerappsportals.us/';
 var bts3_int_portals_url = 'https://dvagov-btsss-int.dynamics365portals.us';
 var bts3_int01_portals_url = 'https://dvagov-btsss-int1.powerappsportals.us/';
 var bts3_int02_portals_url = 'https://dvagov-btsss-int2.powerappsportals.us/';
 var bts3_int03_portals_url = 'https://dvagov-btsss-int3.powerappsportals.us/';
    var bts3_prod_portals_url = 'https://dvagov-btsss.dynamics365portals.us/';

    var redirect_to_url;
    var frame_logout_url;

   //DEV
   if (window.location.href.indexOf(bts3_dev_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//DEV01
if (window.location.href.indexOf(bts3_dev01_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//DEV02
if (window.location.href.indexOf(bts3_dev02_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//DEV03
if (window.location.href.indexOf(bts3_dev03_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//QA
if (window.location.href.indexOf(bts3_qa_portals_url) > -1) {
    ssoe_logout_url = ssoe_qa_logout_url;
}
else
//QA01
if (window.location.href.indexOf(bts3_qa01_portals_url) > -1) {
    ssoe_logout_url = ssoe_qa_logout_url;
}
else
//QA02
if (window.location.href.indexOf(bts3_qa02_portals_url) > -1) {
    ssoe_logout_url = ssoe_qa_logout_url;
}
else
//QA03
if (window.location.href.indexOf(bts3_qa03_portals_url) > -1) {
    ssoe_logout_url = ssoe_qa_logout_url;
}
else
//INT
if (window.location.href.indexOf(bts3_int_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//INT1
if (window.location.href.indexOf(bts3_int01_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//INT2
if (window.location.href.indexOf(bts3_int02_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//INT3
if (window.location.href.indexOf(bts3_int03_portals_url) > -1) {
    ssoe_logout_url = ssoe_int_logout_url;
}
else
//PROD
if (window.location.href.indexOf(bts3_prod_portals_url) > -1) {
    ssoe_logout_url = ssoe_prod_logout_url;
}
    redirect_to_url = ssoe_logout_url;
    
   console.log("redirect_to_url: " + redirect_to_url);
    var url = redirect_to_url;
 Btsss.Utils.navigateToUrl(url);

});
</script>
	
	<script>
        //this event will update the title of the page based on active breadcrumb
        $('.breadcrumb').ready(function () {
            if ($('.breadcrumb').is(':visible')) {
                document.querySelector('title').innerHTML = ($('.breadcrumb > li.active').text() + "&nbsp;· BTSSS");
            }
        });

        function GoToNewEditor() {
            var editCmsUrlSegment = "EditInCms";
            var currentUrl = window.location.href;
            if (currentUrl.indexOf('?') > -1) {
                var urlSegments = currentUrl.split("?");
                window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname + '?' + urlSegments[1];
            }
            else {
                window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname;
            }
        }
    </script>
	
		
		
	
		
				<script>
					if ('serviceWorker' in navigator) {
						navigator.serviceWorker.getRegistrations().then(function (registrations) {
							for (let registration of registrations) {
								registration.unregister();
							}
						}).catch(function (err) {
							console.log('Service Worker unregister action failed: ', err);
						});
					}
				</script>
			
	
		
	<!--Start Show Session Expire Warning Popup here -->
    
		
</body>
</html>
<!-- Generated at 10/15/2026 6:50:52 AM -->
<!-- Page OK -->

Latest requests

# Url Url Source Date
1 https://dvagov-btsss-qa3.powerapps… 2026-10-15 06:50:52
2 https://www.thebolditalic.com/?gi=… 2026-10-15 06:50:51
3 https://online.27stars.id/ 2026-10-15 06:50:49
4 https://www.texarkanatwins.com/%25… 2026-10-15 06:50:47
5 https://www.thebolditalic.com/?gi=… 2026-10-15 06:50:34
6 https://www.texarkanatwins.com/%25… 2026-10-15 06:50:31
7 http://xudozhka.ru/liks/54718/ 2026-10-15 06:50:27
8 https://www.texarkanatwins.com/%25… 2026-10-15 06:50:12
9 https://www.thebolditalic.com/?gi=… 2026-10-15 06:50:10
10 https://www.thebolditalic.com/?gi=… 2026-10-15 06:50:02
11 https://www.thebolditalic.com/?gi=… 2026-10-15 06:50:02
12 https://www.texarkanatwins.com/%25… 2026-10-15 06:49:55
13 https://www.thebolditalic.com/?gi=… 2026-10-15 06:49:52
14 https://auth.mediacorp.sg/u/login?… 2026-10-15 06:49:46
15 https://ya-chinavisa-4.sos-at-vie-… 2026-10-15 06:49:44
16 https://www.thebolditalic.com/?gi=… 2026-10-15 06:49:43
17 https://www.texarkanatwins.com/%25… 2026-10-15 06:49:41
18 https://socialicus.com/ 2026-10-15 06:49:39
19 https://www.texarkanatwins.com/%25… 2026-10-15 06:49:38
20 https://thebestreputation.com/bran… 2026-10-15 06:49:34