|
1 <HTML> <!-- -*- Mode: Java; tab-width: 8 -*- --> |
|
2 <!-- This Source Code Form is subject to the terms of the Mozilla Public |
|
3 - License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> |
|
5 <HEAD> |
|
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
7 <SCRIPT LANGUAGE="JavaScript1.2"> |
|
8 |
|
9 script_url = 'http://interzone.mcom.com/cgi-bin/certomatic/bin/certcgi.cgi' |
|
10 |
|
11 ext_page_ver1 = |
|
12 make_page_intro('Version 1 extensions', "#FFFFFF") + |
|
13 '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext1">' + |
|
14 'Version 1 X.509 certs do not support extensions' + |
|
15 '</IFRAME>' + |
|
16 '</body></html>'; |
|
17 |
|
18 num_ca = 0; |
|
19 |
|
20 your_certificate_index_label = 'Your Certificate'; |
|
21 netscape_extensions_index_label = 'Netscape X.509 Extensions'; |
|
22 standard_extensions_index_label = 'Standard X.509 Extensions'; |
|
23 certifying_authorities_index_label = 'Certifying Authorities'; |
|
24 add_sub_alt_name_index_label = 'Add Subject Alternative Name'; |
|
25 |
|
26 index_list = |
|
27 '0, your_certificate_index_label,' + |
|
28 '0, netscape_extensions_index_label,' + |
|
29 '0, standard_extensions_index_label,' + |
|
30 '0, certifying_authorities_index_label'; |
|
31 |
|
32 add_index_list = ''; |
|
33 |
|
34 ver = 3 |
|
35 |
|
36 max_pages = 13; |
|
37 cur_page = 1; |
|
38 |
|
39 ext_page_array = new Array(max_pages); |
|
40 |
|
41 index_label = 'Options'; |
|
42 |
|
43 var main_page = |
|
44 make_page_intro('Your Key', "#FFFFFF") + |
|
45 '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="main" SRC="main.html">' + |
|
46 '</IFRAME>' + |
|
47 '</body></html>' ; |
|
48 |
|
49 function setSubAltNameType(form) |
|
50 { |
|
51 with(form) { |
|
52 if (SubAltNameRadio[0].checked) { |
|
53 return true; |
|
54 } |
|
55 if (SubAltNameRadio[3].checked || SubAltNameRadio[5].checked) { |
|
56 SubAltNameDataType.checked = true; |
|
57 return true; |
|
58 } |
|
59 if (SubAltNameRadio[1].checked || SubAltNameRadio[2].checked || |
|
60 SubAltNameRadio[4].checked || SubAltNameRadio[6].checked || |
|
61 SubAltNameRadio[7].checked || SubAltNameRadio[8].checked) { |
|
62 SubAltNameDataType.checked = false; |
|
63 return true; |
|
64 } |
|
65 } |
|
66 return true; |
|
67 } |
|
68 |
|
69 function setIssuerAltNameType(form) |
|
70 { |
|
71 with(form) { |
|
72 if (IssuerAltNameRadio[0].checked) { |
|
73 return true; |
|
74 } |
|
75 if (IssuerAltNameRadio[3].checked || IssuerAltNameRadio[5].checked) { |
|
76 IssuerAltNameDataType.checked = true; |
|
77 return true; |
|
78 } |
|
79 if (IssuerAltNameRadio[1].checked || IssuerAltNameRadio[2].checked || |
|
80 IssuerAltNameRadio[4].checked || IssuerAltNameRadio[6].checked || |
|
81 IssuerAltNameRadio[7].checked || IssuerAltNameRadio[8].checked) { |
|
82 IssuerAltNameDataType.checked = false; |
|
83 return true; |
|
84 } |
|
85 } |
|
86 return true; |
|
87 } |
|
88 |
|
89 |
|
90 function setNameConstraintNameType(form) |
|
91 { |
|
92 with(form) { |
|
93 if (NameConstraintRadio[0].checked) { |
|
94 return true; |
|
95 } |
|
96 if (NameConstraintRadio[3].checked || NameConstraintRadio[5].checked) { |
|
97 NameConstraintNameDataType.checked = true; |
|
98 return true; |
|
99 } |
|
100 if (NameConstraintRadio[1].checked || NameConstraintRadio[2].checked || |
|
101 NameConstraintRadio[4].checked || NameConstraintRadio[6].checked || |
|
102 NameConstraintRadio[7].checked || NameConstraintRadio[8].checked) { |
|
103 NameConstraintNameDataType.checked = false; |
|
104 return true; |
|
105 } |
|
106 } |
|
107 return true; |
|
108 } |
|
109 |
|
110 |
|
111 function addSubAltName(form) |
|
112 { |
|
113 with(form) { |
|
114 var len = SubAltNameSelect.length; |
|
115 var value; |
|
116 var i = 0; |
|
117 while(!(i == (SubAltNameRadio.length - 1)) & |
|
118 !(SubAltNameRadio[i].checked == true)) { |
|
119 i++; |
|
120 } |
|
121 if (i != 0) { |
|
122 value = SubAltNameText.value + " - " + (i + 1); |
|
123 } else { |
|
124 value = SubAltNameText.value + " - " + |
|
125 SubAltNameOtherNameOID.value + " - "; |
|
126 if (SubAltNameDataType.checked) { |
|
127 value += "1 - "; |
|
128 } else { |
|
129 value += "0 - "; |
|
130 } |
|
131 value += (i + 1); |
|
132 if (SubAltNameOtherNameOID.value == "") { |
|
133 alert("Other names must include an OID"); |
|
134 return false; |
|
135 } |
|
136 } |
|
137 |
|
138 if ((SubAltNameText.value == "") | (SubAltNameRadio[i].checked != true)) { |
|
139 alert("Alternative Names must include values for name and name type."); |
|
140 } else { |
|
141 SubAltNameSelect.options[len] = new Option(value, value); |
|
142 } |
|
143 } |
|
144 return true; |
|
145 } |
|
146 |
|
147 function deleteSubAltName(form) |
|
148 { |
|
149 with(form) { |
|
150 while (SubAltNameSelect.selectedIndex >= 0) { |
|
151 SubAltNameSelect[SubAltNameSelect.selectedIndex] = null; |
|
152 } |
|
153 } |
|
154 } |
|
155 |
|
156 function addIssuerAltName(form) |
|
157 { |
|
158 with(form) |
|
159 { |
|
160 var len = IssuerAltNameSelect.length; |
|
161 var value; |
|
162 var i = 0; |
|
163 |
|
164 while(!(i == (IssuerAltNameRadio.length -1)) & |
|
165 !(IssuerAltNameRadio[i].checked == true)) { |
|
166 i++; |
|
167 } |
|
168 if (i != 0) { |
|
169 value = IssuerAltNameText.value + " - " + (i + 1); |
|
170 } else { |
|
171 value = IssuerAltNameText.value + " - " + |
|
172 IssuerAltNameOtherNameOID.value + " - "; |
|
173 if (IssuerAltNameDataType.checked) { |
|
174 value += "1 - "; |
|
175 } else { |
|
176 value += "0 - "; |
|
177 } |
|
178 value += (i + 1); |
|
179 if (IssuerAltNameOtherNameOID.value == "") { |
|
180 alert("Other names must include an OID"); |
|
181 return false; |
|
182 } |
|
183 } |
|
184 if ((IssuerAltNameText.value == "") | |
|
185 (IssuerAltNameRadio[i].checked != true)) { |
|
186 alert("Alternative Names must include values for name and name type.") |
|
187 } else { |
|
188 IssuerAltNameSelect.options[len] = new Option(value, value); |
|
189 } |
|
190 } |
|
191 return true; |
|
192 } |
|
193 |
|
194 function deleteIssuerAltName(form) |
|
195 { |
|
196 with(form) { |
|
197 while (IssuerAltNameSelect.selectedIndex >= 0) { |
|
198 IssuerAltNameSelect[IssuerAltNameSelect.selectedIndex] = null; |
|
199 } |
|
200 } |
|
201 } |
|
202 |
|
203 |
|
204 |
|
205 function addNameConstraint(form) |
|
206 { |
|
207 with(form) { |
|
208 var len = NameConstraintSelect.length; |
|
209 var value; |
|
210 var i = 0; |
|
211 var min = NameConstraintMin.value; |
|
212 var max = NameConstraintMax.value; |
|
213 |
|
214 while(!(i == (NameConstraintRadio.length - 1) ) & |
|
215 !(NameConstraintRadio[i].checked == true)) { |
|
216 i++; |
|
217 } |
|
218 value = NameConstraintText.value + " - "; |
|
219 if (i == 0) { |
|
220 value += NameConstraintOtherNameOID.value + " - "; |
|
221 if (NameConstraintNameDataType.checked) { |
|
222 value += "1 - "; |
|
223 } else { |
|
224 value += "0 - "; |
|
225 } |
|
226 if (NameConstraintOtherNameOID.value == "") { |
|
227 alert("Other names must include an OID"); |
|
228 return false; |
|
229 } |
|
230 } |
|
231 value += (i + 1) + " - "; |
|
232 if (NameConstraintTypeRadio[0].checked == true) { |
|
233 value += "p - "; |
|
234 } else { |
|
235 value += "e - "; |
|
236 } |
|
237 value += min + " - " + max; |
|
238 if ((min == "") | (NameConstraintText.value == "") | |
|
239 (NameConstraintRadio[i].checked != true)) { |
|
240 alert("Name Constraints must include values for minimum, name, and name type.") |
|
241 } else { |
|
242 NameConstraintSelect.options[len] = new Option(value, value); |
|
243 } |
|
244 } |
|
245 return true; |
|
246 } |
|
247 |
|
248 function deleteNameConstraint(form) |
|
249 { |
|
250 with(form) { |
|
251 while (NameConstraintSelect.selectedIndex >= 0) { |
|
252 NameConstraintSelect[NameConstraintSelect.selectedIndex] = null; |
|
253 } |
|
254 } |
|
255 } |
|
256 |
|
257 |
|
258 function submit_it() |
|
259 { |
|
260 save_cur_page(cur_page); |
|
261 |
|
262 var ver1 = (ver == 1); |
|
263 var ver3 = (ver == 3); |
|
264 var array_string; |
|
265 var serial = ext_page_array[0][10][0]; |
|
266 var serial_number = ext_page_array[0][12][0]; |
|
267 var manValidity = ext_page_array[0][19][0]; |
|
268 var notBefore = ext_page_array[0][20][0]; |
|
269 var notAfter = ext_page_array[0][21][0]; |
|
270 var subject = ext_page_array[0][22][0]; |
|
271 |
|
272 if (subject == "") { |
|
273 alert("The DN field must contain some data"); |
|
274 return false; |
|
275 } |
|
276 if (!serial & serial_number == "") { |
|
277 alert("No serial number specified"); |
|
278 return false; |
|
279 } |
|
280 if (ext_page_array[0][15][0]) { |
|
281 var keygen = "<keygen name=\"key\" challenge=\"foo\">"; |
|
282 } else { |
|
283 switch (ext_page_array[0][17][0]) { |
|
284 case 2: |
|
285 var keygen = "<keygen keytype=\"dsa\" pqg=\"MIGdAkEAjfKklEkidqo9JXWbsGhpy+rA2Dr7jQz3y7gyTw14guXQdi/FtyEOr8Lprawyq3qsSWk9+/g3JMLsBzbuMcgCkQIVAMdzIYxzfsjumTtPLe0w9I7azpFfAkEAYm0CeDnqChNBMWOlW0y1ACmdVSKVbO/LO/8Q85nOLC5xy53l+iS6v1jlt5UhklycxC6fb0ZLCIzFcq9T5teIAg==\" name=\"key\" challenge=\"foo\">"; |
|
286 break; |
|
287 case 1: |
|
288 var keygen = "<keygen keytype=\"dsa\" pqg=\"MIHaAmDCboVgX0+6pEeMlbwsasWDVBcJNHPKMzkq9kbCRK2U3k+tE15n+Dc2g3ZjDYr1um51e2iLC34/BwAAAAAAAAAAAAAAAAAAAAAAAAABbBhnlFN5Djmt0Mk8cdEBY5H8iPMCFMhUnFtbpjn3EyfH2DjVg3ALh7FtAmA2zWzhpeCwvOTjYnQorlXiv0WcnSiWmaC79CRYkFt5i+UEfRxwP1eNGJBVB1T+CPW6JGd4WhgsqtSf53pn5DEtv++O7lNfXyOhWhb3KaWHYIx8fuAXtioIWkWmpfEIVZA=\" name=\"key\" challenge=\"foo\">"; |
|
289 break; |
|
290 case 0: |
|
291 var keygen = "<keygen keytype=\"dsa\" pqg=\"MIIBHAKBgId8SiiWrcdua5zbsBhPkKfFcnHBG7T/bQla7c6OixGjjmSSuq2fJLvMKa579CaxHxLZzZZXIHmAk9poRgWl2GUUkCJ68XSum8OQzDPXPsofcEdeANjw3mIAAAAAAAAAAAAAAAAAAAAAAAAIE+MkW5hguLIQqWvEVi9dMpbNu6OZAhTIA+y3TgyiwA0D8pt686ofaL1IOQKBgAiZQC6UCXztr2iXxJrAC+51gN5oX/R9Thilln9RGegsWnHrdxUOpcm5vAWp1LU8TOXtujE8kqkm3UxIRhUWQORe9IxLANAXmZJqkw9FEVHkxj6Cy9detwT2MyBzSwS6avsf7aLisgHmI/IHSeapJsQ3NQa3rikb6zRiqIV+TVa6\" name=\"key\" challenge=\"foo\">"; |
|
292 break; |
|
293 } |
|
294 } |
|
295 array_string = build_array_string(); |
|
296 hiddens = "<input type=\"hidden\" name=\"subject\" value=\'" + subject + "\'> \n" + |
|
297 "<input type=\"hidden\" name=\"serial-auto\" value=\"" + serial + "\"> \n" + |
|
298 "<input type=\"hidden\" name=\"serial_value\" value=\"" + serial_number + "\"> \n" + |
|
299 "<input type=\"hidden\" name=\"ver-1\" value=\"" + ver1 + "\"> \n" + |
|
300 "<input type=\"hidden\" name=\"ver-3\" value=\"" + ver3 + "\"> \n" + |
|
301 "<input type=\"hidden\" name=\"notBefore\" value=\"" + notBefore + "\"> \n" + |
|
302 "<input type=\"hidden\" name=\"notAfter\" value=\"" + notAfter + "\"> \n" + |
|
303 "<input type=\"hidden\" name=\"manValidity\" value=\"" + manValidity + "\"> \n" + |
|
304 array_string; |
|
305 |
|
306 var good_submit_page = |
|
307 '<html>' + |
|
308 '<BODY TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#FF0000" BGCOLOR="#FFFFFF">' + |
|
309 '<form method="post" action="' + script_url + '">' + |
|
310 'Select size for your key:' + keygen + '</p>' + |
|
311 '<input type="submit"></p>' + |
|
312 hiddens + |
|
313 '</form>\n' + |
|
314 '</body>\n' + |
|
315 '</html>\n'; |
|
316 |
|
317 window.frames['right'].document.write(good_submit_page); |
|
318 window.frames['right'].document.close(); |
|
319 cur_page = max_pages + 1; |
|
320 make_left_frame(window); |
|
321 return false; |
|
322 } |
|
323 |
|
324 |
|
325 |
|
326 function build_array_string() |
|
327 { |
|
328 var pg; |
|
329 var array_string = ''; |
|
330 var pages; |
|
331 |
|
332 if ((ext_page_array[3][4][0] > 0) && ext_page_array[3][3][0]) { |
|
333 pages = 4 + parseInt(ext_page_array[3][4][0]); |
|
334 } else { |
|
335 pages = 4; |
|
336 } |
|
337 for (pg = 1; pg < pages; pg++) { |
|
338 if ((pg > 1 || (ver == 3)) && (ext_page_array[pg].length > 1)) { |
|
339 if (pg < 4) { |
|
340 for (i = 0; i < ext_page_array[pg].length; i++) { |
|
341 if (ext_page_array[pg][i][3].indexOf("radio") == -1) { |
|
342 if (ext_page_array[pg][i][3].indexOf("multiple") == -1) { |
|
343 array_string += '<input type=\"hidden\" name=\"' + |
|
344 ext_page_array[pg][i][1] + '\" value=\'' + |
|
345 ext_page_array[pg][i][0] + '\'> \n'; |
|
346 } else { |
|
347 for (k = 0; k < ext_page_array[pg][i][0].length; k++) { |
|
348 array_string += '<input type=\"hidden\" name=\"' + |
|
349 ext_page_array[pg][i][1] + k + '\" value=\'' + |
|
350 ext_page_array[pg][i][0][k] + '\'> \n'; |
|
351 } |
|
352 } |
|
353 } else { |
|
354 array_string += '<input type=\"hidden\" name=\"' + |
|
355 ext_page_array[pg][i][1] + '-' + |
|
356 ext_page_array[pg][i][2] + '\" value=\'' + |
|
357 ext_page_array[pg][i][0] + '\'> \n'; |
|
358 } |
|
359 } |
|
360 } else { |
|
361 for (i = 0; i < ext_page_array[pg].length; i++) { |
|
362 if (ext_page_array[pg][i][3].indexOf("radio") == -1) { |
|
363 if (ext_page_array[pg][i][3].indexOf("multiple") == -1) { |
|
364 array_string += '<input type=\"hidden\" name=\"' + |
|
365 'CA#' + (pg - 3) + '-' + |
|
366 ext_page_array[pg][i][1] + '\" value=\'' + |
|
367 ext_page_array[pg][i][0] +'\'> \n'; |
|
368 } else { |
|
369 for (k = 0; k < ext_page_array[pg][i][0].length; k++) { |
|
370 array_string += '<input type=\"hidden\" name=\"' + |
|
371 'CA#' + (pg - 3) + '-' + |
|
372 ext_page_array[pg][i][1] + k + '\" value=\'' + |
|
373 ext_page_array[pg][i][0][k] + '\'> \n'; |
|
374 } |
|
375 } |
|
376 } else { |
|
377 array_string += '<input type=\"hidden\" name=\"' + |
|
378 'CA#' + (pg - 3) + '-' + |
|
379 ext_page_array[pg][i][1] + '-' + |
|
380 ext_page_array[pg][i][2] + '\" value=\'' + |
|
381 ext_page_array[pg][i][0] + '\'> \n'; |
|
382 } |
|
383 } |
|
384 } |
|
385 } |
|
386 } |
|
387 return array_string; |
|
388 } |
|
389 |
|
390 |
|
391 |
|
392 function init_ext_page_array() |
|
393 { |
|
394 for (i = 0; i < max_pages; i++) { |
|
395 ext_page_array[i] = ''; |
|
396 } |
|
397 } |
|
398 |
|
399 function ca_num_change(n,ca_form) |
|
400 { |
|
401 with(ca_form) { |
|
402 n = parseInt(n,10); |
|
403 if (caChoiceradio[2].checked) { |
|
404 if (n) { |
|
405 update_left_frame(n); |
|
406 } else { |
|
407 update_left_frame(0); |
|
408 } |
|
409 } |
|
410 } |
|
411 } |
|
412 |
|
413 function choice_change(ca_form) |
|
414 { |
|
415 with(ca_form) { |
|
416 if (caChoiceradio[2].checked) { |
|
417 ca_num_change(manCAs.value,ca_form); |
|
418 } else { |
|
419 update_left_frame(0); |
|
420 } |
|
421 } |
|
422 } |
|
423 |
|
424 function update_left_frame(n) |
|
425 { |
|
426 var add_string = ''; |
|
427 for (var i = 0; i < n; i++) { |
|
428 var j = i + 1; |
|
429 add_string = add_string + ',1, \'CA #' + j + '\''; |
|
430 } |
|
431 top.add_index_list = add_string; |
|
432 num_ca = n; |
|
433 make_left_frame(window); |
|
434 } |
|
435 |
|
436 function set_ver1() |
|
437 // redraws the extensions page for version 1 certificates |
|
438 { |
|
439 ver = 1 |
|
440 if (cur_page == 2 || cur_page == 3) { |
|
441 switch_right_frame(window, cur_page, cur_page); |
|
442 } |
|
443 } |
|
444 |
|
445 |
|
446 function set_ver3() |
|
447 // redraws the extensions page for version 3 certificates |
|
448 { |
|
449 ver = 3 |
|
450 if (cur_page == 2) { |
|
451 switch_right_frame(window, 0, 2); |
|
452 } else if (cur_page == 3) { |
|
453 switch_right_frame(window, 0, 3); |
|
454 } |
|
455 } |
|
456 |
|
457 function reset_subject(marker, value, form) |
|
458 // Updates the subject field from a subordinate field |
|
459 { |
|
460 with(form) { |
|
461 var field_sep = '", '; |
|
462 var begin_index = subject.value.indexOf(marker); |
|
463 if (begin_index != 0 && subject.value[begin_index - 1] != ' ') { |
|
464 begin_index = subject.value.indexOf(marker, begin_index +1); |
|
465 } |
|
466 var end_index = subject.value.indexOf(field_sep, begin_index); |
|
467 if (begin_index > -1) { // is it a delete/change? |
|
468 if (end_index == -1) { // is it the last one (includes only one)? |
|
469 if (value.length > 0) { // do I have to change it? |
|
470 if (begin_index == 0) { // is is the only one? |
|
471 subject.value = marker + '"' + value + '"'; |
|
472 } else { // it is the last of many |
|
473 subject.value = subject.value.substring(0,begin_index) + |
|
474 marker + '"' + value + '"'; |
|
475 } |
|
476 } else { // must be a delete |
|
477 if (begin_index == 0) { // is it the only one? |
|
478 begin_index += 2; |
|
479 } |
|
480 subject.value = subject.value.substring(0,(begin_index - 2)); |
|
481 } |
|
482 } else { // it is the first of many or a middle one |
|
483 if (value.length >0) { // do I have to change it? |
|
484 subject.value = |
|
485 subject.value.substring(0,(begin_index + marker.length + 1)) + |
|
486 value + subject.value.substring(end_index,subject.length); |
|
487 } else { // it is a delete |
|
488 subject.value = subject.value.substring(0,begin_index) + |
|
489 subject.value.substring((end_index + 3),subject.length); |
|
490 } |
|
491 } |
|
492 } else { // It is either an insert or a do nothing |
|
493 if (value.length > 0) { // is it an insert? |
|
494 if (subject.value.length == 0) { // is subject currently empty? |
|
495 subject.value = marker + '"' + value + '"'; |
|
496 } else { |
|
497 subject.value = subject.value + ', ' + marker + '"' + value + '"'; |
|
498 } |
|
499 } |
|
500 } |
|
501 } |
|
502 } |
|
503 |
|
504 |
|
505 |
|
506 function reset_subjectFields(form) |
|
507 // updates all the subordinate fields from the subject field of a form |
|
508 // **** move the strings to global variables, to make maintentance easier **** |
|
509 { |
|
510 |
|
511 update_subject_Field(form, 'CN=\"', form.name); |
|
512 update_subject_Field(form, 'MAIL=\"', form.email); |
|
513 update_subject_Field(form, 'O=\"', form.org); |
|
514 update_subject_Field(form, 'C=\"', form.country); |
|
515 update_subject_Field(form, ' L=\"', form.loc); |
|
516 update_subject_Field(form, 'ST=\"', form.state); |
|
517 update_subject_Field(form, 'E=\"', form.email); |
|
518 update_subject_Field(form, 'OU=\"', form.org_unit); |
|
519 update_subject_Field(form, 'UID=\"', form.uid); |
|
520 } |
|
521 |
|
522 function update_subject_Field(form, marker, update_field) |
|
523 //updates a single subordinate field from the subject field of a form |
|
524 // *** need to deal with the two types of e-mail addresses ************** |
|
525 { |
|
526 with(form) { |
|
527 var field_sep = '", '; |
|
528 var begin_index = subject.value.indexOf(marker) + marker.length; |
|
529 var end_index = subject.value.indexOf(field_sep, begin_index); |
|
530 if (end_index == -1) { |
|
531 end_index = subject.value.indexOf('"',begin_index); |
|
532 } |
|
533 if (begin_index != (-1 + marker.length) ) { |
|
534 update_field.value = subject.value.substring(begin_index, end_index); |
|
535 } else { |
|
536 update_field.value = ''; |
|
537 } |
|
538 } |
|
539 } |
|
540 |
|
541 |
|
542 function switch_mail(form) |
|
543 // **** Do I want to delete the other type of e-mail address ? ************ |
|
544 { |
|
545 if (form.email_type[0].checked) { |
|
546 var del = 'E='; |
|
547 var ins = 'MAIL='; |
|
548 } else { |
|
549 var del = 'MAIL='; |
|
550 var ins = 'E='; |
|
551 } |
|
552 reset_subject(del, '', form); |
|
553 reset_subject(ins, form.email.value, form); |
|
554 } |
|
555 |
|
556 function make_page_intro(title, bgcolor) |
|
557 { |
|
558 var style = '<STYLE TYPE="text/css">BODY{' + |
|
559 'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' + |
|
560 'font-size: 10pt;' + |
|
561 '}' + |
|
562 'TD{' + |
|
563 'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' + |
|
564 'font-size: 10pt;}' + |
|
565 '</STYLE>'; |
|
566 |
|
567 if (bgcolor == null) { bgcolor = "#C0C0C0"; } |
|
568 return '<HTML><HEAD>' + |
|
569 '<TITLE>' + title + '</TITLE>' + |
|
570 '</HEAD>' + |
|
571 '<BODY TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#FF0000" ' + |
|
572 'BGCOLOR="' + bgcolor + '">'; |
|
573 } |
|
574 |
|
575 |
|
576 function make_left_frame(window) |
|
577 { |
|
578 with (window.frames['index']) { |
|
579 eval ('index_string = make_left_frame_page(cur_page, ' |
|
580 + index_list + add_index_list + ' )'); |
|
581 fool1 = make_page_intro(index_label, "#FFFFFF") + |
|
582 index_string + '</BODY></HTML>'; |
|
583 document.write(fool1); |
|
584 document.close(); |
|
585 } |
|
586 } |
|
587 |
|
588 |
|
589 function save_cur_page(page_number) |
|
590 { |
|
591 var len; |
|
592 var pg = page_number - 1; |
|
593 if (window.frames['right'].document.forms.length != 0) { |
|
594 with (window.frames['right'].document) { |
|
595 if ((page_number != 2 && page_number != 3 && page_number <= max_pages) || |
|
596 ver == 3) { |
|
597 ext_page_array[pg] = new Array(forms[0].elements.length); |
|
598 for (i = 0; i < forms[0].elements.length; i++) { |
|
599 ext_page_array[pg][i] = new Array(4); |
|
600 switch (forms[0].elements[i].type) { |
|
601 case 'radio': |
|
602 case 'checkbox': |
|
603 ext_page_array[pg][i][0] = forms[0].elements[i].checked; |
|
604 break; |
|
605 case 'select-one': |
|
606 ext_page_array[pg][i][0] = forms[0].elements[i].selectedIndex; |
|
607 break; |
|
608 case 'select-multiple': |
|
609 len = forms[0].elements[i].options.length; |
|
610 ext_page_array[pg][i][0] = new Array(len); |
|
611 for(k = 0; k < len; k++) { |
|
612 ext_page_array[pg][i][0][k] = forms[0].elements[i].options[k].value; |
|
613 } |
|
614 break; |
|
615 default: |
|
616 ext_page_array[pg][i][0] = forms[0].elements[i].value; |
|
617 } |
|
618 ext_page_array[pg][i][1] = forms[0].elements[i].name; |
|
619 ext_page_array[pg][i][2] = forms[0].elements[i].value; |
|
620 ext_page_array[pg][i][3] = forms[0].elements[i].type; |
|
621 } |
|
622 } |
|
623 } |
|
624 } |
|
625 } |
|
626 |
|
627 function reload_form(page_number) |
|
628 { |
|
629 var j = page_number - 1; |
|
630 with (window.frames['right'].document) { |
|
631 if (((page_number < 2 || page_number > 3) || ver == 3) |
|
632 && page_number != 0 && (ext_page_array[j].length > 1)) { |
|
633 for (i = 0; i < ext_page_array[j].length; i++) { |
|
634 switch (forms[0].elements[i].type) { |
|
635 case 'radio': case 'checkbox': |
|
636 forms[0].elements[i].checked = ext_page_array[j][i][0]; |
|
637 break; |
|
638 case 'select-one': |
|
639 forms[0].elements[i].selectedIndex = ext_page_array[j][i][0]; |
|
640 break; |
|
641 case 'select-multiple': |
|
642 for (k = 0; k < ext_page_array[j][i][0].length; k++) { |
|
643 forms[0].elements[i].options[k] = |
|
644 new Option(ext_page_array[j][i][0][k], |
|
645 ext_page_array[j][i][0][k]); |
|
646 } |
|
647 break; |
|
648 default: |
|
649 forms[0].elements[i].value = ext_page_array[j][i][0]; |
|
650 } |
|
651 } |
|
652 } |
|
653 } |
|
654 } |
|
655 |
|
656 function switch_right_frame(top_window, old_pane, new_pane) |
|
657 { |
|
658 var ext_page_stnd = |
|
659 make_page_intro(standard_extensions_index_label, "#FFFFFF") + |
|
660 '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + |
|
661 'SRC="stnd_ext_form.html">' + |
|
662 '</IFRAME></body></html>'; |
|
663 |
|
664 var ext_page_nscp = |
|
665 make_page_intro(netscape_extensions_index_label, "#FFFFFF") + |
|
666 '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + |
|
667 'SRC="nscp_ext_form.html">' + |
|
668 '</IFRAME></body></html>'; |
|
669 |
|
670 var ext_page_ca = |
|
671 make_page_intro(certifying_authorities_index_label, "#FFFFFF") + |
|
672 '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + |
|
673 'SRC="ca.html">' + |
|
674 '</IFRAME></body</html>'; |
|
675 |
|
676 var ext_page_ca_exp = |
|
677 make_page_intro('Certifying Authority Details', "#FFFFFF") + |
|
678 '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + |
|
679 'SRC="ca_form.html">' + |
|
680 '</IFRAME></body></html>'; |
|
681 |
|
682 |
|
683 if (old_pane > 0 && cur_page <= max_pages) { |
|
684 save_cur_page(old_pane); |
|
685 } |
|
686 cur_page = new_pane; |
|
687 make_left_frame(top_window); |
|
688 if (new_pane == 2 || new_pane == 3) { |
|
689 if (ver == 1) { |
|
690 frames['right'].document.write(ext_page_ver1); |
|
691 frames['right'].document.close(); |
|
692 } else if (new_pane == 2) { |
|
693 frames['right'].document.write(ext_page_nscp); |
|
694 frames['right'].document.close(); |
|
695 reload_form(new_pane); |
|
696 } else { |
|
697 frames['right'].document.write(ext_page_stnd); |
|
698 frames['right'].document.close(); |
|
699 reload_form(new_pane); |
|
700 } |
|
701 } else if (new_pane == 4) { |
|
702 frames['right'].document.write(ext_page_ca); |
|
703 frames['right'].document.close(); |
|
704 reload_form(new_pane); |
|
705 } else if (new_pane == 1) { |
|
706 frames['right'].document.write(main_page); |
|
707 frames['right'].document.close(); |
|
708 reload_form(new_pane); |
|
709 } else { |
|
710 frames['right'].document.write(ext_page_ca_exp); |
|
711 frames['right'].document.close(); |
|
712 reload_form(new_pane); |
|
713 } |
|
714 } |
|
715 |
|
716 function make_left_frame_page(selected) |
|
717 { |
|
718 var n_strings = ( make_left_frame_page.arguments.length - 1 ) / 2; |
|
719 var table_background; |
|
720 var command; |
|
721 var indent; |
|
722 var label; |
|
723 var ret_string = ""; |
|
724 |
|
725 ret_string += '<TABLE CELLSPACING=4>'; |
|
726 for ( var i = 1; i <= n_strings; i++ ) { |
|
727 if ( i == selected ) { |
|
728 table_background = 'BGCOLOR=#BBCCBB'; |
|
729 } else { |
|
730 table_background = ''; |
|
731 } |
|
732 |
|
733 indent = make_left_frame_page.arguments[(i*2) - 1]; |
|
734 label = make_left_frame_page.arguments[(i*2)]; |
|
735 |
|
736 if ( indent == 0 ) { |
|
737 ret_string += ('<TR><TD COLSPAN=2 ' + table_background + '>'); |
|
738 } else { |
|
739 ret_string += ('<TR><TD> </TD><TD ' + table_background + '>'); |
|
740 } |
|
741 |
|
742 command = "'parent.switch_right_frame(parent," + selected + "," + i + ")'"; |
|
743 ret_string += ('<A HREF="javascript:void setTimeout(' + command + ',0)">'); |
|
744 if ( indent == 0 ) { ret_string += "<B>"; } |
|
745 ret_string += label; |
|
746 if ( indent == 0 ) { ret_string += "</B>"; } |
|
747 ret_string += '</A></TD></TR>'; |
|
748 } |
|
749 if (selected == (max_pages + 1)) { |
|
750 table_background = 'BGCOLOR=#BBCCBB'; |
|
751 } else { |
|
752 table_background = ''; |
|
753 } |
|
754 ret_string += |
|
755 '<TR><TD COLSPAN=2 ' + table_background + |
|
756 '><b><A HREF="javascript:void setTimeout(\'top.submit_it()\', 0)">Finish</A></b>' + |
|
757 '</TD></TR>' + |
|
758 '<input type="submit"></form>' + |
|
759 '</TABLE>'; |
|
760 return(ret_string); |
|
761 } |
|
762 |
|
763 |
|
764 function make_page(window) |
|
765 // Draws the initial page setup |
|
766 { |
|
767 selected = cur_page |
|
768 init_ext_page_array() |
|
769 |
|
770 with (window.frames['right']) { |
|
771 location="main.html"; |
|
772 // document.write(main_page); |
|
773 // document.close(); |
|
774 } |
|
775 |
|
776 make_left_frame(window); |
|
777 |
|
778 } |
|
779 </script> |
|
780 |
|
781 </HEAD> |
|
782 <title>Cert-O-Matic</title> |
|
783 <FRAMESET cols="150,*" BORDER=3 ONLOAD="make_page(window)"> |
|
784 <FRAME SRC="about:blank" ID="index" NAME="index" |
|
785 MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3> |
|
786 <FRAME SRC="about:blank" ID="right" NAME="right" |
|
787 MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3> |
|
788 </FRAMESET> |
|
789 </HTML> |