CINXE.COM

Sign In

<!DOCTYPE html> <html lang="en-US"> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=1"/> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <meta http-equiv="cache-control" content="no-cache,no-store"/> <meta http-equiv="pragma" content="no-cache"/> <meta http-equiv="expires" content="-1"/> <meta name='mswebdialog-title' content='Connecting to ANSI ADFS'/> <title>Sign In</title> <script type='text/javascript'> //<![CDATA[ function LoginErrors(){this.userNameFormatError = 'Enter your user ID in the format \u0026quot;domain\\user\u0026quot; or \u0026quot;user@domain\u0026quot;.'; this.passwordEmpty = 'Enter your password.'; this.passwordTooLong = 'Password is too long (\u0026gt; 128 characters).';}; var maxPasswordLength = 128; //]]> </script> <script type='text/javascript'> //<![CDATA[ // Copyright (c) Microsoft Corporation. All rights reserved. function InputUtil(errTextElementID, errDisplayElementID) { if (!errTextElementID) errTextElementID = 'errorText'; if (!errDisplayElementID) errDisplayElementID = 'error'; this.hasFocus = false; this.errLabel = document.getElementById(errTextElementID); this.errDisplay = document.getElementById(errDisplayElementID); }; InputUtil.prototype.canDisplayError = function () { return this.errLabel && this.errDisplay; } InputUtil.prototype.checkError = function () { if (!this.canDisplayError){ throw new Error ('Error element not present'); } if (this.errLabel && this.errLabel.innerHTML) { this.errDisplay.style.display = ''; var cause = this.errLabel.getAttribute('for'); if (cause) { var causeNode = document.getElementById(cause); if (causeNode && causeNode.value) { causeNode.focus(); this.hasFocus = true; } } } else { this.errDisplay.style.display = 'none'; } }; InputUtil.prototype.setInitialFocus = function (input) { if (this.hasFocus) return; var node = document.getElementById(input); if (node) { if ((/^\s*$/).test(node.value)) { node.focus(); this.hasFocus = true; } } }; InputUtil.prototype.setError = function (input, errorMsg) { if (!this.canDisplayError) { throw new Error('Error element not present'); } input.focus(); if (errorMsg) { this.errLabel.innerHTML = errorMsg; } this.errLabel.setAttribute('for', input.id); this.errDisplay.style.display = ''; }; InputUtil.makePlaceholder = function (input) { var ua = navigator.userAgent; if (ua != null && (ua.match(/MSIE 9.0/) != null || ua.match(/MSIE 8.0/) != null || ua.match(/MSIE 7.0/) != null)) { var node = document.getElementById(input); if (node) { var placeholder = node.getAttribute("placeholder"); if (placeholder != null && placeholder != '') { var label = document.createElement('input'); label.type = "text"; label.value = placeholder; label.readOnly = true; label.style.position = 'absolute'; label.style.borderColor = 'transparent'; label.className = node.className + ' hint'; label.tabIndex = -1; label.onfocus = function () { this.nextSibling.focus(); }; node.style.position = 'relative'; node.parentNode.style.position = 'relative'; node.parentNode.insertBefore(label, node); node.onkeyup = function () { InputUtil.showHint(this); }; node.onblur = function () { InputUtil.showHint(this); }; node.style.background = 'transparent'; node.setAttribute("placeholder", ""); InputUtil.showHint(node); } } } }; InputUtil.focus = function (inputField) { var node = document.getElementById(inputField); if (node) node.focus(); }; InputUtil.hasClass = function(node, clsName) { return node.className.match(new RegExp('(\\s|^)' + clsName + '(\\s|$)')); }; InputUtil.addClass = function(node, clsName) { if (!this.hasClass(node, clsName)) node.className += " " + clsName; }; InputUtil.removeClass = function(node, clsName) { if (this.hasClass(node, clsName)) { var reg = new RegExp('(\\s|^)' + clsName + '(\\s|$)'); node.className = node.className.replace(reg, ' '); } }; InputUtil.showHint = function (node, gotFocus) { if (node.value && node.value != '') { node.previousSibling.style.display = 'none'; } else { node.previousSibling.style.display = ''; } }; InputUtil.updatePlaceholder = function (input, placeholderText) { var node = document.getElementById(input); if (node) { var ua = navigator.userAgent; if (ua != null && (ua.match(/MSIE 9.0/) != null || ua.match(/MSIE 8.0/) != null || ua.match(/MSIE 7.0/) != null)) { var label = node.previousSibling; if (label != null) { label.value = placeholderText; } } else { node.placeholder = placeholderText; } } }; //]]> </script> <link rel="stylesheet" type="text/css" href="/adfs/portal/css/style.css?id=EA0C11FE95066E55304C3F948D950AF8751130DD78900CD2117476F8B389531E" /><style>.illustrationClass {background-image:url(/adfs/portal/illustration/illustration.jpg?id=5CDF78E24A9BAC91C699B250C16489B3BFD2B86755A2B00532A800458EF7119E);}</style> </head> <body dir="ltr" class="body"> <div id="noScript" style="position:static; width:100%; height:100%; z-index:100"> <h1>JavaScript required</h1> <p>JavaScript is required. This web browser does not support JavaScript or JavaScript in this web browser is not enabled.</p> <p>To find out if your web browser supports JavaScript or to enable JavaScript, see web browser help.</p> </div> <script type="text/javascript" language="JavaScript"> document.getElementById("noScript").style.display = "none"; </script> <div id="fullPage"> <div id="brandingWrapper" class="float"> <div id="branding"></div> </div> <div id="contentWrapper" class="float"> <div id="content"> <div id="header"> <img class='logoImage' id='companyLogo' src='/adfs/portal/logo/logo.gif?id=A677093F192CE3D69FA350B20794522516E743EF0700E32D5E05135E4D3B69F4' alt='ANSI ADFS'/> </div> <main> <div id="workArea"> <div id="authArea" class="groupMargin"> <div id="loginArea"> <div id="loginMessage" class="groupMargin">Sign in</div> <form method="post" id="loginForm" autocomplete="off" novalidate="novalidate" onKeyPress="if (event && event.keyCode == 13) Login.submitLoginRequest();" action="/adfs/oauth2/authorize/?client_id=ca2ec1b2-3a32-493f-b36a-053057d29fe6&redirect_uri=https%3A%2F%2Fportal.ansi.org%2Fsignin-oidc&response_type=id_token&scope=openid%20profile&response_mode=form_post&nonce=638799254810807382.Y2IxNGZiYzQtOTY1MS00Y2ZjLWEzZTUtYTRkYzY1ZDM4MWJiZGUxZjUwYjktZTk1Mi00Njc1LWJmN2UtNTIyMzY3MWMzNTVj&state=CfDJ8JfLdbLy4K1MkER49m8c0PzoJtgkQxXNjaTcIG3Y9sg81Y9YlxrMg80Ga-zoQEk4nxr8rf_XUZsDZn_EpDoZwpEcaiq-PY3RlSy9DKBSq5dLSZKrqzAmvnFdDsB79Zj86vgSa1doj3KXu6Hd2zWq073_niF8H4PmkTNwKSp0yH6_s6RlraNL11qIDFxmIZYvVMML5r4Y4sSPy5Yq-juzMN4wXtKnMa9UlRsGoPx6OUmOPc3jEO5NAc-GjQ6szr4wb7ioWfCQ58yWrsOWmpJrJ3f_m7W6EXdYPEjh5MUbu3f3lfGnXiMgEr6sR66IhGw17A&x-client-SKU=ID_NET8_0&x-client-ver=7.1.2.0&client-request-id=c2e405e8-7f53-4723-5d2e-0080000000e3" > <div id="error" class="fieldMargin error smallText"> <span id="errorText" for="" aria-live="assertive" role="alert"></span> </div> <div id="formsAuthenticationArea"> <div id="userNameArea"> <label id="userNameInputLabel" for="userNameInput" class="hidden">User Account</label> <input id="userNameInput" name="UserName" type="email" value="" tabindex="1" class="text fullWidth" spellcheck="false" placeholder="someone@example.com" autocomplete="off"/> </div> <div id="passwordArea"> <label id="passwordInputLabel" for="passwordInput" class="hidden">Password</label> <input id="passwordInput" name="Password" type="password" tabindex="2" class="text fullWidth" placeholder="Password" autocomplete="off"/> </div> <div id="kmsiArea" style="display:none"> <input type="checkbox" name="Kmsi" id="kmsiInput" value="true" tabindex="3" /> <label for="kmsiInput">Keep me signed in</label> </div> <div id="submissionArea" class="submitMargin"> <span id="submitButton" class="submit" tabindex="4" role="button" onKeyPress="if (event && event.keyCode == 32) Login.submitLoginRequest();" onclick="return Login.submitLoginRequest();">Sign in</span> </div> </div> <input id="optionForms" type="hidden" name="AuthMethod" value="FormsAuthentication"/> </form> <div id="authOptions"> <form id="options" method="post" action="https://adfs.ansi.org:443/adfs/oauth2/authorize/?client_id=ca2ec1b2-3a32-493f-b36a-053057d29fe6&redirect_uri=https%3A%2F%2Fportal.ansi.org%2Fsignin-oidc&response_type=id_token&scope=openid%20profile&response_mode=form_post&nonce=638799254810807382.Y2IxNGZiYzQtOTY1MS00Y2ZjLWEzZTUtYTRkYzY1ZDM4MWJiZGUxZjUwYjktZTk1Mi00Njc1LWJmN2UtNTIyMzY3MWMzNTVj&state=CfDJ8JfLdbLy4K1MkER49m8c0PzoJtgkQxXNjaTcIG3Y9sg81Y9YlxrMg80Ga-zoQEk4nxr8rf_XUZsDZn_EpDoZwpEcaiq-PY3RlSy9DKBSq5dLSZKrqzAmvnFdDsB79Zj86vgSa1doj3KXu6Hd2zWq073_niF8H4PmkTNwKSp0yH6_s6RlraNL11qIDFxmIZYvVMML5r4Y4sSPy5Yq-juzMN4wXtKnMa9UlRsGoPx6OUmOPc3jEO5NAc-GjQ6szr4wb7ioWfCQ58yWrsOWmpJrJ3f_m7W6EXdYPEjh5MUbu3f3lfGnXiMgEr6sR66IhGw17A&x-client-SKU=ID_NET8_0&x-client-ver=7.1.2.0&client-request-id=c2e405e8-7f53-4723-5d2e-0080000000e3"> <script type="text/javascript"> function SelectOption(option) { var w = document.getElementById('waitingWheelDiv'); if(w) w.style.display = 'inline'; var i = document.getElementById('optionSelection'); i.value = option; document.forms['options'].submit(); return false; } </script> <input id="optionSelection" type="hidden" name="AuthMethod" /> <input id="userNameInputOptionsHolder" name="UserName" value="" type="hidden"/> <div id='authOptionLinks' class='groupMargin'><div id="waitingWheelDiv" style="display: none;"><div id="WaitingWheel"> <!-- NOTE: This style portion is identical to cookie pull page, they are not in shared css file because of legacy dependancies for custom themes--> <!-- CSS for small "waiting" wheel --> <style> #floatingCirclesG { position: relative; width: 125px; height: 125px; margin: auto; transform: scale(0.4); -o-transform: scale(0.4); -ms-transform: scale(0.4); -webkit-transform: scale(0.4); -moz-transform: scale(0.4); } .f_circleG { position: absolute; height: 22px; width: 22px; border-radius: 12px; -o-border-radius: 12px; -ms-border-radius: 12px; -webkit-border-radius: 12px; -moz-border-radius: 12px; animation-name: f_fadeG; -o-animation-name: f_fadeG; -ms-animation-name: f_fadeG; -webkit-animation-name: f_fadeG; -moz-animation-name: f_fadeG; animation-duration: 1.2s; -o-animation-duration: 1.2s; -ms-animation-duration: 1.2s; -webkit-animation-duration: 1.2s; -moz-animation-duration: 1.2s; animation-iteration-count: infinite; -o-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-direction: normal; -o-animation-direction: normal; -ms-animation-direction: normal; -webkit-animation-direction: normal; -moz-animation-direction: normal; } #frotateG_01 { left: 0; top: 51px; animation-delay: 0.45s; -o-animation-delay: 0.45s; -ms-animation-delay: 0.45s; -webkit-animation-delay: 0.45s; -moz-animation-delay: 0.45s; } #frotateG_02 { left: 15px; top: 15px; animation-delay: 0.6s; -o-animation-delay: 0.6s; -ms-animation-delay: 0.6s; -webkit-animation-delay: 0.6s; -moz-animation-delay: 0.6s; } #frotateG_03 { left: 51px; top: 0; animation-delay: 0.75s; -o-animation-delay: 0.75s; -ms-animation-delay: 0.75s; -webkit-animation-delay: 0.75s; -moz-animation-delay: 0.75s; } #frotateG_04 { right: 15px; top: 15px; animation-delay: 0.9s; -o-animation-delay: 0.9s; -ms-animation-delay: 0.9s; -webkit-animation-delay: 0.9s; -moz-animation-delay: 0.9s; } #frotateG_05 { right: 0; top: 51px; animation-delay: 1.05s; -o-animation-delay: 1.05s; -ms-animation-delay: 1.05s; -webkit-animation-delay: 1.05s; -moz-animation-delay: 1.05s; } #frotateG_06 { right: 15px; bottom: 15px; animation-delay: 1.2s; -o-animation-delay: 1.2s; -ms-animation-delay: 1.2s; -webkit-animation-delay: 1.2s; -moz-animation-delay: 1.2s; } #frotateG_07 { left: 51px; bottom: 0; animation-delay: 1.35s; -o-animation-delay: 1.35s; -ms-animation-delay: 1.35s; -webkit-animation-delay: 1.35s; -moz-animation-delay: 1.35s; } #frotateG_08 { left: 15px; bottom: 15px; animation-delay: 1.5s; -o-animation-delay: 1.5s; -ms-animation-delay: 1.5s; -webkit-animation-delay: 1.5s; -moz-animation-delay: 1.5s; } @keyframes f_fadeG { 0% { background-color: rgb(47, 146, 212); } 100% { background-color: rgb(255, 255, 255); } } @-o-keyframes f_fadeG { 0% { background-color: rgb(47, 146, 212); } 100% { background-color: rgb(255, 255, 255); } } @-ms-keyframes f_fadeG { 0% { background-color: rgb(47, 146, 212); } 100% { background-color: rgb(255, 255, 255); } } @-webkit-keyframes f_fadeG { 0% { background-color: rgb(47, 146, 212); } 100% { background-color: rgb(255, 255, 255); } } @-moz-keyframes f_fadeG { 0% { background-color: rgb(47, 146, 212); } 100% { background-color: rgb(255, 255, 255); } } </style> <!-- Div containing small "waiting" wheel --> <div id="floatingCirclesG"> <div class="f_circleG" id="frotateG_01"></div> <div class="f_circleG" id="frotateG_02"></div> <div class="f_circleG" id="frotateG_03"></div> <div class="f_circleG" id="frotateG_04"></div> <div class="f_circleG" id="frotateG_05"></div> <div class="f_circleG" id="frotateG_06"></div> <div class="f_circleG" id="frotateG_07"></div> <div class="f_circleG" id="frotateG_08"></div> </div> </div></div></div> </form> </div> <div id="introduction" class="groupMargin"> </div> <script type="text/javascript"> //<![CDATA[ function Login() { } Login.userNameInput = 'userNameInput'; Login.passwordInput = 'passwordInput'; Login.initialize = function () { var u = new InputUtil(); u.checkError(); u.setInitialFocus(Login.userNameInput); u.setInitialFocus(Login.passwordInput); }(); Login.submitLoginRequest = function () { var u = new InputUtil(); var e = new LoginErrors(); var userName = document.getElementById(Login.userNameInput); var password = document.getElementById(Login.passwordInput); if (!userName.value || !userName.value.match('[@\\\\]')) { u.setError(userName, e.userNameFormatError); return false; } if (!password.value) { u.setError(password, e.passwordEmpty); return false; } if (password.value.length > maxPasswordLength) { u.setError(password, e.passwordTooLong); return false; } document.forms['loginForm'].submit(); return false; }; InputUtil.makePlaceholder(Login.userNameInput); InputUtil.makePlaceholder(Login.passwordInput); //]]> </script> </div> </div> </div> </main> <div id="footerPlaceholder"></div> </div> <footer id="footer"> <div id="footerLinks" class="floatReverse"> <div><span id="copyright">&#169; 2018 Microsoft</span></div> </div> </footer> </div> </div> <script type='text/javascript'> //<![CDATA[ // Copyright (c) Microsoft Corporation. All rights reserved. // This file contains several workarounds on inconsistent browser behaviors that administrators may customize. "use strict"; // iPhone email friendly keyboard does not include "\" key, use regular keyboard instead. // Note change input type does not work on all versions of all browsers. if (navigator.userAgent.match(/iPhone/i) != null) { var emails = document.querySelectorAll("input[type='email']"); if (emails) { for (var i = 0; i < emails.length; i++) { emails[i].type = 'text'; } } } // In the CSS file we set the ms-viewport to be consistent with the device dimensions, // which is necessary for correct functionality of immersive IE. // However, for Windows 8 phone we need to reset the ms-viewport's dimension to its original // values (auto), otherwise the viewport dimensions will be wrong for Windows 8 phone. // Windows 8 phone has agent string 'IEMobile 10.0' if (navigator.userAgent.match(/IEMobile\/10\.0/)) { var msViewportStyle = document.createElement("style"); msViewportStyle.appendChild( document.createTextNode( "@-ms-viewport{width:auto!important}" ) ); msViewportStyle.appendChild( document.createTextNode( "@-ms-viewport{height:auto!important}" ) ); document.getElementsByTagName("head")[0].appendChild(msViewportStyle); } // If the innerWidth is defined, use it as the viewport width. if (window.innerWidth && window.outerWidth && window.innerWidth !== window.outerWidth) { var viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=' + window.innerWidth + ', initial-scale=1.0, user-scalable=1'); } // Gets the current style of a specific property for a specific element. function getStyle(element, styleProp) { var propStyle = null; if (element && element.currentStyle) { propStyle = element.currentStyle[styleProp]; } else if (element && window.getComputedStyle) { propStyle = document.defaultView.getComputedStyle(element, null).getPropertyValue(styleProp); } return propStyle; } function getParameterByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, '\\$&'); var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, ' ')); } // The script below is used for downloading the illustration image // only when the branding is displaying. This script work together // with the code in PageBase.cs that sets the html inline style // containing the class 'illustrationClass' with the background image. var computeLoadIllustration = function () { var branding = document.getElementById("branding"); var brandingDisplay = getStyle(branding, "display"); var brandingWrapperDisplay = getStyle(document.getElementById("brandingWrapper"), "display"); if (brandingDisplay && brandingDisplay !== "none" && brandingWrapperDisplay && brandingWrapperDisplay !== "none") { var newClass = "illustrationClass"; if (branding.classList && branding.classList.add) { branding.classList.add(newClass); } else if (branding.className !== undefined) { branding.className += " " + newClass; } if (window.removeEventListener) { window.removeEventListener('load', computeLoadIllustration, false); window.removeEventListener('resize', computeLoadIllustration, false); window.removeEventListener('customLoad', computeLoadIllustration, false); } else if (window.detachEvent) { window.detachEvent('onload', computeLoadIllustration); window.detachEvent('onresize', computeLoadIllustration); window.detachEvent('onload', customLoad); } } }; function getDomainConfig(locationUrl, referrerUrl) { var config = {}; config.loginMessageText = "Welcome to ANSI"; config.logoImageText = "/adfs/portal/logo/logo.gif"; config.usernameInputPlaceholder = "user@ansi.org"; config.loginType = "Both"; config.portalUrl = ""; config.returnUrl = ""; config.showPrivacy = false; config.showForgotUsername = false; config.showForgotPassword = false; config.showBackButton = false; var domainConfig = [ { url: "", key: "5adeae81-1345-4225-be79-ce471a0dceb4", loginMessage: "Welcome to Audeee Portal Dev", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: false, portalUrl: "", returnUrl: "" }, { url: "crm9dev-1", key: "82907696-faef-4c1a-b2bf-d5d8dc818078", loginMessage: "Welcome to Audeee Portal Dev1", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: false, portalUrl: "https://crm9dev-1.ansi.org:8083", returnUrl: "https://crm9dev-1.ansi.org:8082" }, { url: "crm9dev-2", key: "a670b501-a745-4bb4-8ad3-0dea799798b0", loginMessage: "Welcome to Audeee Portal Dev3", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: false, portalUrl: "https://crm9dev-2.ansi.org:8083", returnUrl: "https://crm9dev-2.ansi.org:8082" }, { url: "crm9dev-6", key: "83685dea-5fcd-416d-8a96-a131eb11b11d", loginMessage: "Welcome to Audeee Portal Dev6", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: false, portalUrl: "https://crm9dev-6.ansi.org:8083", returnUrl: "https://crm9dev-6.ansi.org:8082" }, { url: "audeeedev1", key: "83685dea-5fcd-416d-8a96-a131eb11b11d", loginMessage: "Welcome to Audeee Portal Dev", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: true, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://crm9dev-1.ansi.org:8083", returnUrl: "https://audeeedev1.ansi.org" }, { url: "audeeedev2", key: "83685dea-5fcd-416d-8a96-a131eb11b11d", loginMessage: "Welcome to Audeee Portal Dev", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: true, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://crm9dev-2.ansi.org:8083", returnUrl: "https://audeeedev2.ansi.org" }, { url: "audeeedev6", key: "83685dea-5fcd-416d-8a96-a131eb11b11d", loginMessage: "Welcome to Audeee Portal Dev", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: true, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://crm9dev-6.ansi.org:8083", returnUrl: "https://audeeedev6.ansi.org" }, { url: "audeeedev.ansi.org", key: "83685dea-5fcd-416d-8a96-a131eb11b11d", loginMessage: "Welcome to Audeee Portal Dev", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: true, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://ssoresetdev.ansi.org/audeee", returnUrl: "https://audeeedev.ansi.org" }, { url: "audeeetst.ansi.org", key: "1608953e-433a-49d6-aec3-1acc46f43be2", loginMessage: "Welcome to Audeee Portal Test", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: true, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://ssoresettst.ansi.org/audeee", returnUrl: "https://audeeetst.ansi.org" }, { url: "audeeestg.ansi.org", key: "0bbae9a8-5ea8-4fd0-86b5-23dd1548e334", loginMessage: "Welcome to Audeee Portal Staging", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: true, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://ssoresetstg.ansi.org/audeee", returnUrl: "https://audeeestg.ansi.org" }, { url: "audeee.ansi.org", key: "c4f92e7b-ed0d-4547-bca9-be1e3c270d9b", loginMessage: "Welcome to Audeee Portal", logo: "/adfs/portal/logo/audeee-logo.gif", loginType: "Both", showPrivacy: true, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://ssoreset.ansi.org/audeee", returnUrl: "https://audeee.ansi.org" }, { url: "localhost:7189", key: "15e982eb-74c3-4493-acb6-e0911b308272", loginMessage: "Welcome to ANSI", logo: "/adfs/portal/logo/logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: true, showForgotPassword: true, portalUrl: "https://ssoresetdev.ansi.org/portal", returnUrl: "https://localhost:7189" }, { url: "portaldev.ansi.org", key: "15e982eb-74c3-4493-acb6-e0911b308272", loginMessage: "Welcome to ANSI", logo: "/adfs/portal/logo/logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: true, portalUrl: "https://ssoresetdev.ansi.org/portal", returnUrl: "https://portaldev.ansi.org/myaccount" }, { url: "portaltst.ansi.org", key: "3141cce0-1a11-43c6-98d1-3b72a2a3a9ae", loginMessage: "Welcome to ANSI", logo: "/adfs/portal/logo/logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: true, portalUrl: "https://ssoresettst.ansi.org/portal", returnUrl: "https://portaltst.ansi.org/myaccount" }, { url: "portalstg.ansi.org", key: "f56802c1-5e1a-47c7-b081-46a70e6fbd9b", loginMessage: "Welcome to ANSI", logo: "/adfs/portal/logo/logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: true, portalUrl: "https://ssoresetstg.ansi.org/portal", returnUrl: "https://portalstg.ansi.org/myaccount" }, { url: "portal.ansi.org", key: "ca2ec1b2-3a32-493f-b36a-053057d29fe6", loginMessage: "Welcome to ANSI", logo: "/adfs/portal/logo/logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: true, portalUrl: "https://ssoreset.ansi.org/portal", returnUrl: "https://portal.ansi.org/myaccount" }, { url: "crm9stg.central.ansi.org", key: "crm9stg.central.ansi.org", loginMessage: "Welcome to ANSI CRM Staging", logo: "/adfs/portal/logo/logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: false, portalUrl: "", returnUrl: "" }, { url: "crm9.central.ansi.org", key: "crm9.central.ansi.org", loginMessage: "Welcome to ANSI CRM", logo: "/adfs/portal/logo/logo.gif", loginType: "Both", showPrivacy: false, showForgotUsername: false, showForgotPassword: false, portalUrl: "", returnUrl: "" }, { url: "myworkday.com", key: "myworkday.com", loginMessage: "Welcome to ANSI", logo: "/adfs/portal/logo/logo.gif", loginType: "Email", showPrivacy: false, showForgotUsername: false, showForgotPassword: false, portalUrl: "", returnUrl: "https://www.myworkday.com/ansi/login.htmld" }, ]; for (var i = 0; i < domainConfig.length; i++) { if (locationUrl.indexOf(domainConfig[i].key) > -1 || referrerUrl.indexOf(domainConfig[i].key) > -1 || referrerUrl.indexOf(domainConfig[i].url) > 1) { config.loginMessageText = domainConfig[i].loginMessage; config.logoImageText = domainConfig[i].logo; config.loginType = domainConfig[i].loginType; config.portalUrl = domainConfig[i].portalUrl; config.returnUrl = domainConfig[i].returnUrl; config.showPrivacy = domainConfig[i].showPrivacy; config.showForgotUsername = domainConfig[i].showForgotUsername; config.showForgotPassword = domainConfig[i].showForgotPassword; config.showBackButton = true; } } return config; } // Script is customising a sign-in reset password experiance var customLoad = function () { console.log('START: customLoad'); // **************************************************************************************************** // Determine messages to be displayed // **************************************************************************************************** var locationUrl = window.location.href.toLowerCase(); var referrerUrl = document.referrer.toLowerCase(); var domainConfig = getDomainConfig(locationUrl, referrerUrl); var usernameInputPlaceholder = "user@ansi.org"; var loginMessageText = domainConfig.loginMessageText; var logoImageText = domainConfig.logoImageText; var portalUrl = domainConfig.portalUrl; var returnUrl = domainConfig.returnUrl; var showPrivacy = domainConfig.showPrivacy; var showForgotUsername = domainConfig.showForgotUsername; var showForgotPassword = domainConfig.showForgotPassword; // **************************************************************************************************** // Code to change the theme based on domain // **************************************************************************************************** var loginMessage = document.getElementById("loginMessage"); var logoImage = document.getElementsByClassName('logoImage')[0]; if (loginMessage) { if (loginMessageText != "") { loginMessage.innerHTML = loginMessageText; } else { loginMessage.innerHTML = "Sign in"; } if (loginMessageText.indexOf("Audeee") > -1 && new Date() < new Date("2022/1/16")) { var announcement = document.createElement("div"); announcement.setAttribute("style", "color:red;margin-top:.75em;margin-bottom:1em;font-size:.75em;line-height:1.25em;") announcement.innerHTML = "This website will be undergoing scheduled maintenance Saturday January 15th from approximately 5am ET to 11:59pm ET"; loginMessage.appendChild(announcement); } } if (logoImage) { logoImage.src = logoImageText; } // **************************************************************************************************** // Code to change the username placeholder // **************************************************************************************************** var usernameInput = document.getElementById("userNameInput"); if (usernameInput) { usernameInput.setAttribute("placeholder", usernameInputPlaceholder); } // ****************************************************************************************************Th // Code to change the introduction message // **************************************************************************************************** var introductionDiv = document.getElementById("introduction"); if (introductionDiv && portalUrl && returnUrl && portalUrl != "" && returnUrl != "" && (showPrivacy || showForgotUsername || showForgotPassword)) { introductionDiv.innerHTML = ""; if (showPrivacy) { introductionDiv.innerHTML += "By clicking 'sign in', you accept our "; introductionDiv.innerHTML += "<a target='_blank' href='https://anab.ansi.org/privacy-policy?_gl=1*yjmz5e*_gcl_aw*R0NMLjE2MjIxMjk2MzEuQ2owS0NRandocjJGQmhEYkFSSXNBQ2p3TG8wQWd2T3FPSzhHcTZzWWdacHNLWXNETjdpNjlIV3VEb082MkZqanZFTS11VEpjblRmTlRfd2FBb0szRUFMd193Y0I.&_ga=2.133905293.2011096820.1629731502-1996674824.1620334301'>Privacy Policy</a> and "; introductionDiv.innerHTML += "<a target='_blank' href='https://anab.ansi.org/terms-of-use?_gl=1*1jppgo7*_gcl_aw*R0NMLjE2MjIxMjk2MzEuQ2owS0NRandocjJGQmhEYkFSSXNBQ2p3TG8wQWd2T3FPSzhHcTZzWWdacHNLWXNETjdpNjlIV3VEb082MkZqanZFTS11VEpjblRmTlRfd2FBb0szRUFMd193Y0I.&_ga=2.154947899.2011096820.1629731502-1996674824.1620334301'>Terms of Use</a>." introductionDiv.innerHTML += "<br/><br/>"; } if (showForgotUsername || showForgotPassword) { introductionDiv.innerHTML += "Forgot your "; if (showForgotUsername) introductionDiv.innerHTML += "<a href='" + portalUrl + "/forgot-username?returnurl=" + returnUrl + "'>username</a> or " if (showForgotPassword) introductionDiv.innerHTML += "<a href='" + portalUrl + "/forgot-password?returnurl=" + returnUrl + "'>password?</a>"; } } else if (introductionDiv) { introductionDiv.innerHTML = ""; } // **************************************************************************************************** // Script for update password // **************************************************************************************************** var updatePasswordArea = document.getElementById("updatePasswordArea"); if (locationUrl.indexOf("adfs/portal/updatepassword") != -1 && updatePasswordArea) { var changePasswordHeader = workArea.querySelector("#openingMessage"); var changePasswordNotification = workArea.querySelector("#expiredNotification"); var changePasswordReturnUrl = getParameterByName("returnUrl"); for (var i = 0; i < domainConfig.length; i++) { if (domainConfig[i].returnUrl != "" && (referrerUrl.indexOf(domainConfig[i].returnUrl) > -1 || (changePasswordReturnUrl != null && changePasswordReturnUrl != "" && changePasswordReturnUrl.indexOf(domainConfig[i].returnUrl) > -1))) { logoImageText = domainConfig[i].logo; returnUrl = domainConfig[i].returnUrl; if (returnUrl != "") { var updatePasswordForm = document.getElementById("updatePasswordForm"); if (updatePasswordForm != null) { updatePasswordForm.action = updatePasswordForm.action + "&returnUrl=" + returnUrl; } break; } } } // Hide the cancel button from update password page document.getElementById("submitButton").style.width = "100%"; document.getElementById("cancelButton").style.display = "none"; if (logoImageText != "") { logoImage.src = logoImageText; } if (introductionDiv) { changePasswordHeader.innerHTML = "<font color='red'>Changing your password will subsequently change your ANSI single-sign-on (SSO) credentials for any application that utilizes these SSO credentials.</font><br/><br/>"; changePasswordHeader.innerHTML += "Your password must contain at least 10 characters, 1 uppercase, 1 lowercase, 1 number and 1 non-alphanumerica character."; changePasswordHeader.innerHTML += "<br/><br/>"; if (returnUrl != "") { introductionDiv.innerHTML = "Click <a href='" + returnUrl + "'>here</a> to go back"; } } else { changePasswordHeader.innerHTML = ""; expiredNotification.innerHTML = "Your password is successfully updated.<br/>"; if (returnUrl != "") { expiredNotification.innerHTML += "Click <a href='" + returnUrl + "'>here</a> to go back"; } } } // **************************************************************************************************** // Script for logout // **************************************************************************************************** var signoutArea = document.getElementById("signoutArea"); if ((locationUrl.indexOf("adfs/ls/?wa=wsignout") > -1 || locationUrl.indexOf("adfs/oauth2/logout")) && signoutArea) { var logoutHeader = signoutArea.querySelector("#openingMessage"); var logoutWarning = signoutArea.querySelector("#instruction"); var domainConfig = getDomainConfig(locationUrl, referrerUrl); var logoImageText = domainConfig.logoImageText; var returnUrl = domainConfig.returnUrl; var showBackButton = domainConfig.showBackButton; if (logoImageText != "") { logoImage.src = logoImageText; } if (document.referrer.indexOf("https://www.myworkday.com") > -1) { returnUrl = "https://www.myworkday.com/ansi/login.htmld"; } else if (returnUrl == "" && document.referrer.indexOf("adfs/ls/?wa=wsignout") == -1) { returnUrl = referrerUrl; } if (logoutWarning) { logoutWarning.innerHTML = ""; logoutWarning.innerHTML += "You have succesfully signed out.<br/>"; if (returnUrl != "" && showBackButton != null && showBackButton == true) { logoutWarning.innerHTML += "Click <a href='" + returnUrl + "'>here</a> to go back"; } } } console.log('END: customLoad'); }; if (typeof Login != 'undefined') { console.log('Login Available'); Login.submitLoginRequest = function () { console.log('Start Login'); var u = new InputUtil(); var e = new LoginErrors(); var userName = document.getElementById(Login.userNameInput); var password = document.getElementById(Login.passwordInput); var locationUrl = window.location.href.toLowerCase(); var referrerUrl = document.referrer.toLowerCase(); var domainConfig = getDomainConfig(locationUrl, referrerUrl); var loginType = domainConfig.loginType; if (loginType == "Email") { var validEmailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; if (userName.value && !userName.value.match(validEmailRegex)) { u.setError(userName, e.userNameFormatError); return false; } } else { if (userName.value && !userName.value.match('[@\\\\]')) { var userNameValue = 'ansi\\' + userName.value; document.forms['loginForm'].UserName.value = userNameValue; } } if (!userName.value) { u.setError(userName, e.userNameFormatError); return false; } if (!password.value) { u.setError(password, e.passwordEmpty); return false; } document.forms['loginForm'].submit(); return false; }; } if (typeof UpdatePassword != 'undefined') { console.log('Update Password Available'); UpdatePassword.submitPasswordChange = function () { console.log('Start Update Password'); var u = new InputUtil(); var e = new UpdErrors(); var userNameValue; var userName = document.getElementById(UpdatePassword.userNameInput); var oldPassword = document.getElementById(UpdatePassword.oldPasswordInput); var newPassword = document.getElementById(UpdatePassword.newPasswordInput); var confirmNewPassword = document.getElementById(UpdatePassword.confirmNewPasswordInput); if (!userName.value || !userName.value.match('[@\\\\]')) { userNameValue = 'ansi\\' + userName.value; document.forms['updatePasswordForm'].UserName.value = userNameValue; } //if (userName.value && userName.value.match('[@]')) //{ // var matchresult = userName.value.match('[@]'); // var firstat = matchresult[0]; // var splitresult = userName.value.split(firstat); // userNameValue = 'ansi\\' + splitresult[0]; // document.forms['updatePasswordForm'].UserName.value = userNameValue; //} if (!oldPassword.value) { u.setError(oldPassword, e.oldPasswordEmpty); return false; } if (oldPassword.value.length > maxPasswordLength) { u.setError(oldPassword, e.oldPasswordTooLong); return false; } if (!newPassword.value) { u.setError(newPassword, e.newPasswordEmpty); return false; } if (!confirmNewPassword.value) { u.setError(confirmNewPassword, e.confirmNewPasswordEmpty); return false; } if (newPassword.value.length > maxPasswordLength) { u.setError(newPassword, e.newPasswordTooLong); return false; } if (newPassword.value !== confirmNewPassword.value) { u.setError(confirmNewPassword, e.mismatchError); return false; } var error = document.getElementById('error'); error.innerHTML = ''; return true; } } if (window.addEventListener) { window.addEventListener('resize', computeLoadIllustration, false); window.addEventListener('load', computeLoadIllustration, false); window.addEventListener('load', customLoad, false); } else if (window.attachEvent) { window.attachEvent('onresize', computeLoadIllustration); window.attachEvent('onload', computeLoadIllustration); window.attachEvent('onload', customLoad); } function LoginErrors() { this.userNameFormatError = "Please enter your E-mail address."; this.passwordEmpty = "Enter your password."; } //]]> </script> </body> </html>