<!--
// global
var objForm;

function isValidTextAreaInput(strName) {
	var strText;
	
	strText = objForm[strName].value;
	if(strText.length > 4000) {
		alert('The text you have entered in a TEXT AREA INPUT BOX exceeds the 4000 character limit.');
		return(false);
	}	  
	return(true);
}

function isRequiredCheckboxRadio(strName, strMissingMSG) {
	var bolOk = false;
	var objInput = objForm[strName];

	for(var i = 0; i < objInput.length; i++) {
		if(objInput[i].checked) {
			bolOk = true;
			break;
		}
	}

	if ((!bolOk) && (strMissingMSG))
	{
		alert(strMissingMSG);
	}
	else
	{
		if(!bolOk)alert('A required CHECKBOX or RADIO question is missing information.');
	}
	return(bolOk);
}

function isRequiredMultiSelect(strName, strMissingMSG) {
	var bolOk = false;
	var objOptions = objForm[strName].options;

	// index 0 stores nothing
	for(var i = 1; i < objOptions.length; i++) {
		if(objOptions[i].selected) {
			bolOk = true;
			objOptions[0].selected = false;
			break;
		}
	}
	if ((!bolOk) && (strMissingMSG))
	{
		alert(strMissingMSG);
	}
	else
	{
		if(!bolOk)alert('A required multiple SELECT question is missing information.');
	}
	return(bolOk);
}

function isRequiredSingleSelect(strName, strMissingMSG) {
	var bolOk = (objForm[strName].selectedIndex != 0);
	if ((!bolOk) && (strMissingMSG))
	{
		alert(strMissingMSG);
	}
	else
	{
		if(!bolOk)alert('A required single SELECT question is missing information.');
	}
	return(bolOk);
}

function isRequiredText(strName, strMissingMSG) {
	var bolOk = (objForm[strName].value != '');
	if ((!bolOk) && (strMissingMSG))
	{
		alert(strMissingMSG);
	}
	else
	{
		if(!bolOk)alert('A required TEXT question is missing information.');
	}
	return(bolOk);
}

function isEmail(strName) {
	var strEmail = objForm[strName].value;
	var bolOk = (strEmail == '' || (strEmail.match(/^.+@(.+\.){1,}.+$/) != null));
	if(!bolOk)alert('Please enter a valid EMAIL ADDRESS.');
	return(bolOk);
}

function isPhone(strName) {
	var strPhone = objForm[strName].value;
	var bolOk = (strPhone == '' || (strPhone.match(/^\d{3}-\d{3}-\d{4}$/) != null));
	if(!bolOk)alert('Please enter a valid PHONE NUMBER in xxx-xxx-xxxx format.');
	return(bolOk);
}

function isSSN(strName) {
	var strSSN = objForm[strName].value;
	var bolOk = (strSSN == '' || (strSSN.match(/^\d{3}-\d{2}-\d{4}$/) != null));
	if(!bolOk)alert('Please enter a valid SOCIAL SECURITY NUMBER in xxx-xx-xxxx format.');
	return(bolOk);
}

function isZipCode(strName) {
	var strZipCode = objForm[strName].value;
	var bolOk = (strZipCode == '' || (strZipCode.match(/^\d{5}(-\d{4})?$/) != null));
	if(!bolOk)alert('Please enter a valid ZIP CODE in xxxxx or xxxxx-xxxx format.');
	return(bolOk);
}

function isDate(strName) {
	var bolOk = false;
	var strDate = objForm[strName].value;

	if(strDate == '') {
		bolOk = true;
	} else if(strDate.match(/^\d{1,2}\/\d{1,2}\/\d{4}$/) != null) {
		var astrDate = strDate.split('/');

		var intMonth = astrDate[0];
		var intDay = astrDate[1];
		var intYear = parseInt(astrDate[2]);

		if(intMonth.length == 2 && intMonth.charAt(0) == '0')intMonth = intMonth.charAt(1);
		if(intDay.length == 2 && intDay.charAt(0) == '0')intDay = intDay.charAt(1);

		intMonth = parseInt(intMonth);
		intDay = parseInt(intDay);

		if(intMonth < 1 || intMonth > 12) {
			alert('Please enter a valid MONTH for every DATE.');
		} else if(intDay < 1 || intDay > 31) {
			alert('Please enter a valid DAY for every DATE.');
		} else if(intYear < 1900 || intYear > 2100) {
			alert('Please enter a valid YEAR for every DATE.');
		} else if(intDay == 31 && (intMonth == 2 || intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11)) {
			alert('Please enter a valid DAY for every DATE (31st not valid day for month).');
		} else if(intMonth == 2) {
			var bolLeapYear = ((intYear % 4 == 0 && intYear % 100 != 0) || intYear % 400 == 0);

			if(!bolLeapYear && intDay > 28) {
				alert('Please enter a valid DAY for every DATE (28th max day for non-leap year in Feburary).');
			} else if(bolLeapYear && intDay == 30) {
				alert('Please enter a valid DAY for every DATE (29th max day for leap year in Feburary).');
			} else {
				bolOk = true;
			}
		} else {
			bolOk = true;
		}
	} else {
		alert('Please enter a valid DATE in mm/dd/yyyy format.');
	}

	return(bolOk);
}

function isFloat(strName) {
	var strFloat = objForm[strName].value;
	var fltFloat = parseFloat(strFloat);
	var bolOk = (strFloat == '' || ((strFloat.match(/^-?\d*(.\d*)?$/) != null) && !isNaN(fltFloat)));

	if(bolOk) {
		if(strFloat != '')objForm[strName].value = fltFloat;
	} else {
		alert('Please enter a valid FLOATING POINT number.');
	}

	return(bolOk);
}

function isInt(strName) {
	var strInt = objForm[strName].value;
	var intInt = parseInt(strInt);
	var bolOk = (strInt == '' || ((strInt.match(/^-?\d*$/) != null) && !isNaN(intInt)));

	if(bolOk) {
		if(strInt != '')objForm[strName].value = intInt;
	} else {
		alert('Please enter a valid INTEGER number.');
	}

	return(bolOk);
}

function isTextOtherOk(strSName) {
	var bolOk = false;
	var bolChecked = false;
	var objInput = objForm[strSName];
	var strOther = objForm[strSName.replace('S', 'T')].value;
	var intFinal = objInput.length - 1;

	for(var i = 0; i < intFinal; i++) {
		if(objInput[i].checked) {
			bolChecked = true;
			break;
		}
	}

	if(bolChecked && strOther != '') {
		alert('Please clear the TEXT from the "Other" description.');
	} else if(objInput[intFinal].checked && strOther == '') {
		alert('Please enter TEXT for the "Other" description.');
	} else {
		bolOk = true;
	}

	return(bolOk);
}

function isValidLength(fieldValue, maxLength, displayText)
{
	if(fieldValue.length > maxLength)
	{
		alert(displayText+" must be less than " + maxLength + " characters.");
		return false;
	}
	return true;
}

function compareDates(strStartDateName, strFinishDateName) {
	var strStartDate = objForm[strStartDateName].value;
	var strFinishDate = objForm[strFinishDateName].value;

	if(strStartDate == '' || strFinishDate == '') {
		return(true);
	} else {
		if(isDate(strStartDateName) && isDate(strFinishDateName)) {
			var datStart, datFinish;

			var astrStartDate = strStartDate.split('/');
			var astrFinishDate = strFinishDate.split('/');

			var intStartMonth = astrStartDate[0];
			var intStartDay = astrStartDate[1];
			var intStartYear = parseInt(astrStartDate[2]);

			var intFinishMonth = astrFinishDate[0];
			var intFinishDay = astrFinishDate[1];
			var intFinishYear = parseInt(astrFinishDate[2]);

			if(intStartMonth.length == 2 && intStartMonth.charAt(0) == '0')intStartMonth = intStartMonth.charAt(1);
			if(intStartDay.length == 2 && intStartDay.charAt(0) == '0')intStartDay = intStartDay.charAt(1);

			if(intFinishMonth.length == 2 && intFinishMonth.charAt(0) == '0')intFinishMonth = intFinishMonth.charAt(1);
			if(intFinishDay.length == 2 && intFinishDay.charAt(0) == '0')intFinishDay = intFinishDay.charAt(1);

			intStartMonth = parseInt(intStartMonth);
			intStartDay = parseInt(intStartDay);

			intFinishMonth = parseInt(intFinishMonth);
			intFinishDay = parseInt(intFinishDay);

			datStart = new Date(intStartYear, intStartMonth - 1, intStartDay);
			datFinish = new Date(intFinishYear, intFinishMonth - 1, intFinishDay);

			return(datFinish > datStart);
		} else {
			return(false);
		}
	}
}
// -->