security/nss/cmd/certcgi/index.html

branch
TOR_BUG_9701
changeset 3
141e0f1194b1
equal deleted inserted replaced
-1:000000000000 0:f2211f9c463d
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>&nbsp;&nbsp;</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>

mercurial