<!--
function DisplayAlert(formfield, msg) {
	alert(msg);
	formfield.focus();
	return false;
}

// checks for a Valid Email Address
function ChkEmail(formfield, msg, required) {
	if (!formfield) {return true;}
	if (formfield.type == 'hidden') {return true;}
	if ((formfield.value == "") && (required == 'N')) { return true; }
	if (formfield.value == "" && required == 'P') {
		formfield.focus();
		return confirm(msg);
	}
	if ((required == 'Y') && (formfield.value == "")) { return DisplayAlert(formfield, msg); }	

	invalidChars = ' \/:,;><'
	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if (formfield.value.indexOf(badChar,0) != -1) { return DisplayAlert(formfield, msg); }
	}
	if (formfield.value.indexOf('.@',0) != -1) { 
		msg = msg + '\n\n(Email may not contain character combination: \'.@\')';
		return DisplayAlert(formfield, msg); 
	}

	atPos = formfield.value.indexOf("@",1)
	if (atPos == -1) { return DisplayAlert(formfield, msg);	}
	 
	if (formfield.value.indexOf("@",atPos+1) != -1) { return DisplayAlert(formfield, msg); }

	periodPos = formfield.value.indexOf(".",atPos)
	if (periodPos == -1) { return DisplayAlert(formfield, msg); }
	if (periodPos+3 > formfield.value.length) { return DisplayAlert(formfield, msg); }
	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; }
	msg = msg + "\n\n(This must be a valid integer.)"
	if (formfield.value.indexOf("\.") != -1) {
		alert(msg);
		formfield.focus();
		return false;
	}
	return true;
}

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 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;
}
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 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 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;
}

// 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) {       //Check all people
		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 SetHiddenDate(form, field){
	if (eval('form.' + field.name + '_M')) {
		selectedIndex_M = eval('document.forms["' + form.name + '"].' + field.name + '_M').selectedIndex
		month = eval('document.forms["' + form.name + '"].' + field.name + '_M[' + selectedIndex_M + ']').value 
	} else {
		month = '01/'
	}
	if (eval('form.' + field.name + '_D')) {
		selectedIndex_D = eval('document.forms["' + form.name + '"].' + field.name + '_D').selectedIndex
		day = eval('document.forms["' + form.name + '"].' + field.name + '_D[' + selectedIndex_D + ']').value 
	} else {
		day = '01/'
	}
	if (eval('form.' + field.name + '_Y')) {
		selectedIndex_Y = eval('document.forms["' + form.name + '"].' + field.name + '_Y').selectedIndex
		year = eval('document.forms["' + form.name + '"].' + field.name + '_Y[' + selectedIndex_Y + ']').value 
	} else {
		year = '1900'
	}	

	if (month != '' && day != '' && year != '') {
		theDateTime =  month + day + year;
		eval('document.forms["' + form.name + '"].' + field.name).value = theDateTime;
		//alert(eval('document.forms["' + form.name + '"].' + field.name).value);
	} else {
		eval('document.forms["' + form.name + '"].' + field.name).value = '';
	}
	return true;
}
function MakeArray(n){
	this.length = n
	return this
}

// Checks to see if the year passed is a leap year.
function isLeapYear(chkYear) {
	if (chkYear % 4 != 0) {return false;}
	if (chkYear % 400 == 0) {return true;}
	if (chkYear % 100 == 0) {return false;}
	return true;
}

// Gets the max number of days available in a month.  isLeapYear() is called to
// determine the number of days in February.
function getDaysMonth(theMonth, theYear) {
	if (theMonth == 1) {return 31;}
	if (theMonth == 2 && isLeapYear(theYear)) {return 29;}
	if (theMonth == 2 && (!isLeapYear(theYear))) {return 28;}
	if (theMonth == 3) {return 31;}
	if (theMonth == 4) {return 30;}
	if (theMonth == 5) {return 31;}
	if (theMonth == 6) {return 30;}
	if (theMonth == 7) {return 31;}
	if (theMonth == 8) {return 31;}
	if (theMonth == 9) {return 30;}
	if (theMonth == 10) {return 31;}
	if (theMonth == 11) {return 30;}
	if (theMonth == 12) {return 31;}
	alert('invalid month!');
	return false;	
}

function ValidateSelectDate(form, field, DateName, required){
	if (!field) { return true; }

	// alternate way to get the other field names & values ;-)
	// no need to pass the form object - just the field;

	if (field.value == "" && required) {
		alert('Please enter a valid  \'' + DateName + '\'.');
		if (eval('document.forms["' + form.name + '"].' + field.name + '_M') && eval('document.forms["' + form.name + '"].' + field.name + '_M').type == 'hidden') {
			return false;
		} else if (eval('document.forms["' + form.name + '"].' + field.name + '_M')) {
			eval('document.forms["' + form.name + '"].' + field.name + '_M').focus();
			return false;
		} else if (eval('document.forms["' + form.name + '"].' + field.name + '_Y') && eval('document.forms["' + form.name + '"].' + field.name + '_Y').type == 'hidden') {
			return false;
		} else {
			return false;
		}
	} else if (field.value == "") { 
		return true; 
	}

//	alert('ok');
	if (eval('document.forms["' + form.name + '"].' + field.name + '_M') && eval('document.forms["' + form.name + '"].' + field.name + '_M').type != 'hidden') {
		selectedIndex_M = eval('document.forms["' + form.name + '"].' + field.name + '_M').selectedIndex
		selectedIndex_D = eval('document.forms["' + form.name + '"].' + field.name + '_D').selectedIndex
		selectedIndex_Y = eval('document.forms["' + form.name + '"].' + field.name + '_Y').selectedIndex
	
		if (!selectedIndex_M > 0){
			alert('please select ' + DateName + ' month');
			eval('document.forms["' + form.name + '"].' + field.name + '_M').focus();
			return false;
		}
		if (!selectedIndex_D > 0){
			alert('please select ' + DateName + ' day');
			eval('document.forms["' + form.name + '"].' + field.name + '_D').focus();
			return false;
		}
		if (!selectedIndex_Y > 0){
			alert('please select ' + DateName + ' year');
			eval('document.forms["' + form.name + '"].' + field.name + '_Y').focus();
			return false;
		}
	
		FirstSlash = field.value.indexOf("/",0)
		SecondSlash = field.value.indexOf("/",FirstSlash+1)
		month="";
		for (i=0; i<FirstSlash; i++) {
			month = month + field.value.charAt(i);
		}
	
		// Days are validated as numbers with values of 1-31
		// Validation does not accomodate month specific max days. IE. 2/31/1999 could be specified
		day="";
		for (i=(FirstSlash+1); i<SecondSlash; i++) {
			day = day + field.value.charAt(i);
		}
		
		// years are validated as numbers with a length of 4 digits
		year="";
		for (i=(SecondSlash+1); i<field.value.length; i++) {
			year = year + field.value.charAt(i);
		}
	
		monthName = new MakeArray(12)
		monthName[1] = "January"
		monthName[2] = "February"
		monthName[3] = "March"
		monthName[4] = "April"
		monthName[5] = "May"
		monthName[6] = "June"
		monthName[7] = "July"
		monthName[8] = "August"
		monthName[9] = "September"
		monthName[10] = "October"
		monthName[11] = "November"
		monthName[12] = "December"
		
		if (day > getDaysMonth(month, year)) {
			alert('There are only ' + getDaysMonth(month, year) + ' days in ' + monthName[month] + ' ' + year);
			eval('document.forms["' + form.name + '"].' + field.name + '_D').focus();
			return false;
		}
	}
	return true;
}

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;
}



// this part is for the form field hints to display
// only on the condition that the text input has focus.
// otherwise, it stays hidden.

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


function prepareInputsForHints() {
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i<inputs.length; i++){
    inputs[i].onfocus = function () {
      this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
    }
    inputs[i].onblur = function () {
      this.parentNode.getElementsByTagName("span")[0].style.display = "none";
    }
  }
}
//addLoadEvent(prepareInputsForHints);
//-->
