PageRenderTime 44ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/index.html

https://bitbucket.org/vsposato/uri-tool
HTML | 710 lines | 598 code | 83 blank | 29 comment | 0 complexity | b1483fe8856ce47c47299bf32b135d41 MD5 | raw file
  1. <html>
  2. <!--
  3. # Copyright (c) 2012, Cornell University
  4. # All rights reserved.
  5. #
  6. # Redistribution and use in source and binary forms, with or without
  7. # modification, are permitted provided that the following conditions are met:
  8. #
  9. # * Redistributions of source code must retain the above copyright notice,
  10. # this list of conditions and the following disclaimer.
  11. # * Redistributions in binary form must reproduce the above copyright notice,
  12. # this list of conditions and the following disclaimer in the documentation
  13. # and/or other materials provided with the distribution.
  14. # * Neither the name of Cornell University nor the names of its contributors
  15. # may be used to endorse or promote products derived from this software
  16. # without specific prior written permission.
  17. #
  18. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  19. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  20. # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  21. # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  22. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  23. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  24. # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  25. # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  26. # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  27. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28. #
  29. -->
  30. <head>
  31. <title>UriTool Control</title>
  32. <script type="text/javascript">
  33. function clearUri(){
  34. document.getElementById('uri').value='';
  35. tblColor('fgui');
  36. }
  37. function clearUpload(){
  38. //alert('hi');
  39. document.getElementById('uris').value='';
  40. tblColor('fgui');
  41. }
  42. var H = 'vivostagingweb.vivo.ufl.edu';
  43. var P = '80';
  44. var C = '';
  45. function Host(o){
  46. H = trim(o.value);
  47. fixsource();
  48. }
  49. function Port(o){
  50. P = trim(o.value);
  51. fixsource();
  52. }
  53. function Ctxt(o){
  54. C = trim(o.value);
  55. fixsource();
  56. }
  57. function fixsource(){
  58. var hpc = H;
  59. if(P != '') hpc += ':' + P;
  60. if(C != '') hpc += '/' + C;
  61. document.getElementById('datasource').innerHTML = hpc;
  62. }
  63. function tblColor(tid){
  64. document.getElementById('fgui').style.borderColor = 'black';
  65. document.getElementById('fgui').style.borderWidth = '1px';
  66. document.getElementById('fddp').style.borderColor = 'black';
  67. document.getElementById('fddp').style.borderWidth = '1px';
  68. document.getElementById('fddo').style.borderColor = 'black';
  69. document.getElementById('fddo').style.borderWidth = '1px';
  70. document.getElementById('fddj').style.borderColor = 'black';
  71. document.getElementById('fddj').style.borderWidth = '1px';
  72. if(tid == 'fgui'){
  73. document.getElementById('fgui').style.borderColor = 'green';
  74. document.getElementById('fgui').style.borderWidth = '4px';
  75. }
  76. if(tid == 'fddp'){
  77. document.getElementById('fddp').style.borderColor = 'green';
  78. document.getElementById('fddp').style.borderWidth = '4px';
  79. }
  80. if(tid == 'fddo'){
  81. document.getElementById('fddo').style.borderColor = 'green';
  82. document.getElementById('fddo').style.borderWidth = '4px';
  83. }
  84. if(tid == 'fddj'){
  85. document.getElementById('fddj').style.borderColor = 'green';
  86. document.getElementById('fddj').style.borderWidth = '4px';
  87. }
  88. }
  89. function lookupRetracts(){
  90. tblColor('fgui');
  91. var ruser = document.getElementById('usr').value;
  92. if(ruser == ''){
  93. alert("Please supply a netid");
  94. return false;
  95. }
  96. var token = document.getElementById('token').value;
  97. if(token == ''){
  98. alert("Please supply a token");
  99. return false;
  100. }
  101. var rx = /\W/;
  102. if(rx.test(token)){
  103. if(token != '*'){
  104. alert("Please supply a token using only {a-zA-Z0-9_}");
  105. return false;
  106. }
  107. }
  108. var url='/cgi-bin/myretracts.cgi?ruser='+ruser;
  109. url += '&token='+token;
  110. //alert(url);
  111. main = document.getElementById('mainform');
  112. main.target = 'retracts';
  113. main.action = url;
  114. main.submit();
  115. return true;
  116. }
  117. function help(){
  118. var div = document.getElementById('notes');
  119. if(div.style.display == 'none')
  120. div.style.display = 'block';
  121. else
  122. div.style.display = 'none';
  123. return false;
  124. }
  125. function vivo(){
  126. var div = document.getElementById('instance');
  127. if(div.style.display == 'none')
  128. div.style.display = 'block';
  129. else
  130. div.style.display = 'none';
  131. return false;
  132. }
  133. function uriLookUpValid() {
  134. var ruser = document.getElementById('usr').value;
  135. if(ruser == ''){
  136. alert("Please supply a netid");
  137. return false;
  138. }
  139. var token = document.getElementById('token').value;
  140. if(token == ''){
  141. alert("Please supply a token");
  142. return false;
  143. }
  144. var rx = /\W/;
  145. if(rx.test(token)){
  146. alert("Please supply a token using only {a-zA-Z0-9_}");
  147. return false;
  148. }
  149. return true;
  150. }
  151. function lookUpUris(){
  152. tblColor('fgui');
  153. if(!uriLookUpValid()){
  154. return;
  155. }
  156. //alert("Host="+document.getElementById('host').value);
  157. var main = document.getElementById('mainform');
  158. main.target = 'listing';
  159. main.action ='/cgi-bin/lp.cgi';
  160. main.ENCTYPE='multipart/form-data';
  161. document.getElementById('op').value='lookup';
  162. document.getElementById('mainform').submit();
  163. }
  164. function restartSession(){
  165. tblColor('fgui');
  166. if(!uriLookUpValid()){
  167. return;
  168. }
  169. if(confirm('Do you want to clear the prior retracts?')){
  170. document.getElementById('rc').value = 'Yes';
  171. } else {
  172. document.getElementById('rc').value = 'No';
  173. }
  174. document.getElementById('op').value='restart';
  175. var main = document.getElementById('mainform');
  176. main.target = 'listing';
  177. main.action ='/cgi-bin/lp.cgi';
  178. main.ENCTYPE='multipart/form-data';
  179. document.getElementById('mainform').submit();
  180. }
  181. function dispGrp(){
  182. tblColor('fddp');
  183. if(!uriLookUpValid()){
  184. return;
  185. }
  186. var main = document.getElementById('mainform');
  187. main.target = 'dedupeep';
  188. main.action ='/cgi-bin/lp.cgi';
  189. main.ENCTYPE='multipart/form-data';
  190. document.getElementById('op').value='dispGrp';
  191. document.getElementById('mainform').submit();
  192. }
  193. function dispJGrp(){
  194. tblColor('fddj');
  195. if(!uriLookUpValid()){
  196. return;
  197. }
  198. var main = document.getElementById('mainform');
  199. main.target = 'dedupjournal';
  200. main.action ='/cgi-bin/lp.cgi';
  201. main.ENCTYPE='multipart/form-data';
  202. document.getElementById('op').value='dispJGrp';
  203. document.getElementById('mainform').submit();
  204. }
  205. function dispOGrp(){
  206. tblColor('fddo');
  207. if(!uriLookUpValid()){
  208. return;
  209. }
  210. var main = document.getElementById('mainform');
  211. main.target = 'deduporg';
  212. main.action ='/cgi-bin/lp.cgi';
  213. main.ENCTYPE='multipart/form-data';
  214. document.getElementById('op').value='dispOGrp';
  215. document.getElementById('mainform').submit();
  216. }
  217. function reStartGrp(){
  218. tblColor('fddp');
  219. if(!uriLookUpValid()){
  220. return;
  221. }
  222. var main = document.getElementById('mainform');
  223. main.target = 'dedupeep';
  224. main.action ='/cgi-bin/lp.cgi';
  225. main.ENCTYPE='multipart/form-data';
  226. document.getElementById('op').value='restartGrp';
  227. document.getElementById('mainform').submit();
  228. }
  229. function reStartJGrp(){
  230. tblColor('fddj');
  231. if(!uriLookUpValid()){
  232. return;
  233. }
  234. var main = document.getElementById('mainform');
  235. main.target = 'dedupjournal';
  236. main.action ='/cgi-bin/lp.cgi';
  237. main.ENCTYPE='multipart/form-data';
  238. document.getElementById('op').value='restartJGrp';
  239. document.getElementById('mainform').submit();
  240. }
  241. function reStartOGrp(){
  242. tblColor('fddo');
  243. if(!uriLookUpValid()){
  244. return;
  245. }
  246. var main = document.getElementById('mainform');
  247. main.target = 'deduporg';
  248. main.action ='/cgi-bin/lp.cgi';
  249. main.ENCTYPE='multipart/form-data';
  250. document.getElementById('op').value='restartOGrp';
  251. document.getElementById('mainform').submit();
  252. }
  253. function rListGrp(){
  254. tblColor('fddp');
  255. if(!uriLookUpValid()){
  256. return;
  257. }
  258. var ruser = document.getElementById('usr').value;
  259. var token = document.getElementById('token').value;
  260. var rmergeF = document.getElementById('rmerge').checked;
  261. var rmergeV = document.getElementById('rmerge').value;
  262. var url='/cgi-bin/myDdpRetracts.cgi?ruser='+ruser;
  263. url += '&token='+token;
  264. if(rmergeF){
  265. url += '&rmerge=' + rmergeV;
  266. }
  267. //alert(url);
  268. main = document.getElementById('mainform');
  269. main.target = 'retracts';
  270. main.action = url;
  271. main.submit();
  272. }
  273. function rListJGrp(){
  274. tblColor('fddj');
  275. if(!uriLookUpValid()){
  276. return;
  277. }
  278. var ruser = document.getElementById('usr').value;
  279. var token = document.getElementById('token').value;
  280. var rmergeF = document.getElementById('jrmerge').checked;
  281. var rmergeV = document.getElementById('jrmerge').value;
  282. var url='/cgi-bin/myDdjRetracts.cgi?ruser='+ruser;
  283. url += '&token='+token;
  284. if(rmergeF){
  285. url += '&jrmerge=' + rmergeV;
  286. }
  287. //alert(url);
  288. main = document.getElementById('mainform');
  289. main.target = 'jretracts';
  290. main.action = url;
  291. main.submit();
  292. }
  293. function rListOGrp(){
  294. tblColor('fddo');
  295. if(!uriLookUpValid()){
  296. return;
  297. }
  298. var ruser = document.getElementById('usr').value;
  299. var token = document.getElementById('token').value;
  300. var rmergeF = document.getElementById('ormerge').checked;
  301. var rmergeV = document.getElementById('ormerge').value;
  302. var url='/cgi-bin/myDdoRetracts.cgi?ruser='+ruser;
  303. url += '&token='+token;
  304. if(rmergeF){
  305. url += '&ormerge=' + rmergeV;
  306. }
  307. //alert(url);
  308. main = document.getElementById('mainform');
  309. main.target = 'oretracts';
  310. main.action = url;
  311. main.submit();
  312. }
  313. function aListGrp(){
  314. tblColor('fddp');
  315. if(!uriLookUpValid()){
  316. return;
  317. }
  318. var ruser = document.getElementById('usr').value;
  319. var token = document.getElementById('token').value;
  320. var amergeF = document.getElementById('amerge').checked;
  321. var amergeV = document.getElementById('amerge').value;
  322. var url='/cgi-bin/myDdpAsserts.cgi?ruser='+ruser;
  323. url += '&token='+token;
  324. if(amergeF){
  325. url += '&amerge=' + amergeV;
  326. }
  327. //alert(url);
  328. main = document.getElementById('mainform');
  329. main.target = 'asserts';
  330. main.action = url;
  331. main.submit();
  332. }
  333. function aListJGrp(){
  334. tblColor('fddj');
  335. if(!uriLookUpValid()){
  336. return;
  337. }
  338. var ruser = document.getElementById('usr').value;
  339. var token = document.getElementById('token').value;
  340. var amergeF = document.getElementById('jamerge').checked;
  341. var amergeV = document.getElementById('jamerge').value;
  342. var url='/cgi-bin/myDdjAsserts.cgi?ruser='+ruser;
  343. url += '&token='+token;
  344. if(amergeF){
  345. url += '&jamerge=' + amergeV;
  346. }
  347. //alert(url);
  348. main = document.getElementById('mainform');
  349. main.target = 'jasserts';
  350. main.action = url;
  351. main.submit();
  352. }
  353. function aListOGrp(){
  354. tblColor('fddo');
  355. if(!uriLookUpValid()){
  356. return;
  357. }
  358. var ruser = document.getElementById('usr').value;
  359. var token = document.getElementById('token').value;
  360. var amergeF = document.getElementById('oamerge').checked;
  361. var amergeV = document.getElementById('oamerge').value;
  362. var url='/cgi-bin/myDdoAsserts.cgi?ruser='+ruser;
  363. url += '&token='+token;
  364. if(amergeF){
  365. url += '&oamerge=' + amergeV;
  366. }
  367. //alert(url);
  368. main = document.getElementById('mainform');
  369. main.target = 'oasserts';
  370. main.action = url;
  371. main.submit();
  372. }
  373. function trim(str) {
  374. if(str == null)
  375. return "";
  376. str = str.replace(/^\s+/, '');
  377. str = str.replace(/\s+$/, '');
  378. return str;
  379. }
  380. </script>
  381. </head>
  382. <body
  383. style="font-family:Arial,Verdana;font-size:14px;background-color:#F5F5F5">
  384. <H1>Uri Tool</H1>
  385. <form method='post' id='mainform'
  386. name='mainform' action='/cgi-bin/lp.cgi'
  387. target='listing' ENCTYPE='multipart/form-data'/>
  388. <input type='hidden' id='op' name='op' value='lu'/>
  389. <input type='hidden' id='rc' name='rc' value='No'/>
  390. <p>
  391. <a href='#' style='color: blue; text-decoration: none;'
  392. onclick='help()'> Help </a><br/>
  393. <div id='notes' style='display: none;'>
  394. Enter your <b>netid</b> and a prefix <b>token</b> below these will be used
  395. to distinguish your files from those you<br/> have worked with before
  396. and those of other users.
  397. Tokens should consist only of {a-zA-Z0-9_}<br/> <br/>
  398. Clicking 'URI Look Up' will cause any files
  399. with that prefix to be cleared before the look up is performed.<br/>
  400. Tokens will have '-TK' appended to them to avoid ambiguity.
  401. When listing retract files the token '*' is permitted.
  402. </p>
  403. <p>
  404. You can enter a single URI or a list of URIs in a file.
  405. The file should contain a single URI per line. It takes about<br/>
  406. 6 to 10 seconds per URI to prepare and display a list. If the upload list
  407. is 20 or more a batch job will be started<br/>
  408. and you will be notified by email when it is complete.
  409. </p>
  410. <p>
  411. If your
  412. URIs are in the
  413. '<b>http://vivo.cornell.edu/individual</b>' namespace
  414. you can use just the local name.<br/>
  415. </p>
  416. </div>
  417. <p>
  418. The current data source is:
  419. <span style="color: red;font-size:18px;font-family: courier;font-weight: bold;"
  420. id='datasource'>Cornell VIVO</span>.</p>
  421. <table border="0" cellpadding="4"
  422. cellspacing="4" style="font-size:16px;">
  423. <tr><td>
  424. <h4>Enter Netid and Token</h4>
  425. <table border="0" cellpadding="4"
  426. cellspacing="4" style="font-size:14px;border:1px solid black;">
  427. <tr>
  428. <th>Netid</th>
  429. <th>Prefix Token</th>
  430. <tr>
  431. <td style='text-align: center;' >
  432. <input type='text' size='10' name='usr' id='usr'/></td>
  433. <td style='text-align: center;'>
  434. <input type='text' size='10' name='token' id='token'/></td>
  435. </tr>
  436. </table>
  437. </td>
  438. <td>
  439. <h4>Vivo Instance Declaration</h4>
  440. <table border="0" cellpadding="4"
  441. cellspacing="4" style="font-size:14px;border:1px solid black;">
  442. <tr><th>Host</th><th>Port</th><th>Context</th>
  443. </tr>
  444. <tr>
  445. <td>
  446. <input type='text' name='host' id='host' value='vivo.cornell.edu' onchange='Host(this)' />
  447. </td>
  448. <td>
  449. <input type='text' name='port' size='6' id='port' value='8080' onchange='Port(this)'/>
  450. </td>
  451. <td>
  452. <input type='text' name='ctxt' size='10' id='ctxt' value='' onchange='Ctxt(this)'/>
  453. </td>
  454. </tr>
  455. </table>
  456. </td>
  457. </tr>
  458. </table>
  459. <table border="0" cellpadding="1" cellspacing="4" >
  460. <tr><td style='vertical-align:top;'>
  461. <h4>Function: General URI Inspection</h4>
  462. <table border="0" cellpadding="4" id='fgui'
  463. cellspacing="4" style="font-size:14px;border:1px solid black;">
  464. <tr>
  465. <th>Single URI</th>
  466. <th colspan='2'>Upload a URI list</th>
  467. </tr>
  468. <tr>
  469. <td><input type='text' name='uri'
  470. id='uri' onchange='clearUpload()'/></td>
  471. <td colspan='2'><input type='file' name='uris' size='35'
  472. id='uris' onchange='clearUri()'/></td>
  473. </tr>
  474. <tr>
  475. <td colspan='3' style='text-align: center;'>
  476. <input type='button' name='lookup'
  477. value='URI Look Up' onclick='lookUpUris()'/>
  478. <input type='button' name='toretract'
  479. value='List Retract Files' onclick='lookupRetracts()' />
  480. <input type='button' name='continue'
  481. value='ReStart Session' onclick='restartSession()' />
  482. </td>
  483. </tr>
  484. </table>
  485. </td><td>
  486. <h4>Function: Merge Groups of Similar foaf:Person Objects</h4>
  487. <table border="0" cellpadding="4" id='fddp'
  488. cellspacing="4" style="font-size:14px;border:1px solid black;">
  489. <tr>
  490. <th>Grouping Criteria</th>
  491. <th colspan='2'>Upload a Person Group File</th>
  492. </tr>
  493. <tr>
  494. <td><input type='text' name='criteria' id='criteria' onchange=''/></td>
  495. <td colspan='2'><input type='file' name='gfile' size='35'
  496. id='gfile' onchange='tblColor("fddp")'/></td>
  497. </tr>
  498. <tr>
  499. <td style='text-align: center;'>
  500. <table style="font-size:14px;">
  501. <tr><td style='text-align: center;'>
  502. <input type='button' name='dispg' id='dispg' value='Display Groups' onclick='dispGrp()'/>
  503. </td</tr>
  504. <tr><td style='text-align: center;'>
  505. <input type='button' name='reGrp' id='reGrp' value='ReStart Group' onclick='reStartGrp()'/>
  506. </td</tr>
  507. </table>
  508. </td>
  509. <td colspan='2' style='text-align: center;'>
  510. <table style="font-size:14px;border:1px solid black;">
  511. <tr>
  512. <td style="font-size:12px;"><input type='checkbox' name='rmerge' id='rmerge'
  513. value='mr' onclick='' /> Combine </td>
  514. <td style="font-size:12px;"><input type='checkbox' name='amerge' id='amerge'
  515. value='ma' onclick=''/> Combine </td>
  516. </tr>
  517. <tr><td>
  518. <input type='button' name='rlist' value='List Retract Files' onclick='rListGrp()'/>
  519. </td><td>
  520. <input type='button' name='alist' value='List Assert Files' onclick='aListGrp()'/>
  521. </td></tr>
  522. </table>
  523. </td>
  524. </tr>
  525. </table>
  526. </td></tr>
  527. <tr><td colspan='2'>&nbsp;</td></tr>
  528. <tr><td>
  529. <h4>Function: Merge Groups of Similar bibo:Journal Objects </h4>
  530. <table border="0" cellpadding="4" id='fddj'
  531. cellspacing="4" style="font-size:14px;border:1px solid black;">
  532. <tr>
  533. <th>Grouping Criteria</th>
  534. <th colspan='2'>Upload a Journal Group File</th>
  535. </tr>
  536. <tr>
  537. <td><input type='text' name='jcriteria'
  538. id='jcriteria' onchange=''/></td>
  539. <td colspan='2'><input type='file' name='jgfile' size='35'
  540. id='jgfile' onchange='tblColor("fddj")'/></td>
  541. </tr>
  542. <tr>
  543. <td style='text-align: center;'>
  544. <table style="font-size:14px;">
  545. <tr><td style='text-align: center;'>
  546. <input type='button' name='jdispg' id='jdispg' value='Display Groups' onclick='dispJGrp()'/>
  547. </td</tr>
  548. <tr><td style='text-align: center;'>
  549. <input type='button' name='jreGrp' id='jreGrp' value='ReStart Group' onclick='reStartJGrp()'/>
  550. </td</tr>
  551. </table>
  552. </td>
  553. <td colspan='2' style='text-align: center;'>
  554. <table style="font-size:14px;border:1px solid black;">
  555. <tr>
  556. <td style="font-size:12px;"><input type='checkbox' name='jrmerge' id='jrmerge'
  557. value='mr' onclick='' /> Combine </td>
  558. <td style="font-size:12px;"><input type='checkbox' name='jamerge' id='jamerge'
  559. value='ma' onclick=''/> Combine </td>
  560. </tr>
  561. <tr><td>
  562. <input type='button' name='jrlist'
  563. value='List Retract Files' onclick='rListJGrp()'/>
  564. </td><td>
  565. <input type='button' name='jalist'
  566. value='List Assert Files' onclick='aListJGrp()'/>
  567. </td></tr>
  568. </table>
  569. </td>
  570. </tr>
  571. </table>
  572. </td><td>
  573. <h4>Function: Merge Groups of Similar foaf:Organization Objects</h4>
  574. <table border="0" cellpadding="4" id='fddo'
  575. cellspacing="4" style="font-size:14px;border:1px solid black;">
  576. <tr>
  577. <th>Grouping Criteria</th>
  578. <th colspan='2'>Upload a Organization Group File</th>
  579. </tr>
  580. <tr>
  581. <td><input type='text' name='ocriteria'
  582. id='ocriteria' onchange=''/></td>
  583. <td colspan='2'><input type='file' name='ogfile' size='35'
  584. id='ogfile' onchange='tblColor("fddo")'/></td>
  585. </tr>
  586. <tr>
  587. <td style='text-align: center;'>
  588. <table style="font-size:14px;">
  589. <tr><td style='text-align: center;'>
  590. <input type='button' name='odispg' id='odispg' value='Display Groups' onclick='dispOGrp()'/>
  591. </td</tr>
  592. <tr><td style='text-align: center;'>
  593. <input type='button' name='oreGrp' id='oreGrp' value='ReStart Group' onclick='reStartOGrp()'/>
  594. </td</tr>
  595. </table>
  596. </td>
  597. <td colspan='2' style='text-align: center;'>
  598. <table style="font-size:14px;border:1px solid black;">
  599. <tr>
  600. <td style="font-size:12px;"><input type='checkbox' name='ormerge' id='ormerge'
  601. value='mr' onclick='' /> Combine </td>
  602. <td style="font-size:12px;"><input type='checkbox' name='oamerge' id='oamerge'
  603. value='ma' onclick=''/> Combine </td>
  604. </tr>
  605. <tr><td>
  606. <input type='button' name='orlist'
  607. value='List Retract Files' onclick='rListOGrp()'/>
  608. </td><td>
  609. <input type='button' name='oalist'
  610. value='List Assert Files' onclick='aListOGrp()'/>
  611. </td></tr>
  612. </table>
  613. </td>
  614. </tr>
  615. </table>
  616. </td><tr>
  617. </table>
  618. </form>
  619. <script>
  620. fixsource()
  621. document.getElementById('host').value=H;
  622. document.getElementById('port').value=P;
  623. document.getElementById('ctxt').value=C;
  624. </script>
  625. </body>
  626. </html>