github.com/versent/saml2aws@v2.17.0+incompatible/pkg/provider/f5apm/example/mfapage.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 select your preferred method for Multi-Factor Authentication</span> 573 <input type="hidden" name="mfa_retry" id="mfa_retry" value="" /></td> 574 </tr> 575 <tr> 576 <td colspan=2 id="credentials_table_postheader" ></td> 577 </tr> 578 <tr> 579 <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_disabled' value='user_name' id='input_1' autocomplete='off' autocapitalize='off' disabled/></td> 580 </tr> 581 <tr> 582 <td colspan=2 class="credentials_table_unified_cell" ><label for='input_3' id='label_input_3'>Multi-Factor Authentication Method</label><select name='mfamethod' id='input_3' class='credentials_input_select' ><option value="push" >push</option><option value="token" >token</option></select></td> 583 </tr> 584 <tr> 585 <td colspan=2 class="credentials_table_unified_cell" ><label for='input_4' id='label_input_4'>One-Time Passcode</label><input type='text' name='mfatoken' class='credentials_input_text' value='' id='input_4' autocomplete='off' autocapitalize='off' /></td> 586 </tr> 587 <tr id="submit_row"> 588 <td class="credentials_table_unified_cell"><input type=submit class="credentials_input_submit" value="Validate"></td> 589 </tr> 590 <tr> 591 <td colspan=2 id="credentials_table_footer" ></td> 592 </tr> 593 </table> 594 <input type=hidden name="vhost" value="standard"> 595 </form> 596 <script language="javascript"><!--// 597 softTokenInput = getSoftTokenInput(); 598 logonFormCompatible = getFormCompatibility(); 599 // Pass method names to the client for auto-submit triggered by the client 600 externalWebHost.setWeblogonCallbacks( 601 "weblogonAutoSubmit();", 602 "challengeAutoSubmit();" 603 ); 604 605 // Check if the softTokenInput exists or in case of RSA challenge mode 606 if((softTokenFieldId != "") && (null != softTokenInput || challengeMode ) && edgeClientSoftTokenSupport()){ 607 externalWebHost.setWebLogonSoftTokenPrompt(getSoftTokenPrompt()); 608 externalWebHost.setWebLogonSoftTokenState(softTokenState); 609 } 610 611 // Check if the client can ask user for soft-token PIN 612 if((softTokenFieldId != "") && (softTokenInput != null) 613 && edgeClientSoftTokenSupport() 614 && externalWebHost.canRequestWeblogonSoftTokenPIN()){ 615 softTokenInput.readOnly = true; 616 softTokenPINAutoPopulate = true; 617 // No need to request input of RSA PIN, as the client can show PIN input UI if needed, 618 // make the field read-only 619 // set bogus value to display 620 softTokenInput.value = "********"; 621 } 622 623 checkExternalAddCheckbox(); 624 setTimeout(function(){ window.sessionTimeout = new APMSessionTimeout(sessionTimedOut); }, 200); 625 626 function dontChangePasswordClick(){ 627 var checkbox = document.getElementById("dont_change_password_checkbox"); 628 var password = document.getElementById("input_1"); 629 var verify = document.getElementById("input_2"); 630 if( checkbox.checked ){ 631 password.value = ""; 632 password.disabled = true; 633 verify.value = ""; 634 verify.disabled = true; 635 }else{ 636 password.disabled = false; 637 verify.disabled = false; 638 } 639 } 640 641 var finitvalues=['user_name','','','','']; 642 var sessionLogonCustomizations = ["","","push=>Safenet Push Notification;token=>Safenet One-Time Passcode","",""]; 643 var sessionLogonCustomizationPairs = [[], [], [], [], []]; 644 for( var i=0; i<sessionLogonCustomizations.length; i++ ){ 645 var pairs = ( sessionLogonCustomizations[i].indexOf(";") == -1 ? [ sessionLogonCustomizations[i] ] : sessionLogonCustomizations[i].trim().split(";") ); 646 for( var j=0; j<pairs.length; j++ ){ 647 if( pairs[j].indexOf("=>") != -1 ){ 648 var pair = pairs[j].split("=>"); 649 sessionLogonCustomizationPairs[i][pair[0]] = pair[1]; 650 } 651 } 652 } 653 654 var sessionLogonValuesets = [ "", "", "", "", "" ]; 655 for( var i=0; i<sessionLogonValuesets.length; i++ ){ 656 var inpx = document.getElementById("input_" + (i+1) ); 657 if( inpx !== null && inpx.tagName.toUpperCase() == "SELECT" ){ 658 if( sessionLogonValuesets[i].trim() != "" ){ 659 inpx.options.length = 0; 660 var options = sessionLogonValuesets[i].trim().split(";"); 661 for( var j=0; j<options.length; j++ ){ 662 inpx.options.add( new Option( options[j], options[j] ) ); 663 } 664 } 665 if( sessionLogonCustomizations[i].trim() != "" ){ 666 for( var j=0; j<inpx.options.length; j++ ){ 667 if( typeof sessionLogonCustomizationPairs[i][ inpx.options[j].value ] != "undefined" ){ 668 inpx.options[j].text = sessionLogonCustomizationPairs[i][ inpx.options[j].value ]; 669 } 670 } 671 } 672 // set value 673 for( var j=0; j<inpx.options.length; j++ ){ 674 if( inpx.options[j].value == finitvalues[i] ){ 675 inpx.value = finitvalues[i]; 676 break; 677 } 678 } 679 }else if( document.getElementById("input_" + (i+1) + "_0" ) ){ // RADIO 680 var initValue = finitvalues[i]; 681 var radio = null; 682 var name = document.getElementById("input_" + (i+1) + "_0" ).name; 683 if( sessionLogonValuesets[i].trim() != "" ){ 684 var parent = document.getElementById( "label_input_" + (i+1) ).parentNode; 685 while( parent.childNodes.length > 1 ){ 686 parent.removeChild( parent.lastChild ); 687 } 688 var options = sessionLogonValuesets[i].trim().split(";"); 689 for( var j=0; j<options.length; j++ ){ 690 var div = parent.appendChild( document.createElement( "div" ) ); 691 var elmdef = document.all && navigator.userAgent.match(/MSIE (\d+)/)[1] < 9 ? "<input type='radio'>" : "input"; 692 var input = div.appendChild( document.createElement( elmdef ) ); 693 if( input.type != 'radio' ){ input.type = 'radio'; } 694 input.id = "input_" + (i+1) + "_" + j; 695 input.name = "name"; 696 input.value = options[j]; 697 var label = div.appendChild( document.createElement( "label" ) ); 698 label.htmlFor = input.id; 699 label.id = "label_" + input.id; 700 label.className = "radio-label"; 701 label.style.display = "inline"; 702 label.innerHTML = options[j]; 703 } 704 } 705 if( sessionLogonCustomizations[i].trim() != "" ){ 706 var j = 0; 707 while( ( radio = document.getElementById("input_" + (i+1) + "_" + j++ ) ) !== null ){ // what number 708 if( typeof sessionLogonCustomizationPairs[i][ radio.value ] != "undefined" ){ 709 document.getElementById("label_input_" + (i+1) + "_" + (j-1) ).innerHTML = sessionLogonCustomizationPairs[i][ radio.value ]; 710 } 711 } 712 } 713 var anyChecked = false, j = 0; 714 while( initValue != "" && ( radio = document.getElementById("input_" + (i+1) + "_" + j++ ) ) !== null ){ 715 radio.checked = ( radio.value == initValue ); 716 if( radio.checked ){ anyChecked = true; } 717 } 718 if( !anyChecked && ( radio = document.getElementById("input_" + (i+1) + "_" + 0 ) ) !== null ){ 719 radio.checked = true; 720 } 721 }else if( inpx !== null && inpx.tagName.toUpperCase() == "INPUT" && inpx.type.toUpperCase() == "CHECKBOX" ){ 722 if( inpx.disabled && finitvalues[i] != "" ){ 723 inpx.checked = true; 724 }else if( !inpx.disabled && inpx.value == "" ){ 725 inpx.value = "1"; 726 } 727 } 728 } 729 --></script> 730 </td> 731 <td id="main_table_image_cell"><img src="/public/images/my/tr.gif"></td></tr> 732 </table> 733 734 <script language="JavaScript" src="https://cdn.example.com/websites/globalapm/js/shared.js" ></script> 735 <script language="JavaScript" src="https://cdn.example.com/websites/globalapm/js/shared-mfapage.js" ></script> 736 <script language="JavaScript" src="https://cdn.example.com/websites/globalapm/js/shared-webtop.js" ></script> 737 <script> 738 if (typeof(mfamethod) != 'undefined' && mfamethod != null) 739 { 740 // Check for browser support of event handling capability 741 if (window.addEventListener) 742 window.addEventListener("load", customizemfapage(), false); 743 else if (window.attachEvent) 744 window.attachEvent("onload", customizemfapage); 745 else window.onload = customizemfapage(); 746 } 747 if (typeof(updatewebtopdiv) != 'undefined' && updatewebtopdiv != null) 748 { 749 // Check for browser support of event handling capability 750 if (window.addEventListener) 751 window.addEventListener("load", customizewebtop(), false); 752 else if (window.attachEvent) 753 window.attachEvent("onload", customizewebtop); 754 else window.onload = customizewebtop(); 755 } 756 </script> 757 <div id="page_footer"><div>Protected using F5 APM. All rights reserved.</div></div> 758 <script type="text/javascript"> 759 function F5_include_JS(jsFile) 760 { 761 document.write('<script type="text/javascript" src="' 762 + jsFile + '"></scr' + 'ipt>'); // <-- IE7 workaround 763 } 764 765 if ("" == "1") { 766 var f5VirtualKeyboardMove = ( "" == 1 ? "1" : "0" ); 767 var f5VirtualKeyboardForceBlur = ( "" == 1 ? "0" : "1" ); 768 function VirtualKeyboard_CustomizedMessageTextGet() 769 { 770 return 'Virtual Keyboard'; 771 } 772 773 function VirtualKeyboard_CustomizedHideTextGet() 774 { 775 return 'Hide Keyboard'; 776 } 777 778 var f5VirtualKeyboardMessageText = VirtualKeyboard_CustomizedMessageTextGet(); 779 var f5VirtualKeyboardHideText = VirtualKeyboard_CustomizedHideTextGet(); 780 F5_include_JS('/public/include/js/vk/f5_vk.js'); 781 } 782 </script> 783 <div id="MessageDIV" class="inspectionHostDIVSmall"></div> 784 <div id="formHeaderSoftToken" style="overflow: hidden; visibility: hidden; height: 0; width: 0;"></div> 785 </body> 786 </html>