11 $masterKey =
'ndcng/Mwln#TR-3APMkxf68MaFWeaXaD';
13 $monLibrary = dirname(__FILE__) .
"/../library";
14 $sharedLibrary = dirname(__FILE__) .
"/../../shared/library";
15 $eformsLibrary = dirname(__FILE__) .
"/../../eforms/library";
16 require_once(
"$monLibrary/cu_top.i");
17 require_once(
"$monLibrary/monitorView.i");
18 require_once(
"$monLibrary/ck_hticket.i");
19 require_once(
"$sharedLibrary/commonJsFunctions.i");
21 require_once(
"$eformsLibrary/lnappfunctions.i");
23 if (!CheckPerm($link, $Hu,
'loanAppConfig', $_SERVER[
'REMOTE_ADDR'])) {
26 header(
"Location: /hcuadm/hcu_noperm.prg");
31 $dataFile=
"lnapp.data";
34 dms_import_v2($DATA_PARAMETERS,
"TOP_LEVEL", array(
"user_name" =>
"string"));
35 $uncasedCu= $DATA_PARAMETERS[
"TOP_LEVEL"][
"user_name"];
36 $cu= strtoupper($uncasedCu);
40 $hashCu = encrypt($cu, $masterKey);
42 $strPos = strpos($_SERVER[
'SERVER_NAME'],
".");
43 $homeHost = substr($_SERVER[
'SERVER_NAME'], 0, $strPos);
45 $sampleURL =
"$produrl/eforms/LoanApp.prg?id=" . urlencode($hashCu) .
"&appinit=1";
46 $sampleSSOURL =
"$produrl/eforms/LoanApp.prg?id=" . urlencode($hashCu) .
"&appinit=1&f=hbssouser";
49 $portalFileName =
'lnappCuPortal.html';
50 $fragMntcLink =
"$produrl/hcuadm/Fragmntc.prg?user_name=" . $uncasedCu;
54 $fragExists = is_readable(escapeshellcmd(
"/home/$uncasedCu/public_html/{$portalFileName}"));
58 $fileLink =
"<a class=\"link\" href=\"{$fragMntcLink}&act=Edit&f={$portalFileName}\">Edit Fragment</a> | 59 <a class=\"link\" href=\"{$fragMntcLink}&act=Delete&f={$portalFileName}\">Delete Fragment</a> ";
63 $fileLink =
"<a class=\"link\" href=\"{$fragMntcLink}&act=Create&f={$portalFileName}\">Edit Fragment</a>";
65 $title=
"$cu Loan Maintenance";
66 printMonitorPageTop($title, $homecuKendoVersion, $cloudfrontDomainName);
71 border-color: rgb(204, 204, 204);
72 background-color: rgb(238, 238, 238);
74 color: rgb(51, 131, 187) !important;
76 font-family:
'Trebuchet MS',
'Lucida Grande', Verdana, Arial, sans-serif;
81 .popupForm .grid_12, .formContainer .grid_12 {
85 .k-context-menu .k-item, .k-context-menu {
86 width: 150px !important;
90 padding-top: 0px !important;
91 padding-bottom: 0px !important;
95 list-style-position: inside;
103 <script type=
"text/javascript">
107 getErrorsAreShownFunction();
108 getAddMinifiedActionStyleFunction();
109 getEscapeHTMLFunction();
110 getShowSQLFunction($showSQL);
111 getSetupValidatorInGridFunction();
112 getUseValidatorInGridFunction();
113 getShowWaitFunctions();
114 getContextMenuForSingleLevelGrid();
117 function initAccordion()
119 var accordion= $(
"#accordion").kendoPanelBar({}).data(
"kendoPanelBar");
120 $(
".listExpand:eq(0)").html($(
"#list1Template").html());
121 $(
".listExpand:eq(1)").html($(
"#list2Template").html());
124 function initOptionsGrid()
126 var initialized=
false, configDDL= [], configLists= [];
128 var configOptionsGrid= $(
"#configOptionsGrid").kendoGrid({
132 url:
"/hcuadm/<?php echo $dataFile; ?>?operation=readOptions",
137 url:
"/hcuadm/<?php echo $dataFile; ?>?operation=createOption",
142 url:
"/hcuadm/<?php echo $dataFile; ?>?operation=updateOption",
146 parameterMap:
function (data, type) {
148 parameters= {cu:
"<?php echo $cu; ?>"};
151 parameters.value= data.value;
152 parameters.configId= data.configId;
154 console.log(parameters);
163 configId: {type:
"string"},
164 configText: {type:
"string"},
165 type: {type:
"string"},
166 value: {type:
"string"},
167 disabled: {type:
"boolean"}
170 parse:
function (data) {
174 if (data.operation ==
"read")
176 $(
"#invalidRequestServerSide").val(errorsAreShown(data,
"formValidateMainDiv"));
177 configDDL= data.configDDL;
178 configLists= data.configLists;
182 $(
"#invalidRequestServerSide").val(errorsAreShown(data,
"formValidatePopupDiv"));
189 {field:
"configText", title:
"Option"},
190 {field:
"value", title:
"Value"}
192 toolbar: [{name:
"create", text:
""}],
195 template: kendo.template($(
"#configOptionsPopupTemplate").html()),
206 setupValidatorInGrid(e);
208 $(
"#valueTextDiv textarea").blur(
function () {
209 e.model.value= $(
this).val();
213 $(
"#valueUrlDiv input").blur(
function () {
214 e.model.value= $(
this).val();
218 $(
"#valueBooleanDiv input").click(
function () {
219 e.model.value= $(
this).prop(
"checked") ?
"1" :
"0";
223 var valueDDL= $(
"#valueListDiv div").kendoDropDownList({
228 filter:
"startswith",
231 e.model.value= this.value();
233 dataBound:
function() {
234 this.value(e.model.value);
236 }).data(
"kendoDropDownList");
240 $(
".k-window-title:visible").text(
"Add Option");
241 $(
"#optionLabel").
remove();
242 $(
"#optionDDL").show();
245 var data= this.dataSource.data();
246 var limitedConfigDDL= [];
247 for(var i=0; i!= data.length; i++)
249 lookup[data[i].configId]=
true;
251 for (var i=0; i!= configDDL.length; i++)
253 if (typeof(lookup[configDDL[i].value]) ==
"undefined")
254 limitedConfigDDL.push(configDDL[i]);
256 var optionChange=
function () {
257 var dataItem= this.dataItem();
258 if (dataItem !=
null)
260 e.model.type= dataItem.type;
261 e.model.configId= dataItem.value;
262 e.model.configText= dataItem.text;
264 switch(dataItem.type)
267 $(
"#valueBooleanDiv").show();
268 $(
".valueDiv:not(#valueBooleanDiv)").hide();
270 if (typeof(dataItem.disabled) !=
"undefined" && dataItem.disabled)
271 $(
"#valueBooleanDiv input").prop(
"disabled",
true);
274 $(
"#valueBooleanDiv input").prop(
"disabled",
false);
275 if (typeof(dataItem.defaultValue) !=
"undefined" && dataItem.defaultValue ==
"true")
277 $(
"#valueBooleanDiv input").prop(
"checked",
true);
282 $(
"#valueBooleanDiv input").prop(
"checked",
false);
289 $(
"#valueListDiv").show();
290 $(
".valueDiv:not(#valueListDiv)").hide();
292 valueDDL.dataSource.data(typeof(configLists[dataItem.value]) ==
"undefined" ? [] : configLists[dataItem.value]);
294 if (typeof(dataItem.disabled) !=
"undefined" && dataItem.disabled)
295 valueDDL.enable(
false);
298 valueDDL.enable(
true);
299 if (typeof(dataItem.defaultValue) !=
"undefined")
300 valueDDL.value(dataItem.defaultValue);
304 $(
"#valueUrlDiv").show();
305 $(
".valueDiv:not(#valueUrlDiv)").hide();
307 if (typeof(dataItem.disabled) !=
"undefined" && dataItem.disabled)
308 $(
"#valueUrlDiv input").prop(
"disabled",
true);
311 $(
"#valueUrlDiv input").prop(
"disabled",
false);
312 if (typeof(dataItem.defaultValue) !=
"undefined")
313 $(
"#valueUrlDiv input").val(dataItem.defaultValue);
318 $(
"#valueTextDiv").show();
319 $(
".valueDiv:not(#valueTextDiv)").hide();
321 if (typeof(dataItem.disabled) !=
"undefined" && dataItem.disabled)
322 $(
"#valueTextDiv textarea").prop(
"readonly",
true);
325 $(
"#valueTextDiv textarea").prop(
"readonly",
false);
326 if (typeof(dataItem.defaultValue) !=
"undefined")
327 $(
"#valueUrlDiv input").val(dataItem.defaultValue);
333 var optionDDL= $(
"#optionDDL").kendoDropDownList({
335 data: limitedConfigDDL,
340 value: {type:
"string"},
341 text: {type:
"string"},
342 type: {type:
"string"},
343 defaultValue: {type:
"string"},
344 disabled: {type:
"boolean"}
349 filter:
"startswith",
350 dataTextField:
"text",
351 dataValueField:
"value",
352 change: optionChange,
353 dataBound: optionChange
354 }).data(
"kendoDropDownList");
358 $(
".k-window-title:visible").text(
"Edit Option");
359 $(
"#optionLabel").show();
360 $(
"#optionDDL").
remove();
365 $(
"#valueBooleanDiv").show();
366 $(
".valueDiv:not(#valueBooleanDiv)").
remove();
368 if (e.model.value ==
"1")
369 $(
"#valueBooleanDiv input").prop(
"checked",
true);
370 if (e.model.disabled)
371 $(
"#valueBooleanDiv input").prop(
"disabled",
true);
374 $(
"#valueListDiv").show();
375 $(
".valueDiv:not(#valueListDiv)").
remove();
377 valueDDL.dataSource.data(typeof(configLists[e.model.configId]) ==
"undefined" ? [] : configLists[e.model.configId]);
378 valueDDL.text(e.model.value);
380 if (e.model.disabled)
381 valueDDL.enable(
false);
384 $(
"#valueUrlDiv").show();
385 $(
".valueDiv:not(#valueUrlDiv)").
remove();
387 $(
"#valueUrlDiv input").val(e.model.value);
389 if (e.model.disabled)
390 $(
"#valueUrlDiv input").prop(
"disabled",
true);
394 $(
"#valueTextDiv").show();
395 $(
".valueDiv:not(#valueTextDiv)").
remove();
397 $(
"#valueTextDiv textarea").val(e.model.value);
399 if (e.model.disabled)
400 $(
"#valueTextDiv textarea").prop(
"readonly",
true);
405 if (e.model.type ==
"boolean" && (typeof(e.model.value) ==
"undefined" || e.model.value.trim() ==
""))
410 useValidatorInGrid(e);
412 dataBound:
function (e) {
413 fullContextMenu.gridDatabound(initialized);
416 addMinifiedActionStyle(
this,
true);
420 cancel:
function (e) {
422 fullContextMenu.gridCancel();
426 }).data(
"kendoGrid");
428 var fullContextMenu=
new getFullContextMenuSingle(
"configOptionsGrid",
"configOptionsContextMenu",
"configOptionsDeleteDialog",
"configId",
429 "/hcuadm/<?php echo $dataFile; ?>?operation=deleteOption&cu=<?php echo $cu; ?>");
432 function initLoanApplicationsGrid()
434 var initialized=
false, templateDDLData= [];
435 var loanAppGrid= $(
"#loanAppGrid").kendoGrid({
439 url:
"/hcuadm/<?php echo $dataFile; ?>?operation=readLoanApplications",
444 url:
"/hcuadm/<?php echo $dataFile; ?>?operation=createLoanApplication",
449 url:
"/hcuadm/<?php echo $dataFile; ?>?operation=updateLoanApplication",
453 parameterMap:
function (data, type) {
455 var parameters=
null;
457 parameters= {cu:
"<?php echo $cu; ?>"};
460 parameters= {title: data.title, fragment: data.fragment};
461 if (type ==
"create")
463 parameters.cu=
"<?php echo $cu; ?>";
464 parameters.templateId= data.templateId;
468 parameters.loanId= data.loanId;
478 loanId: {type:
"string"},
479 title: {type:
"string"},
480 fragment: {type:
"string"},
481 lastModified: {type:
"date"}
484 parse:
function (data) {
488 if (data.operation ==
"read")
490 $(
"#invalidRequestServerSide").val(errorsAreShown(data,
"formValidateMainDiv"));
491 templateDDLData= data.templateDDL;
495 $(
"#invalidRequestServerSide").val(errorsAreShown(data,
"formValidatePopupDiv"));
496 data.record[0].lastModified=
new Date();
499 templateDDLData.splice(templateDDLData.length-1, 0, {text: data.record[0].title, value: data.record[0].loanId});
506 {field:
"loanId", title:
"#", width:
"85px"},
507 {field:
"title", title:
"Title"},
508 {field:
"lastModified", title:
"Updated", format:
"{0:MM/dd/yy}", width:
"75px"},
509 {field:
"fragment", title:
"Fragment"}
511 toolbar: [{name:
"create", text:
""}],
514 template: kendo.template($(
"#loanApplicationPopupTemplate").html()),
526 setupValidatorInGrid(e);
530 $(
".k-window-title:visible").text(
"Add Loan Application");
531 $(
"#templateDDLRow").show();
532 var templateDDL= $(
"#templateDDL").kendoDropDownList({
534 data: templateDDLData,
539 value: {type:
"number"},
540 text: {type:
"string"}
545 dataTextField:
"text",
546 dataValueField:
"value",
547 filter:
"startswith",
549 e.model.templateId= this.value();
551 dataBound:
function() {
552 e.model.templateId= this.value();
554 }).data(
"kendoDropDownList");
559 $(
".k-window-title:visible").text(
"Edit Loan Application");
560 $(
"#templateDDLRow").
remove();
565 useValidatorInGrid(e);
567 dataBound:
function (e)
569 fullContextMenu.gridDatabound(initialized);
572 addMinifiedActionStyle(
this,
true);
579 fullContextMenu.gridCancel();
583 }).data(
"kendoGrid");
585 var fullContextMenu=
new getFullContextMenuSingle(
"loanAppGrid",
"loanAppContextMenu",
"loanAppDeleteDialog",
"loanId",
586 "/hcuadm/<?php echo $dataFile; ?>?operation=deleteLoanApplication&cu=<?php echo urlencode($cu); ?>");
588 fullContextMenu.addFunctions(
function(options, dataItem) {
589 options.push({text:
"Export", cssClass:
"exportLi"}, {text:
"Edit Loan App Layout", cssClass:
"detailsLi"});
591 function(item, dataItem) {
592 if ($(item).hasClass(
"exportLi"))
594 window.open(
"/hcuadm/lnappExport.prg?cu=<?php echo urlencode($cu); ?>&loanid=" + dataItem.loanId +
"&action=export");
596 else if ($(item).hasClass(
"detailsLi"))
598 window.open(
"/hcuadm/lnappEdit.prg?user_name=<?php echo urldecode($cu); ?>&loanid=" + dataItem.loanId);
603 $(document).ready(
function () {
606 initLoanApplicationsGrid();
610 <script
id=
"configOptionsPopupTemplate" type=
"text/x-kendo-template">
611 <div
id=
"formValidatePopupDiv" class=
"homecu-formStatus k-block k-error-colored" style=
"display:none;"></div>
612 <form
id=
"popupForm" class=
"popupForm" data-role=
"validator" novalidate>
613 <div
class=
"container_12">
614 <div
class=
"grid_12">
615 <div
class=
"grid_4 alpha">
616 <label>Option:</label>
619 <div
id=
"optionLabel" style=
"display:none;">#: configId #</div>
620 <div
id=
"optionDDL" style=
"display:none;width:100%"></div>
622 <div
class=
"grid_1 omega">
626 <div
class=
"grid_12">
627 <div
class=
"grid_4 alpha">
628 <label>Value:</label>
631 <div
id=
"valueTextDiv" class=
"valueDiv" style=
"display: none;">
632 <textarea
class=
"k-input" style=
"width: 100%; height: 100px" row=15 col=40></textarea>
634 <div
id=
"valueBooleanDiv" class=
"valueDiv" style=
"display: none;">
635 <input type=
"checkbox">
637 <div
id=
"valueListDiv" class=
"valueDiv" style=
"display: none;">
638 <div
id=
"valueDDL" style=
"width: 100%"></div>
640 <div
id=
"valueUrlDiv" class=
"valueDiv" style=
"display: none;">
641 <input
class=
"k-input" type=
"text" homecu-match=
'url' data-homecuCustomMatch-msg=
'Value needs to be a valid url.' style=
"width: 100%">
644 <div
class=
"grid_1 omega">
645 <span data-
for=
'valueUrl' class=
'k-invalid-msg'></span>
651 <script
id=
"loanApplicationPopupTemplate" type=
"text/x-kendo-template">
652 <div
id=
"formValidatePopupDiv" class=
"homecu-formStatus k-block k-error-colored" style=
"display:none;"></div>
653 <form
id=
"popupForm" class=
"popupForm" data-role=
"validator" novalidate>
654 <div
class=
"container_12">
655 <div
class=
"grid_12">
656 <div
class=
"grid_4 alpha">
657 <label>Loan Title:</label>
660 <input type=
"text" class=
"k-input" name=
"title" required data-required-msg=
"Loan Title is required" style=
"width:100%" autofocus>
662 <div
class=
"grid_1 omega">
663 <span data-
for=
'title' class=
'k-invalid-msg'></span>
666 <div
class=
"grid_12">
667 <div
class=
"grid_4 alpha">
668 <label>Fragment:</label>
671 <input type=
"text" class=
"k-input" name=
"fragment" style=
"width:100%">
673 <div
class=
"grid_1 omega">
674 <span data-
for=
'fragment' class=
'k-invalid-msg'></span>
677 <div
class=
"grid_12" id=
"templateDDLRow" style=
"display:none;">
678 <div
class=
"grid_4 alpha">
679 <label>Copy From:</label>
682 <div
id=
"templateDDL" style=
"width:100%"></div>
684 <div
class=
"grid_1 omega">
691 <script
id=
"list1Template" type=
"text/x-kendo-template">
693 <li><p>Allow Home
Banking Login
694 <br> This option expects either a 1 or 0.
695 <br> 1 - The login screen
for the loan application system will allow
696 the member to login with their Home
Banking credentials.
697 <br> 0(
default) - The login screen will only allow the member to login
using 698 a separate account identified by email.
700 <li><p>Disable Email Login
701 <br> This option expects either a 1 or 0.
702 <br> 1 - The login screen
for the loan application system will NOT allow the member to authenticate
using an email. They MUST use their Home
Banking credentials
703 <br> 0(
default) - The login screen will allow the member to login
using a separate account identified by email.
706 <br> This option expects either a 1 or 0.
707 <br> 1 - If
set the ONLY way a user can access the loan app system is via a link from their Home
Banking while they are authenticated.
708 <br> 0(
default) - The login screen will be accessible
for 711 <p>Post Loan Applications to Core
712 <br> This option expects either a 1 or 0. (only
for 'live' credit unions)
713 <br> 1 (
default for live) - The loan will be submitted to the credit
union core
for processing.
714 <br> 0 - The loan will not be submitted and must be processed by the credit
union 718 <p>Post Loan Applications with Member
719 <br> This option expects either a 1 or 0. (only
for 'live' credit unions)
720 <br> 0 (
default) - The loan will NOT be submitted with the member number (ie CU-CENTRIC)
721 <br> 1 - The loan will be submitted with the Member Number (ie CRUISE)
724 <p>Post Loan Applications Format
725 <br> This option expects one of following {XML, JSON, SERIAL}
726 <br> XML - Export the data to the core in XML Format
727 <br> JSON - Export the data to the core in JSON Format
728 <br> SERIAL - Export the data to the core in PHP Serialized Format
731 <p>Allow Member Info to Populate From Core
732 <br> This option expects either a 1 or 0. (only
for 'live' credit unions)
733 <br> 1 - When starting a
new loan, the MIR packet will retrieved from the core and certain fields
734 will pre-populate into the loan application.
735 <br> 0(
default) - No information is pre-populated.
738 <p>Loan App Stylesheet
739 <br> This option allows you to enter the style sheet to use
for the Loan App System.
740 <br> The
string is expected to be a qualified URL ie https:
741 <br> If
this option is not configured the Loan App system will use the style sheet located at
742 <br> /lnapp_incude/css/style.css
745 <p>Loan Login Message
for Members
746 <br> This option will let you customize the login message
for 747 Members of the credit
union when they login with their Home
Banking credentials.
748 (Make sure to address the situation where
User Names are allowed or required.)
749 <br> There is a
default if this option is left blank
752 <p>Loan Login Message
for Members not in Home
Banking 753 <br> This option will let you customize the login message
for 754 Members of the credit
union that are not Home
Banking users. It will only show up
755 when the credit union core supports MIR packets (i.e. Allow Member Info to Populate From Core is set).
756 <br> There is a
default if this option is left blank
759 Loan Login Message
for non-Members
760 <br> This option will let you customize the login message
for 761 non-Members, or users that will login without
using their Home
Banking 763 <br> There is a
default if this option is left blank
767 Password Configuration
768 <br> Configure the password requirements
for when a user changes their password.
769 This uses JSON format where len = minimum length, upper = number of upper
case, lower =
770 number of lower
case, spec = number of special characters, and digit = number of digits.
771 <br> There is a
default if this option is left blank:
772 <br> {
"len":
"8",
"upper":
"1",
"lower":
"1",
"spec":
"0",
"digit":
"1"}
776 Only Submit Fields With Data
777 <br> This option expects either a 1 or 0. (only
for 'live' credit unions)
778 <br> 1 - Empty fields will not be included in the application sent to the core.
779 <br> **NOTE: This option can be overruled when defining the field and checking
"Always Send".
780 <br> 0 (Default) - All defined fields in the application are sent to the core.
784 <script
id=
"list2Template" type=
"text/x-kendo-template">
787 <em>Start A Loan Form</em> - You can start a
new form by choosing the
'+ Add new record' link
788 in the Loan Applications table.
791 <em>Loan Title</em> - This is a title used
for the Loan Application. It can be displayed in the loan, so it
792 should describe the loan without being too vague.
795 <em>Last Modified</em> - This is the last modified date.
796 <br> **Note:
this field may not appear to update after saving an application. The screen needs to refresh to show
new data.
799 <em>Fragment</em> - This field can be blank. This
string should be the
800 name of a fragment file in the public_html directory
for the CU. Because
this can be any filename and there can be any
801 number of them, there is not fragment maintenance available
for it.
802 <br> If
this string is the name of a valid file. The member will be prompted with the contents of
this file and must
803 click an Approve button before they are sent to the Application screen.
808 <em>Edit A Loan</em> - You can edit any loan by
double-clicking the row in which you want to edit.
809 <br> **Note: the screen popping up may take a second to load as it processes the application.
812 <em>Delete A Loan</em> - You can
delete any loan by clicking the trash bin in each row.
817 <?php printDeleteTemplate(); ?>
818 <?php printMonitorPageMiddle($title,
null,
true); ?>
820 <div
class=
"container_12">
821 <div
class=
"grid_12">
825 Different configuration options are available
for the credit
union.
826 These options are applied to the Loan Application System
for ONLY
829 The following options are configurable from the Loan App Configuration Options table below:<br/>
830 <span
class=
"listExpand"></span>
832 Apart from these options, the
'Portal' screen
for the Loan App system is a fragment
833 named lnappCuPortal.html (On-Line Loan App Portal Menu)
834 that is editable from the Credit Union
's Fragment Maintenance Screen. 836 This fragment will include the code necessary to navigate to the loans setup below. 838 Email Notifications - The loan system is also configured to email a notice 839 when a loan is submitted. The email will be sent to the email(s) 840 in the 'Loan System Notifications
' recipients in 'CU E-mail Notifications
' 844 After authenticating the user is taken to a portal screen. This screen contains a premade menu, 845 a table to view current loan statuses and available loan section. 846 <br/>The loan section is customizable using a 'Fragment
'. The fragment is named <span style='font-style:italic
'>lnappCuPortal.html</span> 847 located in the root folder of the clients HomeCU Dir ie <span style='font-style:italic
'>/home/cucode/public_html</span>. 848 <br/>It can be maintained using the following link: 850 <?php echo $fileLink; ?> 854 The Loan Applications table below will list all the loans that are setup for this credit union. 855 They may or may not be accessible, which is determined by the lnappCuPortal fragment. 857 <span class="listExpand"></span> 861 When creating the link to be passed to the loan system, an 'id' will 862 be used. Also set the param appinit=1 on the url when creating the app link. 863 <br>Here is the id for this credit union. 864 <br/><strong><?php echo $hashCu; ?></strong> 866 Here is the link to this credit union's Online Loan Application System.
867 <br/><strong><?php echo $sampleURL; ?></strong>
869 Here is the link already in an anchor tag<br/>
870 <a href=
'<?php echo $sampleURL; ?>' target=
'_blank'>Apply
for a loan</a>
872 Here is the link
for use with Home
Banking, so the member can directly log in to the system, like SSO.
873 <br/><?php echo $sampleSSOURL; ?>
875 <a href=
'<?php echo $sampleSSOURL; ?>' target=
'_blank'>Apply
for a loan</a>
879 <div
class=
"grid_12"> </div>
880 <div
class=
"grid_12">
881 <div
id=
"sqlOutput"></div>
883 <div
class=
"grid_12">
884 <div
id=
"formValidateMainDiv" class=
"k-block k-error-colored" style=
"display:none;"></div>
886 <div
class=
"grid_12">
887 <h3>Loan App Configuration Options</h3>
889 <div
class=
"grid_12">
890 <div
id=
"configOptionsGrid" style=
"width:100%"></div>
892 <div
class=
"grid_12">
895 <div
class=
"grid_12">
896 <h3>Loan Applications</h3>
899 <div
class=
"grid_12">
900 <div
id=
"loanAppGrid" style=
"width:100%"></div>
904 <?php printMonitorPageBottom(); ?>