PageSourceSearch

https://secure.workbooks.com/javascripts/login_66439.js?76047

js workbooks.com collected 2026-10-01 15:17:32 UTC 9,928 bytes, 57 lines download raw bytes

1var Login=(function(){var loaded=false,bodyClasses,mobileLoginDetails;function getEl(id){return document.getElementById(id);}
2function selectEl(selector){return document.querySelector(selector);}
3function selectEls(selector){return document.querySelectorAll(selector);}
4function handleEmbeddedFrame(){if(parent.frames.length==0){bodyClasses.remove('embedded-login');}}
5function setupPreviewMode(){var els=selectEls('a'),i,len;for(i=0,len=els.length;i<len;i++){els[i].tabIndex=-1;}
6els=selectEls('input');for(i=0,len=els.length;i<len;i++){els[i].disabled=true;}}
7function setupPasswordSubmit(){var submitEl=getEl('submit_button'),passwordEl=getEl('password'),enableHandler;if(passwordEl&&submitEl){enableHandler=function(){var enable=passwordEl.value!=='';submitEl.classList.toggle('inactive-button',!enable);submitEl.disabled=!enable;};passwordEl.addEventListener('change',enableHandler);passwordEl.addEventListener('keyup',enableHandler);enableHandler();}}
8function setupOktaSubmit(){var buttonEl=getEl("okta_link"),wrapEl=buttonEl&&getEl("okta-iss"),inputEl=wrapEl&&getEl("okta-iss-input"),submitEl=inputEl&&getEl("okta-iss-submit"),hiddenEl=submitEl&&getEl("okta-iss-hidden-input"),enableHandler;if(hiddenEl){enableHandler=function(){var validInput=inputEl.value.match(/^(https:\/\/)?([A-Za-z0-9-])+\.okta(preview|-emea)?\.com$/i);if(validInput){hiddenEl.value='https://'+inputEl.value.replace('https://','');}
9submitEl.classList.toggle('inactive-button',!validInput);submitEl.disabled=!validInput;};inputEl.addEventListener('change',enableHandler);inputEl.addEventListener('keyup',enableHandler);buttonEl.addEventListener('click',function(){buttonEl.classList.add('okta-expanded');wrapEl.style.display='inline';inputEl.focus();enableHandler();});}}
10function onLongSubmit(){bodyClasses.add('action-long-submit');}
11function onSubmit(event){var valid=true,targetClassList=event.target&&event.target.classList,currentEl=document.activeElement,els,i,len;if(targetClassList&&targetClassList.contains){if(targetClassList.contains('action-validate-passwords-match')){var passwordEl=getEl('user_password'),confirmEl=getEl('user_password_confirmation');if(passwordEl&&confirmEl){valid=passwordEl.value===confirmEl.value;if(!valid&&(currentEl!==passwordEl&&currentEl!==confirmEl)){passwordEl.focus();}}}}
12bodyClasses.toggle('action-validation-error',!valid);if(valid){bodyClasses.add('action-submitting');if(currentEl){currentEl.blur();}
13els=selectEls('a.action-disable-on-submit');for(i=0,len=els.length;i<len;i++){els[i].tabIndex=-1;}
14els=selectEls('input');for(i=0,len=els.length;i<len;i++){els[i].tabIndex=-1;}
15setTimeout(onLongSubmit,7500);}else{event.preventDefault();return false;}}
16function setupMonitorSubmit(){var submitEls=selectEls('.action-monitor-submit'),i=0,len=submitEls.length,el;for(;i<len;i++){el=submitEls[i];el.addEventListener(el.tagName==='FORM'?'submit':'click',onSubmit);}}
17function setupDefaultFormParams(){var jsEl=getEl('javascript_enabled');if(jsEl){jsEl.value='1';}
18var browserSniffEl=selectEl('.action-sniff-extjs-browser-supports');if(browserSniffEl&&browserSniffEl.tagName==='FORM'&&typeof(Ext)!=='undefined'){var el;if((el=getEl('supports_touch'))){el.value=Ext.supports.Touch;}
19if((el=getEl('browser_user_agent'))){el.value=Ext.browser.userAgent;}
20if((el=getEl('browser_width'))){el.value=document.body.offsetWidth;}
21if((el=getEl('browser_height'))){el.value=document.body.offsetHeight;}}}
22function setupDatabaseSelection(){var dbSelectForm=getEl('dbselect');if(dbSelectForm){new DatabaseSelection(dbSelectForm);}}
23function doCloseWindow(){var win;win=window.open("","_self");win.close();if(!win.closed){bodyClasses.add('action-close-window-fail');}}
24function setupCloseButton(){var closeEls=selectEls('button.action-close-window'),len=closeEls.length;if(len>0){if(window.history.length==1){for(var i=0;i<len;i++){closeEls[i].addEventListener('click',doCloseWindow);}}else{bodyClasses.add('action-close-window-fail');}}}
25function talkToMobileApp(){var canLogin=!!(getEl('authentication')&&getEl('mobile_credential')&&getEl('grant_id'));if(canLogin&&typeof(UserAgentChannel)!=='undefined'){UserAgentChannel.postMessage(navigator.userAgent);}}
26function doSubmit(submitEl){if(submitEl){setTimeout(function(){if(submitEl.tagName==='FORM'){submitEl.submit()
27submitEl.dispatchEvent(new Event('submit'));}else{submitEl.click();}},100);}}
28function detectMobileDevice(){var userAgent=navigator.userAgent||navigator.vendor||window.opera;var mobileRegex=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|windows phone|kindle|silk|mobile/i;return mobileRegex.test(userAgent);}
29function handleSubmitOnLoad(){var submitEl=selectEl('.action-submit-on-load');if(submitEl){doSubmit(submitEl);}}
30function updateMessageText(message){var el=document.querySelector(".action-show-on-link-open");if(!el){return}
31el.innerText=message;}
32function hideLinkLoadingText(){var el=document.querySelector("div.two-column-ct");el.style.display="none";}
33function initiateLoadView(windowUrl,openCallback,openTimeOut){setTimeout(function(){Workbooks.util.LocalStorage.call('loadView',windowUrl,openCallback,openTimeOut);},100);}
34function handleOpenLink(){if(typeof Workbooks==='undefined'||!Workbooks.util||!Workbooks.util.LocalStorage||!selectEl('form.action-open-link')){return;}
35var title=getEl('title'),icon=title&&getEl('icon'),bodyText=icon&&getEl('body_text'),windowUrl=bodyText&&getEl('window_url'),landingPage=windowUrl&&getEl('landing_page');var parameters={title:title.value,icon:icon.value,body:bodyText.value,windowUrl:windowUrl.value};if(!landingPage){return;}
36var onLoadViewRPCTimeout=function(){Workbooks.util.LocalStorage.set('loadViewOnStartup',parameters.windowUrl);window.open(landingPage.value,"_self");}
37var onLoadViewRPCReturnValue=function(){var notificationsAllowed=window.Notification&&window.Notification.permission==="granted";hideLinkLoadingText();if(notificationsAllowed){updateMessageText("Workbooks has opened this record in your existing Workbooks tab.\nYou may close this tab now.");}else{updateMessageText("You may close this tab now. \nEnable desktop notifications to skip this tab next time");}
38Workbooks.util.LocalStorage.call('grabFocus',parameters,function(){if(notificationsAllowed&&window.history.length==1){doCloseWindow();}else{bodyClasses.add('action-close-window-fail');}});}
39if(!("Notification"in window)||detectMobileDevice()){initiateLoadView(parameters.windowUrl,onLoadViewRPCReturnValue,onLoadViewRPCTimeout);return;}
40if(window.Notification.permission==="default"){updateMessageText("Click Allow to enable desktop notifications and to skip this tab the next time you click a Workbooks link.");}
41window.Notification.requestPermission(function(permission){updateMessageText("");initiateLoadView(parameters.windowUrl,onLoadViewRPCReturnValue,onLoadViewRPCTimeout);});}
42function doMobileLogin(credentials,grantId){var loginForm=getEl('authentication'),credentialsEl=getEl('mobile_credential'),grantEl=getEl('grant_id');if(loginForm&&credentialsEl){credentialsEl.value=credentials;if(grantEl&&grantId){grantEl.value=grantId;}
43doSubmit(loginForm);}}
44return{mobileLogin:function(credentials,grantId){if(loaded){doMobileLogin(credentials,grantId);}else{mobileLoginDetails={credentials:credentials,grantId:grantId};}},onDocumentLoad:function(){bodyClasses=document.body.classList;handleEmbeddedFrame();if(bodyClasses.contains('preview-mode')){setupPreviewMode();}else{setupPasswordSubmit();setupOktaSubmit();setupMonitorSubmit();setupDefaultFormParams();setupDatabaseSelection();setupCloseButton();loaded=true;talkToMobileApp();handleSubmitOnLoad();handleOpenLink();if(mobileLoginDetails){doMobileLogin(mobileLoginDetails.credentials,mobileLoginDetails.grantId);delete mobileLoginDetails;}}}}})();document.addEventListener('DOMContentLoaded',Login.onDocumentLoad);function set_mobile_credential(credentials,grantId){Login.mobileLogin(credentials,grantId);}
45var DatabaseSelection=function(dbSelectForm){var radioButtons=dbSelectForm&&dbSelectForm.querySelectorAll('input[name="grant_id"]'),setDefaultContainer=document.getElementById('set_default_container');function getCheckedRadio(){return document.querySelector('input[name="grant_id"]:checked');}
46function cancelEvent(e){if([13,32,37,38,39,40].indexOf(e.keyCode)>-1){e.stopPropagation();e.preventDefault();return false;}
47return true;}
48function getScrollParent(element){var style;for(var parent=element;(parent=parent.parentElement);){style=getComputedStyle(parent);if(/(auto|scroll)/.test(style.overflow+style.overflowY+style.overflowX)){return parent;}}
49return document.body;}
50function scrollIntoViewIfNeeded(target){var scroller=getScrollParent(target),targetTop=target.offsetTop-scroller.offsetTop,targetBottom=target.offsetTop+target.offsetHeight-scroller.offsetTop,scrollOffset=scroller.scrollTop,scrollMax=scrollOffset+scroller.clientHeight;if(targetBottom>scrollMax){target.scrollIntoView({block:"end",inline:"nearest",behavior:"smooth"});}
51if(targetTop<scrollOffset){target.scrollIntoView({block:"start",inline:"nearest",behavior:"smooth"});}}
52function grantSelected(radio){setDefaultContainer.style.visibility='visible';scrollIntoViewIfNeeded(radio.parentElement);}
53function handleKey(e){var selected;switch(e.keyCode){case 13:dbSelectForm.submit()
54dbSelectForm.dispatchEvent(new Event('submit'));break;case 38:selected=getCheckedRadio().parentElement.previousElementSibling;break;case 40:selected=getCheckedRadio().parentElement.nextElementSibling;break;}
55if(selected){selected=selected.querySelector('input[name="grant_id"]');selected.checked=true;grantSelected(selected);}
56return cancelEvent(e);}
57if(radioButtons){grants.focus();grants.addEventListener("keydown",handleKey);radioButtons.forEach(function(radio){radio.addEventListener("change",function(){grantSelected(this);});});setTimeout(function(){scrollIntoViewIfNeeded(getCheckedRadio().parentElement);},100);setDefaultContainer.style.visibility='hidden';}};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.