<!--
function chkBox(chkfield, hiddenfield, aVal, bVal) {
	hiddenfield.value = 0;
	if (bVal) { hiddenfield.value = bVal; }
	if (chkfield.checked) { hiddenfield.value = 1; if (aVal) { hiddenfield.value = aVal; } }
	return true;
}

function ReverseChkBox(chkfield, hiddenfield) { hiddenfield.value = 1; if (chkfield.checked) { hiddenfield.value = 0; } return true; }

function ValidateText(formfield, DisplayMsg, required, minLength, maxLength) {
	if (formfield) {
		if (formfield.disabled == true) { return true; }
		if (formfield.value == "" && required == 'N') { return true; }
		if (formfield.type != 'text') {return true;}
		if (formfield.value == "" && required == 'Y') { alert(DisplayMsg); formfield.focus(); return false; }
		if (formfield.value == "" && required == 'P') { formfield.focus(); return confirm(DisplayMsg); }
		if (minLength) { if (formfield.value.length < minLength) { alert(DisplayMsg + '\nThis field must be at least ' + minLength + ' characters.'); formfield.focus(); return false; } }
		if (maxLength) { if (formfield.value.length > maxLength) { alert(DisplayMsg + '\nThis field must be no more than ' + maxLength + ' characters.'); formfield.focus(); return false; } }
	}
	return true;
}

// If we're validating a hidden field, that means that it will be required.
function ValidateHidden(formfield, DisplayMsg) {
	if (formfield && formfield.type == 'hidden') { if (formfield.value == "") { alert(DisplayMsg); formfield.focus(); return false; } }
	return true;
}

function ValidatePhone(formfield, DisplayMsg, required) {
	if (formfield) {
		if (formfield.value == "" && required == 'N') { return true; }
		if (formfield.type == 'hidden') {return true;}
		if (formfield.disabled == true) { return true; }
		if (formfield.value == "" && required == 'Y') { alert(DisplayMsg); formfield.focus(); return false; }
		if (formfield.value == "" && required == 'P') { formfield.focus(); return confirm(DisplayMsg); }
		var count = 0
		for (i=0; i<formfield.value.length; i++) { if (!isNaN(formfield.value.charAt(i))) { count = count + 1; } }
		 if (count <= 9) { alert('You must enter a complete phone number.'); formfield.focus(); return false; }
		 if (count >= 16) { alert('You must enter a real phone number.'); formfield.focus(); return false; } 
	}
	return true;
}
function ValidateSrchTextBox(formfield, DisplayMsg) {
	if (formfield && formfield.type == 'hidden') {
		if ([formfield + '_Display']) { if (formfield.value == "") { alert('Please select ' + DisplayMsg); return false; } }
	}
	return true;
}

function ValidateTextArea(formfield, DisplayMsg, required, maxlength) {
	if (formfield) {
		if ((formfield.value == "") && required == 'N') { return true; }
		if (formfield.type == 'hidden') {return true;}
		if (formfield.value == "" && required == 'Y') { alert(DisplayMsg); formfield.focus(); return false; }
		if (formfield.value == "" && required == 'P') { formfield.focus(); return confirm(DisplayMsg); }
		if (maxlength) {
			if (formfield.value.length > maxlength) {
				if (required != 'P') { 
					alert(DisplayMsg + '\n\n' + ' This has too many characters entered.  It may only be ' + maxlength + ' characters.');
				} else { 
					alert('This has too many characters entered.  It may only be ' + maxlength + ' characters.');
				}
				formfield.focus();
				return false;
			}
		}
	}
	return true;
}

function ValidateNum(formfield, msg, required, MinValue, MaxValue) {
	if (formfield) {
		msg = msg + "\n\n- You must enter a valid number for this field, (" + formfield.name + ")."
		if (MinValue) { msg = msg + "\n\n- This number must be at least " + MinValue + "."; }
		if (MaxValue) { msg = msg + "\n\n- This number must be no more than " + MaxValue + "."; }
	
		if (!formfield) { return true;}
		if (formfield.type == 'hidden') {return true;}
		if (formfield.disabled == true) { return true; }
		if ((formfield.value == "") && (required == 'N')) { return true; }
		if ((formfield.value == "") && (required == 'P')) { if (!confirm(msg)) { formfield.focus(); return false; } }
		if ((required == 'Y') && (formfield.value == "")) { alert(msg); formfield.focus(); return false; }

		if (!(formfield.value == '')) {
			if (isNaN(formfield.value)) { formfield.value = ''; alert(msg); formfield.focus(); return false; }
			if ((MinValue) && (formfield.value < MinValue)) { alert(msg); formfield.focus(); return false; }
			if ((MaxValue) && (formfield.value > MaxValue)) { alert(msg); formfield.focus(); return false; }
		}
	}
	return true;
}

function ValidateInt(formfield, msg, required, MinValue, MaxValue) {
	if (!formfield) { return true;}
	if (!ValidateNum(formfield, msg, required, MinValue, MaxValue)) { return false; }
	if (!ValidateNum(formfield, msg, required, -2147217913, 2147217913)) { return false; }
	msg = msg + "\n\n(This must be a valid integer.)"
	if (formfield.value.indexOf("\.") != -1) { alert(msg); formfield.focus(); return false; }
	return true;
}


function ValidateCurrency(formfield, Msg, required, MinValue, MaxValue) {
	if (!formfield) { return true;}
	if (formfield.value == "" && required == 'N') { return true; }
	if (formfield.value == "" && required == 'P') { alert(Msg); return true; }
	if (formfield.value == "" && required == 'Y') { alert(Msg + '\n\n\(This must be a valid currency amount.\)'); formfield.focus(); return false; }

	// remove any commas for further comparisons
	CurrencyVal = formfield.value.replace(/,/g, '');
	if (isNaN(CurrencyVal)) { alert(Msg + '\n\n\(This must be a valid currency amount.\)'); formfield.focus(); return false; }
	if ((MinValue) && (CurrencyVal < MinValue)) { alert(Msg + '\n\n(This value must be at least ' + MinValue + ')'); formfield.focus(); return false; }
	if ((MaxValue) && (CurrencyVal > MaxValue)) { alert(Msg + '\n\n(This value cannot be greater than ' + MaxValue + ')'); formfield.focus(); return false; }

	periodPos = formfield.value.indexOf('.',1);
	if (periodPos < 0) { formfield.value = formfield.value + '.00'; }
	if (periodPos+3 > formfield.value.length) { formfield.value = formfield.value + '0'; }
	return true;
}


function CkHalfNum(formfield, msg) {
	if (!formfield) { return true; }
	DecimalPoint = formfield.value.indexOf("\.",0);
	if (DecimalPoint != -1) {
		remainder= "";
		for (i=DecimalPoint; i<formfield.value.length; i++) { remainder = remainder + formfield.value.charAt(i); }
		if (remainder != .0 && remainder != .5 && remainder != '.') { alert(msg); formfield.focus(); return false; }
	}
	return true;
}


function FormatZip4(ZipField) {
	str = ZipField.value;
	isNetscape=(document.layers);
	eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
	ThisKey = String.fromCharCode(eventChooser).toLowerCase();
	if (!isNaN(str) && str.length == 6 && str.charAt(5) != '-') { str = str.substr(0,5) + '-' + str.substr(5,6); }
	ZipField.value = str;
	return true;
}


function ChkZip4(formfield, msg, required) {
	if (!formfield) { return true;}
	if ((formfield.value == "") && (required == 'N')) { return true; }
	if ((formfield.value == "") && (required == 'P')) { if (confirm(msg)) { formfield.focus(); return false; } }
	if ((required == 'Y') && (formfield.value == "")) { alert(msg); formfield.focus(); return false; }
	if (!(formfield.value == '')) {
		str = formfield.value;
		if (isNaN(str) && str.length == 5) { alert(msg); formfield.focus(); return false; }
		if (str.length == 10) {
			if (str.charAt(5) != '-') { alert(msg); formfield.focus(); return false; }
			zip5 = str.substr(0,4);
			zip4 = str.substr(6,9);
			if (isNaN(zip5) || isNaN(zip4)) { alert(msg); formfield.focus(); return false; }
		}
	}		
	return true;
}


function ValidateSelect(FormField, DisplayMsg, required) {
	if (FormField) {
		if (FormField.type == 'hidden') { return true; }
		if (FormField.disabled == true) { return true; }
		if (FormField.type != 'select-one') {
			//This needed to be made more flexible to handle circumstances where formfield is not a select box
			return true;
			//alert('Error in Validators.js! - ' + FormField.name + ' is not a select box.');
			//return false;
		}
		if (FormField[0].selected && required == 'N') { return true; }
		if (FormField[0].selected && required == 'Y') { alert(DisplayMsg); FormField.focus(); return false; }
		if (FormField[0].selected && required == 'P') { FormField.focus(); return confirm(DisplayMsg); }
	}
	return true;
}

function ValidateMultiSelect(FormField, DisplayMsg, required) {
	if (FormField && FormField.type != 'hidden') {
		if (required == 'N') { return true; }
		if (required == 'Y') {
			if (FormField.length >= 1) { for (i=0; i<FormField.length; i++) { if (FormField[i].selected) { return true; } } alert(DisplayMsg); FormField.focus(); return false; }
		}
		if (required == 'P') {
			if (FormField.length >= 1) { for (i=0; i<FormField.length; i++) { if (FormField[i].selected) { return true; } } FormField.focus(); return confirm(DisplayMsg); }
		}
	}
	return true;
}


// checks to see if one of several radio Buttons is selected
function ValidateRadio(FormField, DispMsg,required) {
	if (FormField && FormField.type != 'hidden') {
		if (required == 'N') { return true; }
		if (required == 'P') { formfield.focus(); return confirm(DispMsg); }
		if (required == 'Y') { 
			if (FormField.length > 0) {
				for (i = 0; i < FormField.length; i++) { if (FormField[i].checked) { return true; } }
				alert(DispMsg);
				return false;
			} else { 
				if (!FormField.checked) { alert(DispMsg); return false; }
			}
		}
	}
	return true;
}


function ValidateMultiCheck(FormField, DisplayMsg, required) {
	if (FormField && FormField.type != 'hidden') {
		if (required == 'N') { return true; }
		if (required == 'Y') {
			if (FormField.length > 1) {
				for (i=0; i<FormField.length; i++) { if (FormField[i].checked) { return true; } }
				alert(DisplayMsg);
				return false;
			} else {
				if (!FormField.checked) { alert(DisplayMsg); return false; }
			}
		}
		if (required == 'P') {
			var fieldname =  FormField[0].name;
			var len = eval('document.forms[0].' + fieldname + '.length');
			if (len > 0) {
				for (i=0; i<len; i++) { if (FormField[i].checked) { return true; } }
				//FormField.focus();
				return confirm(DisplayMsg);
			} else {
				if (!FormField.checked) {
					//FormField.focus();
					return confirm(DisplayMsg);
				}
			}
		}
	}
	return true;
}

function GoToForm(form, script, targetwindow) { form.action = script; if (targetwindow) {form.target = targetwindow;} form.submit(); return true; }

function ChkAll(formfield, CkBoxField) {
	if (formfield.checked == true) {
		for (var i=0; i < CkBoxField.length; i++)  { CkBoxField[i].checked = true; }
	} else {
		for (var i=0; i < CkBoxField.length; i++)  { CkBoxField[i].checked = false; }
	} 
	return true;
}

function RefreshOpener(NewLoc) {
	if (window.opener) { if (NewLoc == '') { window.opener.location.reload(); } else { window.opener.location.href = NewLoc; } window.close(); }
}

//formats phones on blur
function SetPhone(Phone) { str = Phone.value; if (str.length == 10 && !isNaN(str)) { Phone.value = str.substr(0,3) + '-' + str.substr(3,3) + '-' + str.substr(6,4); } return true; }

// adds dashes while typing
function FormatPhone(Phone) { 
	if (Phone.value.length == 4 && !isNaN(Phone.value)) { var x = Phone.value; if (x.substring(3,4) != '-') { Phone.value = x.substring(0,3) + '-' + x.substring(3,4); return true; } }
	if (Phone.value.length == 8 && Phone.value.substring(3,4) == '-') { var x = Phone.value; if (x.substring(7,8) != '-') { Phone.value=x.substring(0,7) + '-' + x.substring(7,8); return true; } }
	return true;
}


function Toggle(e) { if (e.checked) {Highlight(e);} else { Unhighlight(e);} }

function Highlight(e) {
	var r = null;
	if (e.parentNode && e.parentNode.parentNode) {r = e.parentNode.parentNode;}
	else if (e.parentElement && e.parentElement.parentElement) {r = e.parentElement.parentElement;}
	if (r) { if (r.className == "Rowon") { r.className = "Rowoff"; } else if (r.className == "Rowoff") { r.className = "Rowon"; } }
}

function Unhighlight(e) {
	var r = null;
	if (e.parentNode && e.parentNode.parentNode) {r = e.parentNode.parentNode;}
	else if (e.parentElement && e.parentElement.parentElement) {r = e.parentElement.parentElement;}
	if (r) { if (r.className == "Rowon") {r.className = "Rowoff"; } else if (r.className == "Rowoff") {r.className = "Rowon";} }
}


// validates a file or folder name entry, (but not within a file upload box)
function ValidateFileName(formfield, msg, required) { 
	if (!formfield) { return true;}
	if (formfield.value == "" && required == 'N') { return true; }
	if ((formfield.value == "") && (required == 'P')) { if (confirm(msg)) { formfield.focus(); return false; } }
	if ((required == 'Y') && (formfield.value == "")) { alert(msg); formfield.focus(); return false; }

	invalidChars = " &.,;"
	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if (formfield.value.indexOf(badChar, 0) != -1) { 
			if (badChar == ' ') { badChar = 'space'; }
			alert(msg + '\n\n(Illegal character of \'' + badChar + '\' in the file name!)');
			formfield.focus();
			return false;
		}
	}
	return true;
}


// validates a file within a file upload box
function ValidateFileBox(formfield, msg, required, ReqExtList, DisallowExtList) { 
	if (!formfield) { return true;}
	if (formfield.value == "" && required == 'N') { return true; }
	if ((formfield.value == "") && (required == 'P')) { if (confirm(msg)) { formfield.focus(); return false; } }
	if ((required == 'Y') && (formfield.value == "")) { alert(msg); formfield.focus(); return false; }

	lastSlash = formfield.value.lastIndexOf('\\');
	if (lastSlash < 1) { lastSlash = formfield.value.lastIndexOf('/'); }
	if (lastSlash < 1) { alert(msg + '\n\n(Unrecognizable path of \'' + formfield.value + '\' for this file.)'); formfield.focus(); return false; }

	FileName = formfield.value.substr(lastSlash+1);
	invalidChars = " &"
	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if (FileName.indexOf(badChar, 0) != -1) { 
			if (badChar == ' ') { badChar = 'space'; }
			alert(msg + '\n\n(Illegal character of \'' + badChar + '\' in the file name!)');
			formfield.focus();
			return false;
		}
	}

	lastDot = FileName.lastIndexOf('\.') ; 
	if (lastDot > 0)  {
		var extName = FileName.substr(lastDot);
		if (extName != '' && ReqExtList && ReqExtList != '') { 
			extName = extName.toUpperCase()
			ReqExtList = ReqExtList.toUpperCase()
			var Exts = new Array();
			Exts = ReqExtList.split(',');
			for (i=0; i < Exts.length; i++) {
				if (Exts[i] != extName) { 
					var BadExt = false;
					//return false;
				} else { 
					return true;
				}
			} 
			if (!BadExt) { alert(msg + '\n\n(The file must be of \' ' + ReqExtList + ' \' type.)'); return false; } 
		}

		// check for disallowed list
		if (DisallowExtList) { 
			if (extName != '' && DisallowExtList != '') { 
				extName = extName.toUpperCase()
				DisallowExtList = DisallowExtList.toUpperCase()
				var Exts = new Array();
				Exts = DisallowExtList.split(',');
				for (i=0; i < Exts.length; i++) { if (Exts[i] == extName) { alert(msg + '\n\n(The file cannot be of \' ' + Exts[i] + ' \' type.)'); return false; } } 
			} 
		}
	}
	return true;
}
//-->
