Odyssey
cuinfoedit.prg
1 <?php
2 /**
3  * Change History:
4  * 04/26/13 mbl - Removed usage of cuinfo.comments, cuinfo.contract_notes cuinfo.misc_notes
5  * to use new cuinfo_notes table.
6  * 05/01/13 mbl - Added fname, lname, decider to monitor_contact table.
7  */
8 
9 $monLibrary= dirname(__FILE__) . "/../library";
10 require_once("$monLibrary/cu_top.i");
11 require_once("$monLibrary/ck_hticket.i");
12 
13 // Separate usages: add CU has different permissions than CUinfo.
14 $parseRefer = parse_url(HCU_array_key_value('HTTP_REFERER', $_SERVER));
15 $referScript = basename($parseRefer['path']);
16 $permissionsScriptName = $referScript == "cuilist.prg" ? "cuinfoadd" : "cuinfoedit";
17 // Due to logic on CheckPerm, * won't match anything. Thus, the user can only have access to the file referred differently iff they have the "All Scripts" permission.
18 
19 $permissionsScriptName = 'cuinfoedit';
20 if (!CheckPerm($link, $Hu, $permissionsScriptName, $_SERVER['REMOTE_ADDR'])) {
21  // ** Permissions failed
22  // ** redirect to new page
23  header("Location: /hcuadm/hcu_noperm.prg");
24  exit;
25 }
26 
27 /**
28  * function GetIPAllow()
29  * @return a list of approved IPs.
30  */
31 function GetIPAllow() {
32  return array(
33  '199.184.207', # allow DMS/Homecu also
34  '192.168.169',
35  '174.129.8.163', #(www6)
36  '174.129.23.225', #(www5)
37  '107.20.248.233', #(devel)
38  '54.83.40.144', #(IVR AWS)
39  '54.167.229.25', #(IVR DEVEL AWS)
40  '209.161.7.186', # (DMS DSL Line)
41  '184.73.202.7', # (monitor)
42  '54.198.131.201', # (ivr clone (20151208 TEST ONLY))
43  '107.21.119.104', # (www3)
44  /* Odyssey west-2 */
45  '34.214.230.179',
46  '34.214.70.112',
47  '34.214.139.200',
48  /* Odyssey east-2 */
49  '18.221.44.119',
50  '18.221.208.201',
51  '18.221.9.252',
52  /* Odyssey DEV */
53  '172.16.',
54  '172.17.',
55  '172.18.',
56  '172.19.',
57  '172.20.',
58  '172.21.',
59  '172.22.',
60  '172.23.',
61  '172.24.',
62  '172.25.',
63  '172.26.',
64  '172.27.',
65  '172.28.',
66  '172.29.',
67  '172.30.',
68  '172.31.'
69  );
70 }
71 
72 /**
73  * function Whitelist($IPCaller, $ipallow)
74  * Lifted from the superfetch file. Parses the ip list to see if the referring server is in the list.
75  *
76  * @param $IPCaller -- $_SERVER['REMOTE_ADDR']
77  * @param $ipallow -- an array of all acceptable IPs.
78  * @return true if IP is in the list, false otherwise.
79  */
80 function Whitelist($IPCaller, $ipallow) {
81  $IPPass = false;
82 
83  foreach ($ipallow as $value) {
84  if (strpos($value, '/')) {
85  if (cidr_match($IPCaller, $value)) {
86  $IPPass = true;
87  break;
88  }
89  } elseif (substr($IPCaller, 0, strlen(trim($value))) == trim($value)) {
90  $IPPass = true;
91  break;
92  }
93  }
94  return $IPPass;
95 }
96 
97 /**
98  * function GetCanRunCuSet($Cu, $link, $Hu)
99  * This will return the reason why Cuset cannot be run. ("" if it can be run.)
100  *
101  * @param $Cu -- the credit union
102  * @param $link -- the database connection
103  * @param $Hu -- the monitor user who is human
104  *
105  * @return the reason for disabling cuset or empty string if cuset can be run.
106  */
107 function GetCanRunCuSet($Cu, $link, $Hu) {
108  $reason = "";
109 
110  if ($reason == "") {
111  $server = $_SERVER['HTTP_HOST'];
112  $pre = explode(".", $server, 2);
113  $post = $pre[1];
114  $pre = $pre[0];
115 
116  if (in_array($pre, array("www", "www3", "www4", "www5", "www6")) && $post == "homecu.net") {
117  $reason = "legacy";
118  }
119  }
120 
121  if ($reason == "") {
122  $ipAllow = GetIPAllow();
123 
124  $IPPass = false;
125  $IPCaller = $_SERVER['REMOTE_ADDR'];
126  $IPPass = Whitelist($IPCaller, $ipAllow);
127 
128  if (!$IPPass) {
129  $reason = "IP";
130  }
131  }
132 
133  if ($reason == "") {
134  $perm = CheckPerm($link, $Hu, "cuinfoadd", $_SERVER['REMOTE_ADDR']);
135  if (!$perm) {
136  $reason = "permission";
137  }
138  }
139 
140  if ($reason == "") {
141  $sql = "select 'FOUND' from cuadmin where cu = '" . prep_save($Cu, 10) . "'";
142  $sth = db_query($sql, $link);
143  if (!$sth) {
144  $reason = "cuadmin";
145  } else if (db_num_rows($sth) > 0) {
146  $reason = "cuadmin";
147  }
148  }
149 
150  return $reason;
151 }
152 
153 /**
154  * function RunCuSet($Cu, $skipFilesystem, $vendor, $webonly, $isLive, $wwwServer, $link, $Hu)
155  * Checks if cuset can be run and then runs it.
156  *
157  * @param $Cu -- the credit union
158  * @param $skipFilesystem -- if true, then the directories for the filesystem will not be run.
159  * @param $vendor -- the vendor to set.
160  * @param $webonly -- if CU is webonly.
161  * @param $isLive -- if CU is live.
162  * @param $wwwServer -- the server to run it on. Unavailable for the www's.
163  * @param $link -- the database connection.
164  * @param $Hu -- the monitor user who is human
165  *
166  * @return ["status" => 000 if successful, other code if not, "error" => empty string is successful, non-empty string otherwise]
167  */
168 function RunCuSet($Cu, $skipFilesystem, $vendor, $webonly, $isLive, $wwwServer, $link, $Hu) {
169  try {
170 
171  $ipAllow = GetIPAllow();
172 
173  $IPPass = false;
174  $IPCaller = $_SERVER['REMOTE_ADDR'];
175  $IPPass = Whitelist($IPCaller, $ipAllow);
176 
177  if (!$IPPass) {
178  throw new exception("Cuset cannot be run outside of the office.", 1);
179  }
180 
181  $server = $_SERVER['HTTP_HOST'];
182  $pre = explode(".", $server, 2);
183  $post = $pre[1];
184  $pre = $pre[0];
185 
186  $legacyServerArray = array("www", "www3", "www4", "www5", "www6");
187  if (in_array($pre, $legacyServerArray) && $post == "homecu.net") {
188  throw new exception ("Cuset is unavailable for non-Odyssey servers.", 2);
189  }
190 
191  if (!CheckPerm($link, $Hu, "cuinfoadd", $_SERVER['REMOTE_ADDR'])) {
192  throw new exception ("You don't have permissions for Cuset.", 4);
193  }
194 
195  $sql = "select 'FOUND' from cuadmin where cu = '" . prep_save($Cu, 10) . "'";
196  $sth = db_query($sql, $link);
197  if (!$sth) {
198  throw new exception ("Cuadmin query failed.", 5);
199  }
200 
201  if (db_num_rows($sth) > 0) {
202  throw new exception ("Cuset has already been run.", 6);
203  }
204 
205  $dir = "/opt/odyssey/tools/bin";
206  $file = "cuset.pl";
207  $forceParam = "-f"; // NEED this. Otherwise, the script will wait forever looking for the confirm.
208  $skipParam = $skipFilesystem ? "-x Y" : "";
209  $userParam = "-u " . escapeshellarg(strtolower($Cu));
210  $vendorParam = trim($vendor) == "" ? "" : "-v " . escapeshellarg($vendor);
211  $liveOrBatchParam = $isLive ? "-t L" : "-t B";
212  $webonlyParam = $webonly ? "-w Y" : "";
213  $stdErrorOnly = "2>&1 >/dev/null"; // stdout lines like "connected to odyssey" are not useful here.
214 
215  $cmd = "/usr/bin/env perl $dir/$file $userParam $vendorParam $liveOrBatchParam $webonlyParam $skipParam $forceParam $stdErrorOnly";
216 
217  $output = array();
218  $returnVar = 0;
219  exec($cmd, $output, $returnVar);
220 
221  // \n can be in the array. Not useful for error messages.
222  if ($returnVar !== 0) {
223  foreach($output as $outputLine) {
224  if (trim($outputLine) != "") {
225  throw new exception($outputLine, $returnVar);
226  }
227  }
228  }
229 
230  $returnArray = array("status" => "000", "error" => "");
231  } catch (exception $e) {
232  $returnArray = array("status" => $e->getCode(), "error" => $e->getMessage());
233  }
234  return $returnArray;
235 }
236 
237 /**
238  * Check for first screen of add a CU.
239  * @param string $user_name
240  * @return string|null
241  */
242 function checkFirstCuNameError($user_name)
243 {
244  if (! empty ($user_name) and (strlen($user_name) > 10)) {
245  return "<tr><td colspan=\"2\"><p class=\"err\">Please enter a CU name not exceeding 10 characters.</p></td></tr>";
246  }
247 
248  return null;
249 }
250 
251 $dms_ok=array('action'=>'string','act'=>'string','addr1'=>'string',
252 'addr2'=>'string','Cd'=>'string','ceo_mgr'=>'string','cfserver'=>'string',
253 'charter_number'=>'digits','Charter'=>'string','city'=>'string',
254 'comments'=>'string','contract_expires'=>'string','web_contract_expires'=>'string','contract_notes'=>'string',
255 'conv_from'=>'string','Cs'=>'string','cu_name'=>'string','Cu'=>'string',
256 'date_hb_billed'=>'string','date_live'=>'string','date_trained'=>'string',
257 'date_ws_billed'=>'string','dec_31_assets'=>'string','dec_31_mem'=>'digits',
258 'delrow'=>'digits','first_upload'=>'string','home_page_url'=>'string',
259 'ivrbill_date'=>'string','main_email'=>'string','main_phone'=>'string',
260 'mc'=>'array','mcdirty'=>'string','misc_notes'=>'string','name'=>'string',
261 'showrows'=>'digits','state'=>'string','Status'=>'string',
262 'stmnt_date'=>'string','sys_typ_asp'=>'digits','sys_typ_batch'=>'digits',
263 'sys_typ_closed'=>'digits','sys_typ_ivr'=>'digits','sys_typ_live'=>'digits',
264 'sys_typ_upgrade'=>'digits','sys_typ_webonly'=>'digits','sys_typ_voip'=>'digits',
265 'transfer'=>'string','txtbill_date'=>'string','user_name'=>'string','vendor'=>'string',
266 'web_trans_method'=>'string','www_server'=>'string', 'zip'=>'string',
267 'mobbill_date'=>'string','iphone_billed'=>'string','android_billed'=>'string',
268 'renewal_term'=>'digits', 'web_renewal_term'=>'digits', 'sys_typ_upg' => 'digits',
269 'mblwebsite_billed'=>'string','rdc_billed'=>'string', "runCuset" => "string", "skipFilesystem" => "string", "geo_lat"=>"string", "geo_long"=>"string");
270 
271 dms_import($dms_ok);
272 
273 $act = (empty($act) ? "show" : $act);
274 $self = $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'];
275 
276 if ($act == 'mcmore' ) { $showrows +=2; $act='show';}
277 if ($act == 'mcrow'){
278  array_splice($mc,$delrow,1);
279  $showrows -= 1;
280  $act='show';
281  $setdirty=1;
282 }
283 switch ($act) {
284 case "save":
285  $err_msg = "";
286 
287  /* VALIDATE THE INFORMATION - whether it's been saved before or NOT
288  After validation fails it will send the information back to the edit form
289  So it looks like it did before, the fail information will be at the bottom of the
290  screen.
291  */
292 // Main phone can be empty, but if entered must be full number w/area code
293 if ("$main_phone" <> "" && !(preg_match("/\d{3}-\d{3}-\d{4} ?(x\d+)?$/",$main_phone))) {
294  $err_msg .= "{Main Phone is not valid format} (use 999-999-9999 x9999)<br>";
295 }
296 
297 // Date of First Upload, can be empty, but if entered must be valid date.
298  if (strlen($first_upload) > 0)
299  if ( !($first_upload = mdydate($first_upload)))
300  $err_msg .= "{Date of First Upload} is an invalid date. A valid date must be entered or leave blank.<br>";
301 
302  // Went Live Date -- Can be empty, but if entered must be a valid date.
303  if (strlen($date_live) > 0)
304  if ( !($date_live = mdydate($date_live)))
305  $err_msg .= "{Went Live Date} is an invalid date. A valid date must be entered or leave blank.<br>";
306 
307  // Trained Date -- Can be empty, but if entered must be a valid date.
308  if (strlen($date_trained) > 0)
309  if ( !($date_trained = mdydate($date_trained)))
310  $err_msg .= "{Trained Date} is an invalid date. A valid date must be entered or leave blank.<br>";
311 
312  // Home Banking Billed Date -- Can be empty, but if entered must be a valid date.
313  if (strlen($date_hb_billed) > 0)
314  if ( !($date_hb_billed = mdydate($date_hb_billed)))
315  $err_msg .= "{Home Banking BIlled Date} is an invalid date. A valid date must be entered or leave blank.<br>";
316 
317  // Website Billed Date -- Can be empty, but if entered must be a valid date.
318  if (strlen($date_ws_billed) > 0)
319  if ( !($date_ws_billed = mdydate($date_ws_billed)))
320  $err_msg .= "{Website Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
321 
322  // E-Statement Date -- Can be empty, but if entered must be a valid date.
323  if (strlen($stmnt_date) > 0)
324  if ( !($stmnt_date = mdydate($stmnt_date)))
325  $err_msg .= "{E-Statement Date} is an invalid date. A valid date must be entered or leave blank.<br>";
326 
327  // TXT Banking Billed Date -- Can be empty, but if entered must be a valid date.
328  if (strlen($txtbill_date) > 0)
329  if ( !($txtbill_date = mdydate($txtbill_date)))
330  $err_msg .= "{TXT Banking Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
331 
332  // IVR Billed Date -- Can be empty, but if entered must be a valid date.
333  if (strlen($ivrbill_date) > 0)
334  if ( !($ivrbill_date = mdydate($ivrbill_date)))
335  $err_msg .= "{IVR Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
336 
337  // Mobile Billed Date -- Can be empty, but if entered must be a valid date.
338  if (strlen($mobbill_date) > 0)
339  if ( !($mobbill_date = mdydate($mobbill_date)))
340  $err_msg .= "{Mobile Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
341 
342  // iPhone APP Billed Date -- Can be empty, but if entered must be a valid date.
343  if (strlen($iphone_billed) > 0)
344  if ( !($iphone_billed = mdydate($iphone_billed)))
345  $err_msg .= "{iPhone APP Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
346 
347  // Android APP Billed Date -- Can be empty, but if entered must be a valid date.
348  if (strlen($android_billed) > 0)
349  if ( !($android_billed = mdydate($android_billed)))
350  $err_msg .= "{Android APP Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
351 
352  // mobile website Billed Date -- Can be empty, but if entered must be a valid date.
353  if (strlen($mblwebsite_billed) > 0)
354  if ( !($mblwebsite_billed = mdydate($mblwebsite_billed)))
355  $err_msg .= "{Mobile Website Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
356 
357  // RDC Billed Date -- Can be empty, but if entered must be a valid date.
358  if (strlen($rdc_billed) > 0)
359  if ( !($rdc_billed = mdydate($rdc_billed)))
360  $err_msg .= "{RDC Billed Date} is an invalid date. A valid date must be entered or leave blank.<br>";
361 
362  // Banking Contract Expires -- Can be empty, but if entered must be a valid date.
363  if (strlen($contract_expires) > 0)
364  if ( !($contract_expires = mdydate($contract_expires)))
365  $err_msg .= "{Banking Contract Expires Date} is an invalid date. A valid date must be entered or leave blank.<br>";
366 
367  // Web Contract Expires -- Can be empty, but if entered must be a valid date.
368  if (strlen($web_contract_expires) > 0)
369  if ( !($web_contract_expires = mdydate($web_contract_expires)))
370  $err_msg .= "{Web Contract Expires Date} is an invalid date. A valid date must be entered or leave blank.<br>";
371 
372  // Dec 31 Assets -- Validate the field after stripping format is a numeric field
373  if (strlen(trim($dec_31_assets)))
374  if ( !(is_numeric(strip_money($dec_31_assets))) )
375  $err_msg .= "{Dec 31 Assets} is an invalid number. A valid number value must be entered or leave blank.<br>";
376 
377  // Dec 31 Membership -- Validate this is an Integer field.
378  if (strlen(trim($dec_31_mem)))
379  if ( !(is_integer(intval($dec_31_mem))))
380  $err_msg .= "{Dec 31 Membership} is an invalid number. A valid integer value must be entered or leave blank.<br>";
381 
382 
383  // ** Make sure one of the Home CU Type options is selected -- but there are rules on which ones may be selected
384  if ((!isset($sys_typ_batch) && !isset($sys_typ_live) && !isset($sys_typ_ivr) && !isset($sys_typ_voip) && !isset($sys_typ_webonly)) && !$sys_typ_closed) {
385  $err_msg .= "<li>To complete setup, a valid HomeCU Type must be selected. Please select one of the Home CU Type options and try again.<br>";
386  } else {
387  // ** Check to make sure the selected options do NOT conflict
388  if (isset($sys_typ_webonly) && (isset($sys_typ_batch) || isset($sys_typ_live) || isset($sys_typ_asp))) {
389  $err_msg .= "<li>When Web Only is selected you may not choose one of these {live, batch, asp, upgrade}. Please select correctly and try again.<br>";
390  } elseif (isset($sys_typ_batch) && (isset($sys_typ_live))) {
391  $err_msg .= "<li>When Batch is selected you may not choose the 'Live' options. Please correct this and try again.<br>";
392  }
393 
394  }
395 
396 #
397 # strip commas and periods out of the address parts
398 #
399 $nopunc=array(',','.');
400 $addr1 = str_replace($nopunc,"",$addr1);
401 $addr2 = str_replace($nopunc,"",$addr2);
402 $city = str_replace($nopunc,"",$city);
403 
404  // Everything validated ok so far, get the sql ready:
405 
406  $cuinfo_query = "SELECT user_name FROM cuinfo WHERE user_name = '$user_name'";
407  // Execute the query and find out how many rows are in the query
408  $db_result = db_query($cuinfo_query, $link);
409 
410  // ** SET the {SYSTEM OPTIONS} value to be saved
411  $upd_sys_opt = 0;
412  // ** BATCH VALUE
413 $upd_sys_opt = ($sys_typ_batch + $sys_typ_live + $sys_typ_asp +
414  $sys_typ_ivr + $sys_typ_voip + $sys_typ_webonly + $sys_typ_upgrade + $sys_typ_closed + $sys_typ_upg);
415 # if (isset($sys_typ_batch)) { $upd_sys_opt += $SYS_TYPE_BATCH; }
416 # // ** LIVE VALUE
417 # if (isset($sys_typ_live)) { $upd_sys_opt += $SYS_TYPE_LIVE; }
418 # // ** LIVE ASP VALUE
419 # if (isset($sys_typ_asp)) { $upd_sys_opt += $SYS_TYPE_ASP; }
420 # // ** IVR VALUE
421 # if (isset($sys_typ_ivr)) { $upd_sys_opt += $SYS_TYPE_IVR; }
422 # // ** WEB ONLY VALUE
423 # if (isset($sys_typ_webonly)) { $upd_sys_opt += $SYS_TYPE_WEBONLY; }
424 # // ** Upgrade / Conversion VALUE
425 # if (isset($sys_typ_upgrade)) { $upd_sys_opt += $SYS_TYPE_UPGRADE; }
426 # // ** CLOSED CU VALUE
427 # if (isset($sys_typ_closed)) { $upd_sys_opt += $SYS_TYPE_CLOSED; }
428 
429  $num_rows = db_num_rows($db_result);
430  if ($num_rows > 0 )
431  {
432  // UPDATE the information into the table
433  $qry_stmt = sprintf("UPDATE cuinfo\n");
434  $qry_stmt .= sprintf("SET name='%s',\n",prep_save($name));
435  $qry_stmt .= sprintf("addr1='%s',\n",prep_save($addr1));
436  $qry_stmt .= sprintf("addr2='%s',\n",prep_save($addr2));
437  $qry_stmt .= sprintf("city='%s',\n",prep_save($city));
438  $qry_stmt .= sprintf("state='%s',\n",prep_save($state));
439  $qry_stmt .= sprintf("zip='%s',\n",prep_save($zip));
440  $qry_stmt .= sprintf("main_email='%s',\n",prep_save($main_email));
441  $qry_stmt .= sprintf("main_phone='%s',\n",prep_save($main_phone));
442  $qry_stmt .= sprintf("ceo_mgr='%s',\n",prep_save($ceo_mgr));
443  $qry_stmt .= sprintf("vendor='%s',\n",prep_save($vendor));
444  $qry_stmt .= sprintf("conv_from ='%s',\n",prep_save($conv_from));
445  $qry_stmt .= sprintf("transfer_method='%s',\n",prep_save($transfer_method));
446  $qry_stmt .= sprintf("web_trans_method='%s',\n",prep_save($web_trans_method));
447  $qry_stmt .= sprintf("first_upload=%s,\n",save_date($first_upload));
448  $qry_stmt .= sprintf("date_live=%s,\n",save_date($date_live));
449  $qry_stmt .= sprintf("date_trained=%s,\n",save_date($date_trained));
450  $qry_stmt .= sprintf("date_hb_billed=%s,\n",save_date($date_hb_billed));
451  $qry_stmt .= sprintf("date_ws_billed=%s,\n",save_date($date_ws_billed));
452  $qry_stmt .= sprintf("stmnt_date=%s,\n",save_date($stmnt_date));
453  $qry_stmt .= sprintf("charter_number='%s',\n",$charter_number);
454  $qry_stmt .= sprintf("dec_31_assets='%s',\n",doubleval(strip_money($dec_31_assets)));
455  $qry_stmt .= sprintf("dec_31_mem='%d',\n",intval($dec_31_mem));
456  $qry_stmt .= sprintf("www_server='%s',\n",prep_save($www_server, 64));
457  $qry_stmt .= sprintf("home_page_url='%s', \n",prep_save($home_page_url));
458 // $qry_stmt .= sprintf("comments='%s', \n",prep_save($comments));
459 // $qry_stmt .= sprintf("misc_notes='%s', \n",prep_save($misc_notes));
460 // $qry_stmt .= sprintf("contract_notes='%s',\n",prep_save($contract_notes));
461  $qry_stmt .= sprintf("system_options='%s',\n",$upd_sys_opt);
462  $qry_stmt .= sprintf("txtbill_date=%s,\n",save_date($txtbill_date));
463  $qry_stmt .= sprintf("ivrbill_date=%s,\n",save_date($ivrbill_date));
464  $qry_stmt .= sprintf("contract_expires=%s,\n",save_date($contract_expires));
465  $qry_stmt .= sprintf("web_contract_expires=%s,\n",save_date($web_contract_expires));
466  $qry_stmt .= sprintf("mobbill_date=%s,\n",save_date($mobbill_date));
467  $qry_stmt .= sprintf("iphone_billed=%s,\n",save_date($iphone_billed));
468  $qry_stmt .= sprintf("android_billed=%s,\n",save_date($android_billed));
469  $qry_stmt .= sprintf("renewal_term='%d',\n",intval($renewal_term));
470  $qry_stmt .= sprintf("web_renewal_term='%d',\n",intval($web_renewal_term));
471  $qry_stmt .= sprintf("mblwebsite_billed=%s,\n",save_date($mblwebsite_billed));
472  $qry_stmt .= sprintf("rdc_billed=%s,\n",save_date($rdc_billed));
473  $qry_stmt .= sprintf("geo_lat='%s',\n", prep_save($geo_lat));
474  $qry_stmt .= sprintf("geo_long='%s'\n", prep_save($geo_long));
475  $qry_stmt .= sprintf("WHERE user_name = '%s'; \n",$user_name);
476  }
477  else
478  {
479  // notes are saved in cuinfo_notes now (4/23/2013)
480  $contract_notes = "";
481  $comments = "";
482  $misc_notes = "";
483  $qry_stmt = "INSERT INTO cuinfo
484  (user_name, name, addr1, addr2, city, state, zip, main_email,
485  main_phone, ceo_mgr, vendor, conv_from, transfer_method,
486  web_trans_method, first_upload, date_live, date_trained,
487  date_hb_billed, date_ws_billed, stmnt_date, charter_number,
488  dec_31_assets, dec_31_mem, home_page_url, comments,
489  misc_notes, contract_notes, www_server, system_options,
490  txtbill_date, ivrbill_date, contract_expires, web_contract_expires, mobbill_date,
491  iphone_billed,android_billed,renewal_term,web_renewal_term,mblwebsite_billed,rdc_billed,geo_lat,geo_long)
492  VALUES (";
493  $qry_stmt .= sprintf("'%s', \n", $user_name);
494  $qry_stmt .= sprintf("'%s', '%s', \n",prep_save($name), prep_save($addr1));
495  $qry_stmt .= sprintf("'%s', '%s', \n",prep_save($addr2), prep_save($city));
496  $qry_stmt .= sprintf("'%s', '%s', \n",$state, $zip);
497  $qry_stmt .= sprintf("'%s', \n",prep_save($main_email));
498  $qry_stmt .= sprintf("'%s', \n",prep_save($main_phone));
499  $qry_stmt .= sprintf("'%s', \n",prep_save($ceo_mgr));
500  $qry_stmt .= sprintf("'%s', '%s', \n",prep_save($vendor), prep_save($conv_from));
501  $qry_stmt .= sprintf("'%s', '%s', \n",prep_save($transfer_method), prep_save($web_trans_method));
502  $qry_stmt .= sprintf("%s, %s, \n", save_date($first_upload), save_date($date_live));
503  $qry_stmt .= sprintf("%s, %s, %s, %s,\n", save_date($date_trained), save_date($date_hb_billed), save_date($date_ws_billed), save_date($stmnt_date));
504  $qry_stmt .= sprintf("'%s', '%s', '%s', \n",$charter_number, doubleval(strip_money($dec_31_assets)), intval($dec_31_mem));
505  $qry_stmt .= sprintf("'%s', \n",prep_save($home_page_url));
506  $qry_stmt .= sprintf("'%s', \n", prep_save($comments));
507  $qry_stmt .= sprintf("'%s', \n", prep_save($misc_notes));
508  $qry_stmt .= sprintf("'%s', \n", prep_save($contract_notes));
509  $qry_stmt .= sprintf("'%s',", prep_save($www_server, 64));
510  $qry_stmt .= sprintf("'%s',", $upd_sys_opt);
511  $qry_stmt .= sprintf("%s,", save_date($txtbill_date));
512  $qry_stmt .= sprintf("%s,", save_date($ivrbill_date));
513  $qry_stmt .= sprintf("%s,", save_date($contract_expires));
514  $qry_stmt .= sprintf("%s,", save_date($web_contract_expires));
515  $qry_stmt .= sprintf("%s,", save_date($mobbill_date));
516  $qry_stmt .= sprintf("%s,", save_date($iphone_billed));
517  $qry_stmt .= sprintf("%s,", save_date($android_billed));
518  $qry_stmt .= sprintf("'%d',", intval($renewal_term));
519  $qry_stmt .= sprintf("'%d',", intval($web_renewal_term));
520  $qry_stmt .= sprintf("%s,", save_date($mblwebsite_billed));
521  $qry_stmt .= sprintf("%s,", save_date($rdc_billed));
522  $qry_stmt .= sprintf("'%s',", prep_save($geo_lat));
523  $qry_stmt .= sprintf("'%s');", prep_save($geo_long));
524  }
525 
526  // Always delete any possible contact info from the monitor_contact table for the specified user_name
527  $qry_stmt .= "DELETE FROM monitor_contact WHERE user_name = '$user_name'; \n";
528 
529  // insert contact info
530  for ($prow=0; $prow < $showrows; $prow++) {
531  $mcrole = prep_save(trim($mc[$prow][0]));
532  $mcdecider = trim($mc[$prow][1]) == "Y" ? "Y" : "N"; // boolean
533  $mcfname = prep_save(trim($mc[$prow][2]));
534  $mclname = prep_save(trim($mc[$prow][3]));
535  $mcphone = prep_save(trim($mc[$prow][4]));
536  $mcemail = prep_save(trim($mc[$prow][5]));
537  $mccomment = prep_save(trim($mc[$prow][6]));
538  $drow = $prow+1;
539  $errcount=0;
540 
541  if ("$mcrole" <> '') {
542  if (("$mcfname" == "") && ("$mclname" == "")) {
543  $err_msg .= "{Error in CU Contact row $drow} Name Required.<br>";
544  $errcount += 1;
545  }
546 # skip this test --
547 # if phone is same as main phone Cerise shouldn't have to type twice
548 #
549 # if ("$mcphone" == "" && "$mcemail" == "") {
550 # $err_msg .= "{Error in CU Contact row $drow} Either Phone or Email required.<br>";
551 # $errcount += 1;
552 # }
553 # force phone to be ###-###-#### x######
554 # where the x###### part is optional
555 # and the # of digits after the x can vary from 1 to whatever fits in the field
556 
557  if ("$mcphone" <> "" && !(preg_match("/\d{3}-\d{3}-\d{4} ?(x\d+)?$/",$mcphone))) {
558  $err_msg .= "{Error in CU Contact row $drow} Invalid Phone number (use 999-999-9999 x9999)<br>";
559  $errcount += 1;
560  }
561  } else {
562  $errcount += 1;
563  }
564  if ($errcount == 0) {
565  $qry_stmt .= "insert into monitor_contact
566  (user_name, role, fname, phone, email, comment, decider, lname)
567  values ('$user_name','$mcrole','$mcfname','$mcphone','$mcemail','$mccomment', '$mcdecider','$mclname'); ";
568  }
569  }
570 
571  if (isset($runCuset) && trim($err_msg) == "") {
572  $results = RunCuSet(strtoupper($user_name), isset($skipFilesystem), $vendor, isset($sys_typ_webonly), isset($sys_typ_live), $www_server, $link, $Hu);
573  if ($results["status"] != "000") {
574  $err_msg = $results["error"];
575  }
576  }
577  $err_msg = ("$err_msg" == "" ? "" : "ERROR! Problems with the credit union information found: <BR><P>$err_msg");
578 #
579  # run sql and show result
580 //print "$qry_stmt<br>";exit;
581  if ($err_msg == "") {
582  if (!($db_result=db_query($qry_stmt, $link)))
583  $err_msg = pg_errormessage();
584  }
585  if ($err_msg == "") {
586  $msg="Credit Union Information Saved Successfully";
587  } else {
588 # $msg="$qry_stmt<br>$err_msg";
589  $msg=$err_msg;
590  }
591 # header("Location: {$_SERVER['PHP_SELF']}?user_name=$user_name&msg=$err_msg");
592 ## end of save -- falls through to display (with bad data in case of error)
593 
594  case "show":
595 
596  $cuSetMessage = GetCanRunCuSet(strtoupper($user_name), $link, $Hu);
597 
598  switch ($cuSetMessage) {
599  case "":
600  $cuSetMessage = "";
601  break;
602  case "legacy":
603  $cuSetMessage = "Cuset is unavailable for non-Odyssey servers.";
604  break;
605  case "IP":
606  $cuSetMessage = "Cuset cannot be run outside of the office.";
607  break;
608  case "permission":
609  $cuSetMessage = "You don't have permissions for Cuset.";
610  break;
611  case "cuadmin":
612  $cuSetMessage = "Cuset has already been run.";
613  break;
614  default:
615  $cuSetMessage = "Cuset is disabled for an unknown reason.";
616  break;
617  }
618 
619 $cu_name_error = checkFirstCuNameError($user_name);
620 
621 if ((trim($user_name)=="") or ! empty($cu_name_error)) {
622 
623  $permissionsScriptName = 'cuinfoadd';
624  if (!CheckPerm($link, $Hu, $permissionsScriptName, $_SERVER['REMOTE_ADDR'])) {
625  // ** Permissions failed
626  // ** redirect to new page
627  header("Location: /hcuadm/hcu_noperm.prg");
628  exit;
629  }
630  cu_header("Home CU - Credit Union Information", "forms[0].user_name");
631  print <<<EOF
632  <div align=center><br><form action="${_SERVER['PHP_SELF']}" method="POST">
633  <table width="90%" cellspacing="0" cellpadding="4" border="0">
634  <tr><td class="bar" colspan="2" align="center">CUInfo Maintenance</td></tr>
635  {$cu_name_error}
636  <tr><td class="dtl" align="right">Username</td>
637  <td class="dtl"><input type="text" name="user_name" maxlength="10" value="{$user_name}"></td></tr>
638  <tr><td class="hdr" colspan="2" align="center"><hr>
639  <input type="submit" name="action" value="Find or Add">
640  <input type=hidden name="act" value="show">
641  </td></tr>
642  <tr>
643  <td colspan="2">
644  <a href="{$infourl}/hcuadm/cuilist.prg" target="parent">Credit Union List</a>
645  </td>
646  </tr>
647  </table></form></div>
648 
649  </body></html>
650 EOF;
651 } else {
652 function print_set_date() {
653 
654  $today_date = date('m/d/Y');
655  print <<< js_code
656  <script language="javascript">
657  <!--
658  function set_date(datefield) {
659  var type;
660  var cur_form = document.forms[0];
661 
662  if (cur_form.elements[datefield]) {
663  if (cur_form.elements[datefield].type == "text") {
664  // Make sure we are modifying a text field
665  // Now set the value of the date field to todays date
666  cur_form.elements[datefield].value = "$today_date";
667  }
668  }
669  }
670  function submitform(row)
671  {
672  document.forms[0].delrow.value=row;
673  document.forms[0].act.value='mcrow';
674  document.forms[0].submit();
675  }
676  function sendform(act)
677  {
678  document.forms[0].act.value=act;
679  document.forms[0].submit();
680  }
681  // -->
682 </script>
683 js_code;
684 }
685 #
686 
687 
688  cu_header("Home CU - Credit Union Information", "forms[0].addr1");
689 ?>
690  <script language="javascript">
691  <!--
692  function generateDomainEdit() {
693  const cucode = document.cuinfo.user_name.value;
694  const cudomain = document.cuinfo.home_page_url.value;
695  const cuserver = document.cuinfo.www_server.value;
696  let err = "";
697  if (cucode.length === 0) {
698  err += "CU Code must be set first\n";
699  }
700  if (cudomain.length === 0) {
701  err += "CU Domain must be set first\n";
702  }
703  if (cuserver.length === 0) {
704  err += "CU Server must be set first\n";
705  }
706  if (err.length !== 0) {
707  alert(err);
708  return;
709  }
710 
711  const message = `Log into the server ${cuserver}\n(You will need to be root to change the domain.)\nThis is the command to run:`;
712 
713  const editDomain = "/usr/local/bin/EditDomain";
714 
715  const re_strip_http = new RegExp('^http[s]?:\\/\\/', 'i');
716  const re_strip_www = new RegExp('^www\.', 'i');
717  const domain = cudomain
718  .replace(re_strip_http, '')
719  .replace(re_strip_www, '');
720 
721  let command = `${editDomain} -c ${cucode} -d ${domain}`;
722  window.prompt(message, command);
723  }
724  function post_ncua() {
725  var char_num = document.cuinfo.charter_number.value;
726  if (char_num.length == 0) {
727  alert ("You forgot to enter a charter number, please enter a number and try again.");
728  } else {
729  document.ncua.Charter.value = document.cuinfo.charter_number.value;
730  document.ncua.submit();
731  }
732  }
733  // -->
734  </script>
735 
736 <?php
737  print_set_date();
738 
739  print "<form action='$self' name='cuinfo' method='post'>";
740 ?>
741 
742  <?php
743  // If not already loaded, get the cu info from the database
744  $loadrec = isset($showrows);
745 
746  if ($loadrec == 0 ) {
747  $query = "select name, addr1, addr2, city, state, zip, ceo_mgr,
748  main_email, main_phone, home_page_url, vendor,
749  www_server, transfer_method, web_trans_method, conv_from,
750  comments, misc_notes, contract_notes, first_upload, date_live,
751  date_trained, date_hb_billed, date_ws_billed, stmnt_date,
752  charter_number, dec_31_assets, dec_31_mem, system_options,
753  txtbill_date, ivrbill_date, contract_expires, web_contract_expires, mobbill_date,
754  iphone_billed,android_billed,renewal_term,web_renewal_term,mblwebsite_billed,rdc_billed,geo_lat,geo_long
755  from cuinfo where user_name = '$user_name'";
756  $result = db_query($query, $link);
757 
758  $isNew = db_num_rows($result) == 0;
759  // Now fetch the row
760  list( $name, $addr1, $addr2, $city, $state, $zip, $ceo_mgr, $main_email,
761  $main_phone, $home_page_url, $vendor, $www_server,
762  $transfer_method, $web_trans_method, $conv_from, $comments,
763  $misc_notes, $contract_notes, $first_upload, $date_live, $date_trained,
764  $date_hb_billed, $date_ws_billed, $stmnt_date, $charter_number,
765  $dec_31_assets, $dec_31_mem, $system_options,
766  $txtbill_date, $ivrbill_date, $contract_expires, $web_contract_expires, $mobbill_date,
767  $iphone_billed,$android_billed,$renewal_term,$web_renewal_term,$mblwebsite_billed,$rdc_billed, $geo_lat, $geo_long) = db_fetch_array($result,0);
768 
769  $sys_typ_batch = ($system_options & $SYS_TYPE_BATCH ? $SYS_TYPE_BATCH : NULL);
770  $sys_typ_live = ($system_options & $SYS_TYPE_LIVE ? $SYS_TYPE_LIVE : NULL);
771  $sys_typ_asp = ($system_options & $SYS_TYPE_ASP ? $SYS_TYPE_ASP : NULL);
772  $sys_typ_ivr = ($system_options & $SYS_TYPE_IVR ? $SYS_TYPE_IVR : NULL);
773  $sys_typ_voip = ($system_options & $SYS_TYPE_VOIP ? $SYS_TYPE_VOIP : NULL);
774  $sys_typ_webonly = ($system_options & $SYS_TYPE_WEBONLY ? $SYS_TYPE_WEBONLY : NULL);
775  $sys_typ_upgrade = ($system_options & $SYS_TYPE_UPGRADE ? $SYS_TYPE_UPGRADE : NULL);
776  $sys_typ_closed = ($system_options & $SYS_TYPE_CLOSED ? $SYS_TYPE_CLOSED : NULL);
777 
778  $name = $isNew ? $user_name : $name; // Default to CU Code.
779  /** SET THE HB Upgrade Options **/
780  // ** For the purpose of the home banking flags, i can just use the combined
781  // * value from the system_options, and it will use bitwise operators
782  // * do decide the flags
783  $sys_typ_upg = $system_options;
784  // get the product information for the given credit union
785  $sql = "SELECT home_cu_desc, cuproducts.user_name
786  FROM cuprodlist
787  LEFT OUTER JOIN cuproducts on cuproducts.home_cu_code = cuprodlist.home_cu_code
788  AND cuproducts.user_name = '" . $user_name . "'
789  ORDER BY home_cu_desc ";
790 
791  $product_rs = db_query($sql, $link);
792  $productShow = array();
793  for ($row=0;list($desc, $flag) = db_fetch_array($product_rs,$row); $row++) {
794  $productShow[$row]["product"]=$desc;
795  $productShow[$row]["uses"]=(strlen($flag) > 0 ? true : false);
796  }
797 
798  # load array of existing monitor contacts
799 
800  $mc=array();
801  $mcsql= "select role, decider, trim(fname), trim(lname),
802  trim(phone), trim(email), trim(comment)
803  from monitor_contact
804  where user_name='$user_name'
805  order by role, id;";
806 
807  $mclist = db_query($mcsql, $link);
808  for ($row=0;list($mcrole, $mcdecider, $mcfname, $mclname, $mcphone, $mcemail, $mccomment) = db_fetch_array($mclist,$row); $row++) {
809  $mc[$row][0]=$mcrole;
810  $mc[$row][1]=($mcdecider == 'Y' ? "Y" : "N"); // boolean
811  $mc[$row][2]=$mcfname;
812  $mc[$row][3]=$mclname;
813  $mc[$row][4]=$mcphone;
814  $mc[$row][5]=$mcemail;
815  $mc[$row][6]=$mccomment;
816  }
817  $showrows=($row == 0 ? 2 : $row+1);
818  }
819  // ** Moved this outside the loadrec "if" statement above.. Becauase when the form was posted it was not calling the dms_disphtml function
820  // ** to properly encode the string... by putting it out here it will encode the string for database load -- OR from the global namespace variables
821  // * that get set after posting
822  $name = dms_disphtml($name);
823  $addr1 = dms_disphtml($addr1);
824  $addr2 = dms_disphtml($addr2);
825  $city = dms_disphtml($city);
826  $state = dms_disphtml(strtoupper($state));
827  $zip = dms_disphtml($zip);
828  $ceo_mgr = dms_disphtml($ceo_mgr);
829  $main_email = dms_disphtml($main_email);
830  $main_phone = dms_disphtml($main_phone);
831  $home_page_url = dms_disphtml($home_page_url);
832  $vendor = dms_disphtml($vendor);
833  $www_server = dms_disphtml($www_server);
834  $transfer_method = dms_disphtml($transfer_method);
835  $web_trans_method = dms_disphtml($web_trans_method);
836  $conv_from = dms_disphtml($conv_from);
837  $comments = dms_disphtml($comments);
838  $misc_notes = dms_disphtml($misc_notes);
839  $contract_notes = dms_disphtml($contract_notes);
840  $first_upload = dateformat("m/d/Y",trim($first_upload));
841  $date_live = dateformat("m/d/Y",trim($date_live));
842  $date_trained = dateformat("m/d/Y",trim($date_trained));
843  $date_hb_billed = dateformat("m/d/Y",trim($date_hb_billed));
844  $date_ws_billed = dateformat("m/d/Y",trim($date_ws_billed));
845  $stmnt_date = dateformat("m/d/Y",trim($stmnt_date));
846  $txtbill_date = dateformat("m/d/Y",trim($txtbill_date));
847  $ivrbill_date = dateformat("m/d/Y",trim($ivrbill_date));
848  $contract_expires = dateformat("m/d/Y",trim($contract_expires));
849  $web_contract_expires = dateformat("m/d/Y",trim($web_contract_expires));
850  $mobbill_date = dateformat("m/d/Y",trim($mobbill_date));
851  $iphone_billed = dateformat("m/d/Y",trim($iphone_billed));
852  $android_billed = dateformat("m/d/Y",trim($android_billed));
853  $charter_number = dms_disphtml($charter_number);
854  $dec_31_assets = dms_disphtml($dec_31_assets);
855  $dec_31_mem = dms_disphtml($dec_31_mem);
856  $renewal_term = dms_disphtml($renewal_term);
857  $web_renewal_term = dms_disphtml($web_renewal_term);
858  $mblwebsite_billed = dateformat("m/d/Y",trim($mblwebsite_billed));
859  $rdc_billed = dateformat("m/d/Y",trim($rdc_billed));
860  $sys_typ_upg_test = ($sys_typ_upg & $SYS_TYPE_UPG_TEST ? $SYS_TYPE_UPG_TEST : NULL);
861  $sys_typ_upg_beta = ($sys_typ_upg & $SYS_TYPE_UPG_BETA ? $SYS_TYPE_UPG_BETA : NULL);
862  $sys_typ_upg_comp = ($sys_typ_upg & $SYS_TYPE_UPG_COMP ? $SYS_TYPE_UPG_COMP : NULL);
863 
864  if (isset($form_err) && strlen($form_err) > 0)
865  printf("\n<font color=\"red\">$form_err</font>");
866  ?>
867  <table cellspacing="0" cellpadding="3" border="0" width="95%" class="dmsbg"><tr><td>
868  <table cellspacing="0" cellpadding="1" border="0" width="100%" bgcolor=white>
869  <tr>
870  <td class="bar" align="left">
871  Credit Union Information &nbsp;
872  <?php echo $user_name ?>
873  <input type="hidden" name="user_name" value="<?php echo set_string($user_name) ?>" >
874  </td>
875  </tr>
876 <?php
877 if ("$msg" != "") {
878  print "<tr><td colspan='2' class='msg' align='left'>$msg</td></tr>";
879 }
880 ?>
881  <tr>
882  <td>
883  <table cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor=white>
884  <tr>
885  <td>
886  <table cellspacing="0" cellpadding="1" border="0" width="100%" bgcolor=white>
887  <tr>
888  <td align="right" nowrap class="hdr">
889  Name:
890  </td>
891  <td class='dtl'>
892  <input type="text" name="name" size="30" maxlength="40" value="<?php echo $name ?>">
893  </td>
894  </tr>
895  <tr>
896  <td align="right" nowrap class="hdr">
897  Address:
898  </td>
899  <td class='dtl'>
900  <input type="text" name="addr1" size="30" maxlength="40" value="<?php echo $addr1 ?>">
901  </td>
902  </tr>
903 
904  <tr>
905  <td class="hdr">
906  &nbsp;
907  </td>
908  <td class='dtl'>
909  <input type="text" name="addr2" size="30" maxlength="40" value="<?php echo $addr2 ?>">
910  </td>
911  </tr>
912 
913  <tr>
914  <td align="right" nowrap class="hdr">
915  City ST Zip:
916  </td>
917  <td class='dtl'>
918  <input type="text" name="city" size="25" maxlength="25" value="<?php echo $city ?>">&nbsp;&nbsp;
919  <select name="state" size=1>
920  <OPTION VALUE="">&lt;Select State&gt;
921  <OPTION VALUE="AL" <?php if ($state == "AL")echo "SELECTED" ?>> Alabama
922  <OPTION VALUE="AK" <?php if ($state == "AK")echo "SELECTED" ?>> Alaska
923  <OPTION VALUE="AZ" <?php if ($state == "AZ")echo "SELECTED" ?>> Arizona
924  <OPTION VALUE="AR" <?php if ($state == "AR")echo "SELECTED" ?>> Arkansas
925  <OPTION VALUE="CA" <?php if ($state == "CA")echo "SELECTED" ?>> California
926  <OPTION VALUE="CO" <?php if ($state == "CO")echo "SELECTED" ?>> Colorado
927  <OPTION VALUE="CT" <?php if ($state == "CT")echo "SELECTED" ?>> Connecticut
928  <OPTION VALUE="DE" <?php if ($state == "DE")echo "SELECTED" ?>> Delaware
929  <OPTION VALUE="DC" <?php if ($state == "DC")echo "SELECTED" ?>> District of Columbia
930  <OPTION VALUE="FL" <?php if ($state == "FL")echo "SELECTED" ?>> Florida
931  <OPTION VALUE="GA" <?php if ($state == "GA")echo "SELECTED" ?>> Georgia
932  <OPTION VALUE="HI" <?php if ($state == "HI")echo "SELECTED" ?>> Hawaii
933  <OPTION VALUE="ID" <?php if ($state == "ID")echo "SELECTED" ?>> Idaho
934  <OPTION VALUE="IL" <?php if ($state == "IL")echo "SELECTED" ?>> Illinois
935  <OPTION VALUE="IN" <?php if ($state == "IN")echo "SELECTED" ?>> Indiana
936  <OPTION VALUE="IA" <?php if ($state == "IA")echo "SELECTED" ?>> Iowa
937  <OPTION VALUE="KS" <?php if ($state == "KS")echo "SELECTED" ?>> Kansas
938  <OPTION VALUE="KY" <?php if ($state == "KY")echo "SELECTED" ?>> Kentucky
939  <OPTION VALUE="LA" <?php if ($state == "LA")echo "SELECTED" ?>> Louisiana
940  <OPTION VALUE="ME" <?php if ($state == "ME")echo "SELECTED" ?>> Maine
941  <OPTION VALUE="MD" <?php if ($state == "MD")echo "SELECTED" ?>> Maryland
942  <OPTION VALUE="MA" <?php if ($state == "MA")echo "SELECTED" ?>> Massachusetts
943  <OPTION VALUE="MI" <?php if ($state == "MI")echo "SELECTED" ?>> Michigan
944  <OPTION VALUE="MN" <?php if ($state == "MN")echo "SELECTED" ?>> Minnesota
945  <OPTION VALUE="MS" <?php if ($state == "MS")echo "SELECTED" ?>> Mississippi
946  <OPTION VALUE="MO" <?php if ($state == "MO")echo "SELECTED" ?>> Missouri
947  <OPTION VALUE="MT" <?php if ($state == "MT")echo "SELECTED" ?>> Montana
948  <OPTION VALUE="NE" <?php if ($state == "NE")echo "SELECTED" ?>> Nebraska
949  <OPTION VALUE="NV" <?php if ($state == "NV")echo "SELECTED" ?>> Nevada
950  <OPTION VALUE="NH" <?php if ($state == "NH")echo "SELECTED" ?>> New Hampshire
951  <OPTION VALUE="NJ" <?php if ($state == "NJ")echo "SELECTED" ?>> New Jersey
952  <OPTION VALUE="NM" <?php if ($state == "NM")echo "SELECTED" ?>> New Mexico
953  <OPTION VALUE="NY" <?php if ($state == "NY")echo "SELECTED" ?>> New York
954  <OPTION VALUE="NC" <?php if ($state == "NC")echo "SELECTED" ?>> North Carolina
955  <OPTION VALUE="ND" <?php if ($state == "ND")echo "SELECTED" ?>> North Dakota
956  <OPTION VALUE="OH" <?php if ($state == "OH")echo "SELECTED" ?>> Ohio
957  <OPTION VALUE="OK" <?php if ($state == "OK")echo "SELECTED" ?>> Oklahoma
958  <OPTION VALUE="OR" <?php if ($state == "OR")echo "SELECTED" ?>> Oregon
959  <OPTION VALUE="PA" <?php if ($state == "PA")echo "SELECTED" ?>> Pennsylvania
960  <OPTION VALUE="RI" <?php if ($state == "RI")echo "SELECTED" ?>> Rhode Island
961  <OPTION VALUE="SC" <?php if ($state == "SC")echo "SELECTED" ?>> South Carolina
962  <OPTION VALUE="SD" <?php if ($state == "SD")echo "SELECTED" ?>> South Dakota
963  <OPTION VALUE="TN" <?php if ($state == "TN")echo "SELECTED" ?>> Tennessee
964  <OPTION VALUE="TX" <?php if ($state == "TX")echo "SELECTED" ?>> Texas
965  <OPTION VALUE="UT" <?php if ($state == "UT")echo "SELECTED" ?>> Utah
966  <OPTION VALUE="VT" <?php if ($state == "VT")echo "SELECTED" ?>> Vermont
967  <OPTION VALUE="VA" <?php if ($state == "VA")echo "SELECTED" ?>> Virginia
968  <OPTION VALUE="WA" <?php if ($state == "WA")echo "SELECTED" ?>> Washington
969  <OPTION VALUE="WV" <?php if ($state == "WV")echo "SELECTED" ?>> West Virginia
970  <OPTION VALUE="WI" <?php if ($state == "WI")echo "SELECTED" ?>> Wisconsin
971  <OPTION VALUE="WY" <?php if ($state == "WY")echo "SELECTED" ?>> Wyoming
972  <OPTION VALUE="VI" <?php if ($state == "VI")echo "SELECTED" ?>> U.S. Virgin Islands
973  <OPTION VALUE="TT" <?php if ($state == "TT")echo "SELECTED" ?>> Trinidad &amp; Tobago
974  <OPTION VALUE="PR" <?php if ($state == "PR")echo "SELECTED" ?>> Puerto Rico
975  </select>&nbsp;&nbsp;&nbsp;
976  <input type="text" name="zip" size="15" maxlength="15" value="<?php echo $zip ?>">
977  </td>
978  </tr>
979  <tr>
980  <td align="right" nowrap class="hdr">
981  CEO/MGR:
982  </td>
983  <td class='dtl'>
984  <input type="text" name="ceo_mgr" size="30" maxlength="40" value="<?php echo $ceo_mgr ?>">
985  </td>
986  </tr>
987  <tr>
988  <td align="right" nowrap class="hdr">
989  Main Email:
990  </td>
991  <td class='dtl'>
992 
993  <input type="text" name="main_email" size="30" maxlength="40" value="<?php echo $main_email ?>">
994  </td>
995  </tr>
996  <tr>
997  <td align="right" nowrap class="hdr">
998  Main Phone:
999  </td>
1000  <td class='dtl'>
1001  <input type="text" name="main_phone" size="20" maxlength="20" value="<?php echo $main_phone ?>">
1002  </td>
1003  </tr>
1004  <tr>
1005  <td align="right" nowrap class="hdr">
1006  Home Page URL: <font color="green">&nbsp;http://&nbsp;</font>
1007  </td>
1008  <td class='dtl'>
1009  <input type="text" name="home_page_url" size="32" maxlength="80" value="<?php echo $home_page_url ?>">
1010  <?php if (isMammothServer($www_server)): ?>
1011  &nbsp;&nbsp;<input type="button" name="EditDomain" value="Save Map" onclick="generateDomainEdit()">
1012  <?php else: ?>
1013  &nbsp;&nbsp;<span>Save Map utility not required for Odyssey clients</span>
1014  <?php endif; ?>
1015  </td>
1016  </tr>
1017  </table>
1018  </td>
1019  <td align="center" class="dtl">
1020  <table cellspacing="0" cellpadding="1" border="0" bgcolor=white>
1021  <tr>
1022  <td class="dtl" style="text-align:center; vertical-align:top;">
1023  <div class="hdr">Products</div>
1024  <div style="height:175px; width:200px; overflow:auto;">
1025  <?php
1026  print "<table style='border:2px solid white; border-spacing:0; width:100%; border-collapse:collapse;'>";
1027  for ( $i = 0; $i < count($productShow); $i++ ) {
1028  print "<tr>
1029  <td class='dtl' style='text-align:left; padding:4px; white-space:nowrap;'>" . $productShow[$i]["product"] . "</td>
1030  <td class='dtl' style='text-align:left; padding:4px; white-space:nowrap;'>" . ($productShow[$i]["uses"] ? "X" : "&nbsp;") . "</td>
1031  </tr>";
1032  }
1033  print "</table>";
1034  ?>
1035  </div>
1036  </td>
1037  </tr>
1038  </table>
1039  </td>
1040  </tr>
1041  </table>
1042  </td>
1043  </tr>
1044 <?php
1045 #
1046 # show rows and empty input boxes
1047 print "<tr><td colspan='2' class='bar'>Credit Union Contacts <br>
1048  <table align='center' cellspacing='0' cellpadding='0' border='0' width='100%' bgcolor=white>";
1049  print "<tr class='hdr'>
1050  <td>Role</td>
1051  <td>Decider</td>
1052  <td>First Name</td>
1053  <td>Last Name</td>
1054  <td>Phone</td>
1055  <td>Email</td>
1056  <td>Contact Info</td>
1057  <td><input type=button value='+' onClick=\"sendform('mcmore')\">&nbsp;
1058  <input name='mcdirty' type='hidden' value=''></td></tr>";
1059 
1060  for ($prow=0; $prow < $showrows; $prow++) {
1061  $RGB = ($RGB == "odd" ? "even" : "odd");
1062 
1063  print "<tr class='$RGB'><td class='usu' valign='top'>
1064  <select name='mc[$prow][0]'>
1065  <option value=''>Select Role...</option>";
1066  foreach ($cu_contact_role as $key => $value) {
1067  print "<option value='$key'" .
1068  ($key == $mc[$prow][0] ? " SELECTED" : "") .
1069  ">$value</option>\n";
1070  }
1071  print "</select></td>\n";
1072 
1073  // ** When the form is posted -- It needs to call dms_stripslashes because magic quotes add slashes... However,
1074  // ** Because the following lines are trusting that global variables will be setting the mc array, I can't just
1075  // call stripslashes.. So I am creating two sets of print statements.. One for database values and one for posted values
1076 
1077  // ** DATABASE VALUES
1078  #Decider
1079  print "<td class='usu' valign='top'><input type='checkbox'
1080  name='mc[$prow][1]' value='Y' " . ($mc[$prow][1] == "Y" ? "checked='CHECKED'" : "") .
1081  " onChange='javascript:document.forms[0].mcdirty.value=1'></td>";
1082  #First Name
1083  print "<td class='usu' valign='top'><input type='text' size='20' maxlength='40'
1084  name='mc[$prow][2]' value='" . dms_disphtml($mc[$prow][2]) .
1085  "' onChange='javascript:document.forms[0].mcdirty.value=1'></td>";
1086  #Last Name
1087  print "<td class='usu' valign='top'><input type='text' size='20' maxlength='25'
1088  name='mc[$prow][3]' value='" . dms_disphtml($mc[$prow][3]) .
1089  "' onChange='javascript:document.forms[0].mcdirty.value=1'></td>";
1090  #Phone
1091  print "<td class='usu' valign='top'><input type='text' size='20' maxlength='20'
1092  name='mc[$prow][4]' value='" . dms_disphtml($mc[$prow][4]) .
1093  "' onChange='javascript:document.forms[0].mcdirty.value=1'>
1094  </td>";
1095  #Email
1096  print "<td class='usu' valign='top'><input type='text' size='20' maxlength='50'
1097  name='mc[$prow][5]' value='" . dms_disphtml($mc[$prow][5]) .
1098  "' onChange='javascript:document.forms[0].mcdirty.value=1'>
1099  </td>";
1100  #Comment
1101  print "<td class='usu' valign='top'>
1102  <textarea name='mc[$prow][6]' rows='2' cols='20' wrap='virtual' onChange='javascript:document.forms[0].mcdirty.value=1'>" . dms_disphtml($mc[$prow][6]) .
1103  "</textarea></td>";
1104  print "<td class='usu' valign='top'>&nbsp;<input type='button' value='X' onClick='submitform(\"$prow\");'>&nbsp;</td>";
1105 
1106 
1107 print "</tr>\n";
1108 
1109  }
1110 print "</td></tr></table>";
1111 
1112 if (strlen($www_server) == 0) {$www_server = $_SERVER['HTTP_HOST']; }; // check if no $www_server and if none, assume development
1113 
1114 ?>
1115  <tr><td colspan='2' class='bar'>CU Admin Users <span id='cuContactClick' onclick='javascript:toggleCUContacts();' style='cursor:pointer;'>[&nbsp;-&nbsp;]</span>
1116  <iframe id='cuContactFrame' style='visibility:visible;' class='dtl' frameBorder='0' width='100%' scrolling='yes' height='100' src="<?php print $infourl;?>/hcuadm/cuAdmUsers.prg?cu=<?php echo $user_name; ?>"></iframe>
1117  </td></tr>
1118 <?php
1119 print <<< js_code
1120  <script language="javascript">
1121  <!--
1122  var toggleStateHidden = false;
1123  function toggleCUContacts() {
1124  var elemFrame = document.getElementById('cuContactFrame');
1125  var elemSign = document.getElementById('cuContactClick');
1126 
1127  if ( toggleStateHidden ) {
1128  elemFrame.height = 100;
1129  elemFrame.style.visibility = "visible";
1130  elemSign.innerHTML = "[&nbsp;-&nbsp;]";
1131  toggleStateHidden = false;
1132  } else {
1133  elemFrame.height = 0;
1134  elemFrame.style.visibility = "hidden";
1135  elemSign.innerHTML = "[&nbsp;+&nbsp;]";
1136  toggleStateHidden = true;
1137  }
1138  }
1139  // -->
1140  </script>
1141 js_code;
1142 ?>
1143  <tr>
1144  <td colspan="2" class='bar' align='left'>System Info
1145  </td>
1146  </tr>
1147  <tr><td class='usul' colspan='2'><table width='100%'>
1148  <tr><td class='hdr' align=right valign='top'>Vendor: </td>
1149  <td class='dtl' valign='top'><select name="vendor" size="1">
1150  <option value="">&lt;&lt;Select&gt;&gt;
1151  <?php
1152  // Quiet warnings/notice. Actually this could be eliminated, see docs for pg_fetch_array()
1153  $row_vnd = 0;
1154 
1155  $sql = "SELECT * FROM cuvendors ORDER BY vendvar ";
1156  if ($sql_rs = db_query($sql, $link)) {
1157  while($sql_row = db_fetch_array($sql_rs, $row_vnd++)) {
1158  $code = htmlspecialchars(trim($sql_row['vendvar']));
1159  $value = htmlspecialchars(trim($sql_row['vendor']));
1160  if (trim($vendor) == trim($sql_row['vendor'])) {
1161  $sel = "SELECTED";
1162  } else {
1163  $sel = "";
1164  }
1165 
1166  printf("\n<option value=\"%s\" %s>%s</option>",$value, $sel, $code);
1167  }
1168  }
1169  ?>
1170  </select></td>
1171  <td nowrap align="right" valign="top" class="hdr">
1172  &nbsp;
1173  </td>
1174  <td class='dtl' valign='top'>
1175  &nbsp;
1176  </td>
1177  <td nowrap align="right" valign="top" class="hdr">
1178  WWW Server:
1179  </td>
1180  <td class='dtl' valign='top'>
1181  <input type="text" name="www_server" size="20" maxlength="64" value="<?php echo $www_server ?>">
1182  &nbsp;<br>
1183  <font color="green">Use www3 or www6 for live, www5 for batch</font>
1184  </td>
1185  </tr>
1186  <tr>
1187  <td nowrap align="right" valign="top" class="hdr">
1188  Core File<br>Transfer<br>Method:
1189  </td>
1190  <td class='dtl' valign='top'>
1191  <select name="transfer_method" size="6">
1192  <option value="FTP" <?php if($transfer_method=="FTP") echo "SELECTED" ?>>FTP
1193  <option value="Kermit" <?php if($transfer_method=="Kermit") echo "SELECTED" ?>>Kermit
1194  <option value="Z modem/X modem" <?php if($transfer_method=="Z modem/X modem") echo "SELECTED" ?>>Z modem/X modem
1195  <option value="SAMBA" <?php if($transfer_method=="SAMBA") echo "SELECTED" ?>>SAMBA/VISIONS
1196  <option value="NETXFER" <?php if($transfer_method=="NETXFER") echo "SELECTED" ?>>NETXFER
1197  <option value="Diskette" <?php if($transfer_method=="Diskette") echo "SELECTED" ?>>Diskette
1198  <option value="Other" <?php if($transfer_method=="Other") echo "SELECTED" ?>>Other
1199  </select>
1200  </td>
1201 
1202  <td nowrap align="right" valign="top" class="hdr">
1203  Web<br>Transaction<br>Method:
1204  </td>
1205  <td class='dtl' valign='top'>
1206  <select name="web_trans_method" size="2">
1207  <option value="E-mail" <?php if($web_trans_method=="E-mail") echo "SELECTED" ?>>E-mail
1208  <option value="Batch" <?php if($web_trans_method=="Batch") echo "SELECTED" ?>>Batch
1209  </select>
1210  </td>
1211  <td align="right" nowrap class="hdr" valign='top'>
1212  Converted<br>From:
1213  </td>
1214  <td class='dtl' valign='top'>
1215  <select name="conv_from">
1216  <option value="">Select From List...</option>
1217  <?php
1218  foreach ($cu_prov_list as $value) {
1219  print "<option value=\"$value\"" .
1220  ($value == $conv_from ? "SELECTED" : "") .
1221  ">$value</option>\n";
1222  }
1223  ?>
1224  </td></tr>
1225  <tr>
1226  <td nowrap align="right" valign="top" class="hdr">
1227  Home CU Type:
1228  </td>
1229  <td colspan='5' class='dtl' valign='top'>
1230 
1231  <table border=0 cellpadding=0 cellspacing=0 width='100%'>
1232  <tr>
1233  <td width='15%' class='iright'>
1234  <input type='checkbox' name='sys_typ_batch' value='1' <?php echo (isset($sys_typ_batch) ? "CHECKED" : ""); ?>>Batch<br>
1235  </td>
1236  <td width='10%' class='iright'>
1237  <input type='checkbox' name='sys_typ_ivr' value='8' <?php echo (isset($sys_typ_ivr) ? "CHECKED" : ""); ?>>IVR<br>
1238  </td>
1239  <td width='25%' class='iright'>
1240  <input type='checkbox' name='sys_typ_upgrade' value='32' <?php echo (isset($sys_typ_upgrade) ? "CHECKED" : ""); ?>>Upgrade / Conversion<br>
1241  </td>
1242  <td width='50%' class='iright'>
1243  <input type='checkbox' name='sys_typ_closed' value='64' <?php echo (isset($sys_typ_closed) ? "CHECKED" : ""); ?>>Closed CU<br>
1244  </td>
1245  </tr>
1246  <tr>
1247  <td class='iright'>
1248  <input type='checkbox' name='sys_typ_live' value='2' <?php echo (isset($sys_typ_live) ? "CHECKED" : ""); ?>>Live<br>
1249  </td>
1250  <td width='10%' class='iright'>
1251  <input type='checkbox' name='sys_typ_voip' value='<?php echo $SYS_TYPE_VOIP; ?>' <?php echo (isset($sys_typ_voip) ? "CHECKED" : ""); ?>>VOIP<br>
1252  </td>
1253  <td class='iright'>
1254  <input type='checkbox' name='sys_typ_asp' value='4' <?php echo (isset($sys_typ_asp) ? "CHECKED" : ""); ?>>ASP<br>
1255  </td>
1256  <td class='iright' colspan='2'>
1257  &nbsp;
1258  </td>
1259  </tr>
1260  <tr>
1261  <td class='iright'>
1262  <input type='checkbox' name='sys_typ_webonly' value='16' <?php echo (isset($sys_typ_webonly) ? "CHECKED" : ""); ?>>Web ONLY<br>
1263  </td>
1264  <td class='iright' colspan='3'>
1265  &nbsp;
1266  </td>
1267  </tr>
1268  </table>
1269 
1270  </td>
1271  </tr>
1272  <tr>
1273  <td nowrap align="right" valign="top" class="hdr">
1274  Odyssey Migration Status:
1275  </td>
1276  <td colspan='1' class='dtl' valign='top'>
1277  <select name="sys_typ_upg">
1278  <option value="0">No Upgrade in Process</option>
1279  <option value="128" <?php echo (isset($sys_typ_upg_test) ? "SELECTED" : ""); ?>>Setup</option>
1280  <option value="256" <?php echo (isset($sys_typ_upg_beta) ? "SELECTED" : ""); ?>>Beta</option>
1281  <option value="512" <?php echo (isset($sys_typ_upg_comp) ? "SELECTED" : ""); ?>>Complete</option>
1282  </select>
1283  </td>
1284  <td colspan="2" nowrap align="right" valign="top" class="hdr">
1285  Latitude:
1286  </td>
1287  <td colspan="2" class="dtl">
1288  <input type="text" name="geo_lat" maxlength="25" value="<?php echo $geo_lat; ?>">
1289  </td>
1290  </tr>
1291  <tr>
1292  <td colspan="2" class="dtl"></td>
1293  <td colspan="2" nowrap align="right" valign="top" class="hdr">
1294  Longitude:
1295  </td>
1296  <td colspan="2" class="dtl">
1297  <input type="text" name="geo_long" maxlength="25" value="<?php echo $geo_long; ?>">
1298  </td>
1299  </tr>
1300  </table>
1301  </td>
1302  </tr>
1303  <?php
1304  /*
1305  ?>
1306  <tr>
1307  <td colspan="2" class='bar' align='left'>Notes
1308  </td>
1309  </tr>
1310  <tr>
1311  <td align="right" nowrap valign="top" class="hdr">
1312  Comments:
1313  </td>
1314  <td colspan="3" class="dtl">
1315  <?php
1316  $cu_info = $comments;
1317  ?>
1318  <textarea name="comments" rows="6" cols="60" wrap
1319  ><?php echo $cu_info; ?></textarea>
1320 
1321  </td>
1322  </tr>
1323  <tr>
1324  <td align="right" nowrap valign="top" class="hdr">
1325  Implementation Notes:
1326  </td>
1327  <td colspan="3" class="dtl">
1328  <?php
1329  $cu_info = $misc_notes;
1330  ?>
1331  <textarea name="misc_notes" rows="6" cols="60" wrap
1332  ><?php echo $cu_info; ?></textarea>
1333 
1334  </td>
1335  </tr>
1336  <tr>
1337  <td align="right" nowrap valign="top" class="hdr">
1338  Contract Notes:
1339  </td>
1340  <td colspan="3" class="dtl">
1341  <?php
1342  $cu_info = $contract_notes;
1343  ?>
1344  <textarea name="contract_notes" rows="6" cols="60" wrap
1345  ><?php echo $cu_info?></textarea>
1346 
1347  </td>
1348  </tr>
1349  <?php
1350  */
1351  ?>
1352  <tr>
1353  <td colspan="2" class='bar'>Dates
1354  </td>
1355  </tr>
1356  <tr>
1357  <td class='usu' colspan='2'><table width='100%'><tr>
1358  <td nowrap align="right" class="hdr">
1359  First Upload:
1360  </td>
1361  <td nowrap class='dtl'>
1362  <input type="text" name="first_upload" size="10" maxlength="10" value="<?php echo $first_upload ?>">
1363  &nbsp;
1364 <a href="javascript:set_date('first_upload')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1365 
1366  <font color="green">MM/DD/YYYY</font>
1367  </td>
1368  <td nowrap align="right" class="hdr">
1369  Website Billed:
1370  </td>
1371  <td nowrap class='dtl'>
1372  <input type="text" name="date_ws_billed" size="10" maxlength="10" value="<?php echo $date_ws_billed ?>">
1373  &nbsp;
1374 <a href="javascript:set_date('date_ws_billed')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1375  <font color="green">MM/DD/YYYY</font>
1376  </td>
1377  </tr>
1378  <tr>
1379  <td nowrap align="right" class="hdr">
1380  Trained:
1381  </td>
1382  <td nowrap class='dtl'>
1383  <input type="text" name="date_trained" size="10" maxlength="10" value="<?php echo $date_trained ?>">
1384  &nbsp;
1385 <a href="javascript:set_date('date_trained')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1386  <font color="green">MM/DD/YYYY</font>
1387  </td>
1388  <td nowrap align="right" class="hdr">
1389  Home Banking Billed:
1390  </td>
1391  <td nowrap class='dtl'>
1392  <input type="text" name="date_hb_billed" size="10" maxlength="10" value="<?php echo $date_hb_billed ?>">
1393  &nbsp;
1394 <a href="javascript:set_date('date_hb_billed')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1395  <font color="green">MM/DD/YYYY</font>
1396  </td>
1397  </tr>
1398  <tr>
1399  <td nowrap align="right" class="hdr">
1400  Went Live:
1401  </td>
1402  <td nowrap class='dtl'>
1403  <input type="text" name="date_live" size="10" maxlength="10" value="<?php echo $date_live ?>">
1404  &nbsp;
1405 <a href="javascript:set_date('date_live')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1406  <font color="green">MM/DD/YYYY</font>
1407  </td>
1408  <td nowrap align="right" class="hdr">
1409  E-Statement:
1410  </td>
1411  <td nowrap class='dtl'>
1412  <input type="text" name="stmnt_date" size="10" maxlength="10" value="<?php echo $stmnt_date ?>">
1413  &nbsp;
1414 <a href="javascript:set_date('stmnt_date')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1415  <font color="green">MM/DD/YYYY</font>
1416  </td></tr>
1417  <tr>
1418  <td nowrap align="right" class="hdr">
1419  TXT Banking Billed:
1420  </td>
1421  <td nowrap class='dtl'>
1422  <input type="text" name="txtbill_date" size="10" maxlength="10" value="<?php echo $txtbill_date ?>">
1423  &nbsp;
1424 <a href="javascript:set_date('txtbill_date')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1425  <font color="green">MM/DD/YYYY</font>
1426  </td>
1427  <td nowrap align="right" class="hdr">
1428  IVR Billed:
1429  </td>
1430  <td nowrap class='dtl'>
1431  <input type="text" name="ivrbill_date" size="10" maxlength="10" value="<?php echo $ivrbill_date ?>">
1432  &nbsp;
1433 <a href="javascript:set_date('ivrbill_date')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1434  <font color="green">MM/DD/YYYY</font>
1435  </td></tr>
1436  <tr>
1437  <td nowrap align="right" class="hdr">
1438  Banking Contract Expires:
1439  </td>
1440  <td nowrap class='dtl'>
1441  <input type="text" name="contract_expires" size="10" maxlength="10" value="<?php echo $contract_expires ?>">
1442  &nbsp;
1443 <a href="javascript:set_date('contract_expires')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1444  <font color="green">MM/DD/YYYY</font> &nbsp; Renewal Months: &nbsp;&nbsp;&nbsp;<input type="text" name="renewal_term" size="5" maxlength="3" value="<?php echo $renewal_term ?>">
1445  </td>
1446  <td nowrap align="right" class="hdr">
1447  Mobile Billed:
1448  </td>
1449  <td nowrap class='dtl'>
1450  <input type="text" name="mobbill_date" size="10" maxlength="10" value="<?php echo $mobbill_date ?>">
1451  &nbsp;
1452 <a href="javascript:set_date('mobbill_date')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1453  <font color="green">MM/DD/YYYY</font>
1454  </td>
1455 </tr>
1456  <tr>
1457  <td nowrap align="right" class="hdr">
1458  Web Contract Expires:
1459  </td>
1460  <td nowrap class='dtl'>
1461  <input type="text" name="web_contract_expires" size="10" maxlength="10" value="<?php echo $web_contract_expires ?>">
1462  &nbsp;
1463 <a href="javascript:set_date('web_contract_expires')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1464  <font color="green">MM/DD/YYYY</font> &nbsp; Renewal Months: &nbsp;&nbsp;&nbsp;<input type="text" name="web_renewal_term" size="5" maxlength="3" value="<?php echo $web_renewal_term ?>">
1465  </td>
1466  <td nowrap align="right" class="hdr"></td>
1467  <td nowrap class='dtl'></td>
1468 </tr>
1469  <tr>
1470  <td nowrap align="right" class="hdr">
1471  iPhone APP billed:
1472  </td>
1473  <td nowrap class='dtl'>
1474  <input type="text" name="iphone_billed" size="10" maxlength="10" value="<?php echo $iphone_billed ?>">
1475  &nbsp;
1476 <a href="javascript:set_date('iphone_billed')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1477  <font color="green">MM/DD/YYYY</font>
1478  </td>
1479  <td nowrap align="right" class="hdr">
1480  Mobile Website billed:
1481  </td>
1482  <td nowrap class='dtl'>
1483  <input type="text" name="mblwebsite_billed" size="10" maxlength="10" value="<?php echo $mblwebsite_billed ?>">
1484  &nbsp;
1485 <a href="javascript:set_date('mblwebsite_billed')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1486  <font color="green">MM/DD/YYYY</font>
1487  </td>
1488 </tr>
1489  <tr>
1490  <td nowrap align="right" class="hdr">
1491  Android APP Billed:
1492  </td>
1493  <td nowrap class='dtl'>
1494  <input type="text" name="android_billed" size="10" maxlength="10" value="<?php echo $android_billed ?>">
1495  &nbsp;
1496 <a href="javascript:set_date('android_billed')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1497  <font color="green">MM/DD/YYYY</font>
1498  </td>
1499  <td nowrap align="right" class="hdr">
1500  RDC Billed:
1501  </td>
1502  <td nowrap class='dtl'>
1503  <input type="text" name="rdc_billed" size="10" maxlength="10" value="<?php echo $rdc_billed ?>">
1504  &nbsp;
1505 <a href="javascript:set_date('rdc_billed')"><img src="/monitor/images/admin_tack.gif" alt="Set Date" border=0></a>&nbsp;&nbsp;
1506  <font color="green">MM/DD/YYYY</font>
1507  </td>
1508 </tr>
1509 
1510  </table></td>
1511  </tr>
1512  <tr>
1513  <td colspan="2" class="bar">Charter
1514  </td>
1515  </tr>
1516  <tr>
1517  <td class='usu' colspan='2'><table width='100%'><tr>
1518  <td nowrap align="right" class="hdr">
1519  Charter Number:
1520  </td>
1521  <td nowrap class='dtl'>
1522  <input type="text" name="charter_number" size="6" maxlength="5" value="<?php echo $charter_number ?>">
1523  &nbsp;&nbsp;<input type="button" name="FindNCUA" value="Search NCUA" onclick="post_ncua()">
1524  </td>
1525  <td nowrap align="right" class="hdr">
1526  Dec 31 Assets:
1527  </td>
1528  <td nowrap class='dtl'>
1529  $<input type="text" name="dec_31_assets" size="6" maxlength="5" value="<?php echo $dec_31_assets ?>">
1530  &nbsp;
1531  <font color="green">$999.9 M</font>
1532  </td>
1533  <td nowrap align="right" class="hdr">
1534  Dec 31 Membership:
1535  </td>
1536  <td nowrap class='dtl'>
1537  <input type="text" name="dec_31_mem" size="5" maxlength="10" value="<?php echo $dec_31_mem ?>">
1538  &nbsp;
1539  <font color="green">##</font>
1540  </td></tr></table></td>
1541  </tr>
1542  <tr><td colspan="2" class='bar'><hr></td></tr>
1543  <tr>
1544  <td nowrap colspan='2' class='dtlc'>
1545  <input type=hidden name="act" value="">
1546  <input type=hidden name='showrows' value='<?php echo $showrows ?>'>
1547 
1548 
1549  <input type=hidden name='delrow' value=''>
1550  <div style="width: 250px; text-align: left; margin-left: auto; margin-right: auto;">
1551  <br><div id="cusetMessageServer"><?php echo $cuSetMessage; ?></div>
1552  <div id="localCusetOptions">
1553  <div id="runCusetDiv" class=""><input type="checkbox" name="runCuset" disabled>Run CU set (<?php echo $_SERVER['HTTP_HOST']; ?>)</div>
1554  </div>
1555  <br><input type="submit" name="Save" Value="Save" onClick="sendform('save')">
1556  </div>
1557  </td>
1558  </tr>
1559  </table>
1560 
1561  </td></tr>
1562  <tr>
1563  <td colspan="2" class="dtl">
1564  <a href="<?php echo $infourl; ?>/hcuadm/cuilist.prg" target="parent">Credit Union List</a>
1565  </td>
1566  </tr>
1567  </table>
1568  </form>
1569  <form action="https://webapps.ncua.gov/cgi-bin/cudataexpanded.exe" method="post" name="ncua" target="ncua_result">
1570  <input type="hidden" name="Status" value="A">
1571  <input type="hidden" name="cfserver" value="reports.ncua.gov">
1572  <input type="hidden" name="Charter" value="">
1573  </form>
1574  </body>
1575 
1576  <script type="text/javascript">
1577  var cusetDiv = document.getElementById("runCusetDiv");
1578  var cusetOptions = document.getElementById("localCusetOptions");
1579  var cusetInput = cusetDiv.getElementsByTagName("input")[0];
1580  var serverInput = document.getElementsByName("www_server")[0];
1581  var cusetMessageServer = document.getElementById("cusetMessageServer");
1582 
1583  <?php // if the server message is empty that means it is ok to run cuset. ?>
1584  if (cusetMessageServer.textContent.trim() == "") {
1585  cusetOptions.style.display = "block";
1586  cusetDiv.className = "";
1587  cusetInput.disabled = false;
1588  } else {
1589  cusetInput.disabled = true;
1590  cusetInput.checked = false;
1591  }
1592  </script>
1593  <style>
1594  #cusetMessageServer, #cusetMessageLocal {
1595  color: #aa0000;
1596  font-weight: bold;
1597  }
1598  .cuset-disabled {
1599  opacity: 0.6;
1600  }
1601  #localCusetOptions {
1602  display: none;
1603  }
1604  </style>
1605 </html>
1606 <?php
1607 }
1608 break;
1609 }
1610 ?>