Files
Mozilla/mozilla/cmd/dialup/tools/cg/docs/nci/nciglob.js
dmose%mozilla.org 68d3ee8a2a updating license to xPL 1.1
git-svn-id: svn://10.0.0.236/trunk@52535 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 07:16:31 +00:00

779 lines
23 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.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/NPL/
*
* 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 mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
<!-- to hide script contents from old browsers
// the file that includes this must also include settings.js!
// nciglob.js
//THE FOLLOWING FUNCTION IS LOCATION DEPENDANT
function refreshConfigFrame(fileName)
{
if (parent.nci)
{
parent.nci.refreshNCIList();
if (fileName != null)
parent.nci.setNCIList(fileName);
}
else if (parent.parent.nci)
{
parent.parent.nci.refreshNCIList();
if (fileName != null)
parent.parent.nci.setNCIList(fileName);
}
if (fileName != null)
setGlobal("NciFileName", fileName);
}
//THE FOLLOWING FUNCTION IS LOCATION DEPENDANT
//returns the filename that we are working with - from the
//editfield in the parent's "config" frame
//NOT any more, now that we run inside a window, we get the name from
//ACCTSET.INI
function getNCINameFromOpener()
{
var outValue = "";
var tempValue = GetNameValuePair("ACCTSET.INI", "Mode Selection", "ExistingSRFile");
if ((tempValue != null))
outValue = tempValue;
return outValue;
}
////////////////Interaction functions////////////////
// these functions are for other files to access and load the global data
// we store in the nciglobals frame
function getGlobal(fieldName)
{
var outValue = "";
//debug("parent.nciglobals: " + parent.nciglobals);
//debug("parent.parent.nciglobals: " + parent.parent.nciglobals);
//debug("parent.parent.parent.nciglobals: " + parent.parent.parent.nciglobals);
//debug("parent.parent.parent.parent.nciglobals: " + parent.parent.parent.parent.nciglobals);
if (parent.parent.nciglobals)
{
//debug ("option 1: parent.parent.nciglobals " + fieldName);
outValue = parent.parent.nciglobals.document.nciTempVars[fieldName].value;
//debug("out: " + outValue);
}
else if (parent.nciglobals && parent.nciglobals.document && parent.nciglobals.document.nciTempVars && parent.nciglobals.document.nciTempVars[fieldName])
{
//debug ("option 2: parent.nciglobals");
outValue = parent.nciglobals.document.nciTempVars[fieldName].value;
}
else
{
//debug("getGlobal - Warning: NCIGLOBALS not found.");
//debug("parent.nciglobals: " + parent.nciglobals);
//debug("parent.parent.nciglobals: " + parent.parent.nciglobals);
//debug("parent.parent.parent.nciglobals: " + parent.parent.parent.nciglobals);
//debug("parent.parent.parent.parent.nciglobals: " + parent.parent.parent.parent.nciglobals);
}
if (outValue == null) outValue = "";
debug("getGlobal: " + fieldName + " is " + outValue);
return outValue;
}
function setGlobal(fieldName, inValue)
{
//alert("setGlobal " + fieldName + " " +inValue);
if (inValue == null)
inValue = "";
if (parent.parent.nciglobals)
{
//debug ("SetGobal: option 1: parent.parent.nciglobals");
parent.parent.nciglobals.document.nciTempVars[fieldName].value = inValue;
}
else if (parent.nciglobals)
{
//debug ("SetGobal: option 2: parent.nciglobals");
parent.nciglobals.document.nciTempVars[fieldName].value = inValue;
}
else
{
debug("setGlobal - Warning: NCIGLOBALS not found.");
debug("parent.nciglobals: " + parent.nciglobals);
debug("parent.parent.nciglobals: " + parent.parent.nciglobals);
debug("parent.parent.parent.nciglobals: " + parent.parent.parent.nciglobals);
debug("parent.parent.parent.parent.nciglobals: " + parent.parent.parent.parent.nciglobals);
}
}
//call this to force a save of the data, and refresh the frames.
function saveAndRefresh()
{
//alert("in saveandrefresh");
//flush the current child frame
if (parent.tabs && parent.tabs.tabbody && parent.tabs.tabbody.saveData)
parent.tabs.tabbody.saveData();
else if (parent.parent.tabs.tabbody)
parent.tabs.tabbody.saveData();
//save the file
var fileName = saveNewOrOldFile();
//refresh the popup
if ((fileName != null))
refreshConfigFrame(fileName);
}
//specifies whether the data has been tainted - i.e. whether we should
// save the data on unload
// usage: nciDirty(true) sets dirtiness (returns old dirtiness state)
// nciDirty(false) clears dirtiness (returns old dirtiness state)
// nciDirty(null) returns current dirtiness state
function nciDirty(inDirt)
{
var isDirty = getGlobal("GlobalsDirty");
if ((inDirt != null) && (inDirt == true))
setGlobal("GlobalsDirty", "yes");
else if ((inDirt != null) && (inDirt == false))
setGlobal("GlobalsDirty", "no");
if ((isDirty != null) && (isDirty == "yes"))
return true;
else
return false;
}
/////////////End Interaction functions////////////////
////////FILE I/O FUNCTIONS/////////
//get all the data from some file in the Config folder
//fill in the values in our globals form
function readFileData(fileName)
{
//alert("in readFileData");
var saved = saveIfDirty();
debug("saved : " + saved);
if (saved == false)
{
var siteName = getGlobal("NciFileName");
if ((siteName == null) || (siteName == "") || (siteName == "null"))
{
siteName = "_new_";
}
refreshConfigFrame(siteName);
return false;
}
if ((saved != null) && (saved != "") && saved != false)
{
refreshConfigFrame(fileName);
}
var tempFlagValue = "";
var dicSectionName = "Dial-In Configuration";
var optionsSectionName = "Options"
var scriptSectionName = "Script";
var servicesSectionName = "Services";
var ipSectionName = "IP";
//if we decide to support per POP CFG Files, uncomment these lines
var configurationSectionName = "Configuration";
var publishingSectionName = "Publishing";
//var ipxSectionName = "IPX";
//var netbeuiSectionName = "NetBEUI";
//var securitySectionName = "Security";
if (fileName == null) fileName = "";
setGlobal("NciFileName", fileName);
tempFlagValue = GetNameValuePair(fileName, dicSectionName, "SiteName");
setGlobal("SiteName", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, dicSectionName, "Description");
setGlobal("Description", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, dicSectionName, "Name");
setGlobal("Name", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, dicSectionName, "Password");
setGlobal("Password", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, dicSectionName, "Phone");
setGlobal("Phone", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, dicSectionName, "SupportPhone");
setGlobal("SupportPhone", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, optionsSectionName, "EnableVJCompression");
setGlobal("EnableVJCompression", tempFlagValue);
// Nope, don't need these 3.0 things anymore
//
// tempFlagValue = GetNameValuePair(fileName, ipxSectionName, "Enabled");
// setGlobal("IPXEnabled", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, ipSectionName, "Enabled");
setGlobal("IPEnabled", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, ipSectionName, "IPAddress");
setGlobal("IPAddress", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, ipSectionName, "DomainName");
setGlobal("DomainName", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, ipSectionName, "DNSAddress");
setGlobal("DNSAddress", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, ipSectionName, "DNSAddress2");
setGlobal("DNSAddress2", tempFlagValue);
// don't _want_ these, in here for legacy reasons - so old files still work
//actually - we do want them now.
tempFlagValue = GetNameValuePair(fileName, servicesSectionName, "SMTP_Server");
setGlobal("SMTP_Server", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, servicesSectionName, "NNTP_Server");
setGlobal("NNTP_Server", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, servicesSectionName, "POP_Server");
setGlobal("POP_Server", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, servicesSectionName, "IMAP_Server");
setGlobal("IMAP_Server", tempFlagValue);
//Maybe we will want this in the near future:
tempFlagValue = GetNameValuePair(fileName, servicesSectionName, "Default_Mail_Protocol");
setGlobal("Default_Mail_Protocol", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, publishingSectionName, "Publish_URL");
setGlobal("Publish_URL", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, publishingSectionName, "Publish_Password");
setGlobal("Publish_Password", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, publishingSectionName, "View_URL");
setGlobal("View_URL", tempFlagValue);
// these are things 3.0 used to support that we don't, and things
// that I thought we might want to support, but currently don't
//
// setLDAPServers(fileName);
//
//
// tempFlagValue = GetNameValuePair(fileName, netbeuiSectionName, "Enabled");
// setGlobal("NetBEUIEnabled", tempFlagValue);
//
// tempFlagValue = GetNameValuePair(fileName, securitySectionName, "SecurityDevice");
// setGlobal("SecurityDevice", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, scriptSectionName, "ScriptEnabled");
setGlobal("ScriptEnabled", tempFlagValue);
tempFlagValue = GetNameValuePair(fileName, scriptSectionName, "ScriptFileName");
setGlobal("ScriptFileName", tempFlagValue);
//if we decide to support per POP CFG Files, uncomment these lines
tempFlagValue = GetNameValuePair(fileName, configurationSectionName, "ConfigurationFileName");
setGlobal("ConfigurationFileName", tempFlagValue);
//get the flag from ACCTSET.INI
tempFlagValue = GetNameValuePair("ACCTSET.INI", "Existing Acct Mode", "RegPodURL");
setGlobal("RegPodURL", tempFlagValue);
//set the flag in ACCTSET.INI to indicate THIS is the new file
if (fileName != "_new_")
SetNameValuePair("ACCTSET.INI", "Mode Selection", "ExistingSRFile", fileName);
//set the dirty bit to clean
nciDirty(false);
//reload the parent's tabs frame
debug("parent.tabs: " + parent.tabs);
debug("parent.parent.tabs: " + parent.parent.tabs);
if (parent.tabs && parent.tabs.tabbody && parent.tabs.tabbody.loadData)
parent.tabs.tabbody.loadData();
else if (parent.parent.tabs && parent.parent.tabs.tabbody && parent.parent.tabs.tabbody.loadData)
parent.parent.tabs.tabbody.loadData();
return true;
}
////////////FILE NAMING FUNCTIONS/////////////////
//helper function for suggesting fileNames
function isAlphaNumeric(inLetter)
{
debug("inAlphaNumeric");
var outValue = false;
if ((inLetter != null) && (inLetter != ""))
{
if ((!isNaN(parseInt(inLetter))) && (parseInt(inLetter) >= 0) && (parseInt(inLetter) <= 9))
outValue = true;
else
{
var let = inLetter.toLowerCase();
if ((let <= "z") && ( let >= "a"))
outValue = true;
else if (let == "_")
outValue = true;
}
}
return outValue;
}
//takes the first eight non-whitespace characters of SiteName, and turns them into a filename
//ending with a .NCI
function suggestNCIFileName(sName)
{
debug("suggesting");
if ((sName == null) || (sName == ""))
sName = getGlobal("SiteName");
var nciName = "";
if ((sName != null) && (sName != ""))
{
var len = sName.length;
var finLen = 0;
for (var i = 0; i < len; i++)
{
if (isAlphaNumeric(sName.charAt(i)))
{
nciName = nciName + sName.charAt(i);
finLen++;
}
if (finLen >= 8)
break;
}
nciName = (nciName + ".NCI");
}
return nciName;
}
function checkIfNCIFileExists(inFileName)
{
var outValue = false;
if ((inFileName != null) && (inFileName != ""))
{
fileList = getFileListFromConfigFolder(".NCI");
if (fileList != null)
{
for (var i=0; i<fileList.length; i++)
{
if (fileList[i] == inFileName)
outValue = true;
}
}
}
return outValue;
}
////////////////FILE SAVING FUNCTIONS///////////////
function askNCIFileNameAndSave()
{
var sName = getGlobal("SiteName");
var save = null;
netscape.security.PrivilegeManager.enablePrivilege( "AccountSetup" );
//flush data from currenly open tab into globals
if (parent.tabs && parent.tabs.tabbody && parent.tabs.tabbody.saveData)
{
parent.tabs.tabbody.saveData();
}
//first check if there is a sitename, if not, prompt for one
if ((sName == null) || (sName == ""))
{
var pName = prompt("Please enter a name for this configuration (this will be shown to the end user):", "");
if ((pName != null) && (pName != ""))
{
setGlobal("SiteName", pName);
setGlobal("Description", pName);
sName = pName;
}
else
{
save = false;
}
}
//now, if there is a sitename, suggest an NCI fileName, prompt for confirmation
debug( "about to suggest..." );
while (save == null)
{
debug( "in that while loop..." );
if ((sName != null) && (sName != ""))
{
var sgName = getGlobal("NciFileName");
if ((sgName == null) || (sgName == "") || (sgName == "_new_"))
sgName = suggestNCIFileName(null);
var fName = prompt("Enter the file name for this configuration (must end with .NCI). Do not specify a path name. Account Setup Editor saves the file to " + top.globals.getConfigFolder(top.globals), sgName);
//if they entered an improper suffix or path, prompt again, and again
//NCI files are to be saved only in the config folder.
while ((fName != null) && (((fName.substring(fName.length-4, fName.length) != ".NCI") && (fName.substring(fName.length-4, fName.length) != ".nci")) || (pathMentioned(fName))))
{
sgName = suggestNCIFileName(fName);
fName = prompt("Please enter file name only (must end with .NCI). This file will be saved by default to " + top.globals.getConfigFolder(top.globals), sgName);
}
// if the name exists, prompt to replace
if ((fName != null) && (checkIfNCIFileExists(fName)))
{
var conf = confirm("The file: " + fName + " already exists. Replace?");
if (conf)
{
save = true;
}
else
save = null;
}
else if(fName != null)
{
//fileName doesn't exist - we can save
save = true;
}
else
{
//user canceled - name = null
save = false;
}
}
}
//now save the file if the user didn't cancel
if (save == true)
{
//save the file
writeToFile(fName);
top.globals.document.setupPlugin.FlushCache();
alert("This file is saved as " + top.globals.getConfigFolder(top.globals) + fName);
refreshConfigFrame(fName);
return fName;
}
else
{
//alert("Could not save this configuration because you did not provide a Name");
return null;
}
}
// Checks if user mentioned path name in the filename field.
function pathMentioned(fileName)
{
var isAPath = false;
if ((fileName != null) && (fileName != ""))
{
if ((fileName.charAt(1) == ':') && (fileName.charAt(2) == '\\'))
isAPath = true;
}
return isAPath;
}
//writes all data to an existing file
function writeToFile(fileName)
{
// Request privilege
netscape.security.PrivilegeManager.enablePrivilege("AccountSetup");
var dicSectionName = "Dial-In Configuration";
var optionsSectionName = "Options"
var servicesSectionName = "Services";
var scriptSectionName = "Script";
var ipSectionName = "IP";
//if we decide to support per POP CFG Files, uncomment these lines
var configurationSectionName = "Configuration";
//var ipxSectionName = "IPX";
//var netbeuiSectionName = "NetBEUI";
//var securitySectionName = "Security";
var publishingSectionName = "Publishing";
SetNameValuePair(fileName, dicSectionName, "SiteName", getGlobal("SiteName"));
SetNameValuePair(fileName, dicSectionName, "Description", getGlobal("Description"));
SetNameValuePair(fileName, dicSectionName, "Name", getGlobal("Name"));
SetNameValuePair(fileName, dicSectionName, "Password", getGlobal("Password"));
SetNameValuePair(fileName, dicSectionName, "Phone", getGlobal("Phone"));
SetNameValuePair(fileName, dicSectionName, "SupportPhone", getGlobal("SupportPhone"));
SetNameValuePair(fileName, optionsSectionName, "EnableVJCompression", getGlobal("EnableVJCompression"));
//Obselete
//SetNameValuePair(fileName, ipxSectionName, "Enabled", getGlobal("IPXEnabled"));
SetNameValuePair(fileName, ipSectionName, "Enabled", getGlobal("IPEnabled"));
SetNameValuePair(fileName, ipSectionName, "IPAddress", getGlobal("IPAddress"));
SetNameValuePair(fileName, ipSectionName, "DomainName", getGlobal("DomainName"));
SetNameValuePair(fileName, ipSectionName, "DNSAddress", getGlobal("DNSAddress"));
SetNameValuePair(fileName, ipSectionName, "DNSAddress2", getGlobal("DNSAddress2"));
//don't really want to keep these around, just here for backwards compatibility,
// they are not exposed in the UI
SetNameValuePair(fileName, servicesSectionName, "SMTP_Server", getGlobal("SMTP_Server"));
SetNameValuePair(fileName, servicesSectionName, "NNTP_Server", getGlobal("NNTP_Server"));
SetNameValuePair(fileName, servicesSectionName, "POP_Server", getGlobal("POP_Server"));
SetNameValuePair(fileName, servicesSectionName, "IMAP_Server", getGlobal("IMAP_Server"));
//may want this soon
SetNameValuePair(fileName, servicesSectionName, "Default_Mail_Protocol", getGlobal("Default_Mail_Protocol"));
//
// setLDAPServers(fileName); //never had this either
//
SetNameValuePair(fileName, publishingSectionName, "Publish_URL", getGlobal("Publish_URL"));
SetNameValuePair(fileName, publishingSectionName, "Publish_Password", getGlobal("Publish_Password"));
SetNameValuePair(fileName, publishingSectionName, "View_URL", getGlobal("View_URL"));
//
// Legacy stuff, won't use it no more
// SetNameValuePair(fileName, netbeuiSectionName, "Enabled", getGlobal("NetBEUIEnabled"));
//
// SetNameValuePair(fileName, securitySectionName, "SecurityDevice", getGlobal("SecurityDevice"));
//
// SetNameValuePair(fileName, scriptSectionName, "ScriptEnabled", getGlobal("ScriptEnabled"));
SetNameValuePair(fileName, scriptSectionName, "ScriptFileName", getGlobal("ScriptFileName"));
//if we decide to support per POP CFG Files, uncomment these lines
SetNameValuePair(fileName, configurationSectionName, "ConfigurationFileName", getGlobal("ConfigurationFileName"));
//set the flag from ACCTSET.INI
SetNameValuePair("ACCTSET.INI", "Existing Acct Mode", "RegPodURL", getGlobal("RegPodURL"));
nciDirty(false);
}
//EVENT HANDLERS
//this is the onLoad event Handler
function loadData()
{
if (parent.nci && parent.nci.loadData)
{
parent.nci.loadData();
//generate toolbar controls (and load help file if needed)
if (parent.parent && parent.parent.controls && parent.parent.controls.generateToolBarControls)
parent.parent.controls.generateToolBarControls();
}
else
setTimeout("loadData()", 500);
//debug("in getdata of nciglob.js");
}
//checks validity of entered data to see if we're ready to unload
function checkData()
{
if (nciDirty(null))
{
if (parent.tabs.tabbody.checkData)
{
//alert("checkdata exists");
var checkResult = parent.tabs.tabbody.checkData();
if (checkResult != true)
return checkResult;
}
else
return true;
}
else
return true;
}
//checks to see if globals are dirty - if so, asks if you wanna save
function saveIfDirty()
{
//alert("in saveifdirty");
var fName = null;
if (nciDirty(null))
{
if (confirm("You have made changes to this configuration. Would you like to save them?"))
fName = saveNewOrOldFile();
nciDirty(false);
}
else
debug("Won't save - NCI not dirty");
return fName;
}
// checks if fileName exists, if not asks about saving to a new file,
// else saves over an old file (no prompting)
function saveNewOrOldFile()
{
netscape.security.PrivilegeManager.enablePrivilege( "AccountSetup" );
//flush data from currenly open tab into globals
if (parent.tabs && parent.tabs.tabbody && parent.tabs.tabbody.saveData)
{
parent.tabs.tabbody.saveData();
}
nciDirty(false);
var fileName = getGlobal("NciFileName");
if ((fileName == null) || (fileName == "") || (fileName == "_new_"))
{
//debug("Saving: must ask for FileName");
var theName = askNCIFileNameAndSave();
fileName = theName;
}
else if ((fileName != null) && (fileName != "") && (fileName != "_new_"))
{
//debug("Saving: without asking to: " + fileName);
writeToFile(fileName);
top.globals.document.setupPlugin.FlushCache();
// alert("This file is saved as " + top.globals.getConfigFolder(top.globals) + fName);
}
return fileName;
}
//this is the onUnLoad event Handler
function saveData()
{
//do a checkdata
var checkResult = checkData();
if (checkResult != true)
return false;
//first make sure any current changes in the open tab are reflected in the globals
if(parent.tabs.tabbody.saveData)
{
parent.tabs.tabbody.saveData();
}
saveIfDirty(); //save, if need be
return true;
}
////*DEFUNCT FUNCTION GRAVEYARD BELOW*////
// Decided not to do LDAPs here, since they can be done in the Config Editor -
// but let's keep this code around in case we ever do decide
//function setLDAPServers(fileName)
//{
// var servicesSectionName = "Services";
// var curLdap = "";
// var allLdaps = "";
// var curFlagName = "";
//
// var num_Ldaps = parseInt(GetNameValuePair(fileName, servicesSectionName, "NUM_LDAP_Servers"));
// if ((!(num_Ldaps)) || (isNaN(num_Ldaps)))
// num_Ldaps = 0;
//
// setGlobal("NUM_LDAP_Servers", num_Ldaps.toString());
//
// for (var index = 1; index <= num_Ldaps; index++)
// {
//
// curFlagName = ("LDAP_Server_"+(index));
//
// curLdap = GetNameValuePair(fileName, servicesSectionName, curFlagName);
//
// //might need some platform specific newline code in here
// if ((curLdap != null) && (curLdap != ""))
// {
// //curLdap = unescape(curLdap);
// allLdaps = (allLdaps + curLdap + "\r");
// }
// }
//
// setGlobal("LDAP_Servers", allLdaps);
//}
//function setLDAPServers(fileName)
//{
// var servicesSectionName = "Services";
// var curLdap = "";
// var allLdaps = "";
// var curFlagName = "";
//
// var num_LDAPS = parseInt(getGlobal("NUM_LDAP_Servers"));
//
// if ((!num_LDAPS) || (isNaN(num_LDAPS)))
// num_LDAPS = 0;
//
// SetNameValuePair(fileName, servicesSectionName, "NUM_LDAP_Servers", num_LDAPS.toString());
//
// //FIXME FIXME - may need platform specific newline handling code here
//
// var allLdaps = getGlobal("LDAP_Servers").split("\r");
//
// for (var index = 0; index < num_LDAPS; index++)
// {
// curLdap = allLdaps[index];
// if ((curLdap != null) && (curLDap))
// {
// curLdap = escape(curLdap);
// curFlagName = ("LDAP_Server_"+(index+1));
// SetNameValuePair(fileName, servicesSectionName, curFlagName, curLdap);
// }
// }
//}
//
//returns the filename that we are working with - from the
//editfield in the parent's "config" frame
//function getNCINameFromConfigFrame()
//{
// //get the configName from the select list
// var selectedIndex = parent.parent.document.NCICONFIGSELECT.NCICONFIGLIST.selectedIndex;
// //var cConfigName = parent.parent.document.NCICONFIGSELECT.NCICONFIGLIST[selectedIndex];
// var name = parent.parent.document.NCICONFIGSELECT.NCICONFIGLIST[selectedIndex].text;
// var cConfigName = parent.parent.document.NCICONFIGSELECT.NCICONFIGLIST[selectedIndex].value;
//
// debug("config name is: " + cConfigName + ", name is: " + name + ", val: " + cConfigName);
// return cConfigName;
//}
// end hiding contents from old browsers -->