summaryrefslogtreecommitdiff
path: root/security/nss/cmd/certcgi/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/cmd/certcgi/index.html')
-rw-r--r--security/nss/cmd/certcgi/index.html956
1 files changed, 956 insertions, 0 deletions
diff --git a/security/nss/cmd/certcgi/index.html b/security/nss/cmd/certcgi/index.html
new file mode 100644
index 000000000..0bd79f3ce
--- /dev/null
+++ b/security/nss/cmd/certcgi/index.html
@@ -0,0 +1,956 @@
+<HTML> <!-- -*- Mode: Java; tab-width: 8 -*- -->
+<!--
+ - The contents of this file are subject to the Mozilla Public
+ - License Version 1.1 (the "License"); you may not use this file
+ - except in compliance with the License. You may obtain a copy of
+ - the License at http://www.mozilla.org/MPL/
+ -
+ - Software distributed under the License is distributed on an "AS
+ - IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ - implied. See the License for the specific language governing
+ - rights and limitations under the License.
+ -
+ - The Original Code is the Netscape security libraries.
+ -
+ - The Initial Developer of the Original Code is Netscape
+ - Communications Corporation. Portions created by Netscape are
+ - Copyright (C) 1994-2000 Netscape Communications Corporation. All
+ - Rights Reserved.
+ -
+ - Contributor(s):
+ -
+ - Alternatively, the contents of this file may be used under the
+ - terms of the GNU General Public License Version 2 or later (the
+ - "GPL"), in which case the provisions of the GPL are applicable
+ - instead of those above. If you wish to allow use of your
+ - version of this file only under the terms of the GPL and not to
+ - allow others to use your version of this file under the MPL,
+ - indicate your decision by deleting the provisions above and
+ - replace them with the notice and other provisions required by
+ - the GPL. If you do not delete the provisions above, a recipient
+ - may use your version of this file under either the MPL or the
+ - GPL.
+ -->
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<SCRIPT LANGUAGE="JavaScript1.2">
+
+script_url = 'http://interzone.mcom.com/cgi-bin/certomatic/bin/certcgi.cgi'
+
+ext_page_ver1 =
+ make_page_intro('Version 1 extensions', "#FFFFFF") +
+ '<layer ID="ext1">' +
+ 'Version 1 X.509 certs do not support extensions' +
+ '</layer>' +
+ '</body></html>';
+
+cur_page = 1;
+
+num_ca = 0;
+
+index_list =
+ '0, your_certificate_index_label,' +
+ '0, netscape_extensions_index_label,' +
+ '0, standard_extensions_index_label,' +
+ '0, certifying_authorities_index_label';
+
+var main_page =
+ make_page_intro('Your Key', "#FFFFFF") +
+ '<layer ID="main" SRC="main.html">' +
+ '</layer>' +
+ '</body></html>' ;
+
+add_index_list = '';
+
+max_pages = 13;
+
+ver = 3
+
+ext_page_array = new Array(max_pages);
+
+index_label = 'Options';
+
+your_certificate_index_label = 'Your Certificate';
+
+netscape_extensions_index_label = 'Netscape X.509 Extensions';
+
+standard_extensions_index_label = 'Standard X.509 Extensions';
+
+certifying_authorities_index_label = 'Certifying Authorities';
+
+add_sub_alt_name_index_label = 'Add Subject Alternative Name';
+
+function setSubAltNameType(form)
+{
+ with(form)
+ {
+ if (SubAltNameRadio[0].checked)
+ {
+ return true;
+ }
+ if (SubAltNameRadio[3].checked || SubAltNameRadio[5].checked)
+ {
+ SubAltNameDataType.checked = true;
+ return true;
+ }
+ if (SubAltNameRadio[1].checked || SubAltNameRadio[2].checked ||
+ SubAltNameRadio[4].checked || SubAltNameRadio[6].checked ||
+ SubAltNameRadio[7].checked || SubAltNameRadio[8].checked)
+ {
+ SubAltNameDataType.checked = false;
+ return true;
+ }
+ }
+ return true;
+}
+
+function setIssuerAltNameType(form)
+{
+ with(form)
+ {
+ if (IssuerAltNameRadio[0].checked)
+ {
+ return true;
+ }
+ if (IssuerAltNameRadio[3].checked || IssuerAltNameRadio[5].checked)
+ {
+ IssuerAltNameDataType.checked = true;
+ return true;
+ }
+ if (IssuerAltNameRadio[1].checked || IssuerAltNameRadio[2].checked ||
+ IssuerAltNameRadio[4].checked || IssuerAltNameRadio[6].checked ||
+ IssuerAltNameRadio[7].checked || IssuerAltNameRadio[8].checked)
+ {
+ IssuerAltNameDataType.checked = false;
+ return true;
+ }
+ }
+ return true;
+}
+
+
+function setNameConstraintNameType(form)
+{
+ with(form)
+ {
+ if (NameConstraintRadio[0].checked)
+ {
+ return true;
+ }
+ if (NameConstraintRadio[3].checked || NameConstraintRadio[5].checked)
+ {
+ NameConstraintNameDataType.checked = true;
+ return true;
+ }
+ if (NameConstraintRadio[1].checked || NameConstraintRadio[2].checked ||
+ NameConstraintRadio[4].checked || NameConstraintRadio[6].checked ||
+ NameConstraintRadio[7].checked || NameConstraintRadio[8].checked)
+ {
+ NameConstraintNameDataType.checked = false;
+ return true;
+ }
+ }
+ return true;
+}
+
+
+function addSubAltName(form)
+{
+
+ with(form)
+ {
+ var len = SubAltNameSelect.length;
+ var value;
+ var i = 0;
+ while(!(i == (SubAltNameRadio.length - 1)) & !(SubAltNameRadio[i].checked == true))
+ {
+ i++;
+ }
+ if (i != 0)
+ {
+ value = SubAltNameText.value + " - " + (i + 1);
+ }
+ else
+ {
+ value = SubAltNameText.value + " - " + SubAltNameOtherNameOID.value + " - ";
+ if (SubAltNameDataType.checked)
+ {
+ value += "1 - ";
+ }
+ else
+ {
+ value += "0 - ";
+ }
+ value += (i + 1);
+ if (SubAltNameOtherNameOID.value == "")
+ {
+ alert("Other names must include an OID");
+ return false;
+ }
+ }
+
+ if ((SubAltNameText.value == "") | (SubAltNameRadio[i].checked != true))
+ {
+ alert("Alternative Names must include values for name and name type.");
+ }
+ else
+ {
+ SubAltNameSelect.options[len] = new Option(value, value);
+ }
+ }
+ return true;
+}
+
+function deleteSubAltName(form)
+{
+ with(form)
+ {
+ while (SubAltNameSelect.selectedIndex >= 0)
+ {
+ SubAltNameSelect[SubAltNameSelect.selectedIndex] = null;
+ }
+ }
+}
+
+function addIssuerAltName(form)
+{
+ with(form)
+ {
+ var len = IssuerAltNameSelect.length;
+ var value;
+ var i = 0;
+
+ while(!(i == (IssuerAltNameRadio.length -1)) & !(IssuerAltNameRadio[i].checked == true))
+ {
+ i++;
+ }
+ if (i != 0)
+ {
+ value = IssuerAltNameText.value + " - " + (i + 1);
+ }
+ else
+ {
+ value = IssuerAltNameText.value + " - " + IssuerAltNameOtherNameOID.value + " - ";
+ if (IssuerAltNameDataType.checked)
+ {
+ value += "1 - ";
+ }
+ else
+ {
+ value += "0 - ";
+ }
+ value += (i + 1);
+ if (IssuerAltNameOtherNameOID.value == "")
+ {
+ alert("Other names must include an OID");
+ return false;
+ }
+ }
+ if ((IssuerAltNameText.value == "") | (IssuerAltNameRadio[i].checked != true))
+ {
+ alert("Alternative Names must include values for name and name type.")
+ }
+ else
+ {
+ IssuerAltNameSelect.options[len] = new Option(value, value);
+ }
+ }
+ return true;
+}
+
+function deleteIssuerAltName(form)
+{
+ with(form)
+ {
+ while (IssuerAltNameSelect.selectedIndex >= 0)
+ {
+ IssuerAltNameSelect[IssuerAltNameSelect.selectedIndex] = null;
+ }
+ }
+}
+
+
+
+function addNameConstraint(form)
+{
+ with(form)
+ {
+ var len = NameConstraintSelect.length;
+ var value;
+ var i = 0;
+ var min = NameConstraintMin.value;
+ var max = NameConstraintMax.value;
+
+ while(!(i == (NameConstraintRadio.length - 1) ) & !(NameConstraintRadio[i].checked == true))
+ {
+ i++;
+ }
+ value = NameConstraintText.value + " - ";
+ if (i == 0)
+ {
+ value += NameConstraintOtherNameOID.value + " - ";
+ if (NameConstraintNameDataType.checked)
+ {
+ value += "1 - ";
+ }
+ else
+ {
+ value += "0 - ";
+ }
+ if (NameConstraintOtherNameOID.value == "")
+ {
+ alert("Other names must include an OID");
+ return false;
+ }
+ }
+ value += (i + 1) + " - ";
+ if (NameConstraintTypeRadio[0].checked == true)
+ {
+ value += "p - ";
+ }
+ else
+ {
+ value += "e - ";
+ }
+ value += min + " - " + max;
+ if ((min == "") | (NameConstraintText.value == "") | (NameConstraintRadio[i].checked != true))
+ {
+ alert("Name Constraints must include values for minimum, name, and name type.")
+ }
+ else
+ {
+ NameConstraintSelect.options[len] = new Option(value, value);
+ }
+ }
+ return true;
+}
+
+function deleteNameConstraint(form)
+{
+ with(form)
+ {
+ while (NameConstraintSelect.selectedIndex >= 0)
+ {
+ NameConstraintSelect[NameConstraintSelect.selectedIndex] = null;
+ }
+ }
+}
+
+
+function submit_it()
+{
+ save_cur_page(cur_page);
+
+ var array_string;
+ var subject = ext_page_array[0][22][0];
+ var serial = ext_page_array[0][10][0];
+ var ver1 = (ver == 1);
+ var ver3 = (ver == 3);
+ var serial_number = ext_page_array[0][12][0];
+ var notBefore = ext_page_array[0][20][0];
+ var notAfter = ext_page_array[0][21][0];
+ var manValidity = ext_page_array[0][19][0];
+
+ if (subject == "")
+ {
+ alert("The DN field must contain some data");
+ return false;
+ }
+ if (!serial & serial_number == "")
+ {
+ alert("No serial number specified");
+ return false;
+ }
+ if (ext_page_array[0][15][0])
+ {
+ var keygen = "<keygen name=\"key\" challenge=\"foo\">";
+ }
+ else
+ {
+ switch (ext_page_array[0][17][0]) {
+ case 2:
+ var keygen = "<keygen keytype=\"dsa\" pqg=\"MIGdAkEAjfKklEkidqo9JXWbsGhpy+rA2Dr7jQz3y7gyTw14guXQdi/FtyEOr8Lprawyq3qsSWk9+/g3JMLsBzbuMcgCkQIVAMdzIYxzfsjumTtPLe0w9I7azpFfAkEAYm0CeDnqChNBMWOlW0y1ACmdVSKVbO/LO/8Q85nOLC5xy53l+iS6v1jlt5UhklycxC6fb0ZLCIzFcq9T5teIAg==\" name=\"key\" challenge=\"foo\">";
+ break;
+ case 1:
+ var keygen = "<keygen keytype=\"dsa\" pqg=\"MIHaAmDCboVgX0+6pEeMlbwsasWDVBcJNHPKMzkq9kbCRK2U3k+tE15n+Dc2g3ZjDYr1um51e2iLC34/BwAAAAAAAAAAAAAAAAAAAAAAAAABbBhnlFN5Djmt0Mk8cdEBY5H8iPMCFMhUnFtbpjn3EyfH2DjVg3ALh7FtAmA2zWzhpeCwvOTjYnQorlXiv0WcnSiWmaC79CRYkFt5i+UEfRxwP1eNGJBVB1T+CPW6JGd4WhgsqtSf53pn5DEtv++O7lNfXyOhWhb3KaWHYIx8fuAXtioIWkWmpfEIVZA=\" name=\"key\" challenge=\"foo\">";
+ break;
+ case 0:
+ var keygen = "<keygen keytype=\"dsa\" pqg=\"MIIBHAKBgId8SiiWrcdua5zbsBhPkKfFcnHBG7T/bQla7c6OixGjjmSSuq2fJLvMKa579CaxHxLZzZZXIHmAk9poRgWl2GUUkCJ68XSum8OQzDPXPsofcEdeANjw3mIAAAAAAAAAAAAAAAAAAAAAAAAIE+MkW5hguLIQqWvEVi9dMpbNu6OZAhTIA+y3TgyiwA0D8pt686ofaL1IOQKBgAiZQC6UCXztr2iXxJrAC+51gN5oX/R9Thilln9RGegsWnHrdxUOpcm5vAWp1LU8TOXtujE8kqkm3UxIRhUWQORe9IxLANAXmZJqkw9FEVHkxj6Cy9detwT2MyBzSwS6avsf7aLisgHmI/IHSeapJsQ3NQa3rikb6zRiqIV+TVa6\" name=\"key\" challenge=\"foo\">";
+ break;
+ }
+ }
+ array_string = build_array_string();
+ hiddens = "<input type=\"hidden\" name=\"subject\" value=\'" + subject + "\'> \n" +
+ "<input type=\"hidden\" name=\"serial-auto\" value=\"" + serial + "\"> \n" +
+ "<input type=\"hidden\" name=\"serial_value\" value=\"" + serial_number + "\"> \n" +
+ "<input type=\"hidden\" name=\"ver-1\" value=\"" + ver1 + "\"> \n" +
+ "<input type=\"hidden\" name=\"ver-3\" value=\"" + ver3 + "\"> \n" +
+ "<input type=\"hidden\" name=\"notBefore\" value=\"" + notBefore + "\"> \n" +
+ "<input type=\"hidden\" name=\"notAfter\" value=\"" + notAfter + "\"> \n" +
+ "<input type=\"hidden\" name=\"manValidity\" value=\"" + manValidity + "\"> \n" +
+ array_string;
+
+ var good_submit_page =
+ '<html>' +
+ '<BODY TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#FF0000" BGCOLOR="#FFFFFF">' +
+ '<form method="post" action="' + script_url + '">' +
+ 'Select size for your key:' + keygen + '</p>' +
+ '<input type="submit"></p>' +
+ hiddens +
+ '</form>\n' +
+ '</body>\n' +
+ '</html>\n';
+
+ window.frames.extensions.document.write(good_submit_page);
+ window.frames.extensions.document.close();
+ cur_page = max_pages + 1;
+ make_index(window);
+ return false;
+}
+
+
+
+function build_array_string()
+{
+ var j;
+ 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 (j = 1; j < pages; j++)
+ {
+ if ((j > 1 || (ver == 3)) &&
+ (ext_page_array[j].length > 1))
+ {
+ if (j < 4)
+ {
+ for (i = 0; i < ext_page_array[j].length; i++)
+ {
+ if (ext_page_array[j][i][3].indexOf("radio") == -1)
+ {
+ if (ext_page_array[j][i][3].indexOf("multiple") == -1)
+ {
+ array_string += '<input type=\"hidden\" name=\"' + ext_page_array[j][i][1] + '\" value=\'' + ext_page_array[j][i][0] + '\'> \n';
+ }
+ else
+ {
+ for (k = 0; k < ext_page_array[j][i][0].length; k++)
+ {
+ array_string += '<input type=\"hidden\" name=\"' + ext_page_array[j][i][1] + k + '\" value=\'' + ext_page_array[j][i][0][k] + '\'> \n';
+ }
+ }
+ }
+ else
+ {
+ array_string += '<input type=\"hidden\" name=\"' + ext_page_array[j][i][1] + '-' + ext_page_array[j][i][2] + '\" value=\'' + ext_page_array[j][i][0] + '\'> \n';
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < ext_page_array[j].length; i++)
+ {
+ if (ext_page_array[j][i][3].indexOf("radio") == -1)
+ {
+ if (ext_page_array[j][i][3].indexOf("multiple") == -1)
+ {
+ array_string += '<input type=\"hidden\" name=\"' + 'CA#' + (j - 3) + '-' + ext_page_array[j][i][1] + '\" value=\'' + ext_page_array[j][i][0] +'\'> \n';
+ }
+ else
+ {
+ for (k = 0; k < ext_page_array[j][i][0].length; k++)
+ {
+ array_string += '<input type=\"hidden\" name=\"' + 'CA#' + (j - 3) + '-' + ext_page_array[j][i][1] + k + '\" value=\'' + ext_page_array[j][i][0][k] + '\'> \n';
+ }
+ }
+ }
+ else
+ {
+ array_string += '<input type=\"hidden\" name=\"' + 'CA#' + (j - 3) + '-' + ext_page_array[j][i][1] + '-' + ext_page_array[j][i][2] + '\" value=\'' + ext_page_array[j][i][0] + '\'> \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_index(n);
+ }
+ else
+ {
+ update_index(0);
+ }
+ }
+ }
+}
+
+function choice_change(ca_form)
+{
+ with(ca_form)
+ {
+ if (caChoiceradio[2].checked)
+ {
+ ca_num_change(manCAs.value,ca_form);
+ }
+ else
+ {
+ update_index(0);
+ }
+ }
+}
+
+function update_index(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_index(window);
+}
+
+function set_ver1()
+// redraws the extensions page for version 1 certificates
+{
+ ver = 1
+ if (cur_page == 2 || cur_page == 3)
+ {
+ sa_switch_pane(window, cur_page, cur_page);
+ }
+}
+
+
+function set_ver3()
+// redraws the extensions page for version 3 certificates
+{
+ ver = 3
+ if (cur_page == 2)
+ {
+ sa_switch_pane(window, 0, 2);
+ }
+ else if (cur_page == 3)
+ {
+ sa_switch_pane(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)
+ // *************** I need to figure out if 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 = '<STYLE TYPE="text/css">BODY{' +
+ 'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' +
+ 'font-size: 10pt;' +
+ '}' +
+ 'TD{' +
+ 'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' +
+ 'font-size: 10pt;}' +
+ '</STYLE>';
+
+ if (bgcolor == null) { bgcolor = "#C0C0C0"; }
+ return '<HTML><HEAD>' +
+ '<TITLE>' + title + '</TITLE>' +
+ '</HEAD>' +
+ '<BODY TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#FF0000" ' +
+ 'BGCOLOR="' + bgcolor + '">';
+}
+
+
+function make_index(window)
+{
+ with (window.frames.index)
+ {
+ eval ('index_string = make_index_page(cur_page, ' + index_list + add_index_list + ' )');
+ fool1 = make_page_intro(index_label, "#FFFFFF") +
+ index_string + '</BODY></HTML>';
+ document.write(fool1);
+ document.close();
+ }
+}
+
+
+function save_cur_page(page_number)
+{
+ var len;
+ var j = page_number - 1;
+ if (frames.extensions.document.layers.length != 0)
+ {
+ with (frames.extensions.document.layers[0].document)
+ {
+ if ((page_number != 2 && page_number != 3 && page_number <= max_pages) ||
+ ver == 3)
+ {
+ ext_page_array[j] = new Array(forms[0].elements.length);
+ for (i = 0; i < forms[0].elements.length; i++)
+ {
+ ext_page_array[j][i] = new Array(4);
+ switch (forms[0].elements[i].type)
+ {
+ case 'radio': case 'checkbox':
+ ext_page_array[j][i][0] = forms[0].elements[i].checked;
+ break;
+ case 'select-one':
+ ext_page_array[j][i][0] = forms[0].elements[i].selectedIndex;
+ break;
+ case 'select-multiple':
+ len = forms[0].elements[i].options.length;
+ ext_page_array[j][i][0] = new Array(len);
+ for(k = 0; k < len; k++)
+ {
+ ext_page_array[j][i][0][k] = forms[0].elements[i].options[k].value;
+ }
+ break;
+ default:
+ ext_page_array[j][i][0] = forms[0].elements[i].value;
+ }
+ ext_page_array[j][i][1] = forms[0].elements[i].name;
+ ext_page_array[j][i][2] = forms[0].elements[i].value;
+ ext_page_array[j][i][3] = forms[0].elements[i].type;
+ }
+ }
+ }
+ }
+}
+
+function reload_form(page_number)
+{
+ var j = page_number - 1;
+ with (frames.extensions.document.layers[0].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 sa_switch_pane(top_window, old_pane, new_pane)
+{
+ var ext_page_stnd =
+ make_page_intro(standard_extensions_index_label, "#FFFFFF") +
+ '<layer ID="ext" SRC="stnd_ext_form.html">' +
+ '</layer>' +
+ '</body></html>';
+
+ var ext_page_nscp =
+ make_page_intro(netscape_extensions_index_label, "#FFFFFF") +
+ '<layer ID="ext" SRC="nscp_ext_form.html">' +
+ '</layer>' +
+ '</body></html>';
+
+ var ext_page_ca =
+ make_page_intro(certifying_authorities_index_label, "#FFFFFF") +
+ '<layer ID="ext" SRC="ca.html">' +
+ '</layer>' +
+ '</body</html>';
+
+ var ext_page_ca_exp =
+ make_page_intro('Certifying Authority Details', "#FFFFFF") +
+ '<layer ID="ext" SRC="ca_form.html">' +
+ '</layer>' +
+ '</body></html>';
+
+
+ if (old_pane > 0 && cur_page <= max_pages)
+ {
+ save_cur_page(old_pane);
+ }
+ cur_page = new_pane;
+ make_index(top_window);
+ if (new_pane == 2 || new_pane == 3)
+ {
+ if (ver == 1)
+ {
+ frames.extensions.document.write(ext_page_ver1);
+ frames.extensions.document.close();
+ }
+ else
+ {
+ if (new_pane == 2)
+ {
+ frames.extensions.document.write(ext_page_nscp);
+ frames.extensions.document.close();
+ reload_form(new_pane);
+ }
+ else
+ {
+ frames.extensions.document.write(ext_page_stnd);
+ frames.extensions.document.close();
+ reload_form(new_pane);
+ }
+ }
+ }
+ else
+ {
+ if (new_pane == 4)
+ {
+ frames.extensions.document.write(ext_page_ca);
+ frames.extensions.document.close();
+ reload_form(new_pane);
+ }
+ else
+ {
+ if (new_pane == 1)
+ {
+ frames.extensions.document.write(main_page);
+ frames.extensions.document.close();
+ reload_form(new_pane);
+ }
+ else
+ {
+ frames.extensions.document.write(ext_page_ca_exp);
+ frames.extensions.document.close();
+ reload_form(new_pane);
+ }
+ }
+ }
+}
+
+function make_index_page(selected)
+{
+ var n_strings = ( make_index_page.arguments.length - 1 ) / 2;
+ var table_background;
+ var command;
+ var indent;
+ var label;
+ var ret_string = "";
+
+ ret_string += '<TABLE CELLSPACING=4>';
+ for ( var i = 1; i <= n_strings; i++ ) {
+ if ( i == selected ) {
+ table_background = 'BGCOLOR=#BBCCBB';
+ } else {
+ table_background = '';
+ }
+
+ indent = make_index_page.arguments[(i*2) - 1];
+ label = make_index_page.arguments[(i*2)];
+
+ if ( indent == 0 ) {
+ ret_string += ('<TR><TD COLSPAN=2 ' + table_background + '>');
+ } else {
+ ret_string += ('<TR><TD>&nbsp;&nbsp;</TD><TD ' + table_background + '>');
+ }
+
+ command = "'parent.sa_switch_pane(parent," + selected + "," + i + ")'";
+ ret_string += ('<A HREF="javascript:void setTimeout(' + command + ',0)">');
+ if ( indent == 0 ) { ret_string += "<B>"; }
+ ret_string += label;
+ if ( indent == 0 ) { ret_string += "</B>"; }
+ ret_string += '</A></TD></TR>';
+ }
+ if (selected == (max_pages + 1))
+ {
+ table_background = 'BGCOLOR=#BBCCBB';
+ } else {
+ table_background = '';
+ }
+ ret_string +=
+ '<TR><TD COLSPAN=2 ' + table_background +
+ '><b><A HREF="javascript:void setTimeout(\'top.submit_it()\', 0)">Finish</A></b>' +
+ '</TD></TR>' +
+ '<input type="submit"></form>' +
+ '</TABLE>';
+ return(ret_string);
+}
+
+
+function make_page(window)
+// Draws the initial page setup
+{
+ selected = cur_page
+ init_ext_page_array()
+
+ with (window.frames.extensions) {
+ document.write(main_page);
+ document.close();
+ }
+
+ make_index(window);
+
+}
+</script>
+
+</HEAD>
+<title>Cert-O-Matic</title>
+ <FRAMESET cols="150,*" BORDER=3 ONLOAD="make_page(window)">
+ <FRAME SRC="about:blank" NAME="index"
+ MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3>
+ <FRAME SRC="about:blank" NAME="extensions"
+ MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3>
+ </FRAMESET>
+</HTML>