
var hasSubmitted = false;

function doCommonAction(){
	document.getElementById("handler").submit();
}

function doDD93DependantAction( action ){
	document.getElementById("handler").action = action
	document.getElementById("handler").submit();
}


function doAction(actionName) {
	if (document.forms["handler"]) {
		if (!hasSubmitted) {
			document.forms["handler"].actionHandler.value = actionName;
			document.forms["handler"].submit();
			hasSubmitted = true;
			return;
		}
	} else {
		if (!hasSubmitted) {
			getAction().actionHandler.value = actionName;
			getAction().submit();
			hasSubmitted = true;
		}
	}
}
function doNonValidatingAction(theAction, actionName) {
	if (document.forms["handler"]) {
		if (!hasSubmitted) {
			document.forms["handler"].action = theAction;
			document.forms["handler"].actionHandler.value = actionName;
			document.forms["handler"].submit();
			return;
		}
	} else {
	   if (!hasSubmitted) {
			getAction().action = theAction;
			getAction().actionHandler.value = actionName;
			getAction().submit();
		}
	}
}
function doCommonNonValAction(actionName) {
	if (document.forms["handler"]) {
		if (!hasSubmitted) {
			getAction().action = $("commonAction").value + ".do";
			getAction().actionHandler.value = actionName;
			getAction().submit();
			return;
		}
	} else {
		if (!hasSubmitted) {
			getAction().action = theAction;
			getAction().actionHandler.value = actionName;
			getAction().submit();
		}
	}
}
function getAction() {
    //alert("Called getAction()"+document.getElementById("handler"));
	return $("handler");
}
function $(id) {
	return document.getElementById(id);
}
function doNothing() {
	return true;
}
DEBUG = (document.location.href.toLowerCase().indexOf("debug=yes") > 0);
if (!DEBUG) {
//	window.onerror = doNothing;
}

//[ddb 06/09/05 16:23]
// THis was a good idea that didn't work.  THere are too many pages that didn't include this file had "sub pages" that did and they broke!
// GetQuote is just one example - when the second and third example showed up - we decided to remove it from here and just make sure
// that all pages that needed it added it them self.
//
//if ( (document.location.href.toLowerCase().indexOf(".ntrs.com") > 0) && (document.location.href.indexOf("/ntrs/jsp/servlet/action/GetQuote") < 0) && (top == self) ) {
//	document.domain = "ntrs.com";
//}

//if (DEBUG)
//	alert("one");
SCRIPT = "script";
page2index = 0;
fwMouseOverDelay = 250;
fwMouseOutDelay = 750;
if (typeof fwGlobalMenuItems == "undefined") {
	fwGlobalMenuItems = new Array();
	fwDisplayedDropdowns = new Array();
	fwBreadcrumbs = new Array();
	hideElements = new Array();  // obsolete but left in place to avoid JS errors
	hideObjects = new Array();
	fwTextButtons = new Array();
}

// Cleanup of IE and Netscape incompatibilities
if (navigator.appName.toLowerCase().indexOf("internet explorer") < 0) {
	outHTML = "";
	outHTML += "<style>\n";
	outHTML += ".clsGlobalMenuUnsel\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsGlobalMenuSel\t\t\t{background-color:#205e54;}\n";
	outHTML += ".clsUnselectedTab\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsLeftNavButtonDiv\t\t{cursor:pointer;}\n";
	outHTML += ".clsNavTabUnselected\t\t{cursor:pointer;}\n";
	outHTML += ".clsNavTabSelected\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsNavTabOver\t\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsNavDropDownUnselected\t{cursor:pointer;}\n";
	outHTML += ".clsNavDropDownSelected\t\t{cursor:pointer;}\n";
	outHTML += ".clsNavDropDownOver\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsLeftNavLevel0\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsLeftNavLevel1\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsLeftNavLevel2\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsLeftNavLevel3\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsLeftNavLevel4\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsLeftNavLevel5\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsBlockVisibilityButtons\t{cursor:pointer;}\n";
	outHTML += ".clsRefreshPage\t\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsGetQuoteButton\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsHand\t\t\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsAddButton\t\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsCancelButton\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsClearButton\t\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsCloseButton\t\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsGetQuoteButton\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsTopGlobalSearchGoButton\t{cursor:pointer;}\n";
	outHTML += ".clsButtonText\t\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsButtonTextSmall\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsButtonTextLarge\t\t\t{cursor:pointer;}\n";
	outHTML += ".clsButtonColSortAscUnselected\t{cursor:pointer;}\n";
	outHTML += ".clsButtonColSortAscSelected\t{cursor:pointer;}\n";
	outHTML += ".clsButtonColSortDescUnselected\t{cursor:pointer;}\n";
	outHTML += ".clsButtonColSortDescSelected\t{cursor:pointer;}\n";
	outHTML += "</style>\n";
	document.write(outHTML);
}


//  fwNewMenuItem(group, level, menu text, URL Link, onClick);
//
//  where:
//		group		Which menu group this belongs to
//		level		Menu level - top main navigation is level 0.
//		menu text	Text to appear within the menu
//		URL Link	URL to link to (always in the same window)
//		onClick		JavaScript to execute when this button is clicked
//					(URL Link is ignored if the onClick parameter is specified,
//					however may be set to be utilized with this.href)
//
function fwNewMenuItem(group, level, text, link, onClick) {
	var thisIndex = fwGlobalMenuItems.length;
	fwGlobalMenuItems[thisIndex] = new Object();
	fwGlobalMenuItems[thisIndex].group = group;
	fwGlobalMenuItems[thisIndex].level = level;
	fwGlobalMenuItems[thisIndex].text = text;
	if (typeof link != "undefined") {
		fwGlobalMenuItems[thisIndex].link = link;
	} else {
		fwGlobalMenuItems[thisIndex].link = "";
	}
	if (typeof onClick != "undefined") {
		fwGlobalMenuItems[thisIndex].onClick = onClick;
	} else {
		fwGlobalMenuItems[thisIndex].onClick = "";
	}
	if (level == 0) {  // if this is a top button, then which number are you - important for hiding objects later.
		var buttonCount = 0;
		for (var i = 0; i <= thisIndex; i++) {
			if ((fwGlobalMenuItems[i].group == group) && (fwGlobalMenuItems[i].level == 0)) {
				buttonCount++;
			}
		}
		fwGlobalMenuItems[thisIndex].whichButton = buttonCount;   // Which button across (1 -> n) used for hiding objects
	}

//	if (DEBUG)
//		if (text == "Page 2")
//			fwGlobalMenuItems[thisIndex].onClick = prompt("onClick for page 2", fwGlobalMenuItems[thisIndex].onClick);
	page2index = thisIndex;
	return thisIndex;
}


//  fwMarkMenuItemUnselected(whichIndex);
//
//  where:
//		whichIndex is the index into the navMenuItems array.  This value is returned by fwNewMenuItem.
//				   If no value is passed in, then the last menu item added is unselected.
//
function fwMarkMenuItemUnselected(whichIndex) {
	if (typeof whichIndex == "undefined") {
		tempIndex = fwGlobalMenuItems.length - 1;
	} else {
		tempIndex = whichIndex;
	}
	fwGlobalMenuItems[tempIndex].selected = false;
	fwRemoveItemFromBreadcrumb(fwGlobalMenuItems[tempIndex].text, fwGlobalMenuItems[tempIndex].link, fwGlobalMenuItems[tempIndex].onClick);
}

//  fwMarkMenuItemsUnselected(group);
//
//  where:
//		group	all items in this group will be unselected.
//
//
function fwMarkMenuItemsUnselected(group) {
	for (var i = 0; i < fwGlobalMenuItems.length; i++) {
		if ((fwGlobalMenuItems[i].group == group) && (fwGlobalMenuItems[i].selected)) {
			fwGlobalMenuItems[i].selected = false;
			fwRemoveItemFromBreadcrumb(fwGlobalMenuItems[i].text, fwGlobalMenuItems[i].link, fwGlobalMenuItems[i].onClick);
		}
	}
}




//  fwMarkMenuItemUnselected(whichIndex);
//
//  where:
//		whichIndex is the index into the navMenuItems array.  The first button is 1...
//
function fwMarkMenuItemUnselected(whichIndex) {
	var tempIndex = 0;
	if (typeof whichIndex == "undefined") {
		tempIndex = fwGlobalMenuItems.length - 1;
	} else {
		tempIndex = whichIndex;
	}
	fwGlobalMenuItems[whichIndex].selected = false;
	fwRemoveItemFromBreadcrumb(fwGlobalMenuItems[tempIndex].text, fwGlobalMenuItems[tempIndex].link, fwGlobalMenuItems[tempIndex].onClick);
}

// obsolete and should not be used
var warnNewHideElement = false;
function newHideElement(strElement, menu) {
	if (!warnNewHideElement) {
		warnNewHideElement = true;
//		alert("newHideElement() has been deprecated.nUse newHideObject(id, group, whichButton);");
	}
	newHideObject(strElement, "", menu);

//	menu--;  // for the novice user - menus count from 1 through n
//	this.element = strElement;
//	var pmc = -1;
//	for (var i=0; i<fwGlobalMenuItems.length; i++) {
//		if (fwGlobalMenuItems[i].level == 1) {
//			pmc++;
//			if (pmc == menu) {
//				if (typeof document.getElementById("divMenu" + i + "DropDown") != "undefined")
//					this.menu = document.getElementById("divMenu" + i + "DropDown");
//			}
//		}
//	}
//	return this;
}

// Usage: newHideObject(id, group, whichButton) where:
// id	id of the object to hide when the menu is dropped down.
// group	the group that the menu belongs to.  If blank or null then the default "topGlobalNav" is used.
// whichButton	which button (1 -> n, where the first button is 1).
function newHideObject(id, group, whichButton) {
	var hoCount = hideObjects.length;
	hideObjects[hoCount] = new Object();
	hideObjects[hoCount].id = id;
	if ((group != null) && (group != "")) {
		hideObjects[hoCount].group = group;
	} else {
		hideObjects[hoCount].group = "topGlobalNav";
	}
	hideObjects[hoCount].whichButton = whichButton;
	hideObjects[hoCount].hiddenCount = 0;
}
function showForms() {
	for (i = 0; i < hideElements.length; i++) {
		if (eval("typeof " + hideElements[i].element) != "undefined") {
			eval(hideElements[i].element + ".style.visibility = 'visible'");
		}
	}
}
function hideForms(whichMenu) {
	for (i = 0; i < hideElements.length; i++) {
		if (hideElements[i].menu == whichMenu) {
			if (eval("typeof " + hideElements[i].element) != "undefined") {
				eval(hideElements[i].element + ".style.visibility = 'hidden'");
			}
		}
	}
}
function removeDropDown() {
	removeMenuBullets();
	showForms();
	for (i = 0; i < previousDropdown.length; i++) {
		previousDropdown[i].style.visibility = "hidden";
		document.getElementById("transparentbackground").style.visibility = "hidden";
	}
	previousDropdown.length = 0;
	for (i = 0; i < previousOnTopOf.length; i++) {
		previousOnTopOf[i].className = previousOnTopOf[i].className.replace(/x clsGlobalMenuOver/g, "");
	}
	previousOnTopOf.length = 0;
}
function displayDropDownMenu(which, onWhat) {
	removeDropDown();
	what = document.getElementById(which);

// alert("about to display menu " + which + "nwhich is " + what + "nClass name is " + what.className + "ninnerHTML is " + what.innerHTML);
	what.style.visibility = "visible";
	document.getElementById("transparentbackground").style.visibility = "visible";
	currentDropdown = what;
	hideForms(what);
	previousDropdown[previousDropdown.length] = currentDropdown;
	onWhat.className += "x clsGlobalMenuOver";
	previousOnTopOf[previousOnTopOf.length] = onWhat;
}





// Usage: displayPopUp(URL[, width[, height[, x[, y[, options]]]]]) where:
// URL 		url to display in the newly created window
// width	initial width of the window,  default value 580
// height	initial height of the window. default value 480
// x,y		Position of the window on the screen  (left, top)
// options	values to use for opening the window - the other parameters already passed in will override any duplicate specifications
//			Default value
//			if the URL ends with .doc, .ppt, .xls (case insensitive):
//				"toolbar=no,menubar=yes,resizable=yes,scrollbars=yes,location=yes";
//			otherwise
//				"toolbar=no,menubar=no,resizable=yes,scrollbars=yes,location=no";
function displayPopUp(docName, w, h, x, y, inOptions) {
	var MSDocs = /.*\.doc$|.*\.ppt$|.*\.xls$/;
	var rightNow = new Date();
	iUnique = rightNow.getTime();
	if ((w <= 125) && (h <= 125)) {
		itemp = w;
		w = x;
		x = itemp;
		itemp = h;
		h = y;
		y = itemp;
	}
	if (MSDocs.test(docName.toLowerCase())) {
		strOptions = "toolbar=no,menubar=yes,resizable=yes,scrollbars=yes,location=yes";
	} else {
		strOptions = "toolbar=no,menubar=no,resizable=yes,scrollbars=yes,location=no";
	}
	if (inOptions != null) {
		strOptions = inOptions;
	}
	if (w != null) {
		strOptions += ",width=" + w;
	} else {
		strOptions += ",width=580";
	}
	if (h != null) {
		strOptions += ",height=" + h;
	} else {
		strOptions += ",height=480";
	}
	if (x != null) {
		strOptions += ",screenX=" + x + ",left=" + x;
	}
	if (y != null) {
		strOptions += ",screenY=" + y + ",top=" + y;
	}
	newWindow = window.open(docName, "puWindow" + iUnique, strOptions);
	newWindow.focus();
	return false;
}

// Usage: displayNewWindow(URL[, width[, height[, x[, y]]]]) where:
// windows are opened with the following options:
//	"toolbar=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,location=yes";
// URL 		url to display in the newly created window
// width	initial width of the window,  default value 580
// height	initial height of the window. default value 480
// x,y		Position of the window on the screen  (left, top)
function displayNewWindow(docName, w, h, x, y) {
	var rightNow = new Date();
	iUnique = rightNow.getTime();
	strOptions = "toolbar=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,location=yes";
	if (w != null) {
		strOptions += ",width=" + w;
	} else {
		strOptions += ",width=580";
	}
	if (h != null) {
		strOptions += ",height=" + h;
	} else {
		strOptions += ",height=480";
	}
	if (x != null) {
		strOptions += ",screenX=" + x + ",left=" + x;
	}
	if (y != null) {
		strOptions += ",screenY=" + y + ",top=" + y;
	}
	newWindow = window.open(docName, "puWindow" + iUnique, strOptions);
	newWindow.focus();
	return false;
}

// Usage: popupApp(URL, winName, winProperty) where:
// URL 			URL to display in the newly created window
// winName		The internal name to give to the window.  If that window is already open, then it will be reused.
// winProperty	The properties to use to open the window
//
function popupApp(URLstr, winName, winProperty) {
//	alert("Popping up " + URLstr);
	try {
		appWin = window.open(URLstr, winName, winProperty);
		appWin.focus();
	}
	catch (e) {
	}
}
function substringAfter(lookIn, lookFor) {
	var loc = lookIn.indexOf(lookFor);
	if (loc < 0) {
		return "";
	} else {
		return lookIn.substr(loc + lookFor.length);
	}
}
function substringBefore(lookIn, lookFor) {
	var loc = lookIn.indexOf(lookFor);
	if (loc < 0) {
		return "";
	} else {
		return lookIn.substring(0, loc);
	}
}
function blockControlMouseEvent(e) {
	statout = e.srcElement.tagName + "\n";
	statout += e.srcElement.id + "\n";
	statout += e.srcElement.style.backgroundImage + " -> ";
	if (e.type == "mouseover") {
		e.srcElement.style.backgroundImage = e.srcElement.currentStyle.backgroundImage.replace(/\.gif/, "_over.gif");
	} else {
		e.srcElement.style.backgroundImage = e.srcElement.currentStyle.backgroundImage.replace(/_over/g, "");
	}
	statout += e.srcElement.style.backgroundImage;

	//alert(statout);
	/*
	if (e.type == "mouseover")
		e.srcElement.className += "Over";
	else
		e.srcElement.className = e.srcElement.className.replace(/Over/g,"");
*/
}

// Usage: getCookie(name) where
// name is the name of the cook you want the value of.  If the cookie doesn't exist, then an empty string is returned
function getCookie(name) {
	var dc = document.cookie;
	var allCookies = dc.split(";");
	for (var i = 0; i < allCookies.length; i++) {
		var parts = allCookies[i].split("=");
		parts[0] = parts[0].replace(/^ /, "");
		if (parts[0] == name) {
			var returnThis = "";
			for (var j = 1; j < parts.length; j++) {
				if (returnThis != "") {
					returnThis += "=";
				}
				returnThis += parts[j];
			}
			return returnThis;
		}
	}
	return "";
}

// Usage: getCookieNames()
// returns an array containing all the names of the cookies currently available.
function getCookieNames() {
	var result = new Array();
	var dc = document.cookie;
	var allCookies = dc.split(";");
	for (var i = 0; i < allCookies.length; i++) {
		var parts = allCookies[i].split("=");
		result[result.length] = parts[0];
	}
	return result;
}

// Usage: getParameter(name) where
// name is the name of the parameter you want the value of.
function getParameter(name) {
	var qs = document.location.search.substr(1);
	var allParameters = qs.split("&");
	for (var i = 0; i < allParameters.length; i++) {
		var parts = allParameters[i].split("=", 2);
		if (parts[0] == name) {
			return parts[1];
		}
	}
	return "";
}
function fwNavItemClicked(which) {
	if (DEBUG) {
		alert("clicked number " + which + "\nMenu Text: " + fwGlobalMenuItems[which].text);
	}
	return fwProcessClick(fwGlobalMenuItems[which].link, fwGlobalMenuItems[which].onClick);
}
function fwBreadcrumbItemClicked(which) {
	fwProcessClick(fwBreadcrumbs[which].link, fwBreadcrumbs[which].onClick);
	return false;
}
function fwProcessClick(link, onClick) {
	if (onClick != "") {
		onClick = onClick.replace(/return false;/, "");
		eval(onClick);
	} else {
		link = link.replace(/return false;/, "");
		if (link.toLowerCase().indexOf("javascript") == 0) {
			eval(link.substr(11));
		} else {
			document.location.href = link;
		}
	}
}

//Usage: fwClearBreadcrumb(group) where:
// group - the group of menu items that should have the breadcrumb cleared
//
function fwClearBreadcrumb(group) {
	var bcCount = fwBreadcrumbs.length;
	for (var i = 0; i < bcCount; i++) {
		if (group == fwBreadcrumbs[i].group) {
			fwBreadcrumbs[i].group = "cleared - " + group;
		}
	}
}

//Usage: fwAddItemToBreadcrumb(group, text, link, onClick) where:
// group - the group that this menu item belongs to
// text - the text of the break crumb
// link - the href to jump to
// onClick - an action to take when someone clicks on it.
//           If the onClick event returns false then the link is ignored.
//	         If the onClick event returns true or nothing, then the link will be executed too.
//
function fwAddItemToBreadcrumb(group, text, link, onClick) {
	if (text.indexOf("#") == 0) {
		text = text.substr(1);
	}
	var bcCount = fwBreadcrumbs.length;
	fwBreadcrumbs[bcCount] = new Object();
	fwBreadcrumbs[bcCount].group = group;
	fwBreadcrumbs[bcCount].text = text;
	fwBreadcrumbs[bcCount].link = link;
	fwBreadcrumbs[bcCount].onClick = onClick;
}

//
// Removes item to the breadcrumb
// group - the group of the button.
// text - the text of the break crumb
function fwRemoveItemFromBreadcrumb(group, text) {
	var bcCount = fwBreadcrumbs.length;
	for (var i = 0; i < bcCount; i++) {
		if ((fwBreadcrumbs[i].group == group) && (fwBreadcrumbs[i].text == text)) {
			for (var j = i + 1; j < bcCount; j++) {
				fwBreadcrumbs[j - 1].group = fwBreadcrumbs[j].group;
				fwBreadcrumbs[j - 1].text = fwBreadcrumbs[j].text;
				fwBreadcrumbs[j - 1].link = fwBreadcrumbs[j].link;
				fwBreadcrumbs[j - 1].onClick = fwBreadcrumbs[j].onClick;
			}
			bcCount--;
			fwBreadcrumbs.lengh--;
		}
	}
}
function fwBuildBreadcrumb(inGroup, inLinkLastItem) {
	var group = "topGlobalNav";
	var makeLink = false;
	var linkLastItem = false;
	if (inGroup != null) {
		group = inGroup;
	}
	if (inLinkLastItem != null) {
		linkLastItem = inLinkLastItem;
	}
	var outHTML = "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tr><td valign=\"bottom\" style=\"padding-bottom:3\" class=\"clsBreadcrumb\" >";
	for (var i = 0; i < fwBreadcrumbs.length; i++) {
		if (fwBreadcrumbs[i].group == group) {
			makeLink = linkLastItem;  // make link if there is another one from this same group later in the list or requested to be linkable.
			for (var j = i + 1; j < fwBreadcrumbs.length && !makeLink; j++) {
				makeLink = (fwBreadcrumbs[j].group == group);
			}
			if (makeLink) {
//				alert(fwBreadcrumbs[i].link + "n" + fwBreadcrumbs[i].onClick
				outHTML += "&nbsp;> <a class=\"clsLinkB\" href=\"" + fwBreadcrumbs[i].link + "\" onClick=\"return fwBreadcrumbItemClicked(" + i + ")\">" + fwBreadcrumbs[i].text + "</a>&nbsp";
			} else {  // last element is not clickable
				if (fwBreadcrumbs[i].text.length > 25) {
					fwBreadcrumbs[i].text = fwBreadcrumbs[i].text.substr(0, 25) + "...";
				}
				outHTML += "&nbsp;> " + fwBreadcrumbs[i].text;
			}
		}
	}
	outHTML += "</td></tr></table>";
	return outHTML;
}

// fwForceBreadcrumbOnPage(text)
//
//  Forces a breadcrumb to exist on a page where it really wasn't originally supposed to be
// where:
//   text	the text (including any link tags) to display
//
function fwForceBreadcrumbOnPage(text) {
	if (document.getElementById("ptlColumnLeft1Shadow") != null) {
		document.getElementById("ptlColumnLeft1Shadow").innerHTML = "<img src=\"images/transparent.gif\" width=\"10\" height=\"45\" class=\"clsBreadcrumbBackground\">" + document.getElementById("ptlColumnLeft1Shadow").innerHTML;
	}
//	document.getElementById("ptlColumnLeft1").innerHTML = '<table cellpadding="0" cellspacing="0" width="100%"><tr valign="bottom"><td class="clsBreadcrumbBackground">' + text + '</td></tr></table>' + document.getElementById("ptlColumnLeft1Shadow").innerHTML;
	document.write("<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr valign=\"bottom\"><td  xclass=\"clsBreadcrumb clsBreadcrumbBackground\">" + text + "</td></tr></table>");
}


// update the content of the mini blocks at the top.
//   blockNames are:
// 		MiniCommCenter
// 		SubBrandAndTime
// 		NameAndSignoff
// 		HomelandSecurity
//   line - 1 or 2
//   text - new text for that line.
//
function fwUpdateTopGlobalBlock(blockName, line, text) {
	try {
		var what = document.getElementById("topGlobal" + blockName + "Line" + line);
		if ((typeof what != "undefined") && (what != null)) {
			what.innerHTML = text;
		} else {  // in the event the object is not yet built - wait 3 seconds and try again.
//			text = text.replace(/'/g, '\\"');
//			setTimeout("updateTopGlobalBlock2('" + blockName + "'," + line + ",'" + text + "');", 3000);
		}
		if (text != "") {
			document.getElementById("topGlobal" + blockName).style.display = "inline";
		}
	}
	catch (e) {
		alert("Error occured updating " + blockName);
	}
}
function updateTopGlobalBlock2(blockName, line, text) {
	var what = document.getElementById("topGlobal" + blockName + "Line" + line);
	if ((typeof what != "undefined") && (what != null)) {
		what.innerHTML = text;
	}
}
function fwUpdateSubBrandLogo(URL) {
	try {
		document.getElementById("topGlobalSubBrandLogo").innerHTML = "<img src='" + URL + "'>";
	}
	catch (e) {
	}
}
function fwUpdateApplName(text) {
	var what = document.getElementById("topGlobalApplName");
	if (what == null) {
		document.write("<div class='clsApplName' id='topGlobalApplName'>" + text + "</div>");
	} else {
		what.innerHTML = text;
	}
}
function updateTopGlobal() {
	updateTopGlobalTime();
	updateTopGlobalMiniCommCenter();
	return false;
}
function fwUpdateTopGlobalTime() {
	try {
		if (typeof fwTimeUpdateURL == "string") {
//			alert("Using current window value of: " + fwTimeUpdateURL);
			document.getElementById("iFrameTimeUpdate").src = fwTimeUpdateURL;
		} else {
			if (typeof parent.fwTimeUpdateURL == "string") {
//				alert("Using parent window value of: " + fwTimeUpdateURL);
				document.getElementById("iFrameTimeUpdate").src = parent.fwTimeUpdateURL;
			} else {
				if (typeof top.fwTimeUpdateURL == "string") {
//					alert("Using top window value of: " + fwTimeUpdateURL);
					document.getElementById("iFrameTimeUpdate").src = top.fwTimeUpdateURL;
				}
			}
		}
	}
	catch (e) {
	}

//	var now = new Date();
//	fwUpdateTopGlobalBlock("SubBrandAndTime",2,now);
}
function fwUpdateTopGlobalMiniCommCenter() {
	try {
		if (typeof fwMiniCommCenterUpdateURL == "string") {
			document.getElementById("iFrameMiniCommCenterUpdate").src = fwMiniCommCenterUpdateURL;
		} else {
			if (typeof parent.fwMiniCommCenterUpdateURL == "string") {
				document.getElementById("iFrameMiniCommCenterUpdate").src = parent.fwMiniCommCenterUpdateURL;
			} else {
				if (typeof top.fwMiniCommCenterUpdateURL == "string") {
					document.getElementById("iFrameMiniCommCenterUpdate").src = top.fwMiniCommCenterUpdateURL;
				}
			}
		}
	}
	catch (e) {
	}

//	updateMiniCommCenterMessageCount(Math.floor(Math.random() * 100));
}
function topGlobalNavSetToOver(which) {
	var what = document.getElementById(which);
	if (typeof what != "undefined") {
		what.className = what.className.replace(/Unselected/, "Over");
		var dropdown = which.replace(/button/, "dropdown");

		// hide any other menu items already open RIGHT NOW.  Don't delay
		for (var i = 0; i < fwDisplayedDropdowns.length; i++) {
			if ((fwDisplayedDropdowns[i] != -1) && (fwDisplayedDropdowns[i] != which)) {
				topGlobalNavSetToUnselected(fwDisplayedDropdowns[i]);
			}
		}
		fwDisplayedDropdowns.length = 0;  // put this on the list of dropdowns currently displayed.
		if ((typeof document.getElementById(dropdown) == "undefined") || (document.getElementById(dropdown) == null)) {
			return;
		}
		document.getElementById(dropdown).style.display = "inline";
		fwDisplayedDropdowns[0] = which;

		// put Iframe behind dropdown to hide ddlb's
		var whichShim = dropdown.replace(/nav/, "shim");
		var whatDiv = document.getElementById(dropdown);
		var whatShim = document.getElementById(whichShim);
		whatShim.style.display = "inline";
		whatShim.style.width = (whatDiv.offsetWidth == 0) ? whatDiv.renderedWidth : whatDiv.offsetWidth;
		whatShim.style.height = (whatDiv.offsetHeight == 0) ? whatDiv.renderedHeight : whatDiv.offsetHeight;



		// Look through the hide object array to see if there are any objects that need to be hidden

//		topGlobalHideElementsF2(which)
	}
}
function topGlobalNavSetToUnselected(which) {
	var what = document.getElementById(which);
	clearTimeout(what.timeout);
	if (typeof what != "undefined") {
		document.getElementById(which).className = document.getElementById(which).className.replace(/Over/, "Unselected");
		var dropdown = which.replace(/button/, "dropdown");
		if ((typeof document.getElementById(dropdown) == "undefined") || (document.getElementById(dropdown) == null)) {
			return;
		}
		document.getElementById(dropdown).style.display = "none";
	}
	for (var i = 0; i < fwDisplayedDropdowns.length; i++) {
		if (fwDisplayedDropdowns[i] == which) {
			fwDisplayedDropdowns[i] = -1;
		}
	}
	var whichShim = which.replace(/nav/, "shim");
	whichShim = whichShim.replace(/button/, "dropdown");
	whatShim = document.getElementById(whichShim);
	if (whatShim != null) {
		whatShim.style.display = "none";
	}
	whichIndex = substringBefore(substringAfter(which, "nav"), "button");
	for (var i = 0; i < hideObjects.length; i++) {
		if ((hideObjects[i].group == fwGlobalMenuItems[whichIndex].group) && (hideObjects[i].whichButton == fwGlobalMenuItems[whichIndex].whichButton)) {
			if ((typeof document.getElementById(hideObjects[i].id) != "undefined") && (document.getElementById(hideObjects[i].id) != null)) {
				unhidingObject = hideObjects[i].id;
				document.getElementById(hideObjects[i].id).style.visibility = "visible";
			}
		}
	}

//	for (var i = 0; i < fwDisplayedDropdowns.length; i++) {
//		topGlobalHideElementsF2(fwDisplayedDropdowns[i]);
//	}
}
function topGlobalNavMouseOver(what) {
	if (typeof what.timeout == "number") {
		clearTimeout(what.timeout);
	}
	what.timeout = setTimeout("topGlobalNavSetToOver('" + what.id + "');", fwMouseOverDelay);
}
function topGlobalNavMouseOut(what) {
	if (typeof what.timeout == "number") {
		clearTimeout(what.timeout);
	}
	what.timeout = setTimeout("topGlobalNavSetToUnselected('" + what.id + "');", fwMouseOutDelay);
}
function topGlobalNavDropDownButtonOver(what) {
	if (typeof what != "undefined") {
		whichButton = what.id.replace(/subnavbutton.*/, "button");
		topGlobalNavMouseOver(document.getElementById(whichButton));
		what.className = what.className.replace(/Unselected/, "Over");
	}
}
function topGlobalNavDropDownButtonOut(what) {
	if (typeof what != "undefined") {
		whichButton = what.id.replace(/subnavbutton.*/, "button");
		topGlobalNavMouseOut(document.getElementById(whichButton));
		what.className = what.className.replace(/Over/, "Unselected");
	}
}

// to display the left navigation - call this routine passing 'topGlobalNav'
function fwDisplayLeftNav(group) {
	var outHTML = fwBuildLeftNav(group);
	document.write(outHTML);

// display the arrows next the the selected items.
	for (var i = 0; i < fwGlobalMenuItems.length; i++) {
		if (fwGlobalMenuItems[i].selected && (fwGlobalMenuItems[i].group == group)) {
			if (fwGlobalMenuItems[i].level > 0) { //  left menu items start at 1
				if (document.getElementById("leftNavArrow" + group + i) != null) {
					document.getElementById("leftNavArrow" + group + i).style.visibility = "visible";
				}
				if (document.getElementById("leftNavButton" + group + i) != null) {
					document.getElementById("leftNavButton" + group + i).className = document.getElementById("leftNavButton" + group + i).className.replace(/Unselected/g, "Selected");
				}
			}
		}
	}
}
function fwDisplayTopGlobalNav(group) {
	if ((typeof group == "undefined") || (group == null) || (group == "")) {
		group = "topGlobalNav";
	}
	document.write(fwBuildTopNav(group));
	fwMarkTopNavSelectedItems(group);
}
function leftNavOver(what) {
	if (what.className.indexOf("Unselected") >= 0) {
		what.className = what.className.replace(/Unselected/g, "Over");
	}
}
function leftNavOut(what) {
	if (what.className.indexOf("Over") >= 0) {
		what.className = what.className.replace(/Over/g, "Unselected");
	}
}
function fwBuildLeftNav(group) {
	var outHTML = "";
	for (var i = 0; i < fwGlobalMenuItems.length; i++) {
		if (fwGlobalMenuItems[i].group == group) {
			if (fwGlobalMenuItems[i].selected) {
				if (fwGlobalMenuItems[i].level == 0) {
					outHTML += "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr><td class=\"clsLeftNavLevel0\" valign=\"bottom\" onClick=\"fwNavItemClicked(" + i + ");\">" + fwGlobalMenuItems[i].text + "</td></tr></table>\n";
					outHTML += fwBuildLeftNav1(i);
				}
			}
		}
	}
	if (document.location.href.toLowerCase().indexOf("debug=leftmenu") > 0) {
		if (!prompt("leftNav", outHTML)) {
			asdf = asdfgfd;
		}
	}
	return outHTML;
}
function fwBuildLeftNav1(start) {
	var outHTML = "";
	var level = fwGlobalMenuItems[start].level + 1;  // to be here - the new level should be 1
	for (var i = start + 1; (i < fwGlobalMenuItems.length) && (fwGlobalMenuItems[i].level >= level); i++) {
		if (fwGlobalMenuItems[i].level == level) {
			if (fwGlobalMenuItems[i].text != "") { // orphaned pages don't have any text - don't make room for them
				outHTML += "<div class=\"clsLeftNavLevel1Unselected clsLeftNavUnselected\" id=\"leftNavButton" + fwGlobalMenuItems[i].group + i + "\" onMouseOver=\"leftNavOver(this)\" onMouseOut=\"leftNavOut(this);\" onClick=\"fwNavItemClicked(" + i + ");\">\n";
				outHTML += "<img style=\"visibility:hidden\" align=\"left\" id=\"leftNavArrow" + fwGlobalMenuItems[i].group + i + "\" class=\"clsLeftNavSelectedArrow\" src=\"images/transparent.gif\" border=\"0\" hspace=\"0\" height=\"14\" width=\"10\">";
				outHTML += fwGlobalMenuItems[i].text;
				outHTML += "</div>\n";
			}
			// if the current item is selected, then build it's children.
			if ((fwGlobalMenuItems[i].selected) && (fwGlobalMenuItems.length > i + 2) && (fwGlobalMenuItems[i + 1].level == 2)) {
				outHTML += fwBuildLeftNav2(i);
			}
		}
	}
	return outHTML;
}
function fwBuildLeftNav2(start) {
	var outHTML = "";
	var level = fwGlobalMenuItems[start].level + 1;
	outHTML += "<div class=\"clsLeftNavLevel" + level + "Box\" id=\"leftNavSubMenuBox" + start + "\">";
	for (var i = start + 1; (i < fwGlobalMenuItems.length) && (fwGlobalMenuItems[i].level >= level); i++) {
		if (fwGlobalMenuItems[i].level == level) {
			if ((fwGlobalMenuItems[i].text != "") && (fwGlobalMenuItems[i].text.substr(0, 1) != "#")) {  // orphaned pages don't have any text - don't make room for them
				outHTML += "<div class=\"clsLeftNavLevel" + level + " clsLeftNavUnselected\" id=\"leftNavButton" + fwGlobalMenuItems[i].group + i + "\" onMouseOver=\"leftNavOver(this)\" onMouseOut=\"leftNavOut(this);\" onClick=\"fwNavItemClicked(" + i + ");\">\n";
				outHTML += "<div><img style=\"visibility:hidden\" align=\"left\" id=\"leftNavArrow" + fwGlobalMenuItems[i].group + i + "\" class=\"clsLeftNavSelectedArrow\" src=\"images/transparent.gif\" border=\"0\" hspace=\"0\" height=\"14\" width=\"10\">";
				outHTML += fwGlobalMenuItems[i].text;
				outHTML += "</div></div>\n";
				// if this item is selected, build the children too.
				if ((fwGlobalMenuItems[i].selected) && (fwGlobalMenuItems.length > i + 2) && fwGlobalMenuItems[i + 1].level > level) {
					outHTML += fwBuildLeftNav2(i);
				}
			}
		}
	}
	outHTML += "</div>";
	if (DEBUG) {
		alert(outHTML);
	}
	return outHTML;
}
function fwBuildTopNav(group) {
	var outHTML = "";
	var buttonCount = 0;
	outAlert = "";
	for (var i = 0; i < fwGlobalMenuItems.length; i++) {
		if ((fwGlobalMenuItems[i].group == group) && (fwGlobalMenuItems[i].level == 0)) {
			fwGlobalMenuItems[i].buttonId = "nav" + i + "button";
			outHTML += "\n<div class=\"clsNavTabExterior clsNavTab" + buttonCount + "\">\n";
			outHTML += "<div id=\"" + fwGlobalMenuItems[i].buttonId + "\" class=\"clsNavTabInterior clsNavTabUnselected\" onMouseOver=\"topGlobalNavMouseOver(this);\" onMouseOut=\"topGlobalNavMouseOut(this);\" onClick=\"fwNavItemClicked(" + i + ");\"><span id=\"selectedNavArrow" + i + "\" style=\"visibility:hidden;\" class=\"clsNavTabTopGlobalArrow\" height=\"10\" width=\"12\"><img src=\"images/transparent.gif\" height=\"10\" width=\"12\"></span>" + fwGlobalMenuItems[i].text + "</div></div>\n";
			for (var k = i + 1; k < fwGlobalMenuItems.length; k++) {  // only display divider if another button exists
				if ((fwGlobalMenuItems[k].group == group) && (fwGlobalMenuItems[k].level == 0)) {
					outHTML += "<div id=\"navTabDivider" + buttonCount + "\" class=\"clsNavTabDividerExterior clsNavTab" + buttonCount + "Divider\"><div class=\"clsNavTabDividerInterior clsNavTabDividerImage\"><img src=\"images/transparent.gif\" height=\"1\" width=\"1\"></div></div>";
					k = fwGlobalMenuItems.length;
				}
			}
			if ((i + 1 < fwGlobalMenuItems.length) && (fwGlobalMenuItems[i + 1].level > fwGlobalMenuItems[i].level)) {
				var dropdownItemCount = 0;
				for (var k = i + 1; (k < fwGlobalMenuItems.length) && (fwGlobalMenuItems[k].level > 0); k++) {
					if (fwGlobalMenuItems[k].level == 1) {
						dropdownItemCount++;
					}
				}
				outHTML += "<iframe id=\"shim" + i + "dropdown\" class=\"clsNavDropDownBox clsNavDropDown" + buttonCount + "\" frameborder=\"0\" src=\"images/transparent.gif\"></iframe>\n";
				outHTML += "<div id=\"nav" + i + "dropdown\" class=\"clsNavDropDownBox clsNavDropDown" + buttonCount + "\">\n";
				outHTML += "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" id=\"table" + i + "dropdown\"><tr valign=\"top\"><td>";
				var dropdownCount = 0;
				for (var j = i + 1; (j < fwGlobalMenuItems.length) && (fwGlobalMenuItems[j].level > 0); j++) {
					if (fwGlobalMenuItems[j].level == 1) {
						outAlert += j + " " + fwGlobalMenuItems[j].onClick + "\n";
						fwGlobalMenuItems[j].buttonId = "nav" + i + "subnavbutton" + j;
						outHTML += "<div id=\"" + fwGlobalMenuItems[j].buttonId + "\" class=\"clsNavDropDown clsNavDropDownUnselected\" onMouseOver=\"topGlobalNavDropDownButtonOver(this);\" onMouseOut=\"topGlobalNavDropDownButtonOut(this);\" onClick=\"fwNavItemClicked(" + j + ");\"><span id=\"selectedNavArrow" + j + "\" style=\"visibility:hidden;\" class=\"clsNavTabTopGlobalArrow\" height=\"10\" width=\"12\"><img src=\"images/transparent.gif\" height=\"10\" width=\"12\"></span>" + fwGlobalMenuItems[j].text + "</div>\n";
						// split top nav dropdowns if too many items are in the list.
						if ((dropdownItemCount > 22) && (++dropdownCount == Math.floor(dropdownItemCount / 2))) {
							outHTML += "</td><td>\n";
						}
					}
				}
				outHTML += "</td></tr></table>\n";
				outHTML += "</div>\n";
			}
			buttonCount++;
		}
	}
	if (DEBUG) {
		prompt("outHTML: ", outHTML);
	}
	return outHTML;
}

// fwMarkTopNavSelectedItems(group)
//
// To set the proper display for selected items - call this routine passing in the proper group.
// for the top nav created by the portal pass 'topGlobalNav' as the group
//
function fwMarkTopNavSelectedItems(group) {
	for (var i = 0; i < fwGlobalMenuItems.length; i++) {
		if (fwGlobalMenuItems[i].group == group) {
			if (fwGlobalMenuItems[i].selected) {
				if (fwGlobalMenuItems[i].level < 2) {  // process top menu
					try {
						if (document.location.href.toLowerCase().indexOf("debug=topmenu") > 0) {
							alert(document.getElementById(fwGlobalMenuItems[i].buttonId).innerHTML + ": " + document.getElementById(fwGlobalMenuItems[i].buttonId).className);
						}
						document.getElementById("selectedNavArrow" + i).style.visibility = "visible";
						document.getElementById(fwGlobalMenuItems[i].buttonId).className = document.getElementById(fwGlobalMenuItems[i].buttonId).className.replace(/Unselected|Over/g, "Selected");
					}
					catch (e) {
					}
				}
			} else {
				if (fwGlobalMenuItems[i].level < 2) {  // process top menu
					try {
						document.getElementById("selectedNavArrow" + i).style.visibility = "hidden";
						document.getElementById(fwGlobalMenuItems[i].buttonId).className = document.getElementById(fwGlobalMenuItems[i].buttonId).className.replace(/Selected/g, "Unselected");
					}
					catch (e) {
					}
				}
			}
		}
	}
}

// fwCreateTextButton(text, onClick[, bubbleHelp[, size[, buttonId]]])
//
// returns the HTML to create a push button that contains the specified text
// where:
//  text 	is the text of the button - if you want the button wider you must pad the text
//  onClick is the JavaScript code to execute when the button is clicked.
//			Any valid JavaScript statement may be executed, however the statement used will be enclosed in double quotes.
//			If the statement(s) you have to execute are 'excessive' I suggest making a function and calling that function
//			Possible onClick statements are:
//				document.getElementById('formName').submit();
//				document.location.href='http://www.northerntrust.com/';
//  bubbleHelp
//			If specified this text will appear 1/2 second after a pointer is placed on the object and will disappear 5 seconds later.
//  size	Some text buttons need to be a different height than standard buttons (eg "Go" on search) Valid options are:
//			Small	Shorter buttons
//			normal	[default] Normal height
//			Large	Taller buttons
//  buttonId
//			A unique id to as a reference to the button.  The buttonId must start with a letter and may only contain letters, numbers, dollar sign and underscores.
//
function fwCreateTextButton(text, onClick, bubbleHelp, inSize, buttonId) {
	var outHTML = "";
	var buttonSize = "";
	var bid = "unDefinedTextButton";
	if ((buttonId != null) && (buttonId != "")) {
		bid = buttonId;
	}
	switch (text.toLowerCase()) {
	  case "ok":
		text = "OK";
		break;
	  case " ok ":
		text = " OK ";
		break;
	}
	if (inSize != null) {
		if (inSize.toLowerCase() == "small") {
			buttonSize = "small";
		}
		if (inSize.toLowerCase() == "large") {
			buttonSize = "Large";
		}
	}
	if ((bubbleHelp != null) && (bubbleHelp != "")) {
		var id = "bubble" + Math.random();
		id = id.replace(/\./g, "");
		outHTML += "<div id=\"" + id + "\" style=\"display:none;\" class=\"clsBubbleHelp\"><nobr><a href=\"#\"style=\"text-decoration:none; color:black;\">" + bubbleHelp + "</a><nobr></div>";
		outHTML += "<div id=\"LFT" + id + "\" style=\"display:none; text-align:right; position:absolute;\"><br><span class=\"clsBubbleHelp\" ><nobr><a href=\"#\" style=\"text-decoration:none; color:black;\">" + bubbleHelp + "</a><nobr></span><br>&nbsp;</div>";
		outHTML += "<table  cellspacing=\"0\" cellpadding=\"0\" id=\"button" + bid + "\" onSelectStart=\"return false;\"><tr valign=\"middle\"><td class=\"clsButtonTextBorder\" ><img src=\"images/transparent.gif\" width=\"1\" height=\"1\"></td><td id=\"" + bid + "\" class=\"clsButtonTextColorEnabled clsButtonText" + buttonSize + "\" onClick=\"if (fwTextButtons['" + bid + "'].enabled) {" + onClick + "}\" onMouseOver=\"fwProcessBubbleHelp(window.event,'" + id + "')\" onMouseOut=\"fwProcessBubbleHelp(window.event,'" + id + "')\">" + text + "</td><td class=\"clsButtonTextBorder\"><img src=\"images/transparent.gif\" width=\"1\" height=\"1\"></td></tr></table>";
	} else {
		outHTML += "<table cellspacing=\"0\" cellpadding=\"0\" id=\"button" + bid + "\" onSelectStart=\"return false;\"><tr valign=\"middle\"><td class=\"clsButtonTextBorder\"><img src=\"images/transparent.gif\" width=\"1\" height=\"1\"></td><td id=\"" + bid + "\" class=\"clsButtonTextColorEnabled clsButtonText" + buttonSize + "\" onClick=\"if (fwTextButtons['" + bid + "'].enabled) {" + onClick + "}\">" + text + "</td><td class=\"clsButtonTextBorder\"><img src=\"images/transparent.gif\" width=\"1\" height=\"1\"></td></tr></table>";
	}
	fwTextButtons[bid] = new Object();
	fwTextButtons[bid].enabled = true;
	return outHTML;
}
function fwDisableTextButton(id) {
	if (fwTextButtons[id] != null) {
		fwTextButtons[id].enabled = false;
		document.getElementById(id).className = document.getElementById(id).className.replace(/Enabled/, "Disabled");
		document.getElementById(id).style.cursor = "default";
	}
}
function fwEnableTextButton(id) {
	if (fwTextButtons[id] != null) {
		fwTextButtons[id].enabled = true;
		document.getElementById(id).className = document.getElementById(id).className.replace(/Disabled/, "Enabled");
		if (navigator.appName.toLowerCase().indexOf("internet explorer") < 0) {
			document.getElementById(id).style.cursor = "pointer";  // non-ie browser
		} else {
			document.getElementById(id).style.cursor = "hand";		// ie-browser
		}
	}
}
function fwProcessBubbleHelp(e, id) {
	if (e.type == "mouseover") {
		if (document.location.href.toLowerCase().indexOf("debug=bubble") > 0) {
			sadasdf = asgdsfg.asdf;
		}
		var posX = e.x + document.body.scrollLeft;
		var posY = 0;
		if (e.y + 37 > document.body.clientHeight) {
			posY = e.y - 50;
		} else {
			posY = e.y;
		}
		if (e.x < document.body.clientWidth / 2) {
			e.srcElement.bubbleTimerShow = setTimeout("fwDisplayBubbleHelpTimed('show'," + posX + "," + (posY + document.body.scrollTop) + ",'" + id + "');", 500);
			e.srcElement.bubbleTimerHide = setTimeout("fwDisplayBubbleHelpTimed('hide'," + posX + "," + (posY + document.body.scrollTop) + ",'" + id + "');", 5500);
//			e.srcElement.bubbleTimerShow = setTimeout("fwDisplayBubbleHelpTimed('show'," + posX + "," + (posY) + ",'" + id + "');",500);
//			e.srcElement.bubbleTimerHide = setTimeout("fwDisplayBubbleHelpTimed('hide'," + posX + "," + (posY) + ",'" + id + "');",5500);
		} else {
			e.srcElement.bubbleTimerShow = setTimeout("fwDisplayBubbleHelpTimed('show'," + posX + "," + (posY - 12 + document.body.scrollTop) + ",'LFT" + id + "');", 500);
			e.srcElement.bubbleTimerHide = setTimeout("fwDisplayBubbleHelpTimed('hide'," + posX + "," + (posY - 12 + document.body.scrollTop) + ",'LFT" + id + "');", 5500);
		}
	} else {
		clearTimeout(e.srcElement.bubbleTimerShow);
		clearTimeout(e.srcElement.bubbleTimerHide);
		fwDisplayBubbleHelpTimed("hide", 0, 0, id);
		fwDisplayBubbleHelpTimed("hide", 0, 0, "LFT" + id);
	}
}
function fwDisplayBubbleHelpTimed(hideOrShow, x, y, id) {
	if (hideOrShow == "show") {
		if (id.indexOf("LFT") == 0) {
			document.getElementById(id).style.left = 0;
			document.getElementById(id).style.width = x;
			document.getElementById(id).style.top = y + 21;
			document.getElementById(id).style.display = "inline";
		} else {
			document.getElementById(id).style.left = x;
			document.getElementById(id).style.top = y + 21;
			document.getElementById(id).style.display = "inline";
		}
	} else {
		document.getElementById(id).style.display = "none";
	}
}


// hideElements[hideElements.length] = new newHideElement("divTestForm1","1");
// hideElements[hideElements.length] = new newHideElement("divTestForm1","2");
function alertAllItems() {
	if (DEBUG) {
		outAlert = "topGlobalNavMouseOver():\n";
		for (var i = 0; i < fwGlobalMenuItems.length; i++) {
			outAlert += i + " " + fwGlobalMenuItems[i].text + " " + fwGlobalMenuItems[i].onClick + "\n";
		}
		alert(outAlert);
	}
}
function fwSelectMenuItem(level0, level1) {
	alert("fwSelectMenuItem(" + level0 + "," + level1 + ")");
}
function displayIFrameContents(iframeid, contents) {
	try {
		document.getElementById(iframeid + "Span").innerHTML = contents;
	}
	catch (e) {
		alert("Error updating Block contents");
	}
}
function fwUnselectAllGlobalItems() {
}
function storeWhichMenuToDisplay() {
}
/***********************************************
* Overlapping Content link- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function getposOffset(overlay, offsettype) {
	var totaloffset = (offsettype == "left") ? overlay.offsetLeft : overlay.offsetTop;
	var parentEl = overlay.offsetParent;
	while (parentEl != null) {
		totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
		parentEl = parentEl.offsetParent;
	}
	return totaloffset;
}
function overlay(curobj, subobj) {
	if (document.getElementById) {
		var subobj = document.getElementById(subobj);
		subobj.style.left = getposOffset(curobj, "left") + "px";
		subobj.style.top = getposOffset(curobj, "top") + "px";
		subobj.style.display = "block";
		return false;
	} else {
		return true;
	}
}
function overlayclose(subobj) {
	document.getElementById(subobj).style.display = "none";
}


/***********************************************
* Form Field Progress Bar- By Ron Jonk- http://www.euronet.nl/~jonkr/
* Modified by Dynamic Drive for minor changes
* Script featured/ available at Dynamic Drive- http://www.dynamicdrive.com
* Please keep this notice intact
***********************************************/

function textCounter(field,counter,maxlimit,linecounter) {
	// text width//
	var fieldWidth =  parseInt(field.offsetWidth);
	var charcnt = field.value.length;        

	// trim the extra text
	if (charcnt > maxlimit) { 
		field.value = field.value.substring(0, maxlimit);
	}

	else { 
	// progress bar percentage
	var percentage = parseInt(100 - (( maxlimit - charcnt) * 100)/maxlimit) ;
	document.getElementById(counter).style.width =  parseInt((fieldWidth*percentage)/100)+"px";
	document.getElementById(counter).innerHTML="Limit: "+percentage+"%"
	// color correction on style from CCFFF -> CC0000
	setcolor(document.getElementById(counter),percentage,"background-color");
	}
}

function setcolor(obj,percentage,prop){
	obj.style[prop] = "rgb(80%,"+(100-percentage)+"%,"+(100-percentage)+"%)";
}

//if (DEBUG)
//	setInterval("alertAllItems()",2000);


