PPL==undefined&&(PPL={});PPL.Utility==undefined&&(PPL.Utility={});PPL.Utility.getCookie=function(n){var t=PPL.Utility.ParseNameValues(document.cookie,"; ");return t[n]};PPL.Utility.getQueryString=function(n){var t=document.location.search;return(t===undefined||t===null)&&(t=""),t.length>0&&(t=t.substring(1)),PPL.Utility.ParseNameValues(t,"&")[n]};PPL.Utility.ParseNameValues=function(n,t){var o={},s,h,e,r,u,i,f;if(n===null||n===undefined||n.length===0)return o;for(s=n.split(t),h=s.length,e=0;e<h;e++){i=s[e];f=i.indexOf("=");f<0?(r=i,u=""):(r=i.substr(0,f),u=f<i.length-1?i.substr(f+1,i.length):"");try{r=decodeURIComponent(r.replace("+","%20"))}catch(c){}try{u=decodeURIComponent(u.replace("+","%20"))}catch(c){}o[r]=u}return o};PPL.Utility.MakeEncodedNameValueString=function(n,t){var i,u,r;t===undefined&&(t="&");i="";u=!0;for(r in n)n.hasOwnProperty(r)&&(u?u=!1:i+=t,i+=encodeURIComponent(r)+"="+encodeURIComponent(""+n[r]));return i};PPL.Utility.GetAntiForgeryFormTokenFromPage=function(){let n=$('[name="__RequestVerificationToken"]')[0];return n!==null&&n!==undefined&&(formToken=n.value),formToken||console.warn("Anti-Forgery token could not be found or it is empty"),formToken};PPL.Utility.AntiForgeryPost=function(n,t,i){let r=PPL.Utility.GetAntiForgeryFormTokenFromPage(),u={headers:{__RequestVerificationToken:r}};return n.post(PPL.JsContext.AppRootUrl+t,i,u)};window.PPL===undefined&&(window.PPL={});PPL.LoginSessionManager={};PPL.LoginSessionManager.version="1.2.3";PPL.LoginSessionManager.sessionTrackerKey="PPLSessionTracker";PPL.LoginSessionManager.storageEventTesterKeyPref="PPLTestEventBehvr";PPL.LoginSessionManager.listensToSelf=!1;PPL.LoginSessionManager.dateStampValue=Date.now().valueOf().toString();PPL.LoginSessionManager.selfEventTestKey=PPL.LoginSessionManager.storageEventTesterKeyPref+PPL.LoginSessionManager.dateStampValue+document.location.href;PPL.LoginSessionManager.Inited=!1;PPL.LoginSessionManager.InitializeSessionTracker=function(){window.addEventListener("storage",PPL.LoginSessionManager.TestStorageEventBehavior);localStorage.setItem(PPL.LoginSessionManager.selfEventTestKey,PPL.LoginSessionManager.dateStampValue);setTimeout(function(){PPL.LoginSessionManager.FinishInit(!1)},100)};PPL.LoginSessionManager.TestStorageEventBehavior=function(n){n.newValue!==undefined&&n.key===PPL.LoginSessionManager.selfEventTestKey&&(PPL.LoginSessionManager.listensToSelf=!0,PPL.LoginSessionManager.FinishInit(!0))};PPL.LoginSessionManager.FinishInit=function(n){var i,t,r;PPL.LoginSessionManager.Inited||(window.removeEventListener("storage",PPL.LoginSessionManager.TestStorageEventBehavior),window.removeEventListener("storage",PPL.LoginSessionManager.storageHandler),PPL.LoginSessionManager.ClearStorageSelfTestKeys(),n&&(PPL.LoginSessionManager.Inited=!0),i=PPL.LoginSessionManager.listensToSelf,PPL.LoginSessionManager.LoginChangedWarningUrl=PPL.JsContext.AppRootUrl+"Content/StaticHtml/LoginChangedWarning.html",window.addEventListener("storage",PPL.LoginSessionManager.storageHandler),t=PPL.Utility.getCookie(PPL.LoginSessionManager.sessionTrackerKey),t!==undefined?(r=localStorage.getItem(PPL.LoginSessionManager.sessionTrackerKey),r===null||r===undefined?(i&&(PPL.LoginSessionManager.fromMe=!0),localStorage.setItem(PPL.LoginSessionManager.sessionTrackerKey,t)):t!=r&&(i&&(PPL.LoginSessionManager.fromMe=!0),localStorage.setItem(PPL.LoginSessionManager.sessionTrackerKey,t))):localStorage.hasOwnProperty(PPL.LoginSessionManager.sessionTrackerKey)&&(i&&(PPL.LoginSessionManager.fromMe=!0),localStorage.removeItem(PPL.LoginSessionManager.sessionTrackerKey)))};PPL.LoginSessionManager.ClearStorageSelfTestKeys=function(){var i,n,t;localStorage.removeItem(PPL.LoginSessionManager.selfEventTestKey);i=PPL.LoginSessionManager.dateStampValue-1e3;for(n in localStorage)localStorage.hasOwnProperty(n)&&n.indexOf(PPL.LoginSessionManager.storageEventTesterKeyPref)==0&&(t=new Date(parseInt(localStorage.getItem(n))).valueOf(),(isNaN(t)||t<=i)&&localStorage.removeItem(n))};PPL.LoginSessionManager.storageHandler=function(n){n.key==PPL.LoginSessionManager.sessionTrackerKey&&(PPL.LoginSessionManager.listensToSelf&&PPL.LoginSessionManager.fromMe||(document.location.href=PPL.LoginSessionManager.LoginChangedWarningUrl),PPL.LoginSessionManager.listensToSelf&&(PPL.LoginSessionManager.fromMe=!1))};PPL.LoginSessionManager.DisplayTimingOutDialog=function(){$("#confirm").modal({close:!1,escClose:!1,position:["20%"],overlayId:"confirm-overlay",containerId:"confirm-container",onShow:PPL.LoginSessionManager._TimingOutDialogOnShow,modal:!0,zIndex:100501})};PPL.LoginSessionManager._SetCountDownMessage=function(n){var t=n%60,i;t=t<10?"0"+t:t.toString();i=Math.floor(n/60);$("#sessionTimingOutMessageDiv").html("Your session will expire in "+i+":"+t+" minutes. Would you like to continue?")};PPL.LoginSessionManager._SetAlreadyExpiredMessage=function(n){$("#sessionTimingOutMessageDiv").html(n);$("#confirm BUTTON.yes, #confirm BUTTON.no").hide();$("#confirm BUTTON.session-expired").show()};PPL.LoginSessionManager._TimingOutDialogCountDownTimer=function(){PPL.LoginSessionManager._TimingOutDialogCtxt.CountDownSecs-=1;PPL.LoginSessionManager._TimingOutDialogCtxt.CountDownSecs>0?PPL.LoginSessionManager._SetCountDownMessage(PPL.LoginSessionManager._TimingOutDialogCtxt.CountDownSecs):(PPL.LoginSessionManager._ClearCountDownTimer(),PPL.LoginSessionManager._SetAlreadyExpiredMessage("Session count down expired!"))};PPL.LoginSessionManager._ClearCountDownTimer=function(){PPL.LoginSessionManager._TimingOutDialogCtxt.countDownTimer!==null&&(clearInterval(PPL.LoginSessionManager._TimingOutDialogCtxt.countDownTimer),PPL.LoginSessionManager._TimingOutDialogCtxt.countDownTimer=null)};PPL.LoginSessionManager._CloseDialog=function(){var n=PPL.LoginSessionManager._TimingOutDialogCtxt;n&&(n.modal&&n.modal.close(),PPL.LoginSessionManager._ClearCountDownTimer())};PPL.LoginSessionManager.PingSession=function(){PPL.LoginSessionManager._TimingOutDialogCtxt.InProgressImg.css("display","block");$.get(PPL.LoginSessionManager.pingSessionUrl).done(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch(t){n=null}n&&n.IsAuthenticated&&n.Status=="Success"?(PPL.LoginSessionManager._CloseDialog(),PPL.JsContext.AuthExpiresInSecs=n.AuthExpiresInSecs,PPL.LoginSessionManager.SetTimeOutToDisplayWarning()):(PPL.LoginSessionManager._ClearCountDownTimer(),PPL.LoginSessionManager._SetAlreadyExpiredMessage("You are already logged out of your session!"))}).always(function(){PPL.LoginSessionManager._TimingOutDialogCtxt.InProgressImg.css("display","none")}).fail(PPL.LoginSessionManager._DisplayAjaxFailure)};PPL.LoginSessionManager._TimingOutDialogOnShow=function(){var t=this,n;t.location=top.window;n=PPL.LoginSessionManager._TimingOutDialogCtxt={};n.modal=t;n.InProgressImg=$("#confirm #InProgressGif");n.CountDownSecs=Math.round((PPL.JsContext.LoginExpires-(new Date).getTime())/1e3);n.CountDownSecs<0&&(n.CountDownSecs=0);PPL.LoginSessionManager._SetCountDownMessage(n.CountDownSecs);n.countDownTimer=setInterval(PPL.LoginSessionManager._TimingOutDialogCountDownTimer,1e3);$("#confirm BUTTON.session-expired").click(function(){PPL.LoginSessionManager._ClearCountDownTimer();PPL.LoginSessionManager._TimingOutDialogCtxt.InProgressImg.css("display","block");$.get(PPL.LoginSessionManager.pingSessionUrl).done(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch(t){n=null}n&&n.IsAuthenticated&&n.Status=="Success"?(PPL.LoginSessionManager._CloseDialog(),PPL.JsContext.AuthExpiresInSecs=n.AuthExpiresInSecs,PPL.LoginSessionManager.SetTimeOutToDisplayWarning(),alert("You are still logged in due to other activity in other windows or tabs")):top.window.location.href=PPL.JsContext.LoginPageUrlWithVanity}).always(function(){PPL.LoginSessionManager._TimingOutDialogCtxt.InProgressImg.css("display","none")}).fail(PPL.LoginSessionManager._DisplayAjaxFailure)});$("#confirm BUTTON.yes").click(PPL.LoginSessionManager.PingSession);$("#confirm BUTTON.no").click(function(){PPL.LoginSessionManager._ClearCountDownTimer();PPL.LoginSessionManager._TimingOutDialogCtxt.InProgressImg.css("display","block");$.get(PPL.LoginSessionManager.logOutAsyncUrl).done(function(){top.window.location=PPL.JsContext.LoginPageUrlWithVanity}).always(function(){PPL.LoginSessionManager._TimingOutDialogCtxt.InProgressImg.css("display","none")}).fail(PPL.LoginSessionManager._DisplayAjaxFailure)})};PPL.LoginSessionManager._DisplayAjaxFailure=function(n,t){alert("Error received while connecting server: "+t)};PPL.LoginSessionManager.SetTimeOutToDisplayWarning=function(){var t=Math.round(PPL.JsContext.AuthExpiresInSecs*1e3),n;PPL.JsContext.LoginExpires=(new Date).getTime()+t;n=t-PPL.JsContext.MinsWarnBeforeSessionTimesOut*6e4;n<0&&(n=0);PPL.LoginSessionManager._dialogTimeOut&&(clearTimeout(PPL.LoginSessionManager._dialogTimeOut),PPL.LoginSessionManager._CloseDialog());PPL.LoginSessionManager._dialogTimeOut=setTimeout(PPL.LoginSessionManager.DisplayTimingOutDialog,n)};PPL.LoginSessionManager.InitializeTimeOutWarning=function(){var i,r,t,n;PPL.JsContext.IsAuthenticated&&document.location.href.indexOf("/logout.aspx")===-1&&(i=PPL.JsContext.AppRootUrl,PPL.LoginSessionManager.pingSessionUrl=i+"WebPages/Common/Session/PingSession.ashx",PPL.LoginSessionManager.logOutAsyncUrl=i+"WebPages/Common/Session/LogOutAsync.ashx",r=document.createDocumentFragment(),t=document.createElement("div"),r.appendChild(t),t.id="confirm",t.setAttribute("role","dialog"),t.setAttribute("aria-labelledby","header"),t.setAttribute("aria-describedby","message"),n=document.createElement("div"),n.setAttribute("class","header"),n.innerHTML="<span>PCG Web Portal<\/span>",t.appendChild(n),n=document.createElement("div"),n.id="sessionTimingOutMessageDiv",n.setAttribute("class","message"),t.appendChild(n),n=document.createElement("div"),n.setAttribute("class","spacer"),n.innerHTML='<img alt="Request in progress" id="InProgressGif" src="'+i+'Content/images/ajax-loader.gif" style="display:none; margin-left: auto;margin-right:auto" />',t.appendChild(n),n=document.createElement("div"),n.setAttribute("class","buttons"),n.innerHTML='<button class="yes">Continue Working<\/button><button class="no">Close Session<\/button><button class="session-expired" style="display: none;">OK<\/button>',t.appendChild(n),n=document.createElement("div"),n.setAttribute("style","display:none"),n.innerHTML='<img id="Img1" src="'+i+'images/header.gif"/><img id="Img2" src="'+i+'images/button.gif"/>',t.appendChild(n),document.body.appendChild(r),PPL.LoginSessionManager.InitWithFreshAuthExpiration())};PPL.LoginSessionManager.InitWithFreshAuthExpiration=function(){var n=new XMLHttpRequest;n.onreadystatechange=function(t){if(n.readyState==4&&n.status=="200"){var t=n.responseText;if(typeof t=="string")try{t=JSON.parse(t)}catch(i){t=null}t&&t.IsAuthenticated&&t.Status=="Success"?(PPL.JsContext.AuthExpiresInSecs=t.AuthExpiresInSecs,PPL.LoginSessionManager.SetTimeOutToDisplayWarning()):(alert("You are logged out of your session due to inactivity or logging out on another browser window sharing this session!"),top.window.location.href=PPL.JsContext.LoginPageUrlWithVanity)}};n.open("GET",PPL.LoginSessionManager.pingSessionUrl+"?"+(new Date).getTime());n.send()};PPL.LoginSessionManager.PageShowHandlerForBFCache=function(n){n.persisted&&PPL.LoginSessionManager.InitWithFreshAuthExpiration()};window.addEventListener("DOMContentLoaded",PPL.LoginSessionManager.InitializeSessionTracker);window.addEventListener("DOMContentLoaded",PPL.LoginSessionManager.InitializeTimeOutWarning);window.addEventListener("pageshow",PPL.LoginSessionManager.PageShowHandlerForBFCache)