github.com/versent/saml2aws@v2.17.0+incompatible/pkg/provider/f5apm/example/loginpage.html (about) 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <meta http-equiv="pragma" content="no-cache"> 6 <meta http-equiv="cache-control" content="no-cache"> 7 <title>federate.example.com</title> 8 <link rel="stylesheet" type="text/css" HREF="/public/include/css/apm.css"> 9 <script language="JavaScript" src="/public/include/js/session_check.js?v=13" ></script> 10 <script language="JavaScript" src="/public/include/js/agent_common.js" ></script> 11 <script language="JavaScript" src="/public/include/js/web_host.js" ></script> 12 <script language="javascript"> 13 <!-- 14 if(!String.prototype.trim){ String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; } 15 16 ///////////////////////////////////////////////////////////////////////// 17 // function to return the customized screen when session expiration 18 // is detected on the client-side 19 ///////////////////////////////////////////////////////////////////////// 20 function SessionExpired_CustomizedScreenGet() 21 { 22 return '<br><h3>Session Expired/Timeout</h3><br>Due to user inactivity, your session expired. Click the following link to start a new session.<br><br><table id="IHoptions"><tr><td><a href="[SESSION_RESTART_URL]" class="option"><img src="/public/images/sq-positive.gif" ></a><a href="[SESSION_RESTART_URL]">Start a new session</a></td></tr></table>'; 23 } 24 25 var globalRestartOnSubmit = false; 26 27 function sessionTimedOut() 28 { 29 // restart session automatically upon "submit" for edge-like clients if logon form is compatibile 30 if (externalWebHost.hasWebLogonResetSession() && logonFormCompatible) { 31 globalRestartOnSubmit = true; 32 } 33 else { 34 // display session expired msg for non-compatible forms or 35 // non-edge clients 36 sessionTimeout.showSplashLayer("MessageDIV", SessionExpired_CustomizedScreenGet()); 37 } 38 } 39 40 /** 41 * Place the focus and init the form fields 42 */ 43 44 if(self != top) { top.location = self.location; } 45 window.onerror=function(){ return function(){ return; } } 46 47 //-------------------------------------------------------------------- 48 var doAutoSubmit = true; 49 50 var globalFormId = 'auth_form'; 51 var globalTableId = 'credentials_table'; 52 var globalSubmitTrId = 'submit_row'; 53 54 var globalSavePasswordCheckbox = null; 55 var logonFormCompatible = false; 56 57 var softTokenInput = null; 58 var softTokenFieldId = ""; 59 var softTokenState = ""; 60 var softTokenNewPIN = ""; 61 var softTokenPINAutoPopulate = false; 62 if( !softTokenState ) { 63 softTokenState = "SECURID_AUTH_STATE_START";} 64 65 var challengeMode = false; 66 67 function getInputField(fieldId) 68 { 69 var form = document.getElementById( globalFormId ); 70 if( form == null ){ 71 return null; 72 } 73 74 if(fieldId == null || fieldId == ""){ 75 return null; 76 } 77 78 var inputs = form.getElementsByTagName("input"); 79 for( var i=0; i<inputs.length; i++ ){ 80 if( inputs[i].name == fieldId){ 81 return inputs[i]; 82 } 83 } 84 return null; 85 } 86 87 function getSoftTokenInput() 88 { 89 return getInputField(softTokenFieldId); 90 } 91 92 function getUsernameInput() 93 { 94 return getInputField("username"); 95 } 96 97 function getPasswordInput() 98 { 99 return getInputField("password"); 100 } 101 102 function edgeClientSoftTokenSupport() 103 { 104 try { 105 return externalWebHost.hasWebLogonSoftTokenSupport(); 106 } catch(e) {} 107 return false; 108 } 109 110 function getSoftTokenPrompt() 111 { 112 if ( softTokenFieldId != "" && edgeClientSoftTokenSupport()) { 113 var div = document.getElementById("formHeaderSoftToken"); 114 if (div) { 115 return div.innerHTML; 116 } 117 } 118 return null; 119 } 120 121 function setSoftTokenChallengeResponse(challengeResponse) 122 { 123 var challengeElements = document.getElementsByName('_F5_challenge'); 124 if((challengeElements.length == 0) || (null == challengeElements[0])) { 125 return; 126 } 127 128 var challengeElement = challengeElements[0]; 129 if(challengeElement.tagName.toLowerCase() == 'select') { 130 var challengeOptions = challengeElement.options; 131 if(null == challengeOptions){ 132 return; 133 } 134 for (var i = 0, optionsLength = challengeOptions.length; i < optionsLength; i++) { 135 if (challengeOptions[i].value == challengeResponse) { 136 challengeElement.selectedIndex = i; 137 break; 138 } 139 } 140 }else if(challengeElement.tagName.toLowerCase() == 'input') { 141 challengeElement.value = challengeResponse; 142 } 143 } 144 145 function OnSubmitEdgeRSASoftToken() 146 { 147 var support = edgeClientSoftTokenSupport(); 148 if( true != support ) { 149 return; 150 } 151 var form = document.getElementById( globalFormId ); 152 if( form == null ){ 153 return; 154 } 155 var inputs = form.getElementsByTagName("input"); 156 157 var hiddenInput = document.createElement("input"); 158 hiddenInput.setAttribute("type", "hidden"); 159 hiddenInput.setAttribute("name", "softTokenError"); 160 //append to form element that you want . 161 form.appendChild(hiddenInput); 162 163 try{ 164 if(softTokenInput != null) { //normal mode 165 // if the client cannot request soft-token PIN, 166 // ask user to enter it in the logon page and pass the value to the client 167 // Otherwise, the client already has the PIN 168 if(!softTokenPINAutoPopulate) { 169 externalWebHost.setWebLogonSoftTokenPIN(softTokenInput.value); 170 } 171 var passcode = externalWebHost.getWebLogonSoftTokenPasscode(); 172 if( passcode ) { 173 softTokenInput.value = passcode; 174 } 175 } else if( challengeMode ) { //challenge mode 176 // If the client can provide response to the challenge, use it instead of user input 177 if(externalWebHost.hasWeblogonSoftTokenChallengeResponse()){ 178 var challengeResponse = externalWebHost.getWeblogonSoftTokenChallengeResponse(); 179 if(null != challengeResponse){ 180 setSoftTokenChallengeResponse(challengeResponse); 181 } 182 }else{ 183 // Request user input by default 184 externalWebHost.setWebLogonSoftTokenPIN(inputs[0].value); 185 186 var passcode = externalWebHost.getWebLogonSoftTokenPasscode(); 187 if( passcode ) { 188 inputs[0].value = passcode; 189 } 190 } 191 192 } 193 hiddenInput.value = externalWebHost.getWebLogonSoftTokenError(); 194 } catch(e) { } 195 196 return; 197 } 198 199 // check whether logon form is compatible with the client for auto-population and auto-submission 200 // only "username", "password" and soft token field (the name is stored in softTokenFieldId ) are supported 201 // fields can be configured in either order, but can only be text, password or checkbox types 202 // form is not considered compatible if it contains any additional fields not supported by the client 203 // The form is compatible even if it contains a subset of the supported fields 204 // In this case the client will auto-populate only those fields 205 function getFormCompatibility() 206 { 207 var form = document.getElementById( globalFormId ); 208 if( form == null ){ 209 return false; 210 } 211 // check if form suites 212 var inputs = []; 213 var inputsTemp = form.getElementsByTagName("input"); 214 // filter submit, reset, hidden and little green men 215 for( var i=0; i<inputsTemp.length; i++ ){ 216 if( inputsTemp[i].type == "text" || inputsTemp[i].type == "password"){ 217 inputs[ inputs.length ] = inputsTemp[i]; 218 } 219 } 220 221 var softTokenSupported = edgeClientSoftTokenSupport() && (null != softTokenInput); 222 // Check if there are any custom fields that are not supported by Edge Client for auto-population and auto-submission 223 for( var i=0; i<inputs.length; i++ ){ 224 if((inputs[i].type == "text" && inputs[i].name == "username") || 225 (inputs[i].type == "password" && inputs[i].name == "password") || 226 (softTokenSupported && inputs[i].type == "password" && inputs[i].name == softTokenInput.name)){ 227 continue; 228 }else { 229 return false; 230 } 231 } 232 return true; 233 } 234 235 function setOrigUriLink() 236 { 237 var params = parseQueryParams(window.location.search.substr(1)); 238 if (!params.hasOwnProperty('ORIG_URI')) { 239 return; 240 } 241 242 var credTable = document.getElementById('credentials_table'); 243 if (credTable == null) { 244 return; 245 } 246 var tBody = credTable.tBodies[0]; 247 if (tBody == null) { 248 return; 249 } 250 251 var trTag = document.createElement("TR"); 252 tBody.insertBefore(trTag, tBody.children[tBody.children.length - 1]); 253 254 var tdTag = document.createElement("TD"); 255 tdTag.setAttribute("class", "credentials_table_unified_cell"); 256 tdTag.setAttribute("colspan", "2"); 257 trTag.appendChild(tdTag); 258 259 var tdText = document.createTextNode("Click here if already logged in "); 260 tdTag.appendChild(tdText); 261 262 var origUri = atob(decodeURIComponent(params['ORIG_URI'])); 263 var tdLink = document.createElement("A"); 264 tdLink.innerHTML = origUri; 265 tdLink.setAttribute("href", origUri); 266 tdTag.appendChild(tdLink); 267 268 } 269 270 function OnLoad() 271 { 272 var header = document.getElementById("credentials_table_header"); 273 var softTokenHeaderStr = getSoftTokenPrompt(); 274 if ( softTokenHeaderStr ) { 275 header.innerHTML = softTokenHeaderStr; 276 } 277 setFormAttributeByQueryParams("auth_form", "action", "/subsession_logon_submit.php3"); 278 setFormAttributeByQueryParams("v2_original_url", "href", "/subsession_logon_submit.php3"); 279 setOrigUriLink(); 280 281 // check if form suites 282 var form = document.getElementById( globalFormId ); 283 if( form == null ){ 284 return; 285 } 286 // check if form suites 287 var inputs = form.getElementsByTagName("input"); 288 // filter submit, reset, hidden and little green men 289 for( var i=0; i<inputs.length; i++ ){ 290 if( ( inputs[i].type == "text" || inputs[i].type == "password" ) && inputs[i].value == "" ){ 291 inputs[i].focus(); 292 if (inputs[i].type == "password") { 293 window.setTimeout( function(elem){ return function(){ elem.blur(); elem.focus(); } }(inputs[i]) , 266 ); 294 } 295 return; 296 } 297 } 298 } 299 300 function disableSubmit(form) 301 { 302 // disable! 303 var inputs = form.getElementsByTagName( "input" ); 304 for( var i=0; i<inputs.length; i++ ){ 305 if( inputs[i].type == "submit" || inputs[i].type == "reset" ){ 306 inputs[i].disabled = true; 307 } 308 } 309 310 return true; 311 } 312 313 //This function is called from Edge Client. Update setWeblogonCallbacks call if renamed 314 function challengeAutoSubmit() 315 { 316 if(!challengeMode) { 317 return false; 318 } 319 320 var form = document.getElementById( globalFormId ); 321 if( form == null ){ 322 return false; 323 } 324 325 disableSubmit(form); 326 327 form.onsubmit(); 328 form.submit(); 329 return true; 330 } 331 332 //This function is called from Edge Client. Update setWeblogonCallbacks call if renamed 333 function weblogonAutoSubmit() 334 { 335 if(!logonFormCompatible){ 336 return false; 337 } 338 339 var form = document.getElementById( globalFormId ); 340 if( form == null ){ 341 return false; 342 } 343 344 // autosubmit check 345 if(externalWebHost.hasWebLogonAutoLogon() && externalWebHost.getWebLogonAutoLogon() && doAutoSubmit){ 346 347 disableSubmit(form); 348 349 form.onsubmit(); 350 form.submit(); 351 return true; 352 }else{ 353 return false; 354 } 355 } 356 357 358 // support for autologon from Client API 359 function checkExternalAddCheckbox() 360 { 361 var checkbox_txt = 'Save Password'; 362 363 if( !logonFormCompatible ){ 364 try { 365 if (externalWebHost.hasWebLogonNotifyUser()){ 366 externalWebHost.WebLogonNotifyUser(); 367 } 368 } catch(e){}; 369 return; 370 } 371 372 // find form 373 var form = document.getElementById( globalFormId ); 374 if( form == null ){ 375 return; 376 } 377 378 // find table 379 var table = document.getElementById( globalTableId ); 380 if( table == null ){ 381 return; 382 } 383 384 // find tr 385 var submitTr = document.getElementById( globalSubmitTrId ); 386 if( submitTr == null ){ 387 return; 388 } 389 390 try { 391 if(externalWebHost.isAvailable()){ 392 // push values 393 var usernameInput = getUsernameInput(); 394 if( null != usernameInput && externalWebHost.hasWebLogonUserName() && usernameInput.value == ""){ 395 usernameInput.value = externalWebHost.getWebLogonUserName(); 396 } 397 398 var passwordInput = getPasswordInput(); 399 var allowSavingPassword = ((null != passwordInput) && (passwordInput.name != softTokenFieldId)); 400 //don't populate RSA SecurID token field with the cached password 401 if(allowSavingPassword) { 402 if( externalWebHost.hasWebLogonPassword() && (passwordInput.value == "")){ 403 passwordInput.value = externalWebHost.getWebLogonPassword(); 404 } 405 }else{ 406 doAutoSubmit = false; 407 } 408 409 // push data to cells 410 if(allowSavingPassword && externalWebHost.isWebLogonSavePasswordAvailable()){ 411 // right - text 412 413 // create cells 414 var newTr = table.insertRow( submitTr.rowIndex ); 415 var leftTd = newTr.insertCell( 0 ); 416 var rightTd = newTr.insertCell( 1 ); 417 418 leftTd.className = "credentials_table_label_cell"; 419 rightTd.className = "credentials_table_field_cell credentials_table_field_checkbox_fix"; 420 421 rightTd.innerHTML = checkbox_txt; 422 // left - checkbox 423 globalSavePasswordCheckbox = document.createElement("input"); 424 globalSavePasswordCheckbox.type = "checkbox"; 425 globalSavePasswordCheckbox.className = "credentials_input_checkbox"; 426 globalSavePasswordCheckbox.value = 1; 427 globalSavePasswordCheckbox = leftTd.appendChild( globalSavePasswordCheckbox ); 428 globalSavePasswordCheckbox.checked = externalWebHost.getWebLogonSavePasswordChecked(); 429 if( globalSavePasswordCheckbox.autocomplete ) { 430 globalSavePasswordCheckbox.autocomplete = "off"; 431 } 432 } 433 434 // autosubmit if possible 435 if(weblogonAutoSubmit()){ 436 return; 437 } 438 } 439 } catch (e) { } 440 } 441 442 function OnSubmit() 443 { 444 // find form 445 var form = document.getElementById( globalFormId ); 446 if( form == null ){ 447 return; 448 } 449 try{ 450 if( externalWebHost.isAvailable() ){ 451 // pass weblogon credentials back to the client 452 if( logonFormCompatible ){ 453 var usernameInput = getUsernameInput(); 454 if( null != usernameInput && externalWebHost.hasWebLogonUserName() ){ 455 externalWebHost.setWebLogonUserName(usernameInput.value); 456 } 457 458 var passwordInput = getPasswordInput(); 459 if( null != passwordInput && externalWebHost.hasWebLogonPassword() ){ 460 externalWebHost.setWebLogonPassword(passwordInput.value); 461 } 462 // pass user decision to save the password back to the client 463 if( externalWebHost.hasWebLogonSavePasswordChecked() ){ 464 externalWebHost.setWebLogonSavePasswordChecked((null != globalSavePasswordCheckbox) && globalSavePasswordCheckbox.checked); 465 } 466 } 467 if (softTokenFieldId != "") { 468 OnSubmitEdgeRSASoftToken(); 469 } 470 } 471 } catch(e) { } 472 473 return; 474 } 475 476 function verifyNewPassword() 477 { 478 var form = document.getElementById( globalFormId ); 479 if( form == null ){ 480 return true; 481 } 482 483 var inputs = form.getElementsByTagName("input"); 484 if( inputs.length >= 2 && inputs[0].name == "_F5_challenge" && inputs[0].type == "password" && inputs[1].name == "_F5_verify_password" && inputs[1].type == "password" ){ 485 if( inputs[0].value != inputs[1].value ){ 486 alert("Password and confirmation do not match."); 487 inputs[0].focus(); 488 return false; 489 } else { 490 // Not sending the second field. 491 inputs[1].disabled = true; 492 493 try{ 494 if( externalWebHost.hasWebLogonPassword() ){ 495 externalWebHost.setWebLogonPassword(inputs[0].value); 496 } 497 } catch(e) { } 498 } 499 } 500 return true; 501 } 502 503 function masterSubmit(form) 504 { 505 if( !verifyNewPassword() /* || ... */){ 506 return false; 507 } 508 509 OnSubmit(); // this required by edge 510 511 if (globalRestartOnSubmit) { 512 try { 513 var usernameInput = getUsernameInput(); 514 var passwordInput = getPasswordInput(); 515 externalWebHost.setWebLogonAutoLogon((usernameInput != null ) && ("" != usernameInput.value) && (null != passwordInput) && ("" != passwordInput.value)); 516 } 517 catch (e) {} 518 // restart session 519 externalWebHost.webLogonResetSession(); 520 return false; 521 } 522 523 disableSubmit(form); 524 return true; 525 } 526 //--> 527 </script> 528 </head> 529 530 <body onload="OnLoad()"> 531 532 533 <!-- CSS Order Is Important, order should be Shared-UI, Shared-Logos, Custom-Skin --> 534 <link id="customcss" rel="stylesheet" type="text/css" href="https://cdn.example.com/websites/globalapm/css/shared-logos-text.css"> 535 <link id="customcss" rel="stylesheet" type="text/css" href="https://cdn.example.com/websites/globalapm/css/shared-ui.css"> 536 <link id="customcss" rel="stylesheet" type="text/css" href="https://cdn.example.com/websites/globalapm/css/federate-skin.css"> 537 538 <meta name="viewport" id="viewport" content="initial-scale=1.0" /> 539 <meta name="robots" context="noindex,nofollow"> 540 <script language="javascript"> 541 //orientation toolbox 542 function setViewport(){ 543 document.getElementById("viewport").setAttribute('content', Math.abs(window.orientation) == 90 ? 'width=device-height, initial-scale=1' : 'width=device-width, initial-scale=1.0' ); 544 } 545 setViewport(); 546 window.onorientationchange = function() { 547 setViewport(); 548 } 549 </script> 550 <table id="page_header"> 551 <tr > 552 <td id="header_leftcell"><img src='/public/images/my/flogo.png'/></td> 553 <td id="new_header_leftcell"><img src='https://cdn.example.com/websites/globalapm/logos/logo-federate.svg'/></td> 554 <td id="header_rightcell"></td> 555 </tr> 556 <tr> 557 <td></td> 558 <td id="maxTimeoutTd"><span id="maxTimeoutTag" title=""></span></td> 559 </tr> 560 </table> 561 <noscript> 562 <div id="noscript_warning_red">JavaScript is not enabled. Please enable JavaScript in your browser or contact your system administrator for assistance.</div> 563 <div id="noscript_warning_newsession">To open a new session, please <A href="/">click here.</A></div> 564 </noscript> 565 566 <table id="main_table" class="logon_page"> 567 <tr> 568 <td id="main_table_info_cell"> 569 <form id="auth_form" name="e1" method="post" onsubmit="javascript: return masterSubmit(this);" autocomplete="off"> 570 <table id="credentials_table"> 571 <tr> 572 <td colspan=2 id="credentials_table_header" ><span class="info-text">Please sign in below</span></td> 573 </tr> 574 <tr> 575 <td colspan=2 id="credentials_table_postheader" ></td> 576 </tr> 577 <tr> 578 <td colspan=2 class="credentials_table_unified_cell" ><label for='input_1' id='label_input_1'>Username</label><input type='text' name='username' class='credentials_input_text' value='' id='input_1' autocomplete='off' autocapitalize='off' /></td> 579 </tr> 580 <tr> 581 <td colspan=2 class="credentials_table_unified_cell" ><label for='input_2' id='label_input_2'>Password</label><input type='password' name='password' class='credentials_input_password' value='' id='input_2' autocomplete='off' autocapitalize='off' /></td> 582 </tr> 583 <tr id="submit_row"> 584 <td class="credentials_table_unified_cell"><input type=submit class="credentials_input_submit" value="Sign In"></td> 585 </tr> 586 <tr> 587 <td colspan=2 id="credentials_table_footer" ></td> 588 </tr> 589 </table> 590 <input type=hidden name="vhost" value="standard"> 591 </form> 592 <script language="javascript"><!--// 593 softTokenInput = getSoftTokenInput(); 594 logonFormCompatible = getFormCompatibility(); 595 // Pass method names to the client for auto-submit triggered by the client 596 externalWebHost.setWeblogonCallbacks( 597 "weblogonAutoSubmit();", 598 "challengeAutoSubmit();" 599 ); 600 601 // Check if the softTokenInput exists or in case of RSA challenge mode 602 if((softTokenFieldId != "") && (null != softTokenInput || challengeMode ) && edgeClientSoftTokenSupport()){ 603 externalWebHost.setWebLogonSoftTokenPrompt(getSoftTokenPrompt()); 604 externalWebHost.setWebLogonSoftTokenState(softTokenState); 605 } 606 607 // Check if the client can ask user for soft-token PIN 608 if((softTokenFieldId != "") && (softTokenInput != null) 609 && edgeClientSoftTokenSupport() 610 && externalWebHost.canRequestWeblogonSoftTokenPIN()){ 611 softTokenInput.readOnly = true; 612 softTokenPINAutoPopulate = true; 613 // No need to request input of RSA PIN, as the client can show PIN input UI if needed, 614 // make the field read-only 615 // set bogus value to display 616 softTokenInput.value = "********"; 617 } 618 619 checkExternalAddCheckbox(); 620 setTimeout(function(){ window.sessionTimeout = new APMSessionTimeout(sessionTimedOut); }, 200); 621 622 function dontChangePasswordClick(){ 623 var checkbox = document.getElementById("dont_change_password_checkbox"); 624 var password = document.getElementById("input_1"); 625 var verify = document.getElementById("input_2"); 626 if( checkbox.checked ){ 627 password.value = ""; 628 password.disabled = true; 629 verify.value = ""; 630 verify.disabled = true; 631 }else{ 632 password.disabled = false; 633 verify.disabled = false; 634 } 635 } 636 637 var finitvalues=['','','','','']; 638 var sessionLogonCustomizations = ["","","","",""]; 639 var sessionLogonCustomizationPairs = [[], [], [], [], []]; 640 for( var i=0; i<sessionLogonCustomizations.length; i++ ){ 641 var pairs = ( sessionLogonCustomizations[i].indexOf(";") == -1 ? [ sessionLogonCustomizations[i] ] : sessionLogonCustomizations[i].trim().split(";") ); 642 for( var j=0; j<pairs.length; j++ ){ 643 if( pairs[j].indexOf("=>") != -1 ){ 644 var pair = pairs[j].split("=>"); 645 sessionLogonCustomizationPairs[i][pair[0]] = pair[1]; 646 } 647 } 648 } 649 650 var sessionLogonValuesets = [ "", "", "", "", "" ]; 651 for( var i=0; i<sessionLogonValuesets.length; i++ ){ 652 var inpx = document.getElementById("input_" + (i+1) ); 653 if( inpx !== null && inpx.tagName.toUpperCase() == "SELECT" ){ 654 if( sessionLogonValuesets[i].trim() != "" ){ 655 inpx.options.length = 0; 656 var options = sessionLogonValuesets[i].trim().split(";"); 657 for( var j=0; j<options.length; j++ ){ 658 inpx.options.add( new Option( options[j], options[j] ) ); 659 } 660 } 661 if( sessionLogonCustomizations[i].trim() != "" ){ 662 for( var j=0; j<inpx.options.length; j++ ){ 663 if( typeof sessionLogonCustomizationPairs[i][ inpx.options[j].value ] != "undefined" ){ 664 inpx.options[j].text = sessionLogonCustomizationPairs[i][ inpx.options[j].value ]; 665 } 666 } 667 } 668 // set value 669 for( var j=0; j<inpx.options.length; j++ ){ 670 if( inpx.options[j].value == finitvalues[i] ){ 671 inpx.value = finitvalues[i]; 672 break; 673 } 674 } 675 }else if( document.getElementById("input_" + (i+1) + "_0" ) ){ // RADIO 676 var initValue = finitvalues[i]; 677 var radio = null; 678 var name = document.getElementById("input_" + (i+1) + "_0" ).name; 679 if( sessionLogonValuesets[i].trim() != "" ){ 680 var parent = document.getElementById( "label_input_" + (i+1) ).parentNode; 681 while( parent.childNodes.length > 1 ){ 682 parent.removeChild( parent.lastChild ); 683 } 684 var options = sessionLogonValuesets[i].trim().split(";"); 685 for( var j=0; j<options.length; j++ ){ 686 var div = parent.appendChild( document.createElement( "div" ) ); 687 var elmdef = document.all && navigator.userAgent.match(/MSIE (\d+)/)[1] < 9 ? "<input type='radio'>" : "input"; 688 var input = div.appendChild( document.createElement( elmdef ) ); 689 if( input.type != 'radio' ){ input.type = 'radio'; } 690 input.id = "input_" + (i+1) + "_" + j; 691 input.name = "name"; 692 input.value = options[j]; 693 var label = div.appendChild( document.createElement( "label" ) ); 694 label.htmlFor = input.id; 695 label.id = "label_" + input.id; 696 label.className = "radio-label"; 697 label.style.display = "inline"; 698 label.innerHTML = options[j]; 699 } 700 } 701 if( sessionLogonCustomizations[i].trim() != "" ){ 702 var j = 0; 703 while( ( radio = document.getElementById("input_" + (i+1) + "_" + j++ ) ) !== null ){ // what number 704 if( typeof sessionLogonCustomizationPairs[i][ radio.value ] != "undefined" ){ 705 document.getElementById("label_input_" + (i+1) + "_" + (j-1) ).innerHTML = sessionLogonCustomizationPairs[i][ radio.value ]; 706 } 707 } 708 } 709 var anyChecked = false, j = 0; 710 while( initValue != "" && ( radio = document.getElementById("input_" + (i+1) + "_" + j++ ) ) !== null ){ 711 radio.checked = ( radio.value == initValue ); 712 if( radio.checked ){ anyChecked = true; } 713 } 714 if( !anyChecked && ( radio = document.getElementById("input_" + (i+1) + "_" + 0 ) ) !== null ){ 715 radio.checked = true; 716 } 717 }else if( inpx !== null && inpx.tagName.toUpperCase() == "INPUT" && inpx.type.toUpperCase() == "CHECKBOX" ){ 718 if( inpx.disabled && finitvalues[i] != "" ){ 719 inpx.checked = true; 720 }else if( !inpx.disabled && inpx.value == "" ){ 721 inpx.value = "1"; 722 } 723 } 724 } 725 --></script> 726 </td> 727 <td id="main_table_image_cell"><img src="/public/images/my/tr.gif"></td></tr> 728 </table> 729 730 <script language="JavaScript" src="https://cdn.example.com/websites/globalapm/js/shared.js" ></script> 731 <script language="JavaScript" src="https://cdn.example.com/websites/globalapm/js/shared-mfapage.js" ></script> 732 <script language="JavaScript" src="https://cdn.example.com/websites/globalapm/js/shared-webtop.js" ></script> 733 <script> 734 if (typeof(mfamethod) != 'undefined' && mfamethod != null) 735 { 736 // Check for browser support of event handling capability 737 if (window.addEventListener) 738 window.addEventListener("load", customizemfapage(), false); 739 else if (window.attachEvent) 740 window.attachEvent("onload", customizemfapage); 741 else window.onload = customizemfapage(); 742 } 743 if (typeof(updatewebtopdiv) != 'undefined' && updatewebtopdiv != null) 744 { 745 // Check for browser support of event handling capability 746 if (window.addEventListener) 747 window.addEventListener("load", customizewebtop(), false); 748 else if (window.attachEvent) 749 window.attachEvent("onload", customizewebtop); 750 else window.onload = customizewebtop(); 751 } 752 </script> 753 <div id="page_footer"><div>Protected using F5 APM. All rights reserved.</div></div> 754 <script type="text/javascript"> 755 function F5_include_JS(jsFile) 756 { 757 document.write('<script type="text/javascript" src="' 758 + jsFile + '"></scr' + 'ipt>'); // <-- IE7 workaround 759 } 760 761 if ("" == "1") { 762 var f5VirtualKeyboardMove = ( "" == 1 ? "1" : "0" ); 763 var f5VirtualKeyboardForceBlur = ( "" == 1 ? "0" : "1" ); 764 function VirtualKeyboard_CustomizedMessageTextGet() 765 { 766 return 'Virtual Keyboard'; 767 } 768 769 function VirtualKeyboard_CustomizedHideTextGet() 770 { 771 return 'Hide Keyboard'; 772 } 773 774 var f5VirtualKeyboardMessageText = VirtualKeyboard_CustomizedMessageTextGet(); 775 var f5VirtualKeyboardHideText = VirtualKeyboard_CustomizedHideTextGet(); 776 F5_include_JS('/public/include/js/vk/f5_vk.js'); 777 } 778 </script> 779 <div id="MessageDIV" class="inspectionHostDIVSmall"></div> 780 <div id="formHeaderSoftToken" style="overflow: hidden; visibility: hidden; height: 0; width: 0;"></div> 781 </body> 782 </html>