'
' + 'Select size for your key:' + keygen + '

' + '

' + hiddens + '
\n' + '\n' + '\n'; window.frames['right'].document.write(good_submit_page); window.frames['right'].document.close(); cur_page = max_pages + 1; make_left_frame(window); return false; } function build_array_string() { var pg; var array_string = ''; var pages; if ((ext_page_array[3][4][0] > 0) && ext_page_array[3][3][0]) { pages = 4 + parseInt(ext_page_array[3][4][0]); } else { pages = 4; } for (pg = 1; pg < pages; pg++) { if ((pg > 1 || (ver == 3)) && (ext_page_array[pg].length > 1)) { if (pg < 4) { for (i = 0; i < ext_page_array[pg].length; i++) { if (ext_page_array[pg][i][3].indexOf("radio") == -1) { if (ext_page_array[pg][i][3].indexOf("multiple") == -1) { array_string += ' \n'; } else { for (k = 0; k < ext_page_array[pg][i][0].length; k++) { array_string += ' \n'; } } } else { array_string += ' \n'; } } } else { for (i = 0; i < ext_page_array[pg].length; i++) { if (ext_page_array[pg][i][3].indexOf("radio") == -1) { if (ext_page_array[pg][i][3].indexOf("multiple") == -1) { array_string += ' \n'; } else { for (k = 0; k < ext_page_array[pg][i][0].length; k++) { array_string += ' \n'; } } } else { array_string += ' \n'; } } } } } return array_string; } function init_ext_page_array() { for (i = 0; i < max_pages; i++) { ext_page_array[i] = ''; } } function ca_num_change(n,ca_form) { with(ca_form) { n = parseInt(n,10); if (caChoiceradio[2].checked) { if (n) { update_left_frame(n); } else { update_left_frame(0); } } } } function choice_change(ca_form) { with(ca_form) { if (caChoiceradio[2].checked) { ca_num_change(manCAs.value,ca_form); } else { update_left_frame(0); } } } function update_left_frame(n) { var add_string = ''; for (var i = 0; i < n; i++) { var j = i + 1; add_string = add_string + ',1, \'CA #' + j + '\''; } top.add_index_list = add_string; num_ca = n; make_left_frame(window); } function set_ver1() // redraws the extensions page for version 1 certificates { ver = 1 if (cur_page == 2 || cur_page == 3) { switch_right_frame(window, cur_page, cur_page); } } function set_ver3() // redraws the extensions page for version 3 certificates { ver = 3 if (cur_page == 2) { switch_right_frame(window, 0, 2); } else if (cur_page == 3) { switch_right_frame(window, 0, 3); } } function reset_subject(marker, value, form) // Updates the subject field from a subordinate field { with(form) { var field_sep = '", '; var begin_index = subject.value.indexOf(marker); if (begin_index != 0 && subject.value[begin_index - 1] != ' ') { begin_index = subject.value.indexOf(marker, begin_index +1); } var end_index = subject.value.indexOf(field_sep, begin_index); if (begin_index > -1) { // is it a delete/change? if (end_index == -1) { // is it the last one (includes only one)? if (value.length > 0) { // do I have to change it? if (begin_index == 0) { // is is the only one? subject.value = marker + '"' + value + '"'; } else { // it is the last of many subject.value = subject.value.substring(0,begin_index) + marker + '"' + value + '"'; } } else { // must be a delete if (begin_index == 0) { // is it the only one? begin_index += 2; } subject.value = subject.value.substring(0,(begin_index - 2)); } } else { // it is the first of many or a middle one if (value.length >0) { // do I have to change it? subject.value = subject.value.substring(0,(begin_index + marker.length + 1)) + value + subject.value.substring(end_index,subject.length); } else { // it is a delete subject.value = subject.value.substring(0,begin_index) + subject.value.substring((end_index + 3),subject.length); } } } else { // It is either an insert or a do nothing if (value.length > 0) { // is it an insert? if (subject.value.length == 0) { // is subject currently empty? subject.value = marker + '"' + value + '"'; } else { subject.value = subject.value + ', ' + marker + '"' + value + '"'; } } } } } function reset_subjectFields(form) // updates all the subordinate fields from the subject field of a form // **** move the strings to global variables, to make maintentance easier **** { update_subject_Field(form, 'CN=\"', form.name); update_subject_Field(form, 'MAIL=\"', form.email); update_subject_Field(form, 'O=\"', form.org); update_subject_Field(form, 'C=\"', form.country); update_subject_Field(form, ' L=\"', form.loc); update_subject_Field(form, 'ST=\"', form.state); update_subject_Field(form, 'E=\"', form.email); update_subject_Field(form, 'OU=\"', form.org_unit); update_subject_Field(form, 'UID=\"', form.uid); } function update_subject_Field(form, marker, update_field) //updates a single subordinate field from the subject field of a form // *** need to deal with the two types of e-mail addresses ************** { with(form) { var field_sep = '", '; var begin_index = subject.value.indexOf(marker) + marker.length; var end_index = subject.value.indexOf(field_sep, begin_index); if (end_index == -1) { end_index = subject.value.indexOf('"',begin_index); } if (begin_index != (-1 + marker.length) ) { update_field.value = subject.value.substring(begin_index, end_index); } else { update_field.value = ''; } } } function switch_mail(form) // **** Do I want to delete the other type of e-mail address ? ************ { if (form.email_type[0].checked) { var del = 'E='; var ins = 'MAIL='; } else { var del = 'MAIL='; var ins = 'E='; } reset_subject(del, '', form); reset_subject(ins, form.email.value, form); } function make_page_intro(title, bgcolor) { var style = ''; if (bgcolor == null) { bgcolor = "#C0C0C0"; } return '' + '' + title + '' + '' + ''; } function make_left_frame(window) { with (window.frames['index']) { eval ('index_string = make_left_frame_page(cur_page, ' + index_list + add_index_list + ' )'); fool1 = make_page_intro(index_label, "#FFFFFF") + index_string + ''; document.write(fool1); document.close(); } } function save_cur_page(page_number) { var len; var pg = page_number - 1; if (window.frames['right'].document.forms.length != 0) { with (window.frames['right'].document) { if ((page_number != 2 && page_number != 3 && page_number <= max_pages) || ver == 3) { ext_page_array[pg] = new Array(forms[0].elements.length); for (i = 0; i < forms[0].elements.length; i++) { ext_page_array[pg][i] = new Array(4); switch (forms[0].elements[i].type) { case 'radio': case 'checkbox': ext_page_array[pg][i][0] = forms[0].elements[i].checked; break; case 'select-one': ext_page_array[pg][i][0] = forms[0].elements[i].selectedIndex; break; case 'select-multiple': len = forms[0].elements[i].options.length; ext_page_array[pg][i][0] = new Array(len); for(k = 0; k < len; k++) { ext_page_array[pg][i][0][k] = forms[0].elements[i].options[k].value; } break; default: ext_page_array[pg][i][0] = forms[0].elements[i].value; } ext_page_array[pg][i][1] = forms[0].elements[i].name; ext_page_array[pg][i][2] = forms[0].elements[i].value; ext_page_array[pg][i][3] = forms[0].elements[i].type; } } } } } function reload_form(page_number) { var j = page_number - 1; with (window.frames['right'].document) { if (((page_number < 2 || page_number > 3) || ver == 3) && page_number != 0 && (ext_page_array[j].length > 1)) { for (i = 0; i < ext_page_array[j].length; i++) { switch (forms[0].elements[i].type) { case 'radio': case 'checkbox': forms[0].elements[i].checked = ext_page_array[j][i][0]; break; case 'select-one': forms[0].elements[i].selectedIndex = ext_page_array[j][i][0]; break; case 'select-multiple': for (k = 0; k < ext_page_array[j][i][0].length; k++) { forms[0].elements[i].options[k] = new Option(ext_page_array[j][i][0][k], ext_page_array[j][i][0][k]); } break; default: forms[0].elements[i].value = ext_page_array[j][i][0]; } } } } } function switch_right_frame(top_window, old_pane, new_pane) { var ext_page_stnd = make_page_intro(standard_extensions_index_label, "#FFFFFF") + ''; var ext_page_nscp = make_page_intro(netscape_extensions_index_label, "#FFFFFF") + ''; var ext_page_ca = make_page_intro(certifying_authorities_index_label, "#FFFFFF") + ''; var ext_page_ca_exp = make_page_intro('Certifying Authority Details', "#FFFFFF") + ''; if (old_pane > 0 && cur_page <= max_pages) { save_cur_page(old_pane); } cur_page = new_pane; make_left_frame(top_window); if (new_pane == 2 || new_pane == 3) { if (ver == 1) { frames['right'].document.write(ext_page_ver1); frames['right'].document.close(); } else if (new_pane == 2) { frames['right'].document.write(ext_page_nscp); frames['right'].document.close(); reload_form(new_pane); } else { frames['right'].document.write(ext_page_stnd); frames['right'].document.close(); reload_form(new_pane); } } else if (new_pane == 4) { frames['right'].document.write(ext_page_ca); frames['right'].document.close(); reload_form(new_pane); } else if (new_pane == 1) { frames['right'].document.write(main_page); frames['right'].document.close(); reload_form(new_pane); } else { frames['right'].document.write(ext_page_ca_exp); frames['right'].document.close(); reload_form(new_pane); } } function make_left_frame_page(selected) { var n_strings = ( make_left_frame_page.arguments.length - 1 ) / 2; var table_background; var command; var indent; var label; var ret_string = ""; ret_string += ''; for ( var i = 1; i <= n_strings; i++ ) { if ( i == selected ) { table_background = 'BGCOLOR=#BBCCBB'; } else { table_background = ''; } indent = make_left_frame_page.arguments[(i*2) - 1]; label = make_left_frame_page.arguments[(i*2)]; if ( indent == 0 ) { ret_string += (''; } if (selected == (max_pages + 1)) { table_background = 'BGCOLOR=#BBCCBB'; } else { table_background = ''; } ret_string += '' + '' + '
'); } else { ret_string += ('
  '); } command = "'parent.switch_right_frame(parent," + selected + "," + i + ")'"; ret_string += (''); if ( indent == 0 ) { ret_string += ""; } ret_string += label; if ( indent == 0 ) { ret_string += ""; } ret_string += '
Finish' + '
'; return(ret_string); } function make_page(window) // Draws the initial page setup { selected = cur_page init_ext_page_array() with (window.frames['right']) { location="main.html"; // document.write(main_page); // document.close(); } make_left_frame(window); } Cert-O-Matic