/* Array of windows to allow closing of all popups */

openWins = new Array();
curWin = 0;

function tableDisplay() {
// Windows IE does not support CSS2 standard display attibute value "table"
	if ((is.ie) && !(is.mac)) return "block";
	return "table";
}

function displayToggle(imgName, smallID, bigID ) {
	imageSwap = document.getElementById(imgName);
	smallObj  = document.getElementById(smallID);
	bigObj    = document.getElementById(bigID);

	with (bigObj.style) {
		if ((display == "none") || (display == "")) {
			display = tableDisplay(bigObj);
			smallObj.style.display = "none";
			imageSwap.src = "../images/minus.gif";
		}
		else {
			display = "none";
			smallObj.style.display = tableDisplay(smallObj);
			imageSwap.src = "../images/plus.gif";
		}
	}
}

function tbodyToggle(imgName, tbodyID ) {
	imageSwap = document.getElementById(imgName);
	bigObj    = document.getElementById(tbodyID);

	if ((bigObj.style.display == "none") || (bigObj.style.display == "")) {
		bigObj.style.display = "table-header-group";
		imageSwap.src = "../images/minus.gif";
	}
	else {
		bigObj.style.display = "none";
		imageSwap.src = "../images/plus.gif";
	}
}


function toggleNavCollapse( navLinkToggleStr, subNavToggleStr ) {
	var linkToggle = document.getElementById(navLinkToggleStr);
	var objToggle = document.getElementById(subNavToggleStr);

	if ((objToggle.style.visibility == "") && (objToggle.className.indexOf("subNavExpand") >= 0)) {
		objToggle.style.display = "block";
		objToggle.style.visibility = "visible";
	}

	if (objToggle.style.visibility.indexOf("visible") >= 0) {
		objToggle.style.display = "none";
		objToggle.style.visibility = "hidden";

		linkToggle.style.background = "url(../images/plus.gif) no-repeat";
	}
	else {
		objToggle.style.display = "block";
		objToggle.style.visibility = "visible";

		linkToggle.style.background = "url(../images/minus.gif) no-repeat";
	}
}

function doPopUpFull(theURL, theWidth, theHeight, windowName ) {
	openWins[curWin] = window.open(theURL, windowName,
		'toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizable=1,' 
		+ 'width=' + theWidth + ',height=' + theHeight );

	openWins[curWin++].focus();
}

function doPopupName(theURL, windowName )	{
	doPopUpFull( theURL, 600, 400, windowName );
}

function doPopup(theURL)	{
	doPopUpFull( theURL, 600, 400, 'PopUpWindow' );
}

function doSmallPopup(theURL)	{
	doPopUpFull( theURL, 320, 240, 'PopUpWindow' );
}

function doMediumPopup(theURL)	{
	doPopUpFull( theURL, 400, 240, 'PopUpWindow' );
}

function closePopUps() {
	for(i=0; i < openWins.length; i++) {
		if (openWins[i] && !openWins[i].closed) {
			openWins[i].close();
		}
	}
}


function resetForm()	{
	for( var i=0; i<document.forms[0].elements.length; i++ )	{
		if ( (document.forms[0].elements[i].type!="hidden") &&
			 (document.forms[0].elements[i].type!="submit") &&
			 (document.forms[0].elements[i].type!="button") )	{
			document.forms[0].elements[i].value='';
		}
	}
}

function printPage() {
	if (window.print) {
		window.print();
	}
	else if (navigator.appVersion.indexOf("Mac")!=-1)	{
		alert('Your system does not support this function. Use the "print" button from your browser.');
	}
}


function hide(win, obj) {
	var ob;
	if (is.ie4) ob = document.all(divId);
	else ob = document.getElementById(divId);

	ob.style.visibility = "hidden";
}

function clearFields(button)	{
	with (button.form) {
		reset();
	
		var defaultFld = null;
	
		for( var i=0; i<elements.length; i++ )	{
			if ( (elements[i].type=="text") || (elements[i].type=="password") )	{
				elements[i].value='';
			}

			if ( (elements[i].type.indexOf("radio") >= 0) ) {
				if (elements[i].value == "ALL") {
					elements[i].checked = true;
				}
			}

			if ( (elements[i].type.indexOf("check") >= 0) ) {
				elements[i].checked = false;
			}

			if ( (elements[i].type.indexOf("select") >= 0) ) {
				var defaultOption = 0;

				for (var j=0; j<elements[i].options.length; j++) {
					elements[i].options[j].selected = false;
					if ((elements[i].options[j].value == "MN" ) || (elements[i].options[j].value == "Minnesota" )
						|| (elements[i].options[j].value == "P" )
						|| (elements[i].options[j].value == "NOTHINGSELECTED")) {
						defaultOption = j;
					}
				}

// IE patch to reset to "default" of FIRST entry or if "Nothing Selected" was selected
				if (((!elements[i].multiple) && (elements[i].length > 0)) ||
					(elements[i].options[defaultOption].value == "NOTHINGSELECTED")) {
					elements[i].options[defaultOption].selected = true;
				}
			}

			if ((elements[i].tabIndex > 0) && (!elements[i].disabled)) {
				if (defaultFld == null) {
					defaultFld = elements[i];
				}
				else {
					if (defaultFld.tabIndex >= elements[i].tabIndex) {
						defaultFld = elements[i];
					}
				}
			}
		}
		
		if (defaultFld != null) {
			defaultFld.focus();
		}
	}
	return;
}

function isWhiteSpace( ch ) {
	if ((ch == " ") || (ch == "\t") || (ch == "\n") || (ch == "\r")) {
		return(true);
	}

	return(false);
}

function fieldTrim( formField ) {
	with (formField) {
		var e = value.length - 1;
		var l = e;

		if (e < 0) return;

	// Strip trailing spaces
		while(e >= 0) {
			if (isWhiteSpace(value.charAt(e))) {
				e--;
			}
			else break;
		}

	// Empty string?
		if (e < 0) {
			value = "."; // Netscape 6.0 patch to refresh field
			value = "";
			return;
		}

	// Strip leading spaces
		b = 0;
		while(b <= e) {
			if (isWhiteSpace(value.charAt(b))) {
				b++;
			}
			else break;
		}

	// String is unchanged
		if ((b == 0) && (e == l)) {
			return;
		}

		value = value.substring(b, ++e);
	}

	return;
}

function invalidInput(textObj) 
{
	return ( (textObj.value.indexOf(" ") >= 0) );
}

function trimErrMsg( errMsg ) {
	var theErrMsg = new String(errMsg);

	theErrMsg = theErrMsg.replace( /\<\/div\>/, "" );
	theErrMsg = theErrMsg.replace( /\<div .*\>/, "\n" );

	return theErrMsg;
}

function focusMessage( formField, errMsg ) {
	with (formField) {
		focus();
		select();
		alert(trimErrMsg(errMsg));
		focus();
		select();
	}
}

function fieldIsNullTest( formField ) {
	fieldTrim( formField );

	return (formField.value == "");
}

function fieldIsNull( formField, errMsg ) {
	if (fieldIsNullTest( formField )) {
		focusMessage( formField, errMsg );
		return(true);
	}

	return(false);
}

function fieldIsInvalid( formField, errMsg ) {
	if (fieldIsNull( formField, errMsg )) {
		return(true);
	}

	if (invalidInput( formField )) {
		focusMessage( formField, errMsg );
		return(true);
	}

	return(false);
}

function fieldLengthOutOfRange( formField, minStrLength, maxStrLength, noSpaces, errMsg ) {
	if (fieldIsNull( formField, errMsg )) {
		return(true);
	}
	
	if (noSpaces) {
		if (fieldIsInvalid( formField, errMsg )) {
			return(true);
		}
	}

	with (formField) {
		if ((value.length < minStrLength) || (value.length > maxStrLength)) {
			focusMessage( formField, errMsg );
			return(true);
		}
	}

	return(false);
}

var tabWidth = 0;

function tabSet( theField ) {
	tabWidth = theField.value.length;
}

function tabNext( original, destination ) {
	with (original) {
		if (tabWidth != value.length) {
			tabSet(original);
			if (value.length == getAttribute("maxlength")) {
				destination.focus()
			}
		}
	}
}

function clickMe(theObj) {
	if (theObj) {
		theObj.blur()
		if (theObj.click) theObj.click(); 
	}
}