var gErrorUrl="";
var gHexArray = ["%00", "%01", "%02", "%03", "%04", "%05", "%06", "%07",
"%08", "%09", "%0a", "%0b", "%0c", "%0d", "%0e", "%0f",
"%10", "%11", "%12", "%13", "%14", "%15", "%16", "%17",
"%18", "%19", "%1a", "%1b", "%1c", "%1d", "%1e", "%1f",
"%20", "%21", "%22", "%23", "%24", "%25", "%26", "%27",
"%28", "%29", "%2a", "%2b", "%2c", "%2d", "%2e", "%2f",
"%30", "%31", "%32", "%33", "%34", "%35", "%36", "%37",
"%38", "%39", "%3a", "%3b", "%3c", "%3d", "%3e", "%3f",
"%40", "%41", "%42", "%43", "%44", "%45", "%46", "%47",
"%48", "%49", "%4a", "%4b", "%4c", "%4d", "%4e", "%4f",
"%50", "%51", "%52", "%53", "%54", "%55", "%56", "%57",
"%58", "%59", "%5a", "%5b", "%5c", "%5d", "%5e", "%5f",
"%60", "%61", "%62", "%63", "%64", "%65", "%66", "%67",
"%68", "%69", "%6a", "%6b", "%6c", "%6d", "%6e", "%6f",
"%70", "%71", "%72", "%73", "%74", "%75", "%76", "%77",
"%78", "%79", "%7a", "%7b", "%7c", "%7d", "%7e", "%7f",
"%80", "%81", "%82", "%83", "%84", "%85", "%86", "%87",
"%88", "%89", "%8a", "%8b", "%8c", "%8d", "%8e", "%8f",
"%90", "%91", "%92", "%93", "%94", "%95", "%96", "%97",
"%98", "%99", "%9a", "%9b", "%9c", "%9d", "%9e", "%9f",
"%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%a7",
"%a8", "%a9", "%aa", "%ab", "%ac", "%ad", "%ae", "%af",
"%b0", "%b1", "%b2", "%b3", "%b4", "%b5", "%b6", "%b7",
"%b8", "%b9", "%ba", "%bb", "%bc", "%bd", "%be", "%bf",
"%c0", "%c1", "%c2", "%c3", "%c4", "%c5", "%c6", "%c7",
"%c8", "%c9", "%ca", "%cb", "%cc", "%cd", "%ce", "%cf",
"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7",
"%d8", "%d9", "%da", "%db", "%dc", "%dd", "%de", "%df",
"%e0", "%e1", "%e2", "%e3", "%e4", "%e5", "%e6", "%e7",
"%e8", "%e9", "%ea", "%eb", "%ec", "%ed", "%ee", "%ef",
"%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7",
"%f8", "%f9", "%fa", "%fb", "%fc", "%fd", "%fe", "%ff" ];
function OpenHelpErrorHandler() 
{
if (gErrorUrl != "")
{
location.href = gErrorUrl;
return true;
}
else
{
return false;
}
}
function OpenHelp(url)
{        
window.onerror = OpenHelpErrorHandler;
gErrorUrl = url;
var hWnd = window.open(url, "NVOHelp", "menubar=yes,toolbar=yes,width=630,height=400,resizable=yes,scrollbars=yes");
if (!hWnd.opener) hWnd.opener = self;
if (hWnd.focus != null) hWnd.focus();
gErrorUrl = "";
}
function OpenQuickHelp(msg)
{
try
{
var hWnd = window.open("", "NVOQuickHelp", "menubar=no,toolbar=no,width=630,height=150,resizable=yes,scrollbars=yes");
if (hWnd)
{
hWnd.document.writeln("<html><body><span style=\"font-family:Tahoma, Arial, Helvetica, sans-serif;font-size:12px;\">" + msg + "</span></body></html>");
}
if (!hWnd.opener) hWnd.opener = self;
if (hWnd.focus != null) hWnd.focus();
}
catch(e)
{
alert(e.message);
}
}
function LangWiz() 
{
alert("Your service provider does not support any additional languages at this time.\n\nPlease contact customer support for assistance.")
}
function FindElement(elementName)
{
var i = 0;
for (i = 0; i < document.nvoForm.elements.length; i++)
{
if (document.nvoForm.elements[i].name == elementName)
{
return document.nvoForm.elements[i];
}
}
return null;
}
function findFormByName(formName)
{
var theForm = null;
for (var i = 0; i < document.forms.length; i++)
{
if (document.forms[i].name == formName)
{
theForm = document.forms[i];
break;
}
}
return theForm;
}
function RemoveFocusAll()
{
if (document.nvoForm)
{
var vers = navigator.appVersion;
if (vers.indexOf("Mac") != -1 && vers.indexOf("IE") != -1)
{
var i = 0;
for (i = document.nvoForm.elements.length - 1; i >= 0 ; i--)
{
if (document.nvoForm.elements[i].type == "text" || document.nvoForm.elements[i].type == "textarea")
{
document.nvoForm.elements[i].blur();
}
}
}
}
}
var gSaveAndGoURL = "";
var gChanged = false;  
function DoGoto(url, uid)
{
CheckForTextChange();
RemoveFocusAll();
gSaveAndGoURL = url;
//If a UID is passed to this function then it needs to be plugged
//into the redirect URL in place of the asterisk character
if (uid && uid != "")
gSaveAndGoURL = ReplaceString(url,"*",uid);
/* The following if statement first checked if gChanged is true, if so
then save the page. If that fails then it checks the redirect URL
to see if it has any "*" characters. If the URL does have an 
asterisk this implies that a new UID needs to be generated
before moving to the next page, so a save operation is forced.
If both of these checks fail, then it is safe to go ahead
to the redirect URL without saving.
*/
if (gChanged)
DoSave();
else if (gSaveAndGoURL.indexOf("*") != -1)
DoSave();
else
location = gSaveAndGoURL;
}
var hitreturn = false;
function DoDefault()
{
if (!hitreturn) 
{
hitreturn = true;
DoSave();
}
return true;
}
function SaveAndGo(url)
{
CheckForTextChange();
RemoveFocusAll();
if (gChanged)
{
gSaveAndGoURL = url;
DoSave();
}
else
{
location.href = url;
}
}
function Changed(url)
{
gChanged = true;
}
function IsNetscape()
{
return (navigator.appName.substring(0, 8) == "Netscape");
}
function WarnIfUsingOldBrowser()
{
if (parseInt(navigator.appVersion) < 4)
{
if (IsNetscape())
alert("Editing your Web site requires a newer version of Netscape Communicator. Visit Netscape's Web site at www.netscape.com to obtain the newest version. Failure to do so may result in unreliable behavior.");
else
alert("Editing your Web site requires a newer version of Internet Explorer. Visit Microsoft's Web site at www.microsoft.com to obtain the newest version. Failure to do so may result in unreliable behavior.");
}
} 
function DoButton(buttonAction)
{
if ((document.nvoForm.PageName) && (document.nvoForm.PageName.value == ""))
{
alert("The Page Name is required and cannot be left blank. Please enter a valid name.");
document.nvoForm.PageName.focus();
document.nvoForm.PageName.select();
location.href = "#pagename";
gSaveAndGoURL = "";
return;
}
if (gSaveAndGoURL != null && gSaveAndGoURL != "")
{
document.nvoForm.NVORedirect.value = gSaveAndGoURL;
}
document.nvoForm.NVOAction.value = buttonAction;
document.nvoForm.submit();
}
window.errorLoadingApplet = false;
function AppletErrorHandler() 
{
alert("Please wait for the page to complete loading and then try again.");
return true;
}
function StartHelper(host, service, hostAddress, extra)
{
if (navigator.appVersion.indexOf("Macintosh") != -1)
{
if (navigator.mimeTypes)
{
mimetype = navigator.mimeTypes["application/netopia"];
if (mimetype && mimetype.enabledPlugin)
{
location.href = "../default.htm" + hostAddress + "/pages/common/" + host + ".nhtml?service=" + service + "&back=" + Escape(location.href) + "&extra=" + Escape(extra);
}
else
{
alert("You must have the FREE Visitor Software in order to use this feature. Please download and install the Visitor Software.");
location.href = "../default.htm" + hostAddress + "/bin/download.nhtml";
}
}
else
{
location.href = "../default.htm" + hostAddress + "/pages/common/" + host + ".nhtml?service=" + service + "&back=" + Escape(location.href) + "&extra=" + Escape(extra);
}
}
else
{
if (window.errorLoadingApplet)
{
alert("You must have Java enabled in your browser in order to use this feature.");
}
else
{
window.onerror = AppletErrorHandler;
installed = document.cc.isClassInstalled("com.netopia.ns.version.client.VisitorClient");
if (installed)
{
location.href = "../default.htm" + hostAddress + "/pages/common/" + host + ".netopia?service=" + service + "&extra=" + Escape(extra);
}
else
{
alert("You must have the FREE Visitor Software in order to use this feature. Please download and install the Visitor Software.");
location.href = "../default.htm" + hostAddress + "/bin/download.nhtml";
}
}
}
}
function GetField(rec, fieldindex)
{
var     i;
var     istart = 0;
var     iend = 0;
for (i = 0; i < fieldindex; i++)
{
istart = rec.indexOf(",", istart) + 1;
}
iend = rec.indexOf(",", istart);
if (iend < 0)
{
iend = rec.length;
}
var temp = rec.substring(istart, iend);
return temp;
}
function GetFieldBySep(rec, fieldindex, sep)
{
var     i;
var     istart = 0;
var     iend = 0;
var     iseplength = sep.length;
for (i = 0; i < fieldindex; i++)
{
istart = rec.indexOf(sep, istart) + iseplength;
}
iend = rec.indexOf(sep, istart);
if (iend < 0)
{
iend = rec.length;
}
var temp = rec.substring(istart, iend);
return temp;
}
function ReplaceString(org, match, replace)
{
var     dst = "";
var     starti = 0;
var     endi = 0;
while ((endi = org.indexOf(match, starti)) >= 0)
{
dst += org.substring(starti, endi) + replace;
starti = endi + match.length;
}
dst += org.substring(starti, org.length);
return dst;
}
function IsTrue(value)
{
upperCaseValue = value.toUpperCase();
return (upperCaseValue    != ""
&& upperCaseValue != "NO" 
&& upperCaseValue != "FALSE"
&& upperCaseValue != "OFF"
&& upperCaseValue != "0");
}
function setStatusBar(msg)
{
window.status = msg;
return true;
}
function doRTEMouseover(imgObj,url)
{
imgObj.src = url;
}
function setRollover(name, rollsrc)
{
document[name].src = rollsrc;
return true;
}
function imageMouseHandler(func, name, rollsrc, status)
{
if (func == "stat")
{
setStatusBar(status);
}
else if (func == "roll")
{
setRollover(name, rollsrc);
}
else
{
setStatusBar(status);
setRollover(name, rollsrc);
}
return true;
}
function FindSelectedElement(name, buttonName, action, messageNone, messageTooMany)
{
sel = null;
numsel = 0;
for (var i = 0; i < document.nvoForm.elements.length; i++)
{
el = document.nvoForm.elements[i];
if (el.name == name && el.checked)
{
numsel++;
sel = el;
}
}
if (numsel == 0)
{
alert(ReplaceString(messageNone, "^^^buttonName^^^", buttonName));
}
else if (numsel > 1)
{
alert(ReplaceString(messageTooMany, "^^^action^^^", action));
sel = null;
}
return sel;
}
function CheckURL(urlElement)
{
if (urlElement.value.length > 0 && urlElement.value.indexOf("://") == -1)
{
urlElement.value = "../default.htm" + urlElement.value;
}
urlElement.value = ReplaceString(urlElement.value, " ", "%20");
Changed();
}
function OpenSetupWiz(theURL) {
var wzWnd = window.open(theURL,'wizard','width=630,height=400,resizable=yes');
if (!wzWnd.opener) wzWnd.opener = self;
if (wzWnd.focus != null) wzWnd.focus();
}
function AppendQuery(url, query)
{
if (query != "")
{
if (url.indexOf("?") != -1)
url += "&";
else
url += "?";
url += query;
}
return url;
}
function NibbleToHexDigit (nibble)
{
return "0123456789ABCDEF".charAt(nibble);
}
function EncodeURI(name)
{
var newName = "" 
for (var i = 0; i < name.length; i++) 
{
ch = name.charAt(i);
c  = name.charCodeAt(i);
if (('A' <= ch && ch <= 'Z') || ('a' <= ch && ch <= 'z') || ('0' <= ch && ch <= '9'))
{
newName += ch;
}
else if (ch == ' ') 
{
newName += '+';
}
else if (ch == '-' || ch == '_'
|| ch == '.' || ch == '!'
|| ch == '~' || ch == '*'
|| ch == '\'' || ch == '('
|| ch == ')') 
{
newName += ch;
} 
else if (c <= 0x007f) 
{
newName += gHexArray[c];
}
else if (c <= 0x07FF) 
{
newName += gHexArray[0xc0 | (c >> 6)];
newName += gHexArray[0x80 | (c & 0x3F)];
} 
else 
{
newName += gHexArray[0xe0 | (c >> 12)];
newName += gHexArray[0x80 | ((c >> 6) & 0x3F)];
newName += gHexArray[0x80 | (c & 0x3F)];
}
}
return newName;
}
function Escape (name)
{
var c;
var	newName = "";
for (var i = 0; i < name.length; i++)
{
c = name.charCodeAt(i);
if (c == 10 || c == 13 || c == 32 || c == 33 || c == 34 || c == 35 ||
c == 36 || c == 37 || c == 38 || c == 39 || c == 40 || c == 41 || 
c == 43 || c == 44 || c == 58 || c == 59 || c == 60 || c == 61 || 
c == 62 || c == 63 || c == 91 || c == 92 || c == 93 || c == 94 || 
c == 96 || c == 123 || c == 124 || c == 125 || c == 126 || c == 174)
{
newName += "%";
newName += NibbleToHexDigit((c & 0xf0) >> 4);
newName += NibbleToHexDigit( c & 0x0f);
}
else
newName += name.charAt(i);
}
return newName;
}
function EscapeForPost (name)
{
var c;
var newName = "";
var nameLength = name.length;
for (var i = 0; i < nameLength; i++)
{
c = name.charCodeAt(i);
if (c == 32 || c == 34 || c == 38 || c == 39 || c == 43 ||
c == 59 || c == 60 || c == 61 || c == 62 || c == 92)
{
if ( c != 37 || 
(i+4 >= nameLength) ||
(name.charCodeAt(i+1) != 48) ||
(name.charCodeAt(i+2) != 68) ||
(name.charCodeAt(i+3) != 48) ||
(name.charCodeAt(i+4) != 65)  )
{
newName += "%";
newName += NibbleToHexDigit((c & 0xf0) >> 4);
newName += NibbleToHexDigit( c & 0x0f);
}
else
newName += name.charAt(i);
}
else
newName += name.charAt(i);
}
return newName;
}
function ToggleEditLinks(bHide)
{
if (bHide)
{
if (location.href.search(/hideEditLinks=false/i) == -1)
location.href = AppendQuery(location.href, "hideEditLinks=true");
else
location.href = location.href.replace(/hideEditLinks=false/i, "hideEditLinks=true");
}
else
{
if (location.href.search(/hideEditLinks=true/i) == -1)
location.href = location.href;
else
location.href = location.href.replace(/hideEditLinks=true/i, "hideEditLinks=false");
}	
}
function NormalizeObjectName(name)
{
var newName = "";
for (var i = 0; i < name.length; i++)
{
charCode = name.charCodeAt(i);
if (charCode < 0)
charCode += 256;
if (charCode == 38
|| charCode == 47
|| charCode == 92
|| charCode == 58
|| charCode == 42
|| charCode == 63
|| charCode == 34
|| charCode == 60
|| charCode == 62
|| charCode == 124
|| charCode == 39)
{
}
else if ((charCode > 32 && charCode < 128) || 
(charCode > 150 && charCode < 256))
newName += name.substr(i, 1);
}
if (newName == "")
newName = "page";
return newName;
}
function PreparePostName(name)
{
var newName = "";
for (var i = 0; i < name.length; i++)
{
charCode = name.charCodeAt(i);
if (charCode < 0)
charCode += 256;
if (charCode == 38  || charCode == 59)
{
}
else
newName += name.charAt(i);
}
if (newName == "")
newName = "page";
return newName;
}

