зеркало из https://github.com/mozilla/gecko-dev.git
817 строки
29 KiB
JavaScript
817 строки
29 KiB
JavaScript
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
|
* http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
* for the specific language governing rights and limitations under the
|
|
* NPL.
|
|
*
|
|
* The Initial Developer of this code under the NPL is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
* Reserved.
|
|
*/
|
|
<!-- to hide script contents from old browsers
|
|
|
|
|
|
|
|
compromisePrincipals();
|
|
|
|
|
|
|
|
function configureNewAccount()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("AccountSetup");
|
|
|
|
var theFile = getAcctSetupFilename(self);
|
|
var intlFlag = GetNameValuePair(theFile,"Mode Selection","IntlMode");
|
|
intlFlag = intlFlag.toLowerCase();
|
|
|
|
|
|
var theScript = findVariable("LOGIN_SCRIPT");
|
|
|
|
|
|
// determine outside line access string
|
|
|
|
var outsideLineAccessStr = "";
|
|
if (document.vars.prefixData.value != "") {
|
|
outsideLineAccessStr = document.vars.prefixData.value;
|
|
x = outsideLineAccessStr.indexOf(",");
|
|
if (x<0) outsideLineAccessStr = outsideLineAccessStr + ",";
|
|
}
|
|
|
|
var dialAsLongDistance = findVariable("DIAL_AS_LONG_DISTANCE");
|
|
if (dialAsLongDistance != null && dialAsLongDistance!="") {
|
|
var dialAsLongDistanceFlag = (dialAsLongDistance=="NO") ? "FALSE":"TRUE";
|
|
var dialAreaCode = findVariable("DIAL_AREA_CODE");
|
|
var dialAreaCodeFlag = "FALSE";
|
|
if (dialAreaCode != null && dialAreaCode != "") {
|
|
dialAreaCodeFlag = (dialAreaCode == "NO") ? "FALSE":"TRUE";
|
|
}
|
|
}
|
|
else if (intlFlag == "yes") {
|
|
var dialAsLongDistanceFlag = "FALSE";
|
|
var dialAreaCodeFlag = "FALSE";
|
|
}
|
|
else {
|
|
var dialAsLongDistanceFlag = "TRUE";
|
|
var dialAreaCodeFlag = "TRUE";
|
|
|
|
var ispAreaCode="";
|
|
var ispPhoneNum = findVariable("PHONE_NUM");
|
|
if (ispPhoneNum != null && ispPhoneNum!="") {
|
|
var x=ispPhoneNum.indexOf("(");
|
|
if (x>=0) {
|
|
var y=ispPhoneNum.indexOf(")",x+1);
|
|
ispAreaCode=ispPhoneNum.substring(x+1,y);
|
|
}
|
|
}
|
|
if (ispAreaCode == document.vars.modemAreaCode.value) {
|
|
dialAsLongDistanceFlag="FALSE";
|
|
dialAreaCodeFlag = "FALSE";
|
|
}
|
|
}
|
|
|
|
|
|
// determine new profile name (used for Account in dialer & profile name)
|
|
|
|
var newProfileName = findVariable("LOGIN");
|
|
if (newProfileName=="") {
|
|
newProfileName = document.vars.first.value;
|
|
if (document.vars.last.value != "") {
|
|
newProfileName = newProfileName + " " + document.vars.last.value;
|
|
}
|
|
}
|
|
if (newProfileName!="") newProfileName = newProfileName + "'s";
|
|
if (findVariable("SITE_NAME") != "") {
|
|
newProfileName = newProfileName + " " + findVariable("SITE_NAME");
|
|
}
|
|
newProfileName = newProfileName + " Account";
|
|
if (newProfileName.length > 240) newProfileName=newProfileName.substring(0,240);
|
|
|
|
|
|
// platform check
|
|
|
|
var thePlatform = new String(navigator.userAgent);
|
|
var x=thePlatform.indexOf("(")+1;
|
|
var y=thePlatform.indexOf(";",x+1);
|
|
thePlatform=thePlatform.substring(x,y);
|
|
|
|
if (thePlatform == "Win16") {
|
|
if (newProfileName.length > 40) newProfileName=newProfileName.substring(0,40);
|
|
}
|
|
|
|
|
|
// On Win32 platforms, check if newProfileName contains any invalid characters, such as '/'
|
|
// On Mac, disallow invalid characters such as ':'
|
|
|
|
if ((thePlatform == "WinNT") || (thePlatform == "Win95")) {
|
|
var x=0;
|
|
x = newProfileName.indexOf('/');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('/');
|
|
}
|
|
x = newProfileName.indexOf('\\');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('\\');
|
|
}
|
|
x = newProfileName.indexOf(':');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf(':');
|
|
}
|
|
x = newProfileName.indexOf('\"');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('\"');
|
|
}
|
|
x = newProfileName.indexOf('?');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('?');
|
|
}
|
|
x = newProfileName.indexOf('<');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('<');
|
|
}
|
|
x = newProfileName.indexOf('>');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('>');
|
|
}
|
|
x = newProfileName.indexOf('|');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('|');
|
|
}
|
|
x = newProfileName.indexOf('&');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(0, x) + newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('&');
|
|
}
|
|
}
|
|
else if (thePlatform == "Macintosh") {
|
|
var x=0;
|
|
x = newProfileName.indexOf(':');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf(':');
|
|
}
|
|
}
|
|
else if (thePlatform == "Win16") {
|
|
var x=0;
|
|
x = newProfileName.indexOf('(');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(0, x) + newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('(');
|
|
}
|
|
x = newProfileName.indexOf(')');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(0, x) + newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf(')');
|
|
}
|
|
}
|
|
|
|
|
|
// configure dialer for new account
|
|
|
|
dialerData = document.setupPlugin.newStringArray(24); // increment this # as new dialer strings are added
|
|
dialerData[0] = "FileName=" + findVariable("SITE_FILE");
|
|
dialerData[1] = "AccountName=" + newProfileName;
|
|
dialerData[2] = "ISPPhoneNum=" + findVariable("PHONE_NUM");
|
|
dialerData[3] = "LoginName=" + findVariable("LOGIN");
|
|
dialerData[4] = "Password=" + findVariable("PASSWORD");
|
|
dialerData[5] = "DNSAddress=" + findVariable("DNS_ADDR");
|
|
dialerData[6] = "DNSAddress2=" + findVariable("DNS_ADDR_2");
|
|
dialerData[7] = "DomainName=" + findVariable("DOMAIN_NAME");
|
|
dialerData[8] = "IntlMode=" + ((intlFlag=="yes") ? "TRUE":"FALSE");
|
|
dialerData[9] = "DialOnDemand=TRUE";
|
|
dialerData[10] = "ModemName=" + document.vars.modem.value;
|
|
dialerData[11] = "ModemType=" + document.setupPlugin.GetModemType(document.vars.modem.value);
|
|
dialerData[12] = "DialType=" + document.vars.dialMethod.value;
|
|
dialerData[13] = "OutsideLineAccess=" + outsideLineAccessStr;
|
|
dialerData[14] = "DisableCallWaiting=" + ((parent.parent.globals.document.vars.cwData.value != "") ? "TRUE":"FALSE");
|
|
dialerData[15] = "DisableCallWaitingCode=" + parent.parent.globals.document.vars.cwData.value;
|
|
dialerData[16] = "DialAsLongDistance=" + dialAsLongDistanceFlag;
|
|
dialerData[17] = "DialAreaCode=" + dialAreaCodeFlag;
|
|
dialerData[18] = "ScriptEnabled=" + ((theScript==null || theScript=="") ? "FALSE":"TRUE");
|
|
dialerData[19] = "Script=" + theScript;
|
|
dialerData[20] = "AutoSend=" + findVariable("AUTO_SEND");
|
|
dialerData[21] = "Location=Home";
|
|
dialerData[22] = "DisconnectTime=" + GetNameValuePair(theFile,"Mode Selection","Dialer_Disconnect_After");
|
|
dialerData[23] = "Path=New";
|
|
|
|
|
|
// write out dialer data to Java Console
|
|
|
|
debug("\nNew Account for ISP: " + findVariable("SITE_NAME"));
|
|
var numElements = dialerData.length;
|
|
for (var x=0; x<numElements; x++) {
|
|
debug(" " + x + ": " + dialerData[x]);
|
|
}
|
|
|
|
parent.parent.globals.document.setupPlugin.DialerConfig(dialerData,false);
|
|
|
|
|
|
// configure desktop (Windows)
|
|
|
|
parent.parent.globals.document.setupPlugin.DesktopConfig(newProfileName, null, theFile);
|
|
|
|
|
|
// set up Navigator preferences
|
|
|
|
var userName = document.vars.first.value;
|
|
if (document.vars.last.value != "") {
|
|
userName = userName + " " + document.vars.last.value;
|
|
}
|
|
|
|
navigator.preference("network.hosts.smtp_server", findVariable("SMTP_HOST"));
|
|
navigator.preference("network.hosts.nntp_server", findVariable("NNTP_HOST"));
|
|
|
|
var mailID=""
|
|
var mailAccount = findVariable("IMAP_HOST");
|
|
if (mailAccount == "") {
|
|
mailAccount = findVariable("POP_SERVER");
|
|
}
|
|
var mailServer="";
|
|
|
|
x = mailAccount.indexOf("@");
|
|
if (x>=0) {
|
|
mailID=mailAccount.substring(0,x);
|
|
mailServer=mailAccount.substring(x+1,mailAccount.length);
|
|
}
|
|
else {
|
|
mailID=mailAccount;
|
|
mailServer=findVariable("DOMAIN_NAME");
|
|
if (mailServer != "") {
|
|
mailAccount = mailID + "@" + mailServer;
|
|
}
|
|
}
|
|
|
|
navigator.preference("network.hosts.pop_server", mailServer);
|
|
if (findVariable("IMAP_HOST") != "") {
|
|
navigator.preference("mail.server_type", 1);
|
|
navigator.preference("mail.imap.server_sub_directory",findVariable("IMAP_SERVERPATH"));
|
|
}
|
|
else {
|
|
navigator.preference("mail.server_type", 0);
|
|
}
|
|
|
|
navigator.preference("mail.pop_name", mailID);
|
|
navigator.preference("mail.identity.organization", document.vars.company.value);
|
|
navigator.preference("mail.identity.reply_to", findVariable("EMAIL_ADDR"));
|
|
navigator.preference("mail.identity.username", userName);
|
|
navigator.preference("mail.identity.useremail", mailAccount);
|
|
|
|
navigator.preference("mail.remember_password", false);
|
|
navigator.preference("mail.pop_password", "");
|
|
var theMailPassword=findVariable("POP_PASSWORD");
|
|
if (theMailPassword != null && theMailPassword != "") {
|
|
theMailPassword = parent.parent.globals.document.setupPlugin.EncryptString(theMailPassword);
|
|
if (theMailPassword != null && theMailPassword != "") {
|
|
navigator.preference("mail.remember_password", true);
|
|
navigator.preference("mail.pop_password", theMailPassword);
|
|
}
|
|
}
|
|
|
|
navigator.preference("editor.author", userName);
|
|
navigator.preference("editor.publish_username", mailID);
|
|
var pushURL = findVariable("PUBLISH_PUSH_URL");
|
|
navigator.preference("editor.publish_location", pushURL);
|
|
navigator.preference("editor.publish_browse_location", findVariable("PUBLISH_VIEW_URL"));
|
|
|
|
navigator.preference("editor.publish_password", "");
|
|
navigator.preference("editor.publish_save_password", false);
|
|
if (pushURL != null && pushURL != "") {
|
|
var thePublishPassword=findVariable("PASSWORD");
|
|
if (thePublishPassword != "") {
|
|
thePublishPassword = parent.parent.globals.document.setupPlugin.EncryptString(thePublishPassword);
|
|
if (thePublishPassword != null && thePublishPassword != "") {
|
|
navigator.preference("editor.publish_save_password", true);
|
|
navigator.preference("editor.publish_password", thePublishPassword);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (findVariable("HOME_URL") != "") {
|
|
navigator.preference("browser.startup.page", 1); // 0 blank, 1 homepage, 2 last visited
|
|
navigator.preference("browser.startup.homepage", findVariable("HOME_URL"));
|
|
}
|
|
|
|
|
|
// look for LDAP data
|
|
|
|
var ldapNum = navigator.preference("ldap_1.number_of_directories");
|
|
if (ldapNum == null || ldapNum == "") {
|
|
// if # of directories isn't defined, count any existing LDAP entries
|
|
ldapNum=1;
|
|
while(true) {
|
|
var ldapEntry = navigator.preference("ldap_1.directory" + ldapNum + ".filename");
|
|
if (ldapEntry == null || ldapEntry == "") break;
|
|
ldapNum = ldapNum + 1;
|
|
}
|
|
}
|
|
ldapNum = 1 + ldapNum;
|
|
|
|
var ldapEntriesAddedFlag=false;
|
|
var ldapIndex=1;
|
|
while(true) {
|
|
var ldapURL = findVariable("LDAP_HOST_" + ldapIndex);
|
|
if (ldapURL == null || ldapURL == "") break;
|
|
|
|
var secureLDAP = false;
|
|
var searchBase = "";
|
|
var portNum = 389;
|
|
|
|
if (ldapURL.indexOf("ldaps://")==0) { // LDAP over SSL
|
|
secureLDAP = true;
|
|
portNum = 636;
|
|
ldapURL = ldapURL.substring(8,ldapURL.length);
|
|
}
|
|
else if (ldapURL.indexOf("ldap://")==0) {
|
|
ldapURL = ldapURL.substring(7,ldapURL.length);
|
|
}
|
|
var x = ldapURL.indexOf("/"); // find any search base
|
|
if (x>0) {
|
|
searchBase = ldapURL.substring(x+1,ldapURL.length);
|
|
ldapURL = ldapURL.substring(0,x);
|
|
}
|
|
x = ldapURL.indexOf(":"); // find any port number
|
|
if (x>0) {
|
|
portNumString = ldapURL.substring(x+1,ldapURL.length);
|
|
ldapURL = ldapURL.substring(0,x);
|
|
if (portNumString != "") {
|
|
portNum = parseInt(portNumString);
|
|
}
|
|
}
|
|
|
|
var ldapDesc = findVariable("LDAP_DESC_" + ldapIndex);
|
|
if (ldapDesc == "") {
|
|
ldapDesc = ldapURL;
|
|
}
|
|
|
|
ldapEntriesAddedFlag = true;
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".filename", "");
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".description", ldapDesc);
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".serverName", ldapURL);
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".port", portNum);
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".isSecure", secureLDAP);
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".searchBase", searchBase);
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".searchString", "");
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".dirType", 0);
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".isOffline", false);
|
|
navigator.preference("ldap_1.directory" + ldapNum + ".savePassword", false);
|
|
|
|
if (document.vars.debugMode.value.toLowerCase() == "yes") {
|
|
debug("\tLDAP #" + ldapNum + " Desc: " + ldapDesc);
|
|
debug("\tLDAP #" + ldapNum + " serverName: " + ldapURL);
|
|
debug("\tLDAP #" + ldapNum + " port: " + portNum);
|
|
debug("\tLDAP #" + ldapNum + " isSecure: " + secureLDAP);
|
|
debug("\tLDAP #" + ldapNum + " searchBase: " + searchBase);
|
|
}
|
|
|
|
ldapNum = ldapNum + 1;
|
|
ldapIndex = ldapIndex + 1;
|
|
}
|
|
|
|
if (ldapEntriesAddedFlag == true) {
|
|
navigator.preference("ldap_1.number_of_directories", ldapNum);
|
|
}
|
|
|
|
|
|
// on Mac, prevent Internet Config from overriding new settings
|
|
|
|
navigator.preference("browser.mac.use_internet_config", false);
|
|
|
|
|
|
var profileDir = document.setupPlugin.GetCurrentProfileDirectory();
|
|
if (profileDir != null && profileDir != "") {
|
|
|
|
// write MUC Configuration file
|
|
|
|
var thePlatform = new String(navigator.userAgent);
|
|
var x=thePlatform.indexOf("(")+1;
|
|
var y=thePlatform.indexOf(";",x+1);
|
|
thePlatform=thePlatform.substring(x,y);
|
|
|
|
var configFile="";
|
|
if (thePlatform == "Macintosh") { // Macintosh support
|
|
configFile = profileDir + "Configuration";
|
|
}
|
|
else { // Windows support
|
|
configFile = profileDir + "CONFIG.INI";
|
|
}
|
|
|
|
document.setupPlugin.SetNameValuePair(configFile,"Account", "Account", newProfileName); // findVariable("SITE_NAME")
|
|
document.setupPlugin.SetNameValuePair(configFile,"Modem", "Modem", document.vars.modem.value);
|
|
document.setupPlugin.SetNameValuePair(configFile,"Location", "Location", "Home");
|
|
|
|
|
|
// write out Reggie bookmark file (if one was sent)
|
|
|
|
var currentBookmarkFilename="";
|
|
var CRLF="";
|
|
if (thePlatform == "Macintosh") { // Macintosh support
|
|
currentBookmarkFilename = profileDir + "Bookmarks.html";
|
|
CRLF = "\r";
|
|
}
|
|
else { // Windows support
|
|
currentBookmarkFilename = profileDir + "BOOKMARK.HTM";
|
|
CRLF = "\r\n";
|
|
}
|
|
|
|
|
|
// Mac only: on clean install, core Communicator doesn't copy over Bookmarks.html file from Defaults folder
|
|
// so grab a copy from our Config folder
|
|
|
|
if (thePlatform == "Macintosh") {
|
|
var theActiveProfileName = document.setupPlugin.GetCurrentProfileName();
|
|
if (theActiveProfileName != null) {
|
|
theActiveProfileName = theActiveProfileName.toUpperCase();
|
|
if (theActiveProfileName == '911' || theActiveProfileName == 'USER1') {
|
|
var theDefaultBookmarkFilename = parent.parent.globals.getConfigFolder(self) + "Bookmarks.html";
|
|
var theBookmarkData = parent.parent.globals.document.setupPlugin.GetNameValuePair(theDefaultBookmarkFilename,null,null);
|
|
if (theBookmarkData == null || theBookmarkData == "") {
|
|
theDefaultBookmarkFilename = parent.parent.globals.getConfigFolder(self) + "bookmark.htm";
|
|
theBookmarkData = parent.parent.globals.document.setupPlugin.GetNameValuePair(theDefaultBookmarkFilename,null,null);
|
|
}
|
|
if (theBookmarkData != null && theBookmarkData != "") {
|
|
parent.parent.globals.document.setupPlugin.SaveTextToFile(currentBookmarkFilename,theBookmarkData,false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
var bookmarkData = "" + document.setupPlugin.GetNameValuePair(currentBookmarkFilename,null,null);
|
|
if (bookmarkData != "") {
|
|
if (bookmarkData.indexOf("<!DOCTYPE NETSCAPE-Bookmark-file-1>") ==0) { // check for valid bookmark file header
|
|
|
|
// build new bookmark title
|
|
|
|
var titleStr = "Bookmarks";
|
|
var name = "";
|
|
if (parent.parent.globals.document.vars.first.value != "" && parent.parent.globals.document.vars.last.value != "") {
|
|
name = parent.parent.globals.document.vars.first.value + " " + parent.parent.globals.document.vars.last.value;
|
|
}
|
|
else {
|
|
name = findVariable("LOGIN");
|
|
}
|
|
if (name != "") titleStr = titleStr + " for " + name;
|
|
|
|
// change TITLE section
|
|
|
|
var startTitleindex=bookmarkData.indexOf("<TITLE>");
|
|
var endTitleindex=bookmarkData.indexOf("</TITLE>");
|
|
if (startTitleindex>0 && endTitleindex>0) {
|
|
startTitleindex = startTitleindex + "<TITLE>".length;
|
|
var bookmarkDataLen = bookmarkData.length;
|
|
bookmarkData = bookmarkData.substring(0,startTitleindex) + titleStr + bookmarkData.substring(endTitleindex,bookmarkDataLen);
|
|
}
|
|
|
|
// change H1 section
|
|
|
|
var startTitleindex=bookmarkData.indexOf("<H1>");
|
|
var endTitleindex=bookmarkData.indexOf("</H1>");
|
|
if (startTitleindex>0 && endTitleindex>0) {
|
|
startTitleindex = startTitleindex + "<H1>".length;
|
|
var bookmarkDataLen = bookmarkData.length;
|
|
bookmarkData = bookmarkData.substring(0,startTitleindex) + titleStr + bookmarkData.substring(endTitleindex,bookmarkDataLen);
|
|
}
|
|
}
|
|
}
|
|
|
|
var regBookmarkData = document.vars.regBookmark.value;
|
|
if (regBookmarkData != null && regBookmarkData != "") {
|
|
if (regBookmarkData.indexOf("<!DOCTYPE NETSCAPE-Bookmark-file-1>") == 0 ) { // check for valid bookmark file header
|
|
var cleanFlag = false;
|
|
var activeProfileName = document.setupPlugin.GetCurrentProfileName();
|
|
if (activeProfileName != null) {
|
|
activeProfileName = activeProfileName.toUpperCase();
|
|
if (activeProfileName == '911' || activeProfileName == 'USER1') {
|
|
cleanFlag=true;
|
|
}
|
|
}
|
|
|
|
if (cleanFlag == true) { // if magic profile, write out entire new bookmark file
|
|
bookmarkData = regBookmarkData;
|
|
}
|
|
else { // else append onto end of bookmark file
|
|
var headerStr = "<DL><p>" + CRLF;
|
|
var startDLindex=regBookmarkData.indexOf(headerStr);
|
|
if (startDLindex>0) {
|
|
startDLindex = startDLindex + headerStr.length;
|
|
}
|
|
var lastDLindex = regBookmarkData.lastIndexOf("</DL>");
|
|
if (startDLindex>0 && startDLindex>0) { // remove bookmark header/footer data
|
|
var newBookmarkData = regBookmarkData.substring(startDLindex,lastDLindex);
|
|
if (newBookmarkData != "") {
|
|
if (bookmarkData.indexOf(newBookmarkData) <0) {
|
|
var startDLindex=bookmarkData.indexOf(headerStr);
|
|
if (startDLindex>0) {
|
|
startDLindex = startDLindex + headerStr.length;
|
|
}
|
|
var lastDLindex = bookmarkData.lastIndexOf("</DL>");
|
|
if (startDLindex>0 && startDLindex>0) { // merge into current bookmark file
|
|
var bookmarkDataLen = bookmarkData.length;
|
|
// append new bookmark data to bookmark file
|
|
bookmarkData = bookmarkData.substring(0,lastDLindex) + newBookmarkData + bookmarkData.substring(lastDLindex,bookmarkDataLen);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else { // if invalid bookmark header, discard
|
|
regBookmarkData = "";
|
|
}
|
|
}
|
|
|
|
if (thePlatform == "Win16") {
|
|
if (bookmarkData.length >= 16000) {
|
|
bookmarkData = "";
|
|
}
|
|
}
|
|
|
|
if (bookmarkData != "") {
|
|
document.setupPlugin.SaveTextToFile(currentBookmarkFilename,bookmarkData,false);
|
|
}
|
|
|
|
|
|
// append ISP bookmark (if Reggie sends it down) to profile's bookmark file
|
|
|
|
var ISPurl = findVariable("ISP_URL");
|
|
if (ISPurl != null && ISPurl != "") {
|
|
bookmarkData = "" + document.setupPlugin.GetNameValuePair(currentBookmarkFilename, null, null);
|
|
if (bookmarkData != null && bookmarkData != "") {
|
|
var lastDLindex = bookmarkData.lastIndexOf("</DL>");
|
|
if (lastDLindex >= 0) {
|
|
var newData = bookmarkData.substring(0,lastDLindex);
|
|
newData = newData + "\t<DT><A HREF=\"" + ISPurl + "\">" + findVariable("SITE_NAME") + "</A>" + CRLF;
|
|
newData = newData + bookmarkData.substring(lastDLindex,bookmarkData.length);
|
|
|
|
if (thePlatform == "Win16") {
|
|
if (newData.length >= 16000) {
|
|
newData = "";
|
|
}
|
|
}
|
|
if (newData != "") {
|
|
document.setupPlugin.SaveTextToFile(currentBookmarkFilename,newData,false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// rename profile
|
|
|
|
if (thePlatform == "Macintosh") {
|
|
if (newProfileName.length > 31) newProfileName=newProfileName.substring(0,31);
|
|
}
|
|
|
|
document.setupPlugin.SetCurrentProfileName(newProfileName);
|
|
debug("\nSetting profile name: " + newProfileName);
|
|
|
|
|
|
// set the default path to now be the existing path
|
|
|
|
document.vars.path.value = "Existing Path";
|
|
}
|
|
|
|
|
|
|
|
function saveAccountInfo(promptFlag)
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("AccountSetup");
|
|
|
|
var thePlatform = new String(navigator.userAgent);
|
|
var x=thePlatform.indexOf("(")+1;
|
|
var y=thePlatform.indexOf(";",x+1);
|
|
thePlatform=thePlatform.substring(x,y);
|
|
|
|
var CRLF;
|
|
if (thePlatform == "Macintosh") {
|
|
CRLF = "\r";
|
|
}
|
|
else {
|
|
CRLF = "\r\n";
|
|
}
|
|
|
|
// Determine the current date
|
|
|
|
var theFile = parent.parent.globals.getAcctSetupFilename(self);
|
|
var savePasswordFlag = parent.parent.globals.GetNameValuePair(theFile,"New Acct Mode","SavePasswords");
|
|
|
|
var now = new Date();
|
|
theDate = now.getMonth()+1 + "/" + now.getDate() + "/" + (now.getYear()+1900);
|
|
theDate += " ";
|
|
var theHour = now.getHours();
|
|
var theString = " AM";
|
|
if (theHour >=12) {
|
|
theHour = theHour-12;
|
|
theString = " PM";
|
|
}
|
|
var theMinute = now.getMinutes();
|
|
if (theMinute < 10) {
|
|
theMinute="0" + theMinute;
|
|
}
|
|
theDate += theHour + ":" + theMinute + theString;
|
|
|
|
// Mangle the POP/IMAP server
|
|
|
|
var mailProtocol = "IMAP";
|
|
var popIMAPServer = findVariable("IMAP_HOST");
|
|
if (popIMAPServer == "") {
|
|
mailProtocol = "POP";
|
|
popIMAPServer = findVariable("POP_SERVER");
|
|
}
|
|
var atLocation = popIMAPServer.indexOf("@");
|
|
if (atLocation>=0) {
|
|
popIMAPServer = popIMAPServer.substring(atLocation+1);
|
|
}
|
|
|
|
// Create the output string to save
|
|
|
|
var output = "Your Account Information " + theDate + CRLF;
|
|
output += "______________________________________________________________" + CRLF + CRLF;
|
|
output += "Name: " + parent.parent.globals.document.vars.first.value + " " + parent.parent.globals.document.vars.last.value + CRLF;
|
|
output += "Provider: " + findVariable("SITE_NAME") + CRLF + CRLF;
|
|
|
|
output += "Dialup access number: " + findVariable("PHONE_NUM") + CRLF + CRLF;
|
|
|
|
output += "Login name: " + findVariable("LOGIN") + CRLF;
|
|
|
|
if (savePasswordFlag == "yes") {
|
|
output += "Login password: " + findVariable("PASSWORD") + CRLF + CRLF;
|
|
}
|
|
|
|
output += "Email address: " + findVariable("EMAIL_ADDR") + CRLF;
|
|
|
|
if (savePasswordFlag == "yes") {
|
|
output += "Email password: " + findVariable("POP_PASSWORD") + CRLF + CRLF;
|
|
}
|
|
|
|
output += "SMTP server: " + findVariable("SMTP_HOST") + CRLF;
|
|
|
|
if (mailProtocol == "IMAP") {
|
|
output += "IMAP server: " + popIMAPServer + CRLF;
|
|
|
|
var imapDir = findVariable("IMAP_SERVERPATH");
|
|
if (imapDir != "") {
|
|
output += "IMAP server mailbox path: " + imapDir + CRLF;
|
|
}
|
|
}
|
|
else {
|
|
output += "POP server: " + popIMAPServer + CRLF;
|
|
}
|
|
output += "News (NNTP) server: " + findVariable("NNTP_HOST") + CRLF + CRLF;
|
|
|
|
output += "Domain name: " + findVariable("DOMAIN_NAME") + CRLF;
|
|
output += "Primary DNS server: " + findVariable("DNS_ADDR") + CRLF;
|
|
output += "Secondary DNS server: " + findVariable("DNS_ADDR_2") + CRLF + CRLF;
|
|
|
|
var viewURL = findVariable("PUBLISH_VIEW_URL");
|
|
if (viewURL != "") {
|
|
output += "Publishing View URL: " + viewURL + CRLF;
|
|
}
|
|
var pushURL = findVariable("PUBLISH_PUSH_URL");
|
|
if (pushURL != "") {
|
|
output += "Publishing Push URL: " + pushURL + CRLF;
|
|
}
|
|
|
|
output += CRLF;
|
|
|
|
output += "Modem: " + parent.parent.globals.document.vars.modem.value + CRLF + CRLF;
|
|
|
|
output += "Other information:" + CRLF + CRLF;
|
|
output += "Provider's technical support number: " + findVariable("ISP_SUPPORT") + CRLF;
|
|
|
|
|
|
// determine new profile name (used for Account in dialer & profile name, save info default filename)
|
|
|
|
var newProfileName = findVariable("LOGIN");
|
|
if (newProfileName=="") {
|
|
newProfileName = document.vars.first.value;
|
|
if (document.vars.last.value != "") {
|
|
newProfileName = newProfileName + " " + document.vars.last.value;
|
|
}
|
|
}
|
|
if (newProfileName!="") newProfileName = newProfileName + "'s";
|
|
if (findVariable("SITE_NAME") != "") {
|
|
newProfileName = newProfileName + " " + findVariable("SITE_NAME");
|
|
}
|
|
newProfileName = newProfileName + " Account Info";
|
|
|
|
if (thePlatform == "Macintosh") {
|
|
if (newProfileName.length > 31) newProfileName=newProfileName.substring(0,31);
|
|
}
|
|
|
|
|
|
// On WIN32 platforms, check if newProfileName contains any invalid characters, such as '/'
|
|
// On Mac, disallow invalid characters such as ':'
|
|
|
|
if ((thePlatform == "WinNT") || (thePlatform == "Win95")) {
|
|
var x=0;
|
|
x = newProfileName.indexOf('/');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('/');
|
|
}
|
|
x = newProfileName.indexOf('\\');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('\\');
|
|
}
|
|
x = newProfileName.indexOf(':');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf(':');
|
|
}
|
|
x = newProfileName.indexOf('\"');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('\"');
|
|
}
|
|
x = newProfileName.indexOf('?');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('?');
|
|
}
|
|
x = newProfileName.indexOf('<');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('<');
|
|
}
|
|
x = newProfileName.indexOf('>');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('>');
|
|
}
|
|
x = newProfileName.indexOf('|');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('|');
|
|
}
|
|
}
|
|
else if (thePlatform == "Macintosh") {
|
|
var x=0;
|
|
x = newProfileName.indexOf(':');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf(':');
|
|
}
|
|
}
|
|
else if (thePlatform == "Win16") {
|
|
var x=0;
|
|
x = newProfileName.indexOf('(');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(0, x-1) + newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf('(');
|
|
}
|
|
x = newProfileName.indexOf(')');
|
|
while ((x >= 0) && (newProfileName.length != 0)) {
|
|
newProfileName = newProfileName.substring(0, x-1) + newProfileName.substring(x+1, newProfileName.length);
|
|
x = newProfileName.indexOf(')');
|
|
}
|
|
}
|
|
|
|
|
|
// create the default filename to save output to
|
|
/*
|
|
var defaultFilename = findVariable("SITE_FILE");
|
|
if (defaultFilename != "") defaultFilename=defaultFilename + " ";
|
|
defaultFilename = defaultFilename + "Account Info";
|
|
*/
|
|
|
|
var savedFlag=false;
|
|
if (promptFlag==false) {
|
|
var profileDir = document.setupPlugin.GetCurrentProfileDirectory();
|
|
if (profileDir != null && profileDir != "") {
|
|
if (thePlatform == "Macintosh") {
|
|
newProfileName = profileDir + "Account Info";
|
|
}
|
|
else {
|
|
newProfileName = profileDir + "ACCTINFO.TXT";
|
|
}
|
|
savedFlag = parent.parent.globals.document.setupPlugin.SaveTextToFile(newProfileName,output,false); // defaultFilename
|
|
}
|
|
}
|
|
else {
|
|
savedFlag = parent.parent.globals.document.setupPlugin.SaveTextToFile(newProfileName,output,true); // defaultFilename
|
|
}
|
|
return(savedFlag);
|
|
}
|
|
|
|
|
|
|
|
// end hiding contents from old browsers -->
|